]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TRD/qaRec/AliTRDtrackInfo/AliTRDclusterInfo.h
711b7c838a8c045278c259f4ed4dbce8194dc268
[u/mrichter/AliRoot.git] / TRD / qaRec / AliTRDtrackInfo / AliTRDclusterInfo.h
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                               */
6
7
8 #ifndef Root_TObject
9 #include "TObject.h"
10 #endif
11
12 class AliTRDcluster;
13 class AliTRDclusterInfo : public TObject
14 {
15 public:
16   AliTRDclusterInfo();
17
18   Float_t   GetAnisochronity() const {return fD;}
19   inline void GetCluster(Int_t &det, Float_t &x, Float_t &y, Float_t &z, Float_t &q, Int_t &t) const;
20   void      GetMC(Int_t &pdg, Int_t &label) const{
21       pdg  = fPdg;
22       label= fLbl; }
23   void      GetGlobalPosition(Float_t &yt, Float_t &zt, Float_t &dydx, Float_t &dzdx, Float_t *cov) const {
24       dydx = fdydx;
25       dzdx = fdzdx;
26       yt   = fYt;
27       zt   = fZt;
28       memcpy(cov, fCov, 3*sizeof(Float_t));}
29   Float_t   GetResolution() const {return fdy;}
30   Float_t   GetDriftLength() const {return fXd;}
31
32   void      Print(Option_t *opt="") const;
33
34   void      SetAnisochronity(Float_t d) {fD = d;}
35   void      SetCluster(const AliTRDcluster *c=0x0);
36   void      SetMC(Int_t pdg, Int_t label){
37       fPdg  = pdg;
38       fLbl  = label;}
39   void      SetGlobalPosition(Float_t yt, Float_t zt, Float_t dydx, Float_t dzdx, Float_t *cov=0x0) {
40       fdydx = dydx;
41       fdzdx = dzdx;
42       fYt   = yt;
43       fZt   = zt;
44       if(cov) memcpy(fCov, cov, 3*sizeof(Float_t));}
45   void      SetResolution(Float_t dy) {fdy = dy;}
46   void      SetDriftLength(Float_t d) {fXd = d;}
47
48 private:
49   UShort_t fDet;   // detector
50   Short_t  fPdg;   // particle code
51   Short_t fLbl;    // track label (MC)
52   Short_t fLocalTime; // calibrate drift time
53   Float_t  fQ;     // cluster charge (REC)
54   Float_t  fX;     // x coordinate (REC)
55   Float_t  fY;     // y coordinate (REC)
56   Float_t  fZ;     // z coordinate (REC)
57   Float_t  fdydx;  // slope in phi (MC)
58   Float_t  fdzdx;  // slope in theta (MC)
59   Float_t  fXd;    // drift length
60   Float_t  fYt;    // y coordinate (MC)
61   Float_t  fZt;    // z coordinate (MC)
62   Float_t  fCov[3];// covariance matrix in the yz plane (global)
63   Float_t  fdy;    // difference in y after tilt correction
64   Float_t  fD;     // distance to the anode wire
65
66   ClassDef(AliTRDclusterInfo, 1) // extracted cluster2MC information
67 };
68
69
70 //_________________________________________________
71 inline void AliTRDclusterInfo::GetCluster(Int_t &det, Float_t &x, Float_t &y, Float_t &z, Float_t &q, Int_t &t) const
72 {
73   det = fDet;
74   x   = fX;
75   y   = fY;
76   z   = fZ;
77   q   = fQ;
78   t   = fLocalTime;
79 }
80
81 #endif
82