Correct use of ROOT_INCLUDE_DIR
[u/mrichter/AliRoot.git] / MUON / MUONmapping / AliMpUID.h
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
25 class AliMpUID : public TObject
26 {
27 public:
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   
35   /// dtor
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;
52   /// Return station Id
53   Int_t StationId() const { return fStationId; }
54   /// Return chamber Id
55   Int_t ChamberId() const { return fChamberId; }
56   /// Return detection element Id
57   Int_t DetElemId() const { return fDetElemId; }
58   /// Return bus patch Id
59   Int_t BusPatchId() const { return fBusPatchId; }
60   /// Return manu Id
61   Int_t ManuId() const { return fManuId; }
62   /// Return PCB Id
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
70 private:
71   
72   Bool_t CheckTemplate(const char* name, const char* templateName, Int_t& value);
73   TString StripCathode(const char* name) const;
74   
75 private:
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
83   
84   ClassDef(AliMpUID,1) // UID of a tracker channel 
85 };
86
87 #endif