// access and set functions for binary muon strip tags
// Version 1.0 21 Oct 1998 Richard creation

#ifndef LCDSTRIPID_H
#define LCDSTRIPID_H

#include "TObject.h"


class LCDstripID : public TObject {

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;};

private:
  UInt_t m_tag; // Muon strip binary ID

public:
  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
