]>
Commit | Line | Data |
---|---|---|
a11ef2e4 | 1 | #ifndef ALIITSURECOLAYER |
2 | #define ALIITSURECOLAYER | |
3 | ||
4 | #include <TNamed.h> | |
5 | #include <TObjArray.h> | |
c61e50c3 | 6 | #include <TClonesArray.h> |
32d38de2 | 7 | #include "AliITSURecoSens.h" |
a11ef2e4 | 8 | class AliITSUGeomTGeo; |
9 | class AliITSsegmentation; | |
c61e50c3 | 10 | class AliCluster; |
32d38de2 | 11 | |
a11ef2e4 | 12 | |
13 | /////////////////////////////////////////////////////////////////////// | |
14 | // // | |
15 | // Class AliITSURecoLayer // | |
16 | // Interface between the framework and reconstruction for ITS layer // | |
17 | // // | |
18 | /////////////////////////////////////////////////////////////////////// | |
19 | ||
20 | ||
21 | class AliITSURecoLayer : public TNamed | |
22 | { | |
23 | public: | |
24 | // | |
25 | enum {kPassive=BIT(14)}; | |
26 | AliITSURecoLayer(const char* name); | |
32d38de2 | 27 | AliITSURecoLayer(const char* name, Int_t activeID,AliITSUGeomTGeo* gm); |
a11ef2e4 | 28 | virtual ~AliITSURecoLayer(); |
29 | // | |
32d38de2 | 30 | void ProcessClusters(Int_t mode=0); |
a11ef2e4 | 31 | // |
32 | Int_t GetID() const {return (int)GetUniqueID();} | |
33 | Int_t GetActiveID() const {return fActiveID;} | |
34 | Int_t GetNSensors() const {return fNSensors;} | |
35 | Double_t GetRMin() const {return fRMin;} | |
36 | Double_t GetRMax() const {return fRMax;} | |
32d38de2 | 37 | Double_t GetDR() const {return fRMax-fRMin;} |
a11ef2e4 | 38 | Double_t GetR() const {return fR;} |
173b3073 | 39 | Double_t GetZMin() const {return fZMin;} |
40 | Double_t GetZMax() const {return fZMax;} | |
32d38de2 | 41 | Double_t GetMaxStep() const {return fMaxStep;} |
a11ef2e4 | 42 | Bool_t IsActive() const {return !TestBit(kPassive);} |
43 | Bool_t IsPassive() const {return TestBit(kPassive);} | |
44 | // | |
45 | void SetID(Int_t i) {SetUniqueID(i);} | |
46 | void SetActiveID(Int_t i) {fActiveID = i;} | |
47 | void SetRMin(Double_t r) {fRMin = r;} | |
48 | void SetRMax(Double_t r) {fRMax = r;} | |
49 | void SetR(Double_t r) {fR = r;} | |
173b3073 | 50 | void SetZMin(Double_t z) {fZMin = z;} |
51 | void SetZMax(Double_t z) {fZMax = z;} | |
a11ef2e4 | 52 | void SetPassive(Bool_t v=kTRUE) {SetBit(kPassive,v);} |
32d38de2 | 53 | void SetMaxStep(Double_t st) {fMaxStep = st>0 ? st : 0.1;} |
a11ef2e4 | 54 | // |
32d38de2 | 55 | AliITSURecoSens* GetSensor(Int_t i) const {return (AliITSURecoSens*)fSensors[i];} |
a11ef2e4 | 56 | AliITSURecoSens* GetSensor(Int_t ld,Int_t is) const {return GetSensor(ld*fNSensInLadder+is);} |
32d38de2 | 57 | TClonesArray* GetClusters() const {return (TClonesArray*)fClusters;} |
c61e50c3 | 58 | AliCluster* GetCluster(Int_t icl) const {return (AliCluster*)fClusters->UncheckedAt(icl);} |
32d38de2 | 59 | void SetClusters(TClonesArray* cl) {fClusters = cl;} |
a11ef2e4 | 60 | // |
32d38de2 | 61 | Int_t FindSensors(const double* impPar, AliITSURecoSens *sensors[AliITSURecoSens::kNNeighbors]); |
a11ef2e4 | 62 | // |
63 | virtual void Print(Option_t* option = "") const; | |
dde91d5d | 64 | virtual Bool_t IsSortable() const {return kTRUE;} |
65 | virtual Bool_t IsEqual(const TObject* obj) const; | |
66 | virtual Int_t Compare(const TObject* obj) const; | |
32d38de2 | 67 | // |
68 | protected: | |
69 | void Build(); | |
70 | // | |
a11ef2e4 | 71 | protected: |
72 | Int_t fActiveID; // ID within active layers | |
73 | Int_t fNSensors; // N of modules | |
74 | Int_t fNSensInLadder; // N sensors in the ladder | |
75 | Int_t fNLadders; // N ladder | |
76 | Double_t fR; // mean R | |
77 | Double_t fRMax; // max R | |
78 | Double_t fRMin; // min R | |
79 | Double_t fZMax; // max Z | |
80 | Double_t fZMin; // min Z | |
81 | Double_t* fPhiLadMax; // max lab phi of the ladder | |
82 | Double_t* fPhiLadMin; // min lab phi of the ladder | |
83 | Double_t fPhiOffs; // offset in phi for 1st ladder | |
84 | Double_t fSensDZInv; // inverse mean sensor Z span | |
85 | Double_t fDPhiLadInv;// inverse mean ladder dphi | |
32d38de2 | 86 | Double_t fMaxStep; // max step in tracking X allowed within layer |
87 | AliITSURecoSens** fSensors; // sensors | |
a11ef2e4 | 88 | AliITSUGeomTGeo* fITSGeom; // geometry interface |
32d38de2 | 89 | TClonesArray* fClusters; // clusters of the layer |
a11ef2e4 | 90 | // |
91 | private: | |
92 | AliITSURecoLayer(const AliITSURecoLayer &source); | |
93 | AliITSURecoLayer& operator=(const AliITSURecoLayer &source); | |
94 | // | |
95 | ||
96 | ClassDef(AliITSURecoLayer,1); // helper for layer data used in reco | |
97 | }; | |
98 | ||
99 | #endif |