]>
Commit | Line | Data |
---|---|---|
1ee39b3a | 1 | #ifndef ALITRDCLUSTERINFO_H |
2 | #define ALITRDCLUSTERINFO_H | |
3 | ||
4 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
5 | * See cxx source for full Copyright notice */ | |
61f6b45e | 6 | //////////////////////////////////////////////////////////////////////////// |
7 | // // | |
8 | // TRD cluster summary info for performance // | |
9 | // // | |
10 | // Authors: // | |
11 | // Alexandru Bercuci <A.Bercuci@gsi.de> // | |
12 | // // | |
13 | //////////////////////////////////////////////////////////////////////////// | |
1ee39b3a | 14 | |
15 | ||
16 | #ifndef Root_TObject | |
17 | #include "TObject.h" | |
18 | #endif | |
19 | ||
20 | class AliTRDcluster; | |
21 | class AliTRDclusterInfo : public TObject | |
22 | { | |
23 | public: | |
24 | AliTRDclusterInfo(); | |
25 | ||
26 | Float_t GetAnisochronity() const {return fD;} | |
27 | inline void GetCluster(Int_t &det, Float_t &x, Float_t &y, Float_t &z, Float_t &q, Int_t &t, Float_t *cov=0x0) const; | |
61f6b45e | 28 | void GetMC(Int_t &pdg, Int_t &label) const {pdg = fPdg; label= fLbl; } |
1ee39b3a | 29 | void GetGlobalPosition(Float_t &yt, Float_t &zt, Float_t &dydx, Float_t &dzdx, Float_t *cov=0x0) const { |
61f6b45e | 30 | dydx = fdydx; dzdx = fdzdx; yt = fYt; zt = fZt; |
1ee39b3a | 31 | if(cov) memcpy(cov, fCov, 3*sizeof(Float_t));} |
5468a262 | 32 | Int_t GetNpads() const {return fNpad;} |
801d4d50 | 33 | void GetCenterPad(Int_t &c, Int_t &r) const {c=fCol; r=fRow;} |
1ee39b3a | 34 | Float_t GetResolution() const {return fdy;} |
35 | Float_t GetDriftLength() const {return fXd;} | |
3ceb45ae | 36 | Short_t* GetSignals() {return fSignal;} |
1ee39b3a | 37 | Float_t GetYDisplacement() const {return fYd;} |
38 | Float_t GetTilt() const { return fTilt;} | |
39 | ||
40 | void Print(Option_t *opt="") const; | |
41 | ||
42 | void SetAnisochronity(Float_t d) {fD = d;} | |
3ceb45ae | 43 | void SetCluster(AliTRDcluster *c); |
1ee39b3a | 44 | void SetMC(Int_t pdg, Int_t label){ |
45 | fPdg = pdg; | |
46 | fLbl = label;} | |
47 | void SetGlobalPosition(Float_t yt, Float_t zt, Float_t dydx, Float_t dzdx, Float_t *cov=0x0) { | |
61f6b45e | 48 | fdydx = dydx; fdzdx = dzdx; fYt = yt; fZt = zt; |
1ee39b3a | 49 | if(cov) memcpy(fCov, cov, 3*sizeof(Float_t));} |
50 | void SetResolution(Float_t dy) {fdy = dy;} | |
51 | void SetDriftLength(Float_t d) {fXd = d;} | |
52 | void SetTilt(Float_t t) {fTilt = t;} | |
53 | ||
54 | private: | |
55 | UShort_t fDet; // detector | |
801d4d50 | 56 | UChar_t fCol; // central pad column |
57 | UChar_t fRow; // pad row | |
5468a262 | 58 | UChar_t fNpad; // no. of pads in the cluster |
1ee39b3a | 59 | Short_t fPdg; // particle code |
60 | Short_t fLbl; // track label (MC) | |
61 | Short_t fLocalTime; // calibrate drift time | |
62 | Float_t fQ; // cluster charge (REC) | |
63 | Float_t fX; // x coordinate (REC) | |
64 | Float_t fY; // y coordinate (REC) | |
65 | Float_t fYd; // displacement from pad center y coordinate | |
66 | Float_t fZ; // z coordinate (REC) | |
67 | Float_t fdydx; // slope in phi (MC) | |
68 | Float_t fdzdx; // slope in theta (MC) | |
69 | Float_t fXd; // drift length | |
70 | Float_t fYt; // y coordinate (MC) | |
71 | Float_t fZt; // z coordinate (MC) | |
72 | Float_t fCov[3];// covariance matrix in the yz plane (track) | |
73 | Float_t fCovCl[3];// covariance matrix in the yz plane (cluster) | |
74 | Float_t fdy; // difference in y after tilt correction | |
75 | Float_t fD; // distance to the anode wire | |
76 | Float_t fTilt; // pad tilt; | |
3ceb45ae | 77 | Short_t fSignal[7]; //cluster signals |
1ee39b3a | 78 | |
5468a262 | 79 | ClassDef(AliTRDclusterInfo, 3) // extracted cluster2MC information |
1ee39b3a | 80 | }; |
81 | ||
82 | ||
83 | //_________________________________________________ | |
84 | inline void AliTRDclusterInfo::GetCluster(Int_t &det, Float_t &x, Float_t &y, Float_t &z, Float_t &q, Int_t &t, Float_t *cov) const | |
85 | { | |
86 | det = fDet; | |
87 | x = fX; | |
88 | y = fY; | |
89 | z = fZ; | |
90 | q = fQ; | |
91 | t = fLocalTime; | |
92 | if(cov) memcpy(cov, fCovCl, 3*sizeof(Float_t)); | |
93 | } | |
94 | ||
95 | #endif | |
96 |