1 ////////////////////////////////////////////////////////////////////////////
3 // TRD PID/Track summary info for performance //
6 // Alexandru Bercuci <A.Bercuci@gsi.de> //
8 ////////////////////////////////////////////////////////////////////////////
10 #include "AliTRDpidInfo.h"
11 #include "AliTRDgeometry.h"
15 ClassImp(AliTRDpidInfo)
16 ClassImp(AliTRDpidInfo::AliTRDpidData)
18 //________________________________________________________________________
19 AliTRDpidInfo::AliTRDpidData::AliTRDpidData() : fPLbin(0xff)
21 memset(fdEdx, 0, 8*sizeof(Float_t));
24 //________________________________________________________________________
25 AliTRDpidInfo::AliTRDpidInfo()
31 // Constructor of data array
32 fData = new AliTRDpidData[AliTRDgeometry::kNlayer];
35 //________________________________________________________________________
36 AliTRDpidInfo::AliTRDpidInfo(Int_t idx)
42 // Constructor of data array
43 fData = new AliTRDpidData[AliTRDgeometry::kNlayer];
46 //________________________________________________________________________
47 AliTRDpidInfo::~AliTRDpidInfo()
50 if(fData) delete [] fData;
53 //________________________________________________________________________
54 AliTRDpidInfo::AliTRDpidData const* AliTRDpidInfo::GetDataInLayer(Int_t ily) const
56 // Extract PID raw signals for layer "ily"
57 if(!fData) return NULL;
58 if(ily<0 || ily>=AliTRDgeometry::kNlayer) return NULL;
60 AliTRDpidData *data(NULL);
61 for(Int_t itrklt=fNtracklets; itrklt--;){
62 if(!(data=&fData[itrklt])) return NULL;
63 if(data->Layer()==ily) return data;
68 //________________________________________________________________________
69 void AliTRDpidInfo::PushBack(Int_t ly, Int_t p, const Float_t *dedx)
71 // Add PID data to the end of the array
72 fData[fNtracklets].fPLbin= (ly<<4) | (p&0xf);
73 memcpy(fData[fNtracklets].fdEdx, dedx, 8*sizeof(Float_t));
77 //________________________________________________________________________
78 void AliTRDpidInfo::Reset()
82 if(!fNtracklets) return;
84 fData[fNtracklets].fPLbin = 0xff;
85 memset(fData[fNtracklets].fdEdx, 0, 8*sizeof(Float_t));