AliRoot Core  3dc7879 (3dc7879)
AliAODPid.h
Go to the documentation of this file.
1 #ifndef AliAODPID_H
2 #define AliAODPID_H
3 /* Copyright(c) 1998-2007, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice */
5 
6 /* $Id$ */
7 
12 
13 #include <TObject.h>
14 #include "AliPID.h"
15 #include "AliTPCdEdxInfo.h"
16 
17 class AliAODPid : public TObject {
18 
19  public:
20  AliAODPid();
21  virtual ~AliAODPid();
22  AliAODPid(const AliAODPid& pid);
23  AliAODPid& operator=(const AliAODPid& pid);
24 
25  enum{kTRDnPlanes=6};
26 
27  //setters
28  void SetITSsignal(Double_t its) {fITSsignal=its;}
29  void SetITSdEdxSamples(const Double_t s[4]);
30  void SetTPCsignal(Double_t tpc) {fTPCsignal=tpc;}
31  void SetTPCsignalN(UShort_t tpcN) {fTPCsignalN=(UChar_t)((tpcN<160)?tpcN:160);}
32  void SetTPCmomentum(Double_t tpcMom) {fTPCmomentum=tpcMom;}
33  void SetTPCTgl(Double_t tpcTgl) {fTPCTgl=tpcTgl;}
34  void SetTPCdEdxInfo(AliTPCdEdxInfo * dEdxInfo);
35  void SetTRDslices(Int_t nslices, const Double_t * const trdslices);
36  void SetTRDsignal(Double_t sig) {fTRDsignal = sig;}
37  void SetTRDmomentum(Int_t nplane, Float_t trdMom) {fTRDmomentum[nplane]=trdMom;}
38  void SetTRDncls(UChar_t ncls, Int_t layer = -1);
39  void SetTRDntrackletsPID(UChar_t ntls) {fTRDntls = ntls;}
40  void SetTRDChi2(Double_t chi2) {fTRDChi2 = chi2;}
41  void SetTOFsignal(Double_t tof) {fTOFesdsignal=tof;}
42  void SetTOFpidResolution(Double_t tofPIDres[5]);
43  void SetIntegratedTimes(Double_t timeint[5]);
44 
45  Double_t GetITSsignal() const {return fITSsignal;}
46  void GetITSdEdxSamples(Double_t *s) const;
47  Double_t GetITSdEdxSample(Int_t i) const {
48  if(i>=0 && i<4) return fITSdEdxSamples[i];
49  else return 0.;
50  }
51  Double_t GetTPCsignal() const {return fTPCsignal;}
52  UShort_t GetTPCsignalN() const {return (UShort_t)fTPCsignalN;}
53  Bool_t GetTPCdEdxInfo( AliTPCdEdxInfo &v) const {
54  if( fTPCdEdxInfo ){ v = *fTPCdEdxInfo; return kTRUE;}
55  return kFALSE;
56  }
57 
58  Double_t GetTPCmomentum() const {return fTPCmomentum;}
59  Double_t GetTPCTgl() const {return fTPCTgl;}
60  Int_t GetTRDnSlices() const {return fTRDnSlices/6;}
61  Double_t GetTRDsignal() const {return fTRDsignal;}
62  Double_t* GetTRDslices() const {return fTRDslices;}
63  Double_t GetTRDChi2() const {return fTRDChi2;}
64  const Double_t* GetTRDmomentum() const {return fTRDmomentum;}
65  UChar_t GetTRDncls(UChar_t layer) const { if(layer > 5) return 0; return fTRDncls[layer];}
66  UChar_t GetTRDncls() const;
67  UChar_t GetTRDntrackletsPID() const {return fTRDntls;}
68  Double_t GetTOFsignal() const {return fTOFesdsignal;}
69 
70  void GetIntegratedTimes(Double_t *timeint, Int_t nspec=AliPID::kSPECIES) const;
71  void GetTOFpidResolution (Double_t tofRes[5]) const;
72 
73  private :
75  Double32_t fITSsignal; //[0.,0.,10]
77  Double32_t fITSdEdxSamples[4];//[0.,0.,10]
78 
80  Double32_t fTPCsignal; //[0.,0.,10]
81  UChar_t fTPCsignalN;
82  Double32_t fTPCmomentum; //[0.,0.,20]
85  Double32_t fTPCTgl; //[0.,0.,10]
86 
87  Int_t fTRDnSlices;
88  UChar_t fTRDntls;
89  UChar_t fTRDncls[6];
90 
91  Double32_t* fTRDslices; //[fTRDnSlices][0.,0.,10]
93  Double32_t fTRDsignal; //[0.,0.,10]
95  Double32_t fTRDmomentum[6]; //[0.,0.,10]
97  Double32_t fTRDChi2; //[0.,0.,10]
98 
100  Double32_t fTOFesdsignal; //[0.,0.,20]
102  Double32_t fTOFpidResolution[5]; //[0.,0.,20]
104  Double32_t fIntTime[5]; //[0.,0.,20]
105 
107 
108  ClassDef(AliAODPid, 15);
109 };
110 
111 //_____________________________________________________________
112 inline void AliAODPid::SetTRDslices(Int_t nslices, const Double_t * const trdslices) {
114 
115  if(fTRDslices && fTRDnSlices != nslices) {
116  delete [] fTRDslices; fTRDslices = NULL;
117  };
118  if(!fTRDslices) fTRDslices = new Double32_t[nslices];
119  fTRDnSlices = nslices;
120  for(Int_t is = 0; is < fTRDnSlices; is++) fTRDslices[is] = trdslices[is];
121 }
122 
123 //_____________________________________________________________
124 inline void AliAODPid::SetTRDncls(UChar_t ncls, Int_t layer) {
127 
128  if(layer > 5) return;
129  if(layer < 0) fTRDncls[0] = ncls;
130  else fTRDncls[layer] = ncls;
131 }
132 
133 //_____________________________________________________________
134 inline UChar_t AliAODPid::GetTRDncls() const {
137 
138  UChar_t ncls = 0;
139  for(Int_t ily = 0; ily < 6; ily++) ncls += fTRDncls[ily];
140  return ncls;
141 }
142 #endif
void SetIntegratedTimes(Double_t timeint[5])
Definition: AliAODPid.cxx:150
void SetTRDslices(Int_t nslices, const Double_t *const trdslices)
Definition: AliAODPid.h:112
void SetTPCsignal(Double_t tpc)
Definition: AliAODPid.h:30
AliTPCcalibPID * pid
Definition: CalibPID.C:69
void SetTPCTgl(Double_t tpcTgl)
Definition: AliAODPid.h:33
UShort_t GetTPCsignalN() const
Definition: AliAODPid.h:52
Double32_t fTPCsignal
detector raw signal
Definition: AliAODPid.h:80
Bool_t GetTPCdEdxInfo(AliTPCdEdxInfo &v) const
Definition: AliAODPid.h:53
void SetTRDntrackletsPID(UChar_t ntls)
Definition: AliAODPid.h:39
Double32_t fIntTime[5]
track time hypothesis
Definition: AliAODPid.h:104
void SetITSsignal(Double_t its)
Definition: AliAODPid.h:28
Double32_t fTPCTgl
track momentum dip angle at the inner wall of TPC;
Definition: AliAODPid.h:85
Double_t GetTPCTgl() const
Definition: AliAODPid.h:59
Double32_t fTRDsignal
TRD signal.
Definition: AliAODPid.h:93
Double_t GetITSsignal() const
Definition: AliAODPid.h:45
Double_t GetTOFsignal() const
Definition: AliAODPid.h:68
Double_t GetTRDChi2() const
Definition: AliAODPid.h:63
Double_t GetITSdEdxSample(Int_t i) const
Definition: AliAODPid.h:47
virtual ~AliAODPid()
Definition: AliAODPid.cxx:52
Int_t fTRDnSlices
N slices used for PID in the TRD (as number of slices per tracklet * number of layers) ...
Definition: AliAODPid.h:87
void SetTOFsignal(Double_t tof)
Definition: AliAODPid.h:41
void SetTRDmomentum(Int_t nplane, Float_t trdMom)
Definition: AliAODPid.h:37
void SetTPCmomentum(Double_t tpcMom)
Definition: AliAODPid.h:32
const Double_t * GetTRDmomentum() const
Definition: AliAODPid.h:64
AOD Pid object for additional pid information.
Definition: AliAODPid.h:17
Double32_t fITSdEdxSamples[4]
ITS dE/dx samples.
Definition: AliAODPid.h:77
void SetTPCdEdxInfo(AliTPCdEdxInfo *dEdxInfo)
Definition: AliAODPid.cxx:183
Double32_t fTRDmomentum[6]
momentum at the TRD layers
Definition: AliAODPid.h:95
AliAODPid & operator=(const AliAODPid &pid)
Definition: AliAODPid.cxx:95
Double_t chi2
Definition: AnalyzeLaser.C:7
void SetTRDChi2(Double_t chi2)
Definition: AliAODPid.h:40
UChar_t fTRDntls
number of tracklets used for PID calculation
Definition: AliAODPid.h:88
UChar_t GetTRDntrackletsPID() const
Definition: AliAODPid.h:67
UChar_t GetTRDncls() const
Definition: AliAODPid.h:134
void SetITSdEdxSamples(const Double_t s[4])
Definition: AliAODPid.cxx:169
AliTPCdEdxInfo * fTPCdEdxInfo
object containing dE/dx information for different pad regions
Definition: AliAODPid.h:106
Double_t * GetTRDslices() const
Definition: AliAODPid.h:62
Int_t GetTRDnSlices() const
Definition: AliAODPid.h:60
void SetTRDncls(UChar_t ncls, Int_t layer=-1)
Definition: AliAODPid.h:124
Double32_t fITSsignal
detector raw signal
Definition: AliAODPid.h:75
UChar_t fTPCsignalN
Definition: AliAODPid.h:81
UChar_t GetTRDncls(UChar_t layer) const
Definition: AliAODPid.h:65
Double32_t fTOFesdsignal
TOF signal - t0 (T0 interaction time)
Definition: AliAODPid.h:100
void SetTOFpidResolution(Double_t tofPIDres[5])
Definition: AliAODPid.cxx:157
Double32_t fTPCmomentum
momentum at the inner wall of TPC;
Definition: AliAODPid.h:83
Double32_t fTRDChi2
TRD chi2.
Definition: AliAODPid.h:97
void SetTPCsignalN(UShort_t tpcN)
Definition: AliAODPid.h:31
void GetITSdEdxSamples(Double_t *s) const
Definition: AliAODPid.cxx:176
UChar_t fTRDncls[6]
number of clusters used for dE/dx calculation
Definition: AliAODPid.h:89
void GetTOFpidResolution(Double_t tofRes[5]) const
Definition: AliAODPid.cxx:163
Double_t GetTPCsignal() const
Definition: AliAODPid.h:51
Double32_t * fTRDslices
Definition: AliAODPid.h:91
Double32_t fTOFpidResolution[5]
TOF pid resolution for each mass hypotesys.
Definition: AliAODPid.h:102
void GetIntegratedTimes(Double_t *timeint, Int_t nspec=AliPID::kSPECIES) const
Definition: AliAODPid.cxx:140
Double_t GetTPCmomentum() const
Definition: AliAODPid.h:58
Double_t GetTRDsignal() const
Definition: AliAODPid.h:61
void SetTRDsignal(Double_t sig)
Definition: AliAODPid.h:36