1 #include "AliTRDpidInfo.h"
2 #include "AliTRDgeometry.h"
6 ClassImp(AliTRDpidInfo)
7 ClassImp(AliTRDpidInfo::AliTRDpidData)
9 //________________________________________________________________________
10 AliTRDpidInfo::AliTRDpidData::AliTRDpidData() : fPLbin(0xff)
12 memset(fdEdx, 0, 8*sizeof(Float_t));
15 //________________________________________________________________________
16 AliTRDpidInfo::AliTRDpidInfo()
22 // Constructor of data array
23 fData = new AliTRDpidData[AliTRDgeometry::kNlayer];
26 //________________________________________________________________________
27 AliTRDpidInfo::AliTRDpidInfo(Int_t idx)
33 // Constructor of data array
34 fData = new AliTRDpidData[AliTRDgeometry::kNlayer];
37 //________________________________________________________________________
38 AliTRDpidInfo::~AliTRDpidInfo()
41 if(fData) delete [] fData;
44 //________________________________________________________________________
45 AliTRDpidInfo::AliTRDpidData const* AliTRDpidInfo::GetDataInLayer(Int_t ily) const
47 if(!fData) return NULL;
48 if(ily<0 || ily>=AliTRDgeometry::kNlayer) return NULL;
50 AliTRDpidData *data(NULL);
51 for(Int_t itrklt=fNtracklets; itrklt--;){
52 if(!(data=&fData[itrklt])) return NULL;
53 if(data->Layer()==ily) return data;
58 //________________________________________________________________________
59 void AliTRDpidInfo::PushBack(Int_t ly, Int_t p, const Float_t *dedx)
61 // Add PID data to the end of the array
62 fData[fNtracklets].fPLbin= (ly<<4) | (p&0xf);
63 memcpy(fData[fNtracklets].fdEdx, dedx, 8*sizeof(Float_t));
67 //________________________________________________________________________
68 void AliTRDpidInfo::Reset()
72 if(!fNtracklets) return;
74 fData[fNtracklets].fPLbin = 0xff;
75 memset(fData[fNtracklets].fdEdx, 0, 8*sizeof(Float_t));