]>
Commit | Line | Data |
---|---|---|
b0f5e3fc | 1 | #ifndef ALIITSRECPOINT_H |
2 | #define ALIITSRECPOINT_H | |
ee84ac37 | 3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * |
4 | * See cxx source for full Copyright notice */ | |
5 | ||
6 | /* | |
7 | $Id$ | |
8 | */ | |
b0f5e3fc | 9 | |
00a7cc50 | 10 | /////////////////////////////////////////////////////////////////////////////// |
11 | // Reconstructed space point class for set:ITS | |
12 | // Reconstructed points are expressed simultaneously in two different | |
13 | // reference frames, both differing from the global system. | |
14 | // The first is referred to the sensor (see AliITSsegmentation for the | |
15 | // definition) and each point is represented by two coordinates: fXloc and | |
16 | // fZloc. This system in the code is referred to as "local" | |
17 | // The second is used for tracking (V2, SA and MI versions) and the X axis | |
18 | // represents the radial coordinate (this system is, in the bending plane, | |
19 | // a rotated system w.r.t. the global reference system). | |
20 | // Each reaconstructed point is represented by two coordinates: fY and fZ, | |
21 | // inherited from AliCluster. This system in the code is referred to as | |
22 | // "trackingV2". | |
23 | /////////////////////////////////////////////////////////////////////////////// | |
b0f5e3fc | 24 | |
00a7cc50 | 25 | #include <AliCluster.h> |
4ae5bbc4 | 26 | #include <Riostream.h> |
00a7cc50 | 27 | #include <AliLog.h> |
28 | #include <AliITSgeom.h> | |
b0f5e3fc | 29 | |
30 | ||
00a7cc50 | 31 | class AliITSRecPoint : public AliCluster { |
b0f5e3fc | 32 | public: |
00a7cc50 | 33 | AliITSRecPoint(); |
34 | AliITSRecPoint(AliITSgeom* geom); | |
35 | AliITSRecPoint(Int_t *lab,Float_t *hit, Int_t *info); | |
36 | AliITSRecPoint(Int_t module,AliITSgeom* geom,Int_t *lab, | |
37 | Float_t *hit, Int_t *info); | |
38 | AliITSRecPoint(const AliITSRecPoint& pt); | |
39 | AliITSRecPoint& operator=(const AliITSRecPoint &source); | |
40 | ||
41 | virtual ~AliITSRecPoint() {}; // distructor | |
42 | Bool_t IsSortable() const {return kTRUE;} // allows for sorting | |
43 | Int_t *GetTracks(){return fTracks;}// Returns pointer to track array | |
44 | Int_t GetNTracks() const {return 3;} // returns track array size | |
45 | Float_t GetDetLocalX() const {return fXloc;} // gets fX | |
46 | Float_t GetDetLocalZ() const {return fZloc;} // gets fZ | |
47 | Float_t GetdEdX() const {return fdEdX;} // gets fdEdX | |
48 | Float_t GetSigmaDetLocX2() const {return fSigmaY2;} // gets fSigmaX2 | |
49 | void SetdEdX(Float_t dedx){fdEdX=dedx;} // sets fdEdX | |
50 | void SetSigmaDetLocX2(Float_t sx2){fSigmaY2=sx2;} // sets fSigmaX2 | |
51 | Int_t Compare(const TObject *) const {return 0;} //to be defined | |
52 | void Print(ostream *os); | |
53 | // Reads in the content of this class in the format of Print | |
54 | void Read(istream *is); | |
55 | virtual void Print(Option_t *option="") const {TObject::Print(option);} | |
56 | virtual Int_t Read(const char *name) {return TObject::Read(name);} | |
57 | ||
58 | void SetITSgeom(AliITSgeom* geom) {fGeom=geom;} | |
59 | virtual void SetY(Float_t y ){fY=y; | |
60 | AliError("For consistency, Use method SetYZ. Data members are only partially set\n");} | |
61 | virtual void SetZ(Float_t z ){fZ=z; | |
62 | AliError("For consistency, Use method SetYZ. Data members are only partially set\n");} | |
63 | void SetYZ(Int_t module, Float_t y, Float_t z){ | |
64 | fY=y;fZ=z; | |
65 | if(fGeom)fGeom->TrackingV2ToDetL(module,y,z,fXloc,fZloc); | |
66 | else AliError("Geometry not set. \n"); | |
67 | } | |
68 | void SetXZ(Int_t module, Float_t x, Float_t z){ | |
69 | fXloc=x;fZloc=z; | |
70 | if(fGeom)fGeom->DetLToTrackingV2(module,x,z,fY,fZ); | |
71 | else AliError("Geometry not set. Nothing done!!!!!\n"); | |
72 | } | |
73 | void Use(Int_t = 0) {fQ=-fQ;} | |
74 | void UnUse() {fQ=TMath::Abs(fQ);} | |
75 | void SetQ(Float_t q) {fQ=q;} | |
76 | void SetDetectorIndex(Int_t i) { fIndex=i; } | |
77 | void SetLayer(Int_t layer) {fLayer=layer;} | |
78 | void SetNz(Int_t nz) {fNz =nz;} | |
79 | void SetNy(Int_t ny){fNy=ny;} | |
80 | void SetChargeRatio(Float_t ratio) { fChargeRatio = ratio;} | |
81 | void SetPhiR(Float_t y) { fChargeRatio=y; } | |
82 | void SetType(Int_t type){ fType=type;} | |
83 | void SetDeltaProbability(Float_t prob){fDeltaProb = prob;} | |
84 | ||
85 | Int_t IsUsed() const {return (fQ<0)?1:0;} | |
86 | Float_t GetQ() const {return TMath::Abs(fQ);} | |
87 | Int_t GetDetectorIndex() const { return 0x3FF&fIndex; } | |
88 | Int_t GetLayer() const {return fLayer;} | |
89 | Int_t GetNz() const {return fNz;} | |
90 | Int_t GetNy() const {return fNy;} | |
91 | Float_t GetChargeRatio() const {return fChargeRatio;} | |
92 | Float_t GetPhiR() const {return fChargeRatio;} | |
93 | Int_t GetPindex() const { return 0xFFF00000&fIndex; } //SSD clusters only | |
94 | Int_t GetNindex() const { return 0xFFC00&fIndex; } //SSD clusters only | |
95 | Int_t GetType() const {return fType;} // type of the cluster | |
96 | Float_t GetDeltaProbability() const{return fDeltaProb;} //probability to belong to the delta ray | |
97 | ||
d2f55a22 | 98 | |
b0f5e3fc | 99 | |
00a7cc50 | 100 | protected: |
101 | ||
102 | Float_t fXloc ; //X of cluster (local coordinates) | |
103 | Float_t fZloc ; //Z of cluster (local coordinates) | |
104 | Float_t fdEdX; //dE/dX inside this cluster | |
105 | ||
106 | Int_t fIndex; // detector index | |
107 | Float_t fQ ; // Q of cluster (in ADC counts) | |
108 | Char_t fLayer; // layer number | |
109 | Short_t fNz; //number of digits in Z direction | |
110 | Short_t fNy; //number of digits in y direction | |
111 | Float_t fChargeRatio; //charge ratio | |
112 | Int_t fType; //quality factor of the cluster | |
113 | Float_t fDeltaProb; // probability to be deleta electron | |
114 | ||
115 | AliITSgeom* fGeom; //!pointer to ITS geometry | |
116 | ||
117 | ClassDef(AliITSRecPoint,2) // AliITSRecPoint class | |
b0f5e3fc | 118 | }; |
ee84ac37 | 119 | // Input and output function for standard C++ input/output. |
120 | ostream& operator<<(ostream &os,AliITSRecPoint &source); | |
121 | istream& operator>>(istream &is,AliITSRecPoint &source); | |
b0f5e3fc | 122 | #endif |