]>
Commit | Line | Data |
---|---|---|
a11ef2e4 | 1 | #ifndef ALIITSURECOLAYER |
2 | #define ALIITSURECOLAYER | |
3 | ||
4 | #include <TNamed.h> | |
5 | #include <TObjArray.h> | |
6 | class AliITSUGeomTGeo; | |
7 | class AliITSsegmentation; | |
8 | class AliITSURecoSens; | |
9 | ||
10 | /////////////////////////////////////////////////////////////////////// | |
11 | // // | |
12 | // Class AliITSURecoLayer // | |
13 | // Interface between the framework and reconstruction for ITS layer // | |
14 | // // | |
15 | /////////////////////////////////////////////////////////////////////// | |
16 | ||
17 | ||
18 | class AliITSURecoLayer : public TNamed | |
19 | { | |
20 | public: | |
21 | // | |
22 | enum {kPassive=BIT(14)}; | |
23 | AliITSURecoLayer(const char* name); | |
24 | AliITSURecoLayer(const char* name, Int_t activeID,Int_t nsens,AliITSUGeomTGeo* gm,const AliITSsegmentation* segm); | |
25 | virtual ~AliITSURecoLayer(); | |
26 | // | |
27 | Bool_t Build(); | |
28 | // | |
29 | Int_t GetID() const {return (int)GetUniqueID();} | |
30 | Int_t GetActiveID() const {return fActiveID;} | |
31 | Int_t GetNSensors() const {return fNSensors;} | |
32 | Double_t GetRMin() const {return fRMin;} | |
33 | Double_t GetRMax() const {return fRMax;} | |
34 | Double_t GetR() const {return fR;} | |
35 | Bool_t IsActive() const {return !TestBit(kPassive);} | |
36 | Bool_t IsPassive() const {return TestBit(kPassive);} | |
37 | // | |
38 | void SetID(Int_t i) {SetUniqueID(i);} | |
39 | void SetActiveID(Int_t i) {fActiveID = i;} | |
40 | void SetRMin(Double_t r) {fRMin = r;} | |
41 | void SetRMax(Double_t r) {fRMax = r;} | |
42 | void SetR(Double_t r) {fR = r;} | |
43 | void SetPassive(Bool_t v=kTRUE) {SetBit(kPassive,v);} | |
44 | ||
45 | // | |
46 | AliITSURecoSens* GetSensor(Int_t i) const {return (AliITSURecoSens*)fSensors.UncheckedAt(i);} | |
47 | AliITSURecoSens* GetSensor(Int_t ld,Int_t is) const {return GetSensor(ld*fNSensInLadder+is);} | |
48 | void AddSensor(const AliITSURecoSens* mod); | |
49 | // | |
50 | Int_t FindSensors(const double* impPar, AliITSURecoSens **sensors); | |
51 | // | |
52 | virtual void Print(Option_t* option = "") const; | |
53 | ||
54 | protected: | |
55 | Int_t fActiveID; // ID within active layers | |
56 | Int_t fNSensors; // N of modules | |
57 | Int_t fNSensInLadder; // N sensors in the ladder | |
58 | Int_t fNLadders; // N ladder | |
59 | Double_t fR; // mean R | |
60 | Double_t fRMax; // max R | |
61 | Double_t fRMin; // min R | |
62 | Double_t fZMax; // max Z | |
63 | Double_t fZMin; // min Z | |
64 | Double_t* fPhiLadMax; // max lab phi of the ladder | |
65 | Double_t* fPhiLadMin; // min lab phi of the ladder | |
66 | Double_t fPhiOffs; // offset in phi for 1st ladder | |
67 | Double_t fSensDZInv; // inverse mean sensor Z span | |
68 | Double_t fDPhiLadInv;// inverse mean ladder dphi | |
69 | TObjArray fSensors; // sensors | |
70 | AliITSUGeomTGeo* fITSGeom; // geometry interface | |
71 | const AliITSsegmentation* fkSegm; // layer segmentation | |
72 | // | |
73 | private: | |
74 | AliITSURecoLayer(const AliITSURecoLayer &source); | |
75 | AliITSURecoLayer& operator=(const AliITSURecoLayer &source); | |
76 | // | |
77 | ||
78 | ClassDef(AliITSURecoLayer,1); // helper for layer data used in reco | |
79 | }; | |
80 | ||
81 | #endif |