#ifndef ALIMPUID_H
#define ALIMPUID_H
#ifndef ROOT_TObject
# include "TObject.h"
#endif
#ifndef ROOT_TString
# include "TString.h"
#endif
#ifndef ALI_MP_CATHOD_TYPE_H
# include "AliMpCathodType.h"
#endif
class AliMpUID : public TObject
{
public:
AliMpUID();
AliMpUID(AliMp::CathodType cathodeType, Int_t station, Int_t chamber=-1, Int_t de=-1,
Int_t bp=-1, Int_t manu=-1, Int_t pcb=-1);
AliMpUID(AliMp::CathodType cathodeType, const AliMpUID& b);
AliMpUID(AliMp::CathodType cathodeType, const char* pathname);
AliMpUID(const char* pathname);
virtual ~AliMpUID() {}
TString Name() const;
TString PathName() const;
TString BaseName() const;
TString DirName() const;
Bool_t IsStation() const;
Bool_t IsChamber() const;
Bool_t IsDetectionElement() const;
Bool_t IsBusPatch() const;
Bool_t IsManu() const;
Bool_t IsPCB() const;
Bool_t IsValid() const;
AliMp::CathodType CathodeId() const;
Int_t StationId() const { return fStationId; }
Int_t ChamberId() const { return fChamberId; }
Int_t DetElemId() const { return fDetElemId; }
Int_t BusPatchId() const { return fBusPatchId; }
Int_t ManuId() const { return fManuId; }
Int_t PCBId() const { return fPCBId; }
virtual void Print(Option_t* opt="") const;
TString Type() const;
private:
Bool_t CheckTemplate(const char* name, const char* templateName, Int_t& value);
TString StripCathode(const char* name) const;
private:
Int_t fCathodeId;
Int_t fStationId;
Int_t fChamberId;
Int_t fDetElemId;
Int_t fBusPatchId;
Int_t fManuId;
Int_t fPCBId;
ClassDef(AliMpUID,1)
};
#endif