]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGPP/TRD/info/AliTRDclusterInfo.h
Moving PWG1 to PWGPP
[u/mrichter/AliRoot.git] / PWGPP / TRD / info / 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 //  TRD cluster summary info for performance                              //
9 //                                                                        //
10 //  Authors:                                                              //
11 //    Alexandru Bercuci <A.Bercuci@gsi.de>                                //
12 //                                                                        //
13 ////////////////////////////////////////////////////////////////////////////
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;
28   void      GetMC(Int_t &pdg, Int_t &label) const {pdg  = fPdg; label= fLbl; }
29   void      GetGlobalPosition(Float_t &yt, Float_t &zt, Float_t &dydx, Float_t &dzdx, Float_t *cov=0x0) const {
30       dydx = fdydx; dzdx = fdzdx; yt   = fYt; zt   = fZt;
31       if(cov) memcpy(cov, fCov, 3*sizeof(Float_t));}
32   Int_t     GetNpads() const {return fNpad;}
33   void      GetCenterPad(Int_t &c, Int_t &r) const {c=fCol; r=fRow;}
34   Float_t   GetResolution() const {return fdy;}
35   Float_t   GetDriftLength() const {return fXd;}
36   Short_t*  GetSignals() {return fSignal;}
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;}
43   void      SetCluster(AliTRDcluster *c);
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) {
48       fdydx = dydx; fdzdx = dzdx; fYt   = yt; fZt   = zt;
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
56   UChar_t  fCol;   // central pad column
57   UChar_t  fRow;   // pad row
58   UChar_t  fNpad;  // no. of pads in the cluster
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;
77   Short_t  fSignal[7]; //cluster signals
78
79   ClassDef(AliTRDclusterInfo, 3) // extracted cluster2MC information
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