Line data Source code
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 0 : 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 0 : 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 0 : Int_t StationId() const { return fStationId; }
54 : /// Return chamber Id
55 0 : Int_t ChamberId() const { return fChamberId; }
56 : /// Return detection element Id
57 0 : Int_t DetElemId() const { return fDetElemId; }
58 : /// Return bus patch Id
59 0 : Int_t BusPatchId() const { return fBusPatchId; }
60 : /// Return manu Id
61 0 : Int_t ManuId() const { return fManuId; }
62 : /// Return PCB Id
63 0 : 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 18 : ClassDef(AliMpUID,1) // UID of a tracker channel
85 : };
86 :
87 : #endif
|