ROOT logo
#include "TPDGCode.h"
#include "TFile.h"
#include "TTree.h"
#include "TEventList.h"
#include "TObjArray.h"
#include "TH2.h"

#include "AliLog.h"
#include "AliESDtrack.h"
#include "AliTrackReference.h"
#include "AliAnalysisManager.h"

#include "AliTRDReconstructor.h"
#include "AliTRDtrackV1.h"
#include "AliTRDseedV1.h"
#include "AliTRDpidRefMaker.h"
#include "AliTRDinfoGen.h"
#include "info/AliTRDeventInfo.h"
#include "info/AliTRDv0Info.h"
#include "info/AliTRDpidInfo.h"


// Defines and implements basic functionality for building reference data for TRD PID. 
// 
// Here is the list of functionality provided by this class
// 1.
// 2.
// 
// Authors:
//   Alex Bercuci <A.Bercuci@gsi.de>
//   Alex Wilk    <wilka@uni-muenster.de>
//   Markus Fasel <mfasel@gsi.de>
//   Markus Heide <mheide@uni-muenster.de>
// 

ClassImp(AliTRDpidRefMaker)

//________________________________________________________________________
AliTRDpidRefMaker::AliTRDpidRefMaker() 
  :AliTRDrecoTask()
  ,fV0s(NULL)
  ,fData(NULL)
  ,fInfo(NULL)
  ,fPIDdataArray(NULL)
  ,fRefPID(kV0)
  ,fRefP(kRec)
  ,fFreq(1.)
  ,fP(-1.)
  ,fPthreshold(0.)
{
  //
  // Default constructor
  //
  SetNameTitle("PIDrefMaker", "PID Reference Maker");
}

//________________________________________________________________________
AliTRDpidRefMaker::AliTRDpidRefMaker(const char *name, const char *title) 
  :AliTRDrecoTask(name, title)
  ,fV0s(NULL)
  ,fData(NULL)
  ,fInfo(NULL)
  ,fPIDdataArray(NULL)
  ,fRefPID(kV0)
  ,fRefP(kRec)
  ,fFreq(1.)
  ,fP(-1.)
  ,fPthreshold(0.5)
{
  //
  // Default constructor
  //

  memset(fdEdx, 0, AliTRDpidUtil::kNNslices*sizeof(Float_t));
  memset(fPID, 0, AliPID::kSPECIES*sizeof(Float_t));

  DefineInput(3, TObjArray::Class()); // v0 list
  DefineInput(4, TObjArray::Class()); // pid info list
  DefineOutput(2, TTree::Class());
}


//________________________________________________________________________
AliTRDpidRefMaker::~AliTRDpidRefMaker() 
{
  if(fPIDdataArray) delete fPIDdataArray;
}

//________________________________________________________________________
Bool_t AliTRDpidRefMaker::CheckQuality(AliTRDseedV1* /*trklt*/)
{
// Place holder for checking tracklet quality for PID.
  return kTRUE;  
}


//________________________________________________________________________
Float_t* AliTRDpidRefMaker::CookdEdx(AliTRDseedV1 *trklt)
{
  trklt->CookdEdx(AliTRDpidUtil::kNNslices);
  memcpy(fdEdx, trklt->GetdEdx(), AliTRDpidUtil::kNNslices*sizeof(Float_t));
  return fdEdx;
}


//________________________________________________________________________
void AliTRDpidRefMaker::UserCreateOutputObjects()
{
  // Create histograms
  // Called once

  fContainer = new TObjArray();
  fContainer->SetName(Form("Moni%s", GetName()));

  TH2 *h2 = new TH2I("hPDG","Particle abundance", AliPID::kSPECIES, -0.5, 4.5, AliTRDCalPID::kNMom, -0.5, AliTRDCalPID::kNMom-0.5);
  TAxis *ax = h2->GetXaxis();
  ax->SetNdivisions(505);
  ax->SetTitle("Particle species");
  for(Int_t is=AliPID::kSPECIES; is--;) ax->SetBinLabel(is+1, AliPID::ParticleShortName(is));
  h2->GetYaxis()->SetTitle("P bins");
  h2->GetYaxis()->SetNdivisions(511);
  fContainer->AddAt(h2, 0);
  PostData(1, fContainer);

  OpenFile(2);
  fData = new TTree("RefPID", "Reference data for PID");
  fData->Branch("data", &fPIDdataArray);
  PostData(2, fData);
}

//________________________________________________________________________
void AliTRDpidRefMaker::UserExec(Option_t *) 
{
  // Main loop
  // Called for each event
  Int_t ev((Int_t)AliAnalysisManager::GetAnalysisManager()->GetCurrentEntry());
  if(!(fTracks = dynamic_cast<TObjArray*>(GetInputData(1)))){
    AliDebug(3, Form("Missing tracks container in ev %d", ev));
    return;
  }
  if(!(fEvent = dynamic_cast<AliTRDeventInfo*>(GetInputData(2)))){
    AliDebug(3, Form("Missing Event Info container in ev %d", ev));
    return;
  }
  if(!(fV0s    = dynamic_cast<TObjArray*>(GetInputData(3)))){
    AliDebug(3, Form("Missing v0 container in ev %d", ev)); 
    return;
  }
  if(!(fInfo   = dynamic_cast<TObjArray*>(GetInputData(4)))){
    AliDebug(3, Form("Missing pid info container in ev %d", ev)); 
    return;
  }

  AliDebug(1, Form("Entries: Ev[%d] Tracks[%d] V0[%d] PID[%d]", ev, fTracks->GetEntriesFast(), fV0s->GetEntriesFast(), fInfo->GetEntriesFast()));
  AliTRDtrackInfo     *track = NULL;
  //AliTRDtrackV1    *trackTRD = NULL;
  AliTrackReference     *ref = NULL;
  const AliTRDtrackInfo::AliESDinfo *infoESD = NULL;
  for(Int_t itrk=0; itrk<fTracks->GetEntriesFast(); itrk++){
    track = (AliTRDtrackInfo*)fTracks->UncheckedAt(itrk);
    if(!track->HasESDtrack()) continue;
    //trackTRD = track->GetTrack();
    infoESD  = track->GetESDinfo();
    Double32_t *infoPID = infoESD->GetSliceIter();
    Int_t n = infoESD->GetNSlices() - AliTRDgeometry::kNlayer;
    if(n==0){
      AliWarning(Form("dEdx info missing in ESD track %d", itrk));
      continue;
    }
    Double32_t *p = &infoPID[n];
    AliDebug(4, Form("n[%d] p[GeV/c]{%6.2f %6.2f %6.2f %6.2f %6.2f %6.2f}", n, p[0], p[1], p[2], p[3], p[4], p[5]));

    ULong_t status = track->GetStatus();
    if(!(status&AliESDtrack::kTRDpid)) continue;

    // fill the pid information
    SetRefPID(fRefPID, track, infoESD, fPID);
    // get particle type
    Int_t idx(TMath::Max(Long64_t(0), TMath::LocMax(AliPID::kSPECIES, fPID))); 
    if(fPID[idx]<1.e-5) continue;
    
    // prepare PID data array
    if(!fPIDdataArray){ 
      fPIDdataArray = new AliTRDpidInfo();
    } else fPIDdataArray->Reset();
    fPIDdataArray->SetPID(idx);

    // fill PID information
    for(Int_t ily = 0; ily < AliTRDgeometry::kNlayer; ily++){

      // fill P & dE/dx information
      switch(fRefP){
      case kMC:
        if(!(ref = track->GetTrackRef(ily))) continue;
        fP = ref->P();
        break;
      case kRec:
        fP = p[ily];
        break;
      default:
        continue;
      }
      Double32_t *it = &infoPID[ily*AliTRDCalPID::kNSlicesNN];
      for(Int_t is=AliTRDCalPID::kNSlicesNN; is--; it++) fdEdx[is] = (*it);
      
      // momentum threshold
      if(fP < fPthreshold) continue;

      // store information
      fPIDdataArray->PushBack(ily, AliTRDpidUtil::GetMomentumBin(fP), fdEdx);
    }

    Fill();
  }
}


//________________________________________________________________________
void AliTRDpidRefMaker::Fill() 
{
// Fill data tree

  if(!fPIDdataArray->GetNtracklets()) return;
  // Fill data tree
  fData->Fill();

  
  // fill monitor
  for(Int_t itrklt=fPIDdataArray->GetNtracklets(); itrklt--;){
    Int_t pBin = fPIDdataArray->GetData(itrklt)->Momentum();
    ((TH2*)fContainer->At(0))->Fill(fPIDdataArray->GetPID(), pBin);
  }
}

//________________________________________________________________________
void AliTRDpidRefMaker::LinkPIDdata() 
{
// Link data tree to data members
  fData->SetBranchAddress("data", &fPIDdataArray);
}

//________________________________________________________________________
void AliTRDpidRefMaker::SetRefPID(ETRDpidRefMakerSource select, AliTRDtrackInfo *track, const AliTRDtrackInfo::AliESDinfo *infoESD, Float_t *pid) 
{
// Fill the reference PID values "pid" from "source" object
// according to the option "select". Possible options are
// - kV0  - v0 based PID
// - kMC  - MC truth [default]
// - kRec - outside detectors

  if(!track){
    AliError("No trackInfo found");
    return;
  }
  memset(pid, 0, AliPID::kSPECIES*sizeof(Float_t));
  switch(select){ 
  case kV0:
    {
      //Get V0 PID decisions for all particle species (implemented so far : electrons from conversions, pions from K0s and protons from Lambdas) :
      if(!infoESD->HasV0()) return;
      const Int_t *v0pid=infoESD->GetV0pid();
      for(Int_t is=AliPID::kSPECIES; is--;){ pid[is] = (Float_t)v0pid[is];}
    }
    break;
  case kMC:
    if(!HasMCdata()){
      AliError("Could not retrive reference PID from MC");
      return;
    }
    switch(track->GetPDG()){
    case kElectron:
    case kPositron:
      pid[AliPID::kElectron] = 1.;
      break;
    case kMuonPlus:
    case kMuonMinus:
      pid[AliPID::kMuon] = 1.;
      break;
    case kPiPlus:
    case kPiMinus:
      pid[AliPID::kPion] = 1.;
      break;
    case kKPlus:
    case kKMinus:
      pid[AliPID::kKaon] = 1.;
      break;
    case kProton:
    case kProtonBar:
      pid[AliPID::kProton] = 1.;
      break;
    }
    break;
  case kRec:
    { 
      AliTRDtrackV1 *trackTRD = track->GetTrack();
      trackTRD -> SetReconstructor(AliTRDinfoGen::Reconstructor());
      //fReconstructor -> SetOption("nn");
      trackTRD -> CookPID();
      for(Int_t iPart = 0; iPart < AliPID::kSPECIES; iPart++){
        pid[iPart] = trackTRD -> GetPID(iPart);
        AliDebug(4, Form("PDG is (in V0info) %d %f", iPart, pid[iPart]));
      }
    }
    break;
  default:
    AliWarning("PID reference source not implemented");
    return;
  }
  AliDebug(4, Form("Ref PID : %s[%5.2f] %s[%5.2f] %s[%5.2f] %s[%5.2f] %s[%5.2f]"
    ,AliPID::ParticleShortName(0), 1.e2*pid[0]
    ,AliPID::ParticleShortName(1), 1.e2*pid[1]
    ,AliPID::ParticleShortName(2), 1.e2*pid[2]
    ,AliPID::ParticleShortName(3), 1.e2*pid[3]
    ,AliPID::ParticleShortName(4), 1.e2*pid[4]
  ));
}

//________________________________________________________________________
void AliTRDpidRefMaker::SetAbundance(Float_t train) 
{
// Split data sample between trainning and testing

  if(train<0. || train >1.){
    AliWarning("The input data should be in the interval [0, 1]");
    return;
  }

  fFreq = train; 
}

 AliTRDpidRefMaker.cxx:1
 AliTRDpidRefMaker.cxx:2
 AliTRDpidRefMaker.cxx:3
 AliTRDpidRefMaker.cxx:4
 AliTRDpidRefMaker.cxx:5
 AliTRDpidRefMaker.cxx:6
 AliTRDpidRefMaker.cxx:7
 AliTRDpidRefMaker.cxx:8
 AliTRDpidRefMaker.cxx:9
 AliTRDpidRefMaker.cxx:10
 AliTRDpidRefMaker.cxx:11
 AliTRDpidRefMaker.cxx:12
 AliTRDpidRefMaker.cxx:13
 AliTRDpidRefMaker.cxx:14
 AliTRDpidRefMaker.cxx:15
 AliTRDpidRefMaker.cxx:16
 AliTRDpidRefMaker.cxx:17
 AliTRDpidRefMaker.cxx:18
 AliTRDpidRefMaker.cxx:19
 AliTRDpidRefMaker.cxx:20
 AliTRDpidRefMaker.cxx:21
 AliTRDpidRefMaker.cxx:22
 AliTRDpidRefMaker.cxx:23
 AliTRDpidRefMaker.cxx:24
 AliTRDpidRefMaker.cxx:25
 AliTRDpidRefMaker.cxx:26
 AliTRDpidRefMaker.cxx:27
 AliTRDpidRefMaker.cxx:28
 AliTRDpidRefMaker.cxx:29
 AliTRDpidRefMaker.cxx:30
 AliTRDpidRefMaker.cxx:31
 AliTRDpidRefMaker.cxx:32
 AliTRDpidRefMaker.cxx:33
 AliTRDpidRefMaker.cxx:34
 AliTRDpidRefMaker.cxx:35
 AliTRDpidRefMaker.cxx:36
 AliTRDpidRefMaker.cxx:37
 AliTRDpidRefMaker.cxx:38
 AliTRDpidRefMaker.cxx:39
 AliTRDpidRefMaker.cxx:40
 AliTRDpidRefMaker.cxx:41
 AliTRDpidRefMaker.cxx:42
 AliTRDpidRefMaker.cxx:43
 AliTRDpidRefMaker.cxx:44
 AliTRDpidRefMaker.cxx:45
 AliTRDpidRefMaker.cxx:46
 AliTRDpidRefMaker.cxx:47
 AliTRDpidRefMaker.cxx:48
 AliTRDpidRefMaker.cxx:49
 AliTRDpidRefMaker.cxx:50
 AliTRDpidRefMaker.cxx:51
 AliTRDpidRefMaker.cxx:52
 AliTRDpidRefMaker.cxx:53
 AliTRDpidRefMaker.cxx:54
 AliTRDpidRefMaker.cxx:55
 AliTRDpidRefMaker.cxx:56
 AliTRDpidRefMaker.cxx:57
 AliTRDpidRefMaker.cxx:58
 AliTRDpidRefMaker.cxx:59
 AliTRDpidRefMaker.cxx:60
 AliTRDpidRefMaker.cxx:61
 AliTRDpidRefMaker.cxx:62
 AliTRDpidRefMaker.cxx:63
 AliTRDpidRefMaker.cxx:64
 AliTRDpidRefMaker.cxx:65
 AliTRDpidRefMaker.cxx:66
 AliTRDpidRefMaker.cxx:67
 AliTRDpidRefMaker.cxx:68
 AliTRDpidRefMaker.cxx:69
 AliTRDpidRefMaker.cxx:70
 AliTRDpidRefMaker.cxx:71
 AliTRDpidRefMaker.cxx:72
 AliTRDpidRefMaker.cxx:73
 AliTRDpidRefMaker.cxx:74
 AliTRDpidRefMaker.cxx:75
 AliTRDpidRefMaker.cxx:76
 AliTRDpidRefMaker.cxx:77
 AliTRDpidRefMaker.cxx:78
 AliTRDpidRefMaker.cxx:79
 AliTRDpidRefMaker.cxx:80
 AliTRDpidRefMaker.cxx:81
 AliTRDpidRefMaker.cxx:82
 AliTRDpidRefMaker.cxx:83
 AliTRDpidRefMaker.cxx:84
 AliTRDpidRefMaker.cxx:85
 AliTRDpidRefMaker.cxx:86
 AliTRDpidRefMaker.cxx:87
 AliTRDpidRefMaker.cxx:88
 AliTRDpidRefMaker.cxx:89
 AliTRDpidRefMaker.cxx:90
 AliTRDpidRefMaker.cxx:91
 AliTRDpidRefMaker.cxx:92
 AliTRDpidRefMaker.cxx:93
 AliTRDpidRefMaker.cxx:94
 AliTRDpidRefMaker.cxx:95
 AliTRDpidRefMaker.cxx:96
 AliTRDpidRefMaker.cxx:97
 AliTRDpidRefMaker.cxx:98
 AliTRDpidRefMaker.cxx:99
 AliTRDpidRefMaker.cxx:100
 AliTRDpidRefMaker.cxx:101
 AliTRDpidRefMaker.cxx:102
 AliTRDpidRefMaker.cxx:103
 AliTRDpidRefMaker.cxx:104
 AliTRDpidRefMaker.cxx:105
 AliTRDpidRefMaker.cxx:106
 AliTRDpidRefMaker.cxx:107
 AliTRDpidRefMaker.cxx:108
 AliTRDpidRefMaker.cxx:109
 AliTRDpidRefMaker.cxx:110
 AliTRDpidRefMaker.cxx:111
 AliTRDpidRefMaker.cxx:112
 AliTRDpidRefMaker.cxx:113
 AliTRDpidRefMaker.cxx:114
 AliTRDpidRefMaker.cxx:115
 AliTRDpidRefMaker.cxx:116
 AliTRDpidRefMaker.cxx:117
 AliTRDpidRefMaker.cxx:118
 AliTRDpidRefMaker.cxx:119
 AliTRDpidRefMaker.cxx:120
 AliTRDpidRefMaker.cxx:121
 AliTRDpidRefMaker.cxx:122
 AliTRDpidRefMaker.cxx:123
 AliTRDpidRefMaker.cxx:124
 AliTRDpidRefMaker.cxx:125
 AliTRDpidRefMaker.cxx:126
 AliTRDpidRefMaker.cxx:127
 AliTRDpidRefMaker.cxx:128
 AliTRDpidRefMaker.cxx:129
 AliTRDpidRefMaker.cxx:130
 AliTRDpidRefMaker.cxx:131
 AliTRDpidRefMaker.cxx:132
 AliTRDpidRefMaker.cxx:133
 AliTRDpidRefMaker.cxx:134
 AliTRDpidRefMaker.cxx:135
 AliTRDpidRefMaker.cxx:136
 AliTRDpidRefMaker.cxx:137
 AliTRDpidRefMaker.cxx:138
 AliTRDpidRefMaker.cxx:139
 AliTRDpidRefMaker.cxx:140
 AliTRDpidRefMaker.cxx:141
 AliTRDpidRefMaker.cxx:142
 AliTRDpidRefMaker.cxx:143
 AliTRDpidRefMaker.cxx:144
 AliTRDpidRefMaker.cxx:145
 AliTRDpidRefMaker.cxx:146
 AliTRDpidRefMaker.cxx:147
 AliTRDpidRefMaker.cxx:148
 AliTRDpidRefMaker.cxx:149
 AliTRDpidRefMaker.cxx:150
 AliTRDpidRefMaker.cxx:151
 AliTRDpidRefMaker.cxx:152
 AliTRDpidRefMaker.cxx:153
 AliTRDpidRefMaker.cxx:154
 AliTRDpidRefMaker.cxx:155
 AliTRDpidRefMaker.cxx:156
 AliTRDpidRefMaker.cxx:157
 AliTRDpidRefMaker.cxx:158
 AliTRDpidRefMaker.cxx:159
 AliTRDpidRefMaker.cxx:160
 AliTRDpidRefMaker.cxx:161
 AliTRDpidRefMaker.cxx:162
 AliTRDpidRefMaker.cxx:163
 AliTRDpidRefMaker.cxx:164
 AliTRDpidRefMaker.cxx:165
 AliTRDpidRefMaker.cxx:166
 AliTRDpidRefMaker.cxx:167
 AliTRDpidRefMaker.cxx:168
 AliTRDpidRefMaker.cxx:169
 AliTRDpidRefMaker.cxx:170
 AliTRDpidRefMaker.cxx:171
 AliTRDpidRefMaker.cxx:172
 AliTRDpidRefMaker.cxx:173
 AliTRDpidRefMaker.cxx:174
 AliTRDpidRefMaker.cxx:175
 AliTRDpidRefMaker.cxx:176
 AliTRDpidRefMaker.cxx:177
 AliTRDpidRefMaker.cxx:178
 AliTRDpidRefMaker.cxx:179
 AliTRDpidRefMaker.cxx:180
 AliTRDpidRefMaker.cxx:181
 AliTRDpidRefMaker.cxx:182
 AliTRDpidRefMaker.cxx:183
 AliTRDpidRefMaker.cxx:184
 AliTRDpidRefMaker.cxx:185
 AliTRDpidRefMaker.cxx:186
 AliTRDpidRefMaker.cxx:187
 AliTRDpidRefMaker.cxx:188
 AliTRDpidRefMaker.cxx:189
 AliTRDpidRefMaker.cxx:190
 AliTRDpidRefMaker.cxx:191
 AliTRDpidRefMaker.cxx:192
 AliTRDpidRefMaker.cxx:193
 AliTRDpidRefMaker.cxx:194
 AliTRDpidRefMaker.cxx:195
 AliTRDpidRefMaker.cxx:196
 AliTRDpidRefMaker.cxx:197
 AliTRDpidRefMaker.cxx:198
 AliTRDpidRefMaker.cxx:199
 AliTRDpidRefMaker.cxx:200
 AliTRDpidRefMaker.cxx:201
 AliTRDpidRefMaker.cxx:202
 AliTRDpidRefMaker.cxx:203
 AliTRDpidRefMaker.cxx:204
 AliTRDpidRefMaker.cxx:205
 AliTRDpidRefMaker.cxx:206
 AliTRDpidRefMaker.cxx:207
 AliTRDpidRefMaker.cxx:208
 AliTRDpidRefMaker.cxx:209
 AliTRDpidRefMaker.cxx:210
 AliTRDpidRefMaker.cxx:211
 AliTRDpidRefMaker.cxx:212
 AliTRDpidRefMaker.cxx:213
 AliTRDpidRefMaker.cxx:214
 AliTRDpidRefMaker.cxx:215
 AliTRDpidRefMaker.cxx:216
 AliTRDpidRefMaker.cxx:217
 AliTRDpidRefMaker.cxx:218
 AliTRDpidRefMaker.cxx:219
 AliTRDpidRefMaker.cxx:220
 AliTRDpidRefMaker.cxx:221
 AliTRDpidRefMaker.cxx:222
 AliTRDpidRefMaker.cxx:223
 AliTRDpidRefMaker.cxx:224
 AliTRDpidRefMaker.cxx:225
 AliTRDpidRefMaker.cxx:226
 AliTRDpidRefMaker.cxx:227
 AliTRDpidRefMaker.cxx:228
 AliTRDpidRefMaker.cxx:229
 AliTRDpidRefMaker.cxx:230
 AliTRDpidRefMaker.cxx:231
 AliTRDpidRefMaker.cxx:232
 AliTRDpidRefMaker.cxx:233
 AliTRDpidRefMaker.cxx:234
 AliTRDpidRefMaker.cxx:235
 AliTRDpidRefMaker.cxx:236
 AliTRDpidRefMaker.cxx:237
 AliTRDpidRefMaker.cxx:238
 AliTRDpidRefMaker.cxx:239
 AliTRDpidRefMaker.cxx:240
 AliTRDpidRefMaker.cxx:241
 AliTRDpidRefMaker.cxx:242
 AliTRDpidRefMaker.cxx:243
 AliTRDpidRefMaker.cxx:244
 AliTRDpidRefMaker.cxx:245
 AliTRDpidRefMaker.cxx:246
 AliTRDpidRefMaker.cxx:247
 AliTRDpidRefMaker.cxx:248
 AliTRDpidRefMaker.cxx:249
 AliTRDpidRefMaker.cxx:250
 AliTRDpidRefMaker.cxx:251
 AliTRDpidRefMaker.cxx:252
 AliTRDpidRefMaker.cxx:253
 AliTRDpidRefMaker.cxx:254
 AliTRDpidRefMaker.cxx:255
 AliTRDpidRefMaker.cxx:256
 AliTRDpidRefMaker.cxx:257
 AliTRDpidRefMaker.cxx:258
 AliTRDpidRefMaker.cxx:259
 AliTRDpidRefMaker.cxx:260
 AliTRDpidRefMaker.cxx:261
 AliTRDpidRefMaker.cxx:262
 AliTRDpidRefMaker.cxx:263
 AliTRDpidRefMaker.cxx:264
 AliTRDpidRefMaker.cxx:265
 AliTRDpidRefMaker.cxx:266
 AliTRDpidRefMaker.cxx:267
 AliTRDpidRefMaker.cxx:268
 AliTRDpidRefMaker.cxx:269
 AliTRDpidRefMaker.cxx:270
 AliTRDpidRefMaker.cxx:271
 AliTRDpidRefMaker.cxx:272
 AliTRDpidRefMaker.cxx:273
 AliTRDpidRefMaker.cxx:274
 AliTRDpidRefMaker.cxx:275
 AliTRDpidRefMaker.cxx:276
 AliTRDpidRefMaker.cxx:277
 AliTRDpidRefMaker.cxx:278
 AliTRDpidRefMaker.cxx:279
 AliTRDpidRefMaker.cxx:280
 AliTRDpidRefMaker.cxx:281
 AliTRDpidRefMaker.cxx:282
 AliTRDpidRefMaker.cxx:283
 AliTRDpidRefMaker.cxx:284
 AliTRDpidRefMaker.cxx:285
 AliTRDpidRefMaker.cxx:286
 AliTRDpidRefMaker.cxx:287
 AliTRDpidRefMaker.cxx:288
 AliTRDpidRefMaker.cxx:289
 AliTRDpidRefMaker.cxx:290
 AliTRDpidRefMaker.cxx:291
 AliTRDpidRefMaker.cxx:292
 AliTRDpidRefMaker.cxx:293
 AliTRDpidRefMaker.cxx:294
 AliTRDpidRefMaker.cxx:295
 AliTRDpidRefMaker.cxx:296
 AliTRDpidRefMaker.cxx:297
 AliTRDpidRefMaker.cxx:298
 AliTRDpidRefMaker.cxx:299
 AliTRDpidRefMaker.cxx:300
 AliTRDpidRefMaker.cxx:301
 AliTRDpidRefMaker.cxx:302
 AliTRDpidRefMaker.cxx:303
 AliTRDpidRefMaker.cxx:304
 AliTRDpidRefMaker.cxx:305
 AliTRDpidRefMaker.cxx:306
 AliTRDpidRefMaker.cxx:307
 AliTRDpidRefMaker.cxx:308
 AliTRDpidRefMaker.cxx:309
 AliTRDpidRefMaker.cxx:310
 AliTRDpidRefMaker.cxx:311
 AliTRDpidRefMaker.cxx:312
 AliTRDpidRefMaker.cxx:313
 AliTRDpidRefMaker.cxx:314
 AliTRDpidRefMaker.cxx:315
 AliTRDpidRefMaker.cxx:316
 AliTRDpidRefMaker.cxx:317
 AliTRDpidRefMaker.cxx:318
 AliTRDpidRefMaker.cxx:319
 AliTRDpidRefMaker.cxx:320
 AliTRDpidRefMaker.cxx:321
 AliTRDpidRefMaker.cxx:322
 AliTRDpidRefMaker.cxx:323
 AliTRDpidRefMaker.cxx:324
 AliTRDpidRefMaker.cxx:325
 AliTRDpidRefMaker.cxx:326
 AliTRDpidRefMaker.cxx:327
 AliTRDpidRefMaker.cxx:328
 AliTRDpidRefMaker.cxx:329
 AliTRDpidRefMaker.cxx:330