]> git.uio.no Git - u/mrichter/AliRoot.git/blob - ITS/AliITSNeuralPoint.h
Initialize arrays in constructor (Ivana)
[u/mrichter/AliRoot.git] / ITS / AliITSNeuralPoint.h
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
20         virtual ~AliITSNeuralPoint() { }
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         
54         Bool_t    HasID (Int_t ID) const;
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
61         Double_t  fX;   // position 
62         Double_t  fY;   // position
63         Double_t  fZ;   // position
64         
65         Double_t  fConfX; // conformal mapping X
66         Double_t  fConfY; // conformal mapping Y
67                 
68         Double_t  fEX;  // position error
69         Double_t  fEY;  // position error
70         Double_t  fEZ;  // position error
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