// access and set functions for binary muon strip tags
// Version 1.0 21 Oct 1998 Richard creation

#ifndef STRIPID_H
#define STRIPID_H

#include "TMath.h"
#include "TObject.h"


class stripID : public TObject {

private:
    UInt_t m_tag; // Muon strip binary ID

public:

    stripID(); // Default constructor m_tag set equal to 0
    stripID(UInt_t tag);
    ~stripID() {};


    UInt_t tag() const;
    Int_t c1() const;
    Int_t c2() const;
    Int_t layer() const;
    Int_t barrelEndcap() const;
    Int_t northSouth() const;

    void setTag(UInt_t tagVal);
    void setC2(Int_t thetaVal);
    void setC1(Int_t phiVal);
    void setLayer(Int_t layerVal);
    void setBarrelEndcap(Int_t barrelEndcapVal);
    void setNorthSouth(Int_t northSouthVal);

// 2 routines that ROOT requires
ULong_t Hash(){ return  m_tag;};
Bool_t IsEqual(TObject *obj){ return m_tag == ((stripID*)obj)->m_tag;};

    const static Int_t c1On;
    const static Int_t c1Off;

    const static Int_t c2On;
    const static Int_t c2Off;

    const static Int_t layerOn;
    const static Int_t layerOff;

    const static Int_t barrelEndcapOn;
    const static Int_t barrelEndcapOff;

    const static Int_t northSouthOn;
    const static Int_t northSouthOff;

ClassDef(stripID,1)// Calorimeter strip ID number
};

#endif
