Correct use of ROOT_INCLUDE_DIR
[u/mrichter/AliRoot.git] / MUON / MUONmapping / AliMpUID.h
CommitLineData
0b936dc0 1#ifndef ALIMPUID_H
2#define ALIMPUID_H
3
4/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5* See cxx source for full Copyright notice */
6
7// $Id$
8
9/// \ingroup management
10/// \class AliMpUID
11/// \brief Global (string-eable) ID of a tracker channel
12///
13// Author Laurent Aphecetche, Subatech
14
15#ifndef ROOT_TObject
16# include "TObject.h"
17#endif
18#ifndef ROOT_TString
19# include "TString.h"
20#endif
21#ifndef ALI_MP_CATHOD_TYPE_H
22# include "AliMpCathodType.h"
23#endif
24
25class AliMpUID : public TObject
26{
27public:
28 AliMpUID();
29 AliMpUID(AliMp::CathodType cathodeType, Int_t station, Int_t chamber=-1, Int_t de=-1,
30 Int_t bp=-1, Int_t manu=-1, Int_t pcb=-1);
31 AliMpUID(AliMp::CathodType cathodeType, const AliMpUID& b);
32 AliMpUID(AliMp::CathodType cathodeType, const char* pathname);
33 AliMpUID(const char* pathname);
34
cddcc1f3 35 /// dtor
0b936dc0 36 virtual ~AliMpUID() {}
37
38 TString Name() const;
39 TString PathName() const;
40 TString BaseName() const;
41 TString DirName() const;
42
43 Bool_t IsStation() const;
44 Bool_t IsChamber() const;
45 Bool_t IsDetectionElement() const;
46 Bool_t IsBusPatch() const;
47 Bool_t IsManu() const;
48 Bool_t IsPCB() const;
49 Bool_t IsValid() const;
50
51 AliMp::CathodType CathodeId() const;
cddcc1f3 52 /// Return station Id
0b936dc0 53 Int_t StationId() const { return fStationId; }
cddcc1f3 54 /// Return chamber Id
0b936dc0 55 Int_t ChamberId() const { return fChamberId; }
cddcc1f3 56 /// Return detection element Id
0b936dc0 57 Int_t DetElemId() const { return fDetElemId; }
cddcc1f3 58 /// Return bus patch Id
0b936dc0 59 Int_t BusPatchId() const { return fBusPatchId; }
cddcc1f3 60 /// Return manu Id
0b936dc0 61 Int_t ManuId() const { return fManuId; }
cddcc1f3 62 /// Return PCB Id
0b936dc0 63 Int_t PCBId() const { return fPCBId; }
64
65 virtual void Print(Option_t* opt="") const;
66
67 /// Return our type (e.g. PCB, Chamber, DE, MANU, etc...)
68 TString Type() const;
69
70private:
71
72 Bool_t CheckTemplate(const char* name, const char* templateName, Int_t& value);
73 TString StripCathode(const char* name) const;
74
75private:
cddcc1f3 76 Int_t fCathodeId; ///< Cathode number
77 Int_t fStationId; ///< Station id
78 Int_t fChamberId; ///< Chamber id
79 Int_t fDetElemId; ///< Detection element id
80 Int_t fBusPatchId;///< Bus patch id
81 Int_t fManuId; ///< Manu id
82 Int_t fPCBId; ///< PCB id
0b936dc0 83
84 ClassDef(AliMpUID,1) // UID of a tracker channel
85};
86
87#endif