]>
Commit | Line | Data |
---|---|---|
b9d722bc | 1 | #ifndef ALIITSNEURALPOINT_H |
2 | #define ALIITSNEURALPOINT_H | |
3 | ||
4 | #include <TMath.h> | |
5 | ||
6 | class AliITSgeom; | |
7 | class AliITSgeomMatrix; | |
8 | class AliITSRecPoint; | |
9 | class AliITSclusterV2; | |
10 | ||
11 | class AliITSNeuralPoint : public TObject { | |
12 | ||
13 | public: | |
14 | ||
15 | AliITSNeuralPoint(); | |
16 | AliITSNeuralPoint(AliITSNeuralPoint *p); | |
17 | AliITSNeuralPoint(AliITSRecPoint *rp, AliITSgeomMatrix *gm); | |
18 | AliITSNeuralPoint(AliITSclusterV2 *rp, AliITSgeom *geom, Short_t module, Short_t index); | |
19 | ||
853a0f19 | 20 | virtual ~AliITSNeuralPoint() { } |
b9d722bc | 21 | |
22 | Double_t& X() {return fX;} // reference to X coord | |
23 | Double_t& Y() {return fY;} // reference to Y coord | |
24 | Double_t& Z() {return fZ;} // reference to Z coord | |
25 | Double_t& ErrX() {return fEX;} // reference to X error | |
26 | Double_t& ErrY() {return fEY;} // reference to Y error | |
27 | Double_t& ErrZ() {return fEZ;} // reference to Z error | |
28 | ||
29 | Double_t GetR2() const {return TMath::Sqrt(GetR2sq());} // xy radius | |
30 | Double_t GetR3() const {return TMath::Sqrt(GetR3sq());} // 3D radius | |
31 | Double_t GetR2sq() const {return fX*fX+fY*fY;} // xy rad. square | |
32 | Double_t GetR3sq() const {return GetR2sq()+fZ*fZ;} // 3D rad. square | |
33 | Double_t GetPhi() const; | |
34 | Double_t GetTheta() const {return TMath::ATan2(GetR2(),fZ);} // polar angle | |
35 | Double_t GetConfX() const {return fConfX;} | |
36 | Double_t GetConfY() const {return fConfY;} | |
37 | Double_t GetError(Option_t *opt); | |
38 | void ConfMap(Double_t vx, Double_t vy); | |
39 | ||
40 | Double_t GetCharge() const {return fCharge;} // ADC signal | |
41 | Short_t GetIndex() const {return fIndex;} // Reference in TreeR | |
42 | Long_t GetLabel(Int_t i) const {return fLabel[Chk(i)];} // GEANT owner particle | |
43 | Short_t GetLayer() const {return fLayer;} // ITS layer | |
44 | Short_t GetModule() const {return fModule;} // ITS module | |
45 | Short_t GetUser() const {return fUser;} // Found track owner | |
46 | ||
47 | void SetCharge(Double_t val) {fCharge = val;} | |
48 | void SetIndex(Short_t val) {fIndex = val;} | |
49 | void SetLabel(Int_t i, Long_t val) {fLabel[Chk(i)] = val;} | |
50 | void SetLayer(Short_t val) {fLayer = val;} | |
51 | void SetModule(Short_t val) {fModule = val;} | |
52 | void SetUser(Short_t val) {fUser = val;} | |
53 | ||
853a0f19 | 54 | Bool_t HasID (Int_t ID) const; |
b9d722bc | 55 | Int_t* SharedID(AliITSNeuralPoint *p); |
56 | ||
57 | protected: | |
58 | ||
59 | Int_t Chk(Int_t i) const {if(i<0)i=0;if(i>=3)i=3;return i;} | |
60 | ||
853a0f19 | 61 | Double_t fX; // position |
b9d722bc | 62 | Double_t fY; // position |
853a0f19 | 63 | Double_t fZ; // position |
b9d722bc | 64 | |
65 | Double_t fConfX; // conformal mapping X | |
66 | Double_t fConfY; // conformal mapping Y | |
67 | ||
853a0f19 | 68 | Double_t fEX; // position error |
b9d722bc | 69 | Double_t fEY; // position error |
853a0f19 | 70 | Double_t fEZ; // position error |
b9d722bc | 71 | |
72 | Double_t fCharge; // total charge signal in cluster | |
73 | ||
74 | Short_t fModule; // ITS module containing the point (0 - 2197) | |
75 | Short_t fIndex; // index as TClonesArray entry in TreeR (usually not > 600) | |
76 | Short_t fLayer; // ITS layer containing the point | |
77 | Short_t fUser; // owner recognized track or flag to evidence using | |
78 | Short_t fZSort; // order as a function of local Z | |
79 | ||
80 | Int_t fLabel[3]; // GEANT labels of the owner tracks | |
81 | ||
82 | ClassDef(AliITSNeuralPoint, 1) // AliITSNeuralPoints class | |
83 | }; | |
84 | ||
85 | #endif |