]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGPP/TRD/info/AliTRDclusterInfo.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGPP / TRD / info / AliTRDclusterInfo.h
CommitLineData
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
20class AliTRDcluster;
21class AliTRDclusterInfo : public TObject
22{
23public:
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
54private:
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//_________________________________________________
84inline 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