]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ITS/UPGRADE/AliITSURecoLayer.h
Added Lorentz angle correction
[u/mrichter/AliRoot.git] / ITS / UPGRADE / AliITSURecoLayer.h
CommitLineData
a11ef2e4 1#ifndef ALIITSURECOLAYER
2#define ALIITSURECOLAYER
3
4#include <TNamed.h>
5#include <TObjArray.h>
6class AliITSUGeomTGeo;
7class AliITSsegmentation;
8class AliITSURecoSens;
9
10///////////////////////////////////////////////////////////////////////
11// //
12// Class AliITSURecoLayer //
13// Interface between the framework and reconstruction for ITS layer //
14// //
15///////////////////////////////////////////////////////////////////////
16
17
18class AliITSURecoLayer : public TNamed
19{
20 public:
21 //
22 enum {kPassive=BIT(14)};
23 AliITSURecoLayer(const char* name);
546d00d8 24 AliITSURecoLayer(const char* name, Int_t activeID,Int_t nsens,AliITSUGeomTGeo* gm);
a11ef2e4 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
a11ef2e4 71 //
72 private:
73 AliITSURecoLayer(const AliITSURecoLayer &source);
74 AliITSURecoLayer& operator=(const AliITSURecoLayer &source);
75 //
76
77 ClassDef(AliITSURecoLayer,1); // helper for layer data used in reco
78};
79
80#endif