// access and set functions for binary muon strip tags
// Version 1.0 21 Oct 1998 Richard creation

#ifndef LCDSTRIPID_H
#define LCDSTRIPID_H

#include "TMath.h"
#include "TObject.h"


class LCDstripID : public TObject {

private:
    UInt_t m_tag; // Muon strip binary ID

public:

    LCDstripID(); // Default constructor m_tag set equal to 0
    LCDstripID(UInt_t tag);
    ~LCDstripID() {};


    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() const {return  m_tag;};
    Bool_t IsEqual(const TObject *obj) const 
	{return m_tag == ((LCDstripID*)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(LCDstripID,1)// Calorimeter strip ID number
};

#endif
