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> |
b0f5e3fc |
28 | |
fe7d86eb |
29 | using std::ostream; |
30 | using std::istream; |
31 | |
00a7cc50 |
32 | class AliITSRecPoint : public AliCluster { |
b0f5e3fc |
33 | public: |
00a7cc50 |
34 | AliITSRecPoint(); |
75fb37cc |
35 | AliITSRecPoint(Int_t *lab,Float_t *hit, Int_t *info, Bool_t local = kFALSE); |
00a7cc50 |
36 | AliITSRecPoint(const AliITSRecPoint& pt); |
37 | AliITSRecPoint& operator=(const AliITSRecPoint &source); |
38 | |
39 | virtual ~AliITSRecPoint() {}; // distructor |
75fb37cc |
40 | Bool_t IsSortable() const {return kTRUE;} // allows for sorting |
00a7cc50 |
41 | Float_t GetDetLocalX() const {return fXloc;} // gets fX |
42 | Float_t GetDetLocalZ() const {return fZloc;} // gets fZ |
43 | Float_t GetdEdX() const {return fdEdX;} // gets fdEdX |
75fb37cc |
44 | Float_t GetSigmaDetLocX2() const {return GetSigmaY2();} // gets fSigmaX2 |
45 | void SetdEdX(Float_t dedx){fdEdX=dedx;} // sets fdEdX |
00a7cc50 |
46 | Int_t Compare(const TObject *) const {return 0;} //to be defined |
47 | void Print(ostream *os); |
48 | // Reads in the content of this class in the format of Print |
49 | void Read(istream *is); |
50 | virtual void Print(Option_t *option="") const {TObject::Print(option);} |
51 | virtual Int_t Read(const char *name) {return TObject::Read(name);} |
52 | |
00a7cc50 |
53 | void Use(Int_t = 0) {fQ=-fQ;} |
54 | void UnUse() {fQ=TMath::Abs(fQ);} |
55 | void SetQ(Float_t q) {fQ=q;} |
56 | void SetDetectorIndex(Int_t i) { fIndex=i; } |
57 | void SetLayer(Int_t layer) {fLayer=layer;} |
58 | void SetNz(Int_t nz) {fNz =nz;} |
59 | void SetNy(Int_t ny){fNy=ny;} |
60 | void SetChargeRatio(Float_t ratio) { fChargeRatio = ratio;} |
61 | void SetPhiR(Float_t y) { fChargeRatio=y; } |
62 | void SetType(Int_t type){ fType=type;} |
63 | void SetDeltaProbability(Float_t prob){fDeltaProb = prob;} |
b2558977 |
64 | void SetDriftTime(Float_t tim) {fDriftTime=tim;} |
8f6140ad |
65 | void SetDriftSide(Int_t sid) {fDriftSide=sid;} |
b2558977 |
66 | |
00a7cc50 |
67 | Int_t IsUsed() const {return (fQ<0)?1:0;} |
68 | Float_t GetQ() const {return TMath::Abs(fQ);} |
69 | Int_t GetDetectorIndex() const { return 0x3FF&fIndex; } |
70 | Int_t GetLayer() const {return fLayer;} |
71 | Int_t GetNz() const {return fNz;} |
72 | Int_t GetNy() const {return fNy;} |
73 | Float_t GetChargeRatio() const {return fChargeRatio;} |
74 | Float_t GetPhiR() const {return fChargeRatio;} |
75 | Int_t GetPindex() const { return 0xFFF00000&fIndex; } //SSD clusters only |
76 | Int_t GetNindex() const { return 0xFFC00&fIndex; } //SSD clusters only |
98a86dff |
77 | Int_t GetType() const {return fType;} // type of the cluster (for SPD the number of pixels in the cluster) |
00a7cc50 |
78 | Float_t GetDeltaProbability() const{return fDeltaProb;} //probability to belong to the delta ray |
b2558977 |
79 | Float_t GetDriftTime() const{return fDriftTime;} |
8f6140ad |
80 | Int_t GetDriftSide() const {return fDriftSide;} |
98a86dff |
81 | Int_t GetNpixels() const; // for SPD returns fType, i.e. the number of pixels in the cluster (-1 for SDD and SSD) |
8bab7823 |
82 | Int_t GetSPDclusterType() const; // for SPD returns cluster type according to conventional numbering (-1 for SDD and SSD) |
e3901fd8 |
83 | Int_t GetSDDclusterType() const; |
84 | Int_t GetSSDclusterType() const; |
d59a647b |
85 | static void DecodeSDDclusterType(Int_t cluType, Int_t &cluSizAn, Int_t& cluSizTb, Int_t &drSide); |
b2558977 |
86 | |
e3901fd8 |
87 | Int_t GetClusterType() const { |
88 | if(fLayer<=1) return GetSPDclusterType(); |
89 | if(fLayer==2 || fLayer==3) return GetSDDclusterType(); |
46004624 |
90 | return GetSSDclusterType(); |
e3901fd8 |
91 | } |
00a7cc50 |
92 | protected: |
93 | |
94 | Float_t fXloc ; //X of cluster (local coordinates) |
95 | Float_t fZloc ; //Z of cluster (local coordinates) |
96 | Float_t fdEdX; //dE/dX inside this cluster |
97 | |
98 | Int_t fIndex; // detector index |
99 | Float_t fQ ; // Q of cluster (in ADC counts) |
100 | Char_t fLayer; // layer number |
101 | Short_t fNz; //number of digits in Z direction |
102 | Short_t fNy; //number of digits in y direction |
103 | Float_t fChargeRatio; //charge ratio |
104 | Int_t fType; //quality factor of the cluster |
b2558977 |
105 | Float_t fDeltaProb; // probability to be delta electron |
106 | Float_t fDriftTime; // drift time in SDD |
8f6140ad |
107 | Char_t fDriftSide; // drift region in SDD (0=left=positive xlocal, 1=right) |
00a7cc50 |
108 | |
8f6140ad |
109 | ClassDef(AliITSRecPoint,7) // AliITSRecPoint class |
b0f5e3fc |
110 | }; |
ee84ac37 |
111 | // Input and output function for standard C++ input/output. |
112 | ostream& operator<<(ostream &os,AliITSRecPoint &source); |
113 | istream& operator>>(istream &is,AliITSRecPoint &source); |
b0f5e3fc |
114 | #endif |