ROOT logo
//////////////////////////////////////////////////////
//
// PID performance checker of the TRD
//
// Performs checks of ESD information for TRD-PID and recalculate PID based on OCDB information
// Also provides performance plots on detector based on the PID information - for the moment only 
// MC source is used but V0 is also possible. Here is a list of detector performance checks
//   - Integrated dE/dx per chamber
//   - <PH> as function of time bin and local radial position
//   - number of clusters/tracklet 
//   - number of tracklets/track 
//
// Author : Alex Wilk <wilka@uni-muenster.de>
//          Alex Bercuci <A.Bercuci@gsi.de>
//          Markus Fasel <M.Fasel@gsi.de>
//
///////////////////////////////////////////////////////

#include "TAxis.h"
#include "TROOT.h"
#include "TPDGCode.h"
#include "TCanvas.h"
#include "TF1.h"
#include "TH1F.h"
#include "TH1D.h"
#include "TH2F.h"
#include "TProfile.h"
#include "TProfile2D.h"
#include "TGraph.h"
#include "TGraphErrors.h"
#include "TLegend.h"

#include <TClonesArray.h>
#include <TObjArray.h>
#include <TList.h>

#include "AliESDEvent.h"
#include "AliESDInputHandler.h"
#include "AliTrackReference.h"

#include "AliAnalysisTask.h"

#include "AliTRDtrackerV1.h"
#include "AliTRDtrackV1.h"
#include "AliTRDcluster.h"
#include "AliTRDReconstructor.h"
#include "AliCDBManager.h"
#include "AliTRDpidUtil.h"

#include "Cal/AliTRDCalPID.h"
#include "Cal/AliTRDCalPIDNN.h"
#include "AliTRDcheckPID.h"
#include "AliTRDinfoGen.h"
#include "AliAnalysisManager.h"
#include "info/AliTRDtrackInfo.h"
#include "info/AliTRDpidInfo.h"
#include "info/AliTRDv0Info.h"

Char_t const * AliTRDcheckPID::fgMethod[3] = {"LQ", "NN", "ESD"};

ClassImp(AliTRDcheckPID)

//________________________________________________________________________
AliTRDcheckPID::AliTRDcheckPID() 
  :AliTRDrecoTask()
  ,fUtil(NULL)
  ,fGraph(NULL)
  ,fPID(NULL)
  ,fV0s(NULL)
  ,fMomentumAxis(NULL)
  ,fMinNTracklets(AliTRDgeometry::kNlayer)
  ,fMaxNTracklets(AliTRDgeometry::kNlayer)
 {
  //
  // Default constructor
  //
  SetNameTitle("TRDcheckPID", "Check TRD PID");
  LocalInit();
}

//________________________________________________________________________
AliTRDcheckPID::AliTRDcheckPID(char* name ) 
  :AliTRDrecoTask(name, "Check TRD PID")
  ,fUtil(NULL)
  ,fGraph(NULL)
  ,fPID(NULL)
  ,fV0s(NULL)
  ,fMomentumAxis(NULL)
  ,fMinNTracklets(AliTRDgeometry::kNlayer)
  ,fMaxNTracklets(AliTRDgeometry::kNlayer)
 {
  //
  // Default constructor
  //

  LocalInit();
  InitFunctorList();

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


//________________________________________________________________________
void AliTRDcheckPID::LocalInit() 
{
// Initialize working data

  // Initialize momentum axis with default values
  Double_t defaultMomenta[AliTRDCalPID::kNMom+1];
  for(Int_t imom = 0; imom < AliTRDCalPID::kNMom+1; imom++)
    defaultMomenta[imom] = AliTRDCalPID::GetMomentumBinning(imom);
  SetMomentumBinning(AliTRDCalPID::kNMom, defaultMomenta);

  memset(fEfficiency, 0, AliPID::kSPECIES*sizeof(TObjArray*));

  fUtil = new AliTRDpidUtil();
}

//________________________________________________________________________
AliTRDcheckPID::~AliTRDcheckPID() 
{
  AliAnalysisManager* amg = AliAnalysisManager::GetAnalysisManager();
  if (amg && amg->IsProofMode()) return;
  if(fPID){fPID->Delete(); delete fPID;}
  if(fGraph){fGraph->Delete(); delete fGraph;}
  if(fUtil) delete fUtil;
}


//________________________________________________________________________
void AliTRDcheckPID::UserCreateOutputObjects()
{
  // Create histograms
  // Called once
  
  AliTRDrecoTask::UserCreateOutputObjects();
  fPID = new TObjArray();
  fPID->SetOwner(kTRUE);
  PostData(2, fPID);
}

//________________________________________________________
void AliTRDcheckPID::UserExec(Option_t *opt)
{
  //
  // Execution part
  //

  fV0s = dynamic_cast<TObjArray *>(GetInputData(3));
  fPID->Delete();

  AliTRDrecoTask::UserExec(opt);
}


//_______________________________________________________
TObjArray * AliTRDcheckPID::Histos(){

  //
  // Create QA histograms
  //
  if(fContainer) return fContainer;

  Int_t xBins = AliPID::kSPECIES*fMomentumAxis->GetNbins(); 
  fContainer = new TObjArray(); fContainer->Expand(kNPlots); fContainer->SetOwner(kTRUE);

  const Float_t epsilon = 1./(2*(AliTRDpidUtil::kBins-1));     // get nice histos with bin center at 0 and 1
  TH1 *h = NULL;

  const Int_t kNmethodsPID=Int_t(sizeof(fgMethod)/sizeof(Char_t*));
  // histos with posterior probabilities for all particle species
  for(Int_t is=AliPID::kSPECIES; is--;){
    fEfficiency[is] = new TObjArray(kNmethodsPID);
    fEfficiency[is]->SetOwner();
    fEfficiency[is]->SetName(Form("Eff_%s", AliPID::ParticleShortName(is)));
    fContainer->AddAt(fEfficiency[is], is?kEfficiencyMu+is-1:kEfficiency);
    for(Int_t im=kNmethodsPID; im--;){
      if(!(h = (TH2F*)gROOT->FindObject(Form("PID_%s_%s", fgMethod[im], AliPID::ParticleShortName(is))))) {
        h = new TH2F(Form("PID_%s_%s", fgMethod[im], AliPID::ParticleShortName(is)), "", xBins, -0.5, xBins - 0.5,
          AliTRDpidUtil::kBins, 0.-epsilon, 1.+epsilon);
      } else h->Reset();
      fEfficiency[is]->AddAt(h, im);
    }
  }

  // histos of the dE/dx distribution for all 5 particle species and 11 momenta 
  if(!(h = (TH2F*)gROOT->FindObject("dEdx"))){
    h = new TH2F("dEdx", "", 
      xBins, -0.5, xBins - 0.5,
      100, 100, 5100);
//       200, 0, 10000);
  } else h->Reset();
  fContainer->AddAt(h, kdEdx);

  // histos of the dE/dx slices for all 5 particle species and 11 momenta 
  if(!(h = (TH2F*)gROOT->FindObject("dEdxSlice"))){
    h = new TH2F("dEdxSlice", "", 
      xBins*AliTRDpidUtil::kNNslices, -0.5, xBins*AliTRDpidUtil::kNNslices - 0.5,
      100, 100, 4100);
  } else h->Reset();
  fContainer->AddAt(h, kdEdxSlice);

  // histos of the pulse height distribution for all 5 particle species and 11 momenta 
  TObjArray *fPH = new TObjArray(2);
  fPH->SetOwner(); fPH->SetName("PH");
  fContainer->AddAt(fPH, kPH);
  if(!(h = (TProfile2D*)gROOT->FindObject("PHT"))){
    h = new TProfile2D("PHT", "<PH>(tb);p*species;tb [100*ns];entries", 
      xBins, -0.5, xBins - 0.5,
      AliTRDseedV1::kNtb, -0.5, AliTRDseedV1::kNtb - 0.5);
  } else h->Reset();
  fPH->AddAt(h, 0);
  if(!(h = (TProfile2D*)gROOT->FindObject("PHX"))){
    h = new TProfile2D("PHX", "<PH>(x);p*species;x_{drift} [cm];entries", 
      xBins, -0.5, xBins - 0.5,
      40, 0., 4.5);
  } else h->Reset();
  fPH->AddAt(h, 1);

  // histos of the number of clusters distribution for all 5 particle species and 11 momenta 
  if(!(h = (TH2F*)gROOT->FindObject("NClus"))){
    h = new TH2F("NClus", "", 
      xBins, -0.5, xBins - 0.5,
      50, -0.5, 49.5);
  } else h->Reset();
  fContainer->AddAt(h, kNClus);


  // momentum distributions - absolute and in momentum bins
  if(!(h = (TH1F*)gROOT->FindObject("hMom"))){
    h = new TH1F("hMom", "momentum distribution", fMomentumAxis->GetNbins(), fMomentumAxis->GetXmin(), fMomentumAxis->GetXmax());
  } else h->Reset();
  fContainer->AddAt(h, kMomentum);
  
  if(!(h = (TH1F*)gROOT->FindObject("hMomBin"))){
    h = new TH1F("hMomBin", "momentum distribution in momentum bins", fMomentumAxis->GetNbins(), fMomentumAxis->GetXmin(), fMomentumAxis->GetXmax());
  } else h->Reset();
  fContainer->AddAt(h, kMomentumBin);

  // Number of tracklets per track
  if(!(h = (TH2F*)gROOT->FindObject("nTracklets"))){
    h = new TH2F("nTracklets", "", 
      xBins, -0.5, xBins - 0.5,
      AliTRDgeometry::kNlayer, 0.5, AliTRDgeometry::kNlayer+.5);
  } else h->Reset();
  fContainer->AddAt(h, kNTracklets);

  // V0 performance
  if(!(h = (TH1F*)gROOT->FindObject("nV0"))){
    h = new TH1F("nV0", "V0s/track;v0/track;entries", 
      6, -0.5, 5.5);
  } else h->Reset();
  fContainer->AddAt(h, kV0);

  // dQ/dl for 1D-Likelihood
  if(!(h = (TH1F *)gROOT->FindObject("dQdl"))){
    h = new TH2F("dQdl", "dQ/dl per layer;p*species;dQ/dl [a.u.]", xBins, -0.5, xBins - 0.5, 800, 0., 40000.);
  } else h->Reset();
  fContainer->AddAt(h, kdQdl);

  return fContainer;
}


//________________________________________________________________________
Bool_t AliTRDcheckPID::CheckTrackQuality(const AliTRDtrackV1* track) const
{
  //
  // Check if the track is ok for PID
  //
  
  Int_t ntracklets = track->GetNumberOfTracklets();
  if(ntracklets >= fMinNTracklets && ntracklets <= fMaxNTracklets) return 1;
//   if(!fESD)
//     return 0;

  return 0;
}

//________________________________________________________________________
Int_t AliTRDcheckPID::CalcPDG(AliTRDtrackV1* track) 
{
// Documentation to come

 /* track -> SetReconstructor(AliTRDinfoGen::Reconstructor());
  (const_cast<AliTRDrecoParam*>(AliTRDinfoGen::Reconstructor()->GetRecoParam()))->SetPIDNeuralNetwork();
  track -> CookPID();*/

  if(track -> GetPID(AliPID::kElectron) > track -> GetPID(AliPID::kMuon) + track -> GetPID(AliPID::kPion)  + track -> GetPID(AliPID::kKaon) + track -> GetPID(AliPID::kProton)){
    return kElectron;
  }
  else if(track -> GetPID(kProton) > track -> GetPID(AliPID::kPion)  && track -> GetPID(AliPID::kProton) > track -> GetPID(AliPID::kKaon)  && track -> GetPID(AliPID::kProton) > track -> GetPID(AliPID::kMuon)){
    return kProton;
  }
  else if(track -> GetPID(AliPID::kKaon) > track -> GetPID(AliPID::kMuon)  && track -> GetPID(AliPID::kKaon) > track -> GetPID(AliPID::kPion)){
    return kKPlus;
  }
  else if(track -> GetPID(AliPID::kMuon) > track -> GetPID(AliPID::kPion)){
    return kMuonPlus;
  }
  else{
    return kPiPlus;
  }
}


//_______________________________________________________
TH1 *AliTRDcheckPID::PlotLQ(const AliTRDtrackV1 *track)
{
  //
  // Plot the probabilities for electrons using 2-dim LQ
  //

  if(!fkESD){
    AliDebug(2, "No ESD info available.");
    return NULL;
  }

  if(track) fkTrack = track;
  if(!fkTrack){
    AliDebug(2, "No Track defined.");
    return NULL;
  }

  ULong_t status;
  status = fkESD -> GetStatus();
  if(!(status&AliESDtrack::kTRDin)) return NULL;

  if(!CheckTrackQuality(fkTrack)) return NULL;

  AliTRDtrackV1 cTrack(*fkTrack);
  cTrack.SetReconstructor(AliTRDinfoGen::Reconstructor());

  Int_t pdg = 0;
  Float_t momentum = 0.;

  if(fkMC){
    if(fkMC->GetTrackRef()) momentum = fkMC->GetTrackRef()->P();
    pdg = fkMC->GetPDG();
  } else{
    //AliWarning("No MC info available!");
    momentum = cTrack.GetMomentum(0);
    pdg = CalcPDG(&cTrack);
  }
  if(!IsInRange(momentum)) return NULL;

  (const_cast<AliTRDrecoParam*>(AliTRDinfoGen::Reconstructor()->GetRecoParam()))->SetPIDNeuralNetwork(kFALSE);
  cTrack.CookPID();
  if(cTrack.GetNumberOfTrackletsPID() < fMinNTracklets) return NULL;
  Int_t species = AliTRDpidUtil::Pdg2Pid(pdg);

  TH2F *hPIDLQ(NULL);
  TObjArray *eff(NULL);
  for(Int_t is=AliPID::kSPECIES; is--;){
    if(!(eff = dynamic_cast<TObjArray *>(fContainer->At(is?kEfficiencyMu+is-1:kEfficiency)))){
      AliWarning("No Histogram List defined.");
      return NULL;
    }
    if(!(hPIDLQ = dynamic_cast<TH2F *>(eff->At(AliTRDpidUtil::kLQ)))){
      AliWarning("No Histogram defined.");
      return NULL;
    }
  
    hPIDLQ -> Fill(FindBin(species, momentum), cTrack.GetPID(is));
  }
  return hPIDLQ;
}




//_______________________________________________________
TH1 *AliTRDcheckPID::PlotNN(const AliTRDtrackV1 *track)
{
  //
  // Plot the probabilities for electrons using 2-dim LQ
  //

  if(!fkESD){
    AliDebug(2, "No ESD info available.");
    return NULL;
  }

  if(track) fkTrack = track;
  if(!fkTrack){
    AliDebug(2, "No Track defined.");
    return NULL;
  }
  
  ULong_t status;
  status = fkESD -> GetStatus();
  if(!(status&AliESDtrack::kTRDin)) return NULL;

  if(!CheckTrackQuality(fkTrack)) return NULL;
  
  AliTRDtrackV1 cTrack(*fkTrack);
  cTrack.SetReconstructor(AliTRDinfoGen::Reconstructor());

  Int_t pdg = 0;
  Float_t momentum = 0.;
  if(fkMC){
    if(fkMC->GetTrackRef()) momentum = fkMC->GetTrackRef()->P();
    pdg = fkMC->GetPDG();
  } else {
    //AliWarning("No MC info available!");
    momentum = cTrack.GetMomentum(0);
    pdg = CalcPDG(&cTrack);
  }
  if(!IsInRange(momentum)) return NULL;

  (const_cast<AliTRDrecoParam*>(AliTRDinfoGen::Reconstructor()->GetRecoParam()))->SetPIDNeuralNetwork();
  cTrack.CookPID();
  if(cTrack.GetNumberOfTrackletsPID() < fMinNTracklets) return NULL;

  Int_t species = AliTRDpidUtil::Pdg2Pid(pdg);


  TH2F *hPIDNN(NULL);
  TObjArray *eff(NULL);
  for(Int_t is=AliPID::kSPECIES; is--;){
    if(!(eff = dynamic_cast<TObjArray *>(fContainer->At(is?kEfficiencyMu+is-1:kEfficiency)))){
      AliWarning("No Histogram List defined.");
      return NULL;
    }
    if(!(hPIDNN = dynamic_cast<TH2F *>(eff->At(AliTRDpidUtil::kNN)))){
      AliWarning("No Histogram defined.");
      return NULL;
    }
  
    hPIDNN->Fill(FindBin(species, momentum), cTrack.GetPID(is));
  }
  return hPIDNN;
}



//_______________________________________________________
TH1 *AliTRDcheckPID::PlotESD(const AliTRDtrackV1 *track)
{
  //
  // Plot the probabilities for electrons using 2-dim LQ
  //

  if(!fkESD){
    AliDebug(2, "No ESD info available.");
    return NULL;
  }

  if(track) fkTrack = track;
  if(!fkTrack){
    AliDebug(2, "No Track defined.");
    return NULL;
  }
  
  ULong_t status;
  status = fkESD -> GetStatus();
  if(!(status&AliESDtrack::kTRDin)) return NULL;

  if(!CheckTrackQuality(fkTrack)) return NULL;
  if(fkTrack->GetNumberOfTrackletsPID() < fMinNTracklets) return NULL;
  
  Int_t pdg = 0;
  Float_t momentum = 0.;
  if(fkMC){
    if(fkMC->GetTrackRef()) momentum = fkMC->GetTrackRef()->P();
    pdg = fkMC->GetPDG();
  } else {
    //AliWarning("No MC info available!");
    AliTRDtrackV1 cTrack(*fkTrack);
    cTrack.SetReconstructor(AliTRDinfoGen::Reconstructor());
    momentum = cTrack.GetMomentum(0);
    pdg = CalcPDG(&cTrack);
  }
  if(!IsInRange(momentum)) return NULL;

  const Double32_t *pidESD = fkESD->GetResponseIter();
  Int_t species = AliTRDpidUtil::Pdg2Pid(pdg);

  TH2F *hPID(NULL);
  TObjArray *eff(NULL);
  for(Int_t is=AliPID::kSPECIES; is--;){
    if(!(eff = dynamic_cast<TObjArray *>(fContainer->At(is?kEfficiencyMu+is-1:kEfficiency)))){
      AliWarning("No Histogram List defined.");
      return NULL;
    }
    if(!(hPID = dynamic_cast<TH2F *>(eff->At(AliTRDpidUtil::kESD)))){
      AliWarning("No Histogram defined.");
      return NULL;
    }

    hPID->Fill(FindBin(species, momentum), pidESD[is]);
  }
  return hPID;
}



//_______________________________________________________
TH1 *AliTRDcheckPID::PlotdQdl(const AliTRDtrackV1 *track){
  //
  // Plot the total charge for the 1D Likelihood method
  //
  if(track) fkTrack = track;
  if(!fkTrack){
    AliDebug(2, "No Track defined");
    return NULL;
  }
  TH2 *hdQdl = dynamic_cast<TH2F *>(fContainer->At(kdQdl));
  if(!hdQdl){
    AliWarning("No Histogram defined");
    return NULL;
  }

  if(!CheckTrackQuality(fkTrack)) return NULL;

  Int_t pdg = 0;
  Float_t momentum = 0.;
  AliTRDtrackV1 cTrack(*fkTrack);
  if(fkMC){
    if(fkMC->GetTrackRef()) momentum = fkMC->GetTrackRef()->P();
    pdg = fkMC->GetPDG();
  } else {
    //AliWarning("No MC info available!");
    momentum = cTrack.GetMomentum(0);
    pdg = CalcPDG(&cTrack);
  }
  if(!IsInRange(momentum)) return NULL;

  // Init exchange container
  Int_t s(AliTRDpidUtil::Pdg2Pid(pdg));
  Int_t ibin = FindBin(s, momentum);

  AliTRDseedV1 *tracklet = NULL;
  for(Int_t iseed = 0; iseed < 6; iseed++){
    if(!((tracklet = fkTrack->GetTracklet(iseed)) && tracklet->IsOK())) continue;
    hdQdl->Fill(ibin, tracklet->GetdQdl());
  }
  return hdQdl;
}

//_______________________________________________________
TH1 *AliTRDcheckPID::PlotdEdx(const AliTRDtrackV1 *track)
{
  //
  // Plot the probabilities for electrons using 2-dim LQ
  //

  if(track) fkTrack = track;
  if(!fkTrack){
    AliDebug(2, "No Track defined.");
    return NULL;
  }
  
  if(!CheckTrackQuality(fkTrack)) return NULL;
  
  TH2F *hdEdx;
  if(!(hdEdx = dynamic_cast<TH2F *>(fContainer->At(kdEdx)))){
    AliWarning("No Histogram defined.");
    return NULL;
  }

  AliTRDtrackV1 cTrack(*fkTrack);
  cTrack.SetReconstructor(AliTRDinfoGen::Reconstructor());
  Int_t pdg = 0;
  Float_t momentum = 0.;
  if(fkMC){
    if(fkMC->GetTrackRef()) momentum = fkMC->GetTrackRef()->P();
    pdg = fkMC->GetPDG();
  } else {
    //AliWarning("No MC info available!");
    momentum = cTrack.GetMomentum(0);
    pdg = CalcPDG(&cTrack);
  }
  if(!IsInRange(momentum)) return NULL;

  // Init exchange container
  Int_t s(AliTRDpidUtil::Pdg2Pid(pdg));
  AliTRDpidInfo *pid = new AliTRDpidInfo(s);

  //(const_cast<AliTRDrecoParam*>(AliTRDinfoGen::Reconstructor()->GetRecoParam()))->SetPIDNeuralNetwork(kTRUE);

//  Float_t sumdEdx(0.);
  Int_t iBin = FindBin(s, momentum);
  AliTRDseedV1 *tracklet = NULL;
  for(Int_t ily = 0; ily < AliTRDgeometry::kNlayer; ily++){
    tracklet = cTrack.GetTracklet(ily);
    if(!tracklet) continue;
    //tracklet -> CookdEdx(AliTRDpidUtil::kNNslices);

    // fill exchange container
    pid->PushBack(tracklet->GetPlane(), 
                  AliTRDpidUtil::GetMomentumBin(tracklet->GetMomentum()), tracklet->GetdEdx());

/*    sumdEdx = 0.;
    for(Int_t i = AliTRDpidUtil::kNNslices; i--;) sumdEdx += tracklet->GetdEdx()[i];
    sumdEdx /= AliTRDCalPIDNN::kMLPscale;*/
    hdEdx -> Fill(iBin, tracklet->GetdQdl());
  }
  fPID->Add(pid);

  return hdEdx;
}


//_______________________________________________________
TH1 *AliTRDcheckPID::PlotdEdxSlice(const AliTRDtrackV1 *track)
{
  //
  // Plot the probabilities for electrons using 2-dim LQ
  //

  if(track) fkTrack = track;
  if(!fkTrack){
    AliDebug(2, "No Track defined.");
    return NULL;
  }
  
  if(!CheckTrackQuality(fkTrack)) return NULL;
  
  TH2F *hdEdxSlice;
  if(!(hdEdxSlice = dynamic_cast<TH2F*>(fContainer->At(kdEdxSlice)))){
    AliWarning("No Histogram defined.");
    return NULL;
  }

  AliTRDtrackV1 cTrack(*fkTrack);
  cTrack.SetReconstructor(AliTRDinfoGen::Reconstructor());
  Int_t pdg = 0;
  Float_t momentum = 0.;
  if(fkMC){
    if(fkMC->GetTrackRef()) momentum = fkMC->GetTrackRef()->P();
    pdg = fkMC->GetPDG();
  } else {
    //AliWarning("No MC info available!");
    momentum = cTrack.GetMomentum(0);
    pdg = CalcPDG(&cTrack);
  }
  if(!IsInRange(momentum)) return NULL;

//  (const_cast<AliTRDrecoParam*>(AliTRDinfoGen::Reconstructor()->GetRecoParam()))->SetPIDNeuralNetwork(kFALSE);
  Int_t iMomBin(-1);/* = fMomentumAxis->FindBin(momentum);*/
  Int_t species = AliTRDpidUtil::Pdg2Pid(pdg);
  Double32_t *dedxIter = fkESD->GetSliceIter(), *momIter = &dedxIter[AliTRDpidUtil::kNNslices*AliTRDgeometry::kNlayer];

/*  Int_t islice(0);
  while(islice<fkESD->GetNSlices()){
    printf("  slice[%2d] = %f\n", islice, dedxIter[islice]);
    islice++;
  }*/
  for(Int_t ily(0); ily < AliTRDgeometry::kNlayer; ily++){
    iMomBin = fMomentumAxis->FindBin(momIter[ily]);
    for(Int_t islice(0); islice < AliTRDpidUtil::kNNslices; islice++){
      hdEdxSlice -> Fill(species * fMomentumAxis->GetNbins() * AliTRDpidUtil::kNNslices + (iMomBin-1) * AliTRDpidUtil::kNNslices + islice, dedxIter[AliTRDpidUtil::kNNslices*ily+islice]);
    }
  }
//   Float_t *fdEdx;
//   AliTRDseedV1 *tracklet = NULL;
//   for(Int_t iChamb = 0; iChamb < AliTRDgeometry::kNlayer; iChamb++){
//     tracklet = cTrack.GetTracklet(iChamb);
//     if(!tracklet) continue;
// //    tracklet -> CookdEdx(AliTRDpidUtil::kNNslices);
//     fdEdx = const_cast<Float_t *>(tracklet->GetdEdx());
//     for(Int_t iSlice = 0; iSlice < AliTRDpidUtil::kNNslices; iSlice++){
//       hdEdxSlice -> Fill(species * fMomentumAxis->GetNbins() * AliTRDpidUtil::kNNslices + (iMomBin-1) * AliTRDpidUtil::kNNslices + iSlice, fdEdx[iSlice]);
//     }
//   }  

  return hdEdxSlice;
}


//_______________________________________________________
TH1 *AliTRDcheckPID::PlotPH(const AliTRDtrackV1 *track)
{
  //
  // Plot the probabilities for electrons using 2-dim LQ
  //

  if(track) fkTrack = track;
  if(!fkTrack){
    AliDebug(2, "No Track defined.");
    return NULL;
  }
  
  if(!CheckTrackQuality(fkTrack)) return NULL;
  
  TObjArray *arr = NULL;
  TProfile2D *hPHX, *hPHT;
  if(!(arr = dynamic_cast<TObjArray *>(fContainer->At(kPH)))){
    AliWarning("No Histogram defined.");
    return NULL;
  }
  hPHT = (TProfile2D*)arr->At(0);
  hPHX = (TProfile2D*)arr->At(1);

  Int_t pdg = 0;
  Float_t momentum = 0.;
  if(fkMC){
    if(fkMC->GetTrackRef()) momentum = fkMC->GetTrackRef()->P();
    pdg = fkMC->GetPDG();
  } else {
    //AliWarning("No MC info available!");
    AliTRDtrackV1 cTrack(*fkTrack);
    cTrack.SetReconstructor(AliTRDinfoGen::Reconstructor());
    momentum = cTrack.GetMomentum(0);
    pdg = CalcPDG(&cTrack);
  }
  if(!IsInRange(momentum)) return NULL;;

  AliTRDseedV1 *tracklet = NULL;
  AliTRDcluster *cluster = NULL;
  Int_t species = AliTRDpidUtil::Pdg2Pid(pdg);
  Int_t iBin = FindBin(species, momentum);
  for(Int_t iChamb = 0; iChamb < AliTRDgeometry::kNlayer; iChamb++){
    tracklet = fkTrack->GetTracklet(iChamb);
    if(!tracklet) continue;
    Float_t x0 = tracklet->GetX0(); 
    for(Int_t ic = 0; ic < AliTRDseedV1::kNclusters; ic++){
      if(!(cluster = tracklet->GetClusters(ic))) continue;
      hPHT -> Fill(iBin, cluster->GetLocalTimeBin(), TMath::Abs(cluster->GetQ()));
      if(ic<AliTRDseedV1::kNtb) hPHX -> Fill(iBin, x0 - cluster->GetX(), tracklet->GetdQdl(ic));
    }
  }
  return hPHT;
}


//_______________________________________________________
TH1 *AliTRDcheckPID::PlotNClus(const AliTRDtrackV1 *track)
{
  //
  // Plot the probabilities for electrons using 2-dim LQ
  //

  if(track) fkTrack = track;
  if(!fkTrack){
    AliDebug(2, "No Track defined.");
    return NULL;
  }
  
  if(!CheckTrackQuality(fkTrack)) return NULL;
  
  TH2F *hNClus;
  if(!(hNClus = dynamic_cast<TH2F *>(fContainer->At(kNClus)))){
    AliWarning("No Histogram defined.");
    return NULL;
  }


  Int_t pdg = 0;
  Float_t momentum = 0.;
  if(fkMC){
    if(fkMC->GetTrackRef()) momentum = fkMC->GetTrackRef()->P();
    pdg = fkMC->GetPDG();
  } else {
    //AliWarning("No MC info available!");
    AliTRDtrackV1 cTrack(*fkTrack);
    cTrack.SetReconstructor(AliTRDinfoGen::Reconstructor());
    momentum = cTrack.GetMomentum(0);
    pdg = CalcPDG(&cTrack);
  }
  if(!IsInRange(momentum)) return NULL;

  Int_t species = AliTRDpidUtil::AliTRDpidUtil::Pdg2Pid(pdg);
  Int_t iBin = FindBin(species, momentum); 
  AliTRDseedV1 *tracklet = NULL;
  for(Int_t iChamb = 0; iChamb < AliTRDgeometry::kNlayer; iChamb++){
    tracklet = fkTrack->GetTracklet(iChamb);
    if(!tracklet) continue;
    hNClus -> Fill(iBin, tracklet->GetN());
  }

  return hNClus;
}

//_______________________________________________________
TH1 *AliTRDcheckPID::PlotNTracklets(const AliTRDtrackV1 *track)
{
  //
  // Plot the probabilities for electrons using 2-dim LQ
  //

  if(track) fkTrack = track;
  if(!fkTrack){
    AliDebug(2, "No Track defined.");
    return NULL;
  }
  
  TH2F *hTracklets;
  if(!(hTracklets = dynamic_cast<TH2F *>(fContainer->At(kNTracklets)))){
    AliWarning("No Histogram defined.");
    return NULL;
  }

  AliTRDtrackV1 cTrack(*fkTrack);
  cTrack.SetReconstructor(AliTRDinfoGen::Reconstructor());
  Int_t pdg = 0;
  Float_t momentum = 0.;
  if(fkMC){
    if(fkMC->GetTrackRef()) momentum = fkMC->GetTrackRef()->P();
    pdg = fkMC->GetPDG();
  } else {
    //AliWarning("No MC info available!");
    momentum = cTrack.GetMomentum();
    pdg = CalcPDG(&cTrack);
  }
  Int_t species = AliTRDpidUtil::Pdg2Pid(pdg);
  if(!IsInRange(momentum)) return NULL;

  Int_t iBin = FindBin(species, momentum);
  hTracklets -> Fill(iBin, cTrack.GetNumberOfTracklets());
  return hTracklets;
}

//_______________________________________________________
TH1 *AliTRDcheckPID::PlotMom(const AliTRDtrackV1 *track)
{
  //
  // Plot the probabilities for electrons using 2-dim LQ
  //

  if(track) fkTrack = track;
  if(!fkTrack){
    AliDebug(2, "No Track defined.");
    return NULL;
  }
  
  if(!CheckTrackQuality(fkTrack)) return NULL;
  
  TH1F *hMom;
  if(!(hMom = dynamic_cast<TH1F *>(fContainer->At(kMomentum)))){
    AliWarning("No Histogram defined.");
    return NULL;
  }


//  Int_t pdg = 0;
  Float_t momentum = 0.;
  if(fkMC){
    if(fkMC->GetTrackRef()) momentum = fkMC->GetTrackRef()->P();
    //pdg = fkMC->GetPDG();
  } else {
    //AliWarning("No MC info available!");
    AliTRDtrackV1 cTrack(*fkTrack);
    cTrack.SetReconstructor(AliTRDinfoGen::Reconstructor());
    momentum = cTrack.GetMomentum(0);
    //pdg = CalcPDG(&cTrack);
  }
  if(IsInRange(momentum)) hMom -> Fill(momentum);
  return hMom;
}


//_______________________________________________________
TH1 *AliTRDcheckPID::PlotMomBin(const AliTRDtrackV1 *track)
{
  //
  // Plot the probabilities for electrons using 2-dim LQ
  //

  if(track) fkTrack = track;
  if(!fkTrack){
    AliDebug(2, "No Track defined.");
    return NULL;
  }
  
  if(!CheckTrackQuality(fkTrack)) return NULL;
  
  TH1F *hMomBin;
  if(!(hMomBin = dynamic_cast<TH1F *>(fContainer->At(kMomentumBin)))){
    AliWarning("No Histogram defined.");
    return NULL;
  }


  //Int_t pdg = 0;
  Float_t momentum = 0.;

  if(fkMC){
    if(fkMC->GetTrackRef()) momentum = fkMC->GetTrackRef()->P();
    //pdg = fkMC->GetPDG();
  } else {
    //AliWarning("No MC info available!");
    AliTRDtrackV1 cTrack(*fkTrack);
    cTrack.SetReconstructor(AliTRDinfoGen::Reconstructor());
    momentum = cTrack.GetMomentum(0);
  }
  if(IsInRange(momentum)) hMomBin -> Fill(fMomentumAxis->FindBin(momentum));
  return hMomBin;
}

//_______________________________________________________
TH1 *AliTRDcheckPID::PlotV0(const AliTRDtrackV1 *track)
{
  //
  // Plot the V0 performance against MC
  //

  if(track) fkTrack = track;
  if(!fkTrack){
    AliDebug(2, "No Track defined.");
    return NULL;
  }  
  if(!fkESD->HasV0()) return NULL;
  if(!HasMCdata()){ 
    AliDebug(1, "No MC defined.");
    return NULL;
  }
  if(!fContainer){
    AliWarning("No output container defined.");
    return NULL;
  }
  AliDebug(2, Form("TRACK[%d] species[%s][%d]\n", fkESD->GetId(), fkMC->GetPID()>=0?AliPID::ParticleShortName(fkMC->GetPID()):"none", fkMC->GetPDG()));

  TH1 *h(NULL);
  if(!(h = dynamic_cast<TH1F*>(fContainer->At(kV0)))) return NULL;
  Int_t sgn(0), n(0); AliTRDv0Info *v0(NULL);
  for(Int_t iv0(fV0s->GetEntriesFast()); iv0--;){
    if(!(v0=(AliTRDv0Info*)fV0s->At(iv0))) continue;
    if(!(sgn = v0->HasTrack(fkESD->GetId()))) continue;
    //for(Int_t is=AliPID::kSPECIES; is--;) v0->GetPID(is, track);
    //v0->Print();
    n++;
    //break;
  }
  h->Fill(n);
  return h;
}

//________________________________________________________
Bool_t AliTRDcheckPID::GetRefFigure(Int_t ifig)
{
// Steering function to retrieve performance plots

  Bool_t kFIRST = kTRUE;
  TGraphErrors *g = NULL;
  TAxis *ax = NULL;
  TObjArray *arr = NULL;
  TH1 *h1 = NULL, *h=NULL;
  TH2 *h2 = NULL;
  TList *content = NULL;
  switch(ifig){
  case kEfficiency:{
/*    gPad->Divide(2, 1, 1.e-5, 1.e-5);
    TList *l=gPad->GetListOfPrimitives();
    TVirtualPad *pad = ((TVirtualPad*)l->At(0));pad->cd();
    pad->SetMargin(0.1, 0.01, 0.1, 0.01);
*/
    TLegend *legEff = new TLegend(.64, .84, .98, .98);
    legEff->SetBorderSize(1);legEff->SetTextSize(0.03255879);
    legEff->SetFillColor(0);
    h=new TH1S("hEff", "", 1, .5, 11.);
    h->SetLineColor(1);h->SetLineWidth(1);
    ax = h->GetXaxis();
    ax->SetTitle("p [GeV/c]");
    ax->SetRangeUser(.5, 11.);
    ax->SetMoreLogLabels();
    ax = h->GetYaxis();
    ax->SetTitle("#epsilon_{#pi} [%]");
    ax->CenterTitle();
    ax->SetRangeUser(1.e-2, 10.);
    h->Draw();
    content = (TList *)fGraph->FindObject(Form("Eff_%s", AliTRDCalPID::GetPartName(AliPID::kPion)));
    if(!(g = (TGraphErrors*)content->At(AliTRDpidUtil::kLQ))) break;
    if(!g->GetN()) break;
    legEff->SetHeader("PID Method [PION]");
    g->Draw("pc"); legEff->AddEntry(g, "LQ 2D", "pl");
    if(! (g = (TGraphErrors*)content->At(AliTRDpidUtil::kNN))) break;
    g->Draw("pc"); legEff->AddEntry(g, "NN", "pl");
    if(! (g = (TGraphErrors*)content->At(AliTRDpidUtil::kESD))) break;
    g->Draw("p"); legEff->AddEntry(g, "ESD", "pl");
    legEff->Draw();
    gPad->SetLogy();
    gPad->SetLogx();
    gPad->SetGridy();
    gPad->SetGridx();
/*

    pad = ((TVirtualPad*)l->At(1));pad->cd();
    pad->SetMargin(0.1, 0.01, 0.1, 0.01);
    h=new TH1S("hThr", "", 1, .5, 11.);
    h->SetLineColor(1);h->SetLineWidth(1);
    ax = h->GetXaxis();
    ax->SetTitle("p [GeV/c]");
    ax->SetMoreLogLabels();
    ax = h->GetYaxis();
    ax->SetTitle("Threshold [%]");
    ax->SetRangeUser(5.e-2, 1.);
    h->Draw();
    content = (TList *)fGraph->FindObject("Thres");
    if(!(g = (TGraphErrors*)content->At(AliTRDpidUtil::kLQ))) break;
    if(!g->GetN()) break;
    g->Draw("pc");
    if(!(g = (TGraphErrors*)content->At(AliTRDpidUtil::kNN))) break;
    g->Draw("pc");
    if(!(g = (TGraphErrors*)content->At(AliTRDpidUtil::kESD))) break;
    g->Draw("p");
    gPad->SetLogx();
    gPad->SetGridy();
    gPad->SetGridx();*/
    return kTRUE;
  }
  case kEfficiencyKa:{
    gPad->Divide(2, 1, 1.e-5, 1.e-5);
    TList *l=gPad->GetListOfPrimitives();
    TVirtualPad *pad = ((TVirtualPad*)l->At(0));pad->cd();
    pad->SetMargin(0.1, 0.01, 0.1, 0.01);

    TLegend *legEff = new TLegend(.64, .84, .98, .98);
    legEff->SetBorderSize(1);legEff->SetTextSize(0.03255879);
    legEff->SetFillColor(0);
    h = (TH1S*)gROOT->FindObject("hEff");
    h=(TH1S*)h->Clone("hEff_K");
    h->SetYTitle("#epsilon_{K} [%]");
    h->GetYaxis()->SetRangeUser(1.e-2, 1.e2);
    h->Draw();
    content = (TList *)fGraph->FindObject(Form("Eff_%s", AliTRDCalPID::GetPartName(AliPID::kKaon)));
    if(!(g = (TGraphErrors*)content->At(AliTRDpidUtil::kLQ))) break;
    if(!g->GetN()) break;
    legEff->SetHeader("PID Method [KAON]");
    g->Draw("pc"); legEff->AddEntry(g, "LQ 2D", "pl");
    if(! (g = (TGraphErrors*)content->At(AliTRDpidUtil::kNN))) break;
    g->Draw("pc"); legEff->AddEntry(g, "NN", "pl");
    if(! (g = (TGraphErrors*)content->At(AliTRDpidUtil::kESD))) break;
    g->Draw("p"); legEff->AddEntry(g, "ESD", "pl");
    legEff->Draw();
    gPad->SetLogy();
    gPad->SetLogx();
    gPad->SetGridy();
    gPad->SetGridx();

    TLegend *legEff2 = new TLegend(.64, .84, .98, .98);
    legEff2->SetBorderSize(1);legEff2->SetTextSize(0.03255879);
    legEff2->SetFillColor(0);
    pad = ((TVirtualPad*)l->At(1));pad->cd();
    pad->SetMargin(0.1, 0.01, 0.1, 0.01);
    h=(TH1S*)h->Clone("hEff_p");
    h->SetYTitle("#epsilon_{p} [%]");
    h->GetYaxis()->SetRangeUser(1.e-2, 1.e2);
    h->Draw();
    content = (TList *)fGraph->FindObject(Form("Eff_%s", AliTRDCalPID::GetPartName(AliPID::kProton)));
    if(!(g = (TGraphErrors*)content->At(AliTRDpidUtil::kLQ))) break;
    if(!g->GetN()) break;
    legEff2->SetHeader("PID Method [PROTON]");
    g->Draw("pc"); legEff2->AddEntry(g, "LQ 2D", "pl");
    if(! (g = (TGraphErrors*)content->At(AliTRDpidUtil::kNN))) break;
    g->Draw("pc"); legEff2->AddEntry(g, "NN", "pl");
    if(! (g = (TGraphErrors*)content->At(AliTRDpidUtil::kESD))) break;
    g->Draw("p"); legEff2->AddEntry(g, "ESD", "pl");
    legEff2->Draw();
    gPad->SetLogy();
    gPad->SetLogx();
    gPad->SetGridy();
    gPad->SetGridx();
    return kTRUE;
  }
  case kdEdx:{
    // save 2.0 GeV projection as reference
    TLegend *legdEdx = new TLegend(.7, .7, .98, .98);
    legdEdx->SetBorderSize(1);
    kFIRST = kTRUE;
    if(!(h2 = (TH2F*)(fContainer->At(kdEdx)))) break;
    legdEdx->SetHeader("Particle Species");
    gPad->SetMargin(0.1, 0.01, 0.1, 0.01);
    for(Int_t is = AliPID::kSPECIES-1; is>=0; is--){
      Int_t bin = FindBin(is, 2.);
      h1 = h2->ProjectionY(Form("px%d", is), bin, bin);
      if(!h1->GetEntries()) continue;
      h1->Scale(1./h1->Integral());
      h1->SetLineColor(AliTRDCalPID::GetPartColor(is));
      if(kFIRST){
        h1->GetXaxis()->SetTitle("dE/dx (a.u.)");
        h1->GetYaxis()->SetTitle("<Entries>");
      }
      h = (TH1F*)h1->DrawClone(kFIRST ? "c" : "samec");
      legdEdx->AddEntry(h, Form("%s", AliTRDCalPID::GetPartName(is)), "l");
      kFIRST = kFALSE;
    }
    if(kFIRST) break;
    legdEdx->Draw();
    gPad->SetLogy();
    gPad->SetLogx(0);
    gPad->SetGridy();
    gPad->SetGridx();
    return kTRUE;
  }
  case kdEdxSlice:
    break;
  case kPH:{
/*    gPad->Divide(2, 1, 1.e-5, 1.e-5);
    TList *l=gPad->GetListOfPrimitives();
*/
    // save 2.0 GeV projection as reference
    TLegend *legPH = new TLegend(0.6865278,0.6882035,0.9655359,0.9688384,NULL,"brNDC");
    legPH->SetBorderSize(1);legPH->SetFillColor(0);
    legPH->SetHeader("Particle Species");
    if(!(arr = (TObjArray*)(fContainer->At(kPH)))) break;
    if(!(h2 = (TProfile2D*)(arr->At(0)))) break;

/*    TVirtualPad *pad = ((TVirtualPad*)l->At(0));pad->cd();
    pad->SetMargin(0.1, 0.01, 0.1, 0.01);*/
    kFIRST = kTRUE;
    for(Int_t is=0; is<AliPID::kSPECIES; is++){
      Int_t bin = FindBin(is, 2.);
      h1 = h2->ProjectionY(Form("pyt%d", is), bin, bin);
      if(!h1->GetEntries()) continue;
      h1->SetMarkerStyle(24);
      h1->SetMarkerColor(AliTRDCalPID::GetPartColor(is));
      h1->SetLineColor(AliTRDCalPID::GetPartColor(is));
      if(kFIRST){
        h1->GetXaxis()->SetTitle("t_{drift} [100*ns]");
        h1->GetYaxis()->SetTitle("<dQ/dt> @ 2GeV/c [a.u.]");
        h1->GetYaxis()->CenterTitle();h1->GetYaxis()->SetTitleOffset(1.2);
      }
      h = (TH1F*)h1->DrawClone(kFIRST ? "c" : "samec");
      legPH->AddEntry(h, Form("%s", AliTRDCalPID::GetPartName(is)), "pl");
      kFIRST = kFALSE;
    }

//     pad = ((TVirtualPad*)l->At(1));pad->cd();
//     pad->SetMargin(0.1, 0.01, 0.1, 0.01);
//     if(!(h2 = (TProfile2D*)(arr->At(1)))) break;
//     kFIRST = kTRUE;
//     for(Int_t is=0; is<AliPID::kSPECIES; is++){
//       Int_t bin = FindBin(is, 2.);
//       h1 = h2->ProjectionY(Form("pyx%d", is), bin, bin);
//       if(!h1->GetEntries()) continue;
//       h1->SetMarkerStyle(24);
//       h1->SetMarkerColor(AliTRDCalPID::GetPartColor(is));
//       h1->SetLineColor(AliTRDCalPID::GetPartColor(is));
//       if(kFIRST){
//         h1->GetXaxis()->SetTitle("x_{drift} [cm]");
//         h1->GetYaxis()->SetTitle("<dQ/dl> [a.u./cm]");
//       }
//       h1->DrawClone(kFIRST ? "c" : "samec");
//       kFIRST = kFALSE;
//     }

    if(kFIRST) break;
    legPH->Draw();
    gPad->SetLogy(0);
    gPad->SetLogx(0);
    gPad->SetGridy();
    gPad->SetGridx();
    return kTRUE;
  }
  case kNClus:{
    // save 2.0 GeV projection as reference
//     TLegend *legNClus = new TLegend(.13, .7, .4, .98);
//     legNClus->SetBorderSize(1);
//     legNClus->SetFillColor(0);

    kFIRST = kTRUE;
    if(!(h2 = (TH2F*)(fContainer->At(kNClus)))) break;
//    legNClus->SetHeader("Particle Species");
    for(Int_t is=0; is<AliPID::kSPECIES; is++){
      Int_t bin = FindBin(is, 2.);
      h1 = h2->ProjectionY(Form("pyNClus%d", is), bin, bin);
      if(!h1->GetEntries()) continue;
      h1->Scale(100./h1->Integral());
      //h1->SetMarkerStyle(24);
      //h1->SetMarkerColor(AliTRDCalPID::GetPartColor(is));
      h1->SetLineColor(AliTRDCalPID::GetPartColor(is));
      if(kFIRST){ 
        h1->GetXaxis()->SetTitle("N^{cl}/tracklet @ 2GeV/c");
        h1->GetYaxis()->SetTitle("Probability [%]");
        h1->GetYaxis()->CenterTitle();h1->GetYaxis()->SetTitleOffset(1.2);
        h = (TH1F*)h1->DrawClone("c");
        h->SetMaximum(20.);
        h->GetXaxis()->SetRangeUser(0., 35.);
        kFIRST = kFALSE;
      } else /*h = (TH1F*)*/h1->DrawClone("samec");

//      legNClus->AddEntry(h, Form("%s", AliTRDCalPID::GetPartName(is)), "l");
    }
    if(kFIRST) break;
//    legNClus->Draw();
    gPad->SetLogy(0);
    gPad->SetLogx(0);
    gPad->SetGridy();
    gPad->SetGridx();
    return kTRUE;
  }
  case kMomentum:
  case kMomentumBin:
    break; 
  case kNTracklets:{
/*    TLegend *legNClus = new TLegend(.4, .7, .68, .98);
    legNClus->SetBorderSize(1);*/
    kFIRST = kTRUE;
    if(!(h2 = (TH2F*)(fContainer->At(kNTracklets)))) break;
//    legNClus->SetHeader("Particle Species");
    for(Int_t is=0; is<AliPID::kSPECIES; is++){
      Int_t bin = FindBin(is, 2.);
      h1 = h2->ProjectionY(Form("pyNTracklets%d", is), bin, bin);
      if(!h1->GetEntries()) continue;
      h1->Scale(100./h1->Integral());
      //h1->SetMarkerStyle(24);
      //h1->SetMarkerColor(AliTRDCalPID::GetPartColor(is));
      h1->SetLineColor(AliTRDCalPID::GetPartColor(is));
      if(kFIRST){ 
        h1->GetXaxis()->SetTitle("N^{trklt}/track @ 2GeV/c");
        h1->GetXaxis()->SetRangeUser(1.,6.);
        h1->GetYaxis()->SetTitle("Probability [%]");
        h1->GetYaxis()->CenterTitle();h1->GetYaxis()->SetTitleOffset(1.2);
        h1->GetYaxis()->SetRangeUser(0.,40.);
      }
      (TH1F*)h1->DrawClone(kFIRST ? "c" : "samec");
      //legNClus->AddEntry(h, Form("%s", AliTRDCalPID::GetPartName(is)), "l");
      kFIRST = kFALSE;
    }
    if(kFIRST) break;
    //legNClus->Draw();
    gPad->SetLogy(0);
    gPad->SetLogx(0);
    gPad->SetGridy();
    gPad->SetGridx();
    return kTRUE;
  }
  }
  AliInfo(Form("Reference plot [%d] missing result", ifig));
  return kFALSE;
}

//________________________________________________________________________
void AliTRDcheckPID::MakeSummary()
{
// Put all representative pictures here
  if(!fGraph || !fContainer){
    AliError("Missing results");
    return;
  }
  TVirtualPad *p(NULL); TCanvas *cOut(NULL);

  const Int_t /*nx(2048),*/ ny(1536);
  cOut = new TCanvas(GetName(), "TRD PID", ny, ny);
  cOut->Divide(2,2, 1.e-5, 1.e-5);
  p=cOut->cd(1); p->SetRightMargin(0.01882353);p->SetTopMargin(0.01785714);
  GetRefFigure(0);
  p=cOut->cd(2); p->SetRightMargin(0.01882353);p->SetTopMargin(0.01785714);
  GetRefFigure(kNClus);
  p=cOut->cd(3); p->SetRightMargin(0.01882353);p->SetTopMargin(0.01785714);
  GetRefFigure(kPH);
  p=cOut->cd(4); p->SetRightMargin(0.01882353);p->SetTopMargin(0.01785714);
  GetRefFigure(kNTracklets);
  cOut->SaveAs(Form("%s.gif", cOut->GetName()));
}

//________________________________________________________________________
Bool_t AliTRDcheckPID::PostProcess()
{
  // Draw result to the screen
  // Called once at the end of the query

  if (!fContainer) {
    Printf("ERROR: list not available");
    return kFALSE;
  }

  TObjArray *eff(NULL);
  if(!fGraph){ 
    fGraph = new TObjArray(2*AliPID::kSPECIES);
    fGraph->SetOwner();
    
    if(!(eff = dynamic_cast<TObjArray *>(fContainer->At(kEfficiency)))){
      AliError("Efficiency container for Electrons missing.");
      return kFALSE;
    }
    EvaluateEfficiency(eff, fGraph, AliPID::kPion, 0.9);
    EvaluateEfficiency(eff, fGraph, AliPID::kKaon, 0.9);
    EvaluateEfficiency(eff, fGraph, AliPID::kProton, 0.9);
  }
  fNRefFigures = 12;
  return kTRUE;
}

//________________________________________________________________________
void AliTRDcheckPID::EvaluateEfficiency(const TObjArray * const histoContainer, TObjArray *results, Int_t species, Float_t electronEfficiency){
// Process PID information for pion efficiency

  fUtil->SetElectronEfficiency(electronEfficiency);


  const Int_t kNmethodsPID=Int_t(sizeof(fgMethod)/sizeof(Char_t*));
  Color_t colors[kNmethodsPID] = {kBlue, kGreen+2, kRed};
  Int_t markerStyle[kNmethodsPID] = {7, 7, 24};
  // efficiency graphs
  TGraphErrors *g(NULL);
  TObjArray *eff = new TObjArray(kNmethodsPID); eff->SetOwner(); eff->SetName(Form("Eff_%s", AliTRDCalPID::GetPartName(species)));
  results->AddAt(eff, species);
  for(Int_t iMethod = 0; iMethod < kNmethodsPID; iMethod++){
    eff->AddAt(g = new TGraphErrors(), iMethod);
    g->SetName(Form("%s", fgMethod[iMethod]));
    g->SetLineColor(colors[iMethod]);
    g->SetMarkerColor(colors[iMethod]);
    g->SetMarkerStyle(markerStyle[iMethod]);
  }

  // Threshold graphs if not already
  TObjArray *thres(NULL);
  if(!(results->At(AliPID::kSPECIES))){
    thres = new TObjArray(kNmethodsPID); thres->SetOwner(); 
    thres->SetName("Thres");
    results->AddAt(thres, AliPID::kSPECIES);
    for(Int_t iMethod = 0; iMethod < kNmethodsPID; iMethod++){
      thres->AddAt(g = new TGraphErrors(), iMethod);
      g->SetName(Form("%s", fgMethod[iMethod]));
      g->SetLineColor(colors[iMethod]);
      g->SetMarkerColor(colors[iMethod]);
      g->SetMarkerStyle(markerStyle[iMethod]);
    }
  }

  TH2F *hPtr[kNmethodsPID]={
    (TH2F*)histoContainer->At(AliTRDpidUtil::kLQ),
    (TH2F*)histoContainer->At(AliTRDpidUtil::kNN),
    (TH2F*)histoContainer->At(AliTRDpidUtil::kESD)
  };
  for(Int_t iMom = 0; iMom < fMomentumAxis->GetNbins(); iMom++){
    Float_t mom(fMomentumAxis->GetBinCenter(iMom+1));

    Int_t binEl(fMomentumAxis->GetNbins() * AliPID::kElectron + iMom + 1), 
	        binXX(fMomentumAxis->GetNbins() * species + iMom + 1);

    for(Int_t iMethod = 2; iMethod < kNmethodsPID; iMethod++){
      // Calculate the Species Efficiency at electronEfficiency% electron efficiency for each Method
  
      TH1D *histo1 = hPtr[iMethod] -> ProjectionY(Form("%s_el", fgMethod[iMethod]), binEl, binEl);
      TH1D *histo2 = hPtr[iMethod] -> ProjectionY(Form("%s_%s", fgMethod[iMethod], AliTRDCalPID::GetPartName(species)), binXX, binXX);

      if(!fUtil->CalculatePionEffi(histo1, histo2)) continue;
     
      g=(TGraphErrors*)eff->At(iMethod);
      g->SetPoint(iMom, mom, 1.e2*fUtil->GetPionEfficiency());
      g->SetPointError(iMom, 0., 1.e2*fUtil->GetError());
      AliDebug(2, Form("%s Efficiency for %s[p=%6.2fGeV/c] = %f +/- %f", fgMethod[iMethod], AliTRDCalPID::GetPartName(species), mom, fUtil->GetPionEfficiency(), fUtil->GetError()));

      if(!thres) continue;
      g=(TGraphErrors*)thres->At(iMethod);
      g->SetPoint(iMom, mom, fUtil->GetThreshold());
      g->SetPointError(iMom, 0., 0.);
    }
  }
}
 AliTRDcheckPID.cxx:1
 AliTRDcheckPID.cxx:2
 AliTRDcheckPID.cxx:3
 AliTRDcheckPID.cxx:4
 AliTRDcheckPID.cxx:5
 AliTRDcheckPID.cxx:6
 AliTRDcheckPID.cxx:7
 AliTRDcheckPID.cxx:8
 AliTRDcheckPID.cxx:9
 AliTRDcheckPID.cxx:10
 AliTRDcheckPID.cxx:11
 AliTRDcheckPID.cxx:12
 AliTRDcheckPID.cxx:13
 AliTRDcheckPID.cxx:14
 AliTRDcheckPID.cxx:15
 AliTRDcheckPID.cxx:16
 AliTRDcheckPID.cxx:17
 AliTRDcheckPID.cxx:18
 AliTRDcheckPID.cxx:19
 AliTRDcheckPID.cxx:20
 AliTRDcheckPID.cxx:21
 AliTRDcheckPID.cxx:22
 AliTRDcheckPID.cxx:23
 AliTRDcheckPID.cxx:24
 AliTRDcheckPID.cxx:25
 AliTRDcheckPID.cxx:26
 AliTRDcheckPID.cxx:27
 AliTRDcheckPID.cxx:28
 AliTRDcheckPID.cxx:29
 AliTRDcheckPID.cxx:30
 AliTRDcheckPID.cxx:31
 AliTRDcheckPID.cxx:32
 AliTRDcheckPID.cxx:33
 AliTRDcheckPID.cxx:34
 AliTRDcheckPID.cxx:35
 AliTRDcheckPID.cxx:36
 AliTRDcheckPID.cxx:37
 AliTRDcheckPID.cxx:38
 AliTRDcheckPID.cxx:39
 AliTRDcheckPID.cxx:40
 AliTRDcheckPID.cxx:41
 AliTRDcheckPID.cxx:42
 AliTRDcheckPID.cxx:43
 AliTRDcheckPID.cxx:44
 AliTRDcheckPID.cxx:45
 AliTRDcheckPID.cxx:46
 AliTRDcheckPID.cxx:47
 AliTRDcheckPID.cxx:48
 AliTRDcheckPID.cxx:49
 AliTRDcheckPID.cxx:50
 AliTRDcheckPID.cxx:51
 AliTRDcheckPID.cxx:52
 AliTRDcheckPID.cxx:53
 AliTRDcheckPID.cxx:54
 AliTRDcheckPID.cxx:55
 AliTRDcheckPID.cxx:56
 AliTRDcheckPID.cxx:57
 AliTRDcheckPID.cxx:58
 AliTRDcheckPID.cxx:59
 AliTRDcheckPID.cxx:60
 AliTRDcheckPID.cxx:61
 AliTRDcheckPID.cxx:62
 AliTRDcheckPID.cxx:63
 AliTRDcheckPID.cxx:64
 AliTRDcheckPID.cxx:65
 AliTRDcheckPID.cxx:66
 AliTRDcheckPID.cxx:67
 AliTRDcheckPID.cxx:68
 AliTRDcheckPID.cxx:69
 AliTRDcheckPID.cxx:70
 AliTRDcheckPID.cxx:71
 AliTRDcheckPID.cxx:72
 AliTRDcheckPID.cxx:73
 AliTRDcheckPID.cxx:74
 AliTRDcheckPID.cxx:75
 AliTRDcheckPID.cxx:76
 AliTRDcheckPID.cxx:77
 AliTRDcheckPID.cxx:78
 AliTRDcheckPID.cxx:79
 AliTRDcheckPID.cxx:80
 AliTRDcheckPID.cxx:81
 AliTRDcheckPID.cxx:82
 AliTRDcheckPID.cxx:83
 AliTRDcheckPID.cxx:84
 AliTRDcheckPID.cxx:85
 AliTRDcheckPID.cxx:86
 AliTRDcheckPID.cxx:87
 AliTRDcheckPID.cxx:88
 AliTRDcheckPID.cxx:89
 AliTRDcheckPID.cxx:90
 AliTRDcheckPID.cxx:91
 AliTRDcheckPID.cxx:92
 AliTRDcheckPID.cxx:93
 AliTRDcheckPID.cxx:94
 AliTRDcheckPID.cxx:95
 AliTRDcheckPID.cxx:96
 AliTRDcheckPID.cxx:97
 AliTRDcheckPID.cxx:98
 AliTRDcheckPID.cxx:99
 AliTRDcheckPID.cxx:100
 AliTRDcheckPID.cxx:101
 AliTRDcheckPID.cxx:102
 AliTRDcheckPID.cxx:103
 AliTRDcheckPID.cxx:104
 AliTRDcheckPID.cxx:105
 AliTRDcheckPID.cxx:106
 AliTRDcheckPID.cxx:107
 AliTRDcheckPID.cxx:108
 AliTRDcheckPID.cxx:109
 AliTRDcheckPID.cxx:110
 AliTRDcheckPID.cxx:111
 AliTRDcheckPID.cxx:112
 AliTRDcheckPID.cxx:113
 AliTRDcheckPID.cxx:114
 AliTRDcheckPID.cxx:115
 AliTRDcheckPID.cxx:116
 AliTRDcheckPID.cxx:117
 AliTRDcheckPID.cxx:118
 AliTRDcheckPID.cxx:119
 AliTRDcheckPID.cxx:120
 AliTRDcheckPID.cxx:121
 AliTRDcheckPID.cxx:122
 AliTRDcheckPID.cxx:123
 AliTRDcheckPID.cxx:124
 AliTRDcheckPID.cxx:125
 AliTRDcheckPID.cxx:126
 AliTRDcheckPID.cxx:127
 AliTRDcheckPID.cxx:128
 AliTRDcheckPID.cxx:129
 AliTRDcheckPID.cxx:130
 AliTRDcheckPID.cxx:131
 AliTRDcheckPID.cxx:132
 AliTRDcheckPID.cxx:133
 AliTRDcheckPID.cxx:134
 AliTRDcheckPID.cxx:135
 AliTRDcheckPID.cxx:136
 AliTRDcheckPID.cxx:137
 AliTRDcheckPID.cxx:138
 AliTRDcheckPID.cxx:139
 AliTRDcheckPID.cxx:140
 AliTRDcheckPID.cxx:141
 AliTRDcheckPID.cxx:142
 AliTRDcheckPID.cxx:143
 AliTRDcheckPID.cxx:144
 AliTRDcheckPID.cxx:145
 AliTRDcheckPID.cxx:146
 AliTRDcheckPID.cxx:147
 AliTRDcheckPID.cxx:148
 AliTRDcheckPID.cxx:149
 AliTRDcheckPID.cxx:150
 AliTRDcheckPID.cxx:151
 AliTRDcheckPID.cxx:152
 AliTRDcheckPID.cxx:153
 AliTRDcheckPID.cxx:154
 AliTRDcheckPID.cxx:155
 AliTRDcheckPID.cxx:156
 AliTRDcheckPID.cxx:157
 AliTRDcheckPID.cxx:158
 AliTRDcheckPID.cxx:159
 AliTRDcheckPID.cxx:160
 AliTRDcheckPID.cxx:161
 AliTRDcheckPID.cxx:162
 AliTRDcheckPID.cxx:163
 AliTRDcheckPID.cxx:164
 AliTRDcheckPID.cxx:165
 AliTRDcheckPID.cxx:166
 AliTRDcheckPID.cxx:167
 AliTRDcheckPID.cxx:168
 AliTRDcheckPID.cxx:169
 AliTRDcheckPID.cxx:170
 AliTRDcheckPID.cxx:171
 AliTRDcheckPID.cxx:172
 AliTRDcheckPID.cxx:173
 AliTRDcheckPID.cxx:174
 AliTRDcheckPID.cxx:175
 AliTRDcheckPID.cxx:176
 AliTRDcheckPID.cxx:177
 AliTRDcheckPID.cxx:178
 AliTRDcheckPID.cxx:179
 AliTRDcheckPID.cxx:180
 AliTRDcheckPID.cxx:181
 AliTRDcheckPID.cxx:182
 AliTRDcheckPID.cxx:183
 AliTRDcheckPID.cxx:184
 AliTRDcheckPID.cxx:185
 AliTRDcheckPID.cxx:186
 AliTRDcheckPID.cxx:187
 AliTRDcheckPID.cxx:188
 AliTRDcheckPID.cxx:189
 AliTRDcheckPID.cxx:190
 AliTRDcheckPID.cxx:191
 AliTRDcheckPID.cxx:192
 AliTRDcheckPID.cxx:193
 AliTRDcheckPID.cxx:194
 AliTRDcheckPID.cxx:195
 AliTRDcheckPID.cxx:196
 AliTRDcheckPID.cxx:197
 AliTRDcheckPID.cxx:198
 AliTRDcheckPID.cxx:199
 AliTRDcheckPID.cxx:200
 AliTRDcheckPID.cxx:201
 AliTRDcheckPID.cxx:202
 AliTRDcheckPID.cxx:203
 AliTRDcheckPID.cxx:204
 AliTRDcheckPID.cxx:205
 AliTRDcheckPID.cxx:206
 AliTRDcheckPID.cxx:207
 AliTRDcheckPID.cxx:208
 AliTRDcheckPID.cxx:209
 AliTRDcheckPID.cxx:210
 AliTRDcheckPID.cxx:211
 AliTRDcheckPID.cxx:212
 AliTRDcheckPID.cxx:213
 AliTRDcheckPID.cxx:214
 AliTRDcheckPID.cxx:215
 AliTRDcheckPID.cxx:216
 AliTRDcheckPID.cxx:217
 AliTRDcheckPID.cxx:218
 AliTRDcheckPID.cxx:219
 AliTRDcheckPID.cxx:220
 AliTRDcheckPID.cxx:221
 AliTRDcheckPID.cxx:222
 AliTRDcheckPID.cxx:223
 AliTRDcheckPID.cxx:224
 AliTRDcheckPID.cxx:225
 AliTRDcheckPID.cxx:226
 AliTRDcheckPID.cxx:227
 AliTRDcheckPID.cxx:228
 AliTRDcheckPID.cxx:229
 AliTRDcheckPID.cxx:230
 AliTRDcheckPID.cxx:231
 AliTRDcheckPID.cxx:232
 AliTRDcheckPID.cxx:233
 AliTRDcheckPID.cxx:234
 AliTRDcheckPID.cxx:235
 AliTRDcheckPID.cxx:236
 AliTRDcheckPID.cxx:237
 AliTRDcheckPID.cxx:238
 AliTRDcheckPID.cxx:239
 AliTRDcheckPID.cxx:240
 AliTRDcheckPID.cxx:241
 AliTRDcheckPID.cxx:242
 AliTRDcheckPID.cxx:243
 AliTRDcheckPID.cxx:244
 AliTRDcheckPID.cxx:245
 AliTRDcheckPID.cxx:246
 AliTRDcheckPID.cxx:247
 AliTRDcheckPID.cxx:248
 AliTRDcheckPID.cxx:249
 AliTRDcheckPID.cxx:250
 AliTRDcheckPID.cxx:251
 AliTRDcheckPID.cxx:252
 AliTRDcheckPID.cxx:253
 AliTRDcheckPID.cxx:254
 AliTRDcheckPID.cxx:255
 AliTRDcheckPID.cxx:256
 AliTRDcheckPID.cxx:257
 AliTRDcheckPID.cxx:258
 AliTRDcheckPID.cxx:259
 AliTRDcheckPID.cxx:260
 AliTRDcheckPID.cxx:261
 AliTRDcheckPID.cxx:262
 AliTRDcheckPID.cxx:263
 AliTRDcheckPID.cxx:264
 AliTRDcheckPID.cxx:265
 AliTRDcheckPID.cxx:266
 AliTRDcheckPID.cxx:267
 AliTRDcheckPID.cxx:268
 AliTRDcheckPID.cxx:269
 AliTRDcheckPID.cxx:270
 AliTRDcheckPID.cxx:271
 AliTRDcheckPID.cxx:272
 AliTRDcheckPID.cxx:273
 AliTRDcheckPID.cxx:274
 AliTRDcheckPID.cxx:275
 AliTRDcheckPID.cxx:276
 AliTRDcheckPID.cxx:277
 AliTRDcheckPID.cxx:278
 AliTRDcheckPID.cxx:279
 AliTRDcheckPID.cxx:280
 AliTRDcheckPID.cxx:281
 AliTRDcheckPID.cxx:282
 AliTRDcheckPID.cxx:283
 AliTRDcheckPID.cxx:284
 AliTRDcheckPID.cxx:285
 AliTRDcheckPID.cxx:286
 AliTRDcheckPID.cxx:287
 AliTRDcheckPID.cxx:288
 AliTRDcheckPID.cxx:289
 AliTRDcheckPID.cxx:290
 AliTRDcheckPID.cxx:291
 AliTRDcheckPID.cxx:292
 AliTRDcheckPID.cxx:293
 AliTRDcheckPID.cxx:294
 AliTRDcheckPID.cxx:295
 AliTRDcheckPID.cxx:296
 AliTRDcheckPID.cxx:297
 AliTRDcheckPID.cxx:298
 AliTRDcheckPID.cxx:299
 AliTRDcheckPID.cxx:300
 AliTRDcheckPID.cxx:301
 AliTRDcheckPID.cxx:302
 AliTRDcheckPID.cxx:303
 AliTRDcheckPID.cxx:304
 AliTRDcheckPID.cxx:305
 AliTRDcheckPID.cxx:306
 AliTRDcheckPID.cxx:307
 AliTRDcheckPID.cxx:308
 AliTRDcheckPID.cxx:309
 AliTRDcheckPID.cxx:310
 AliTRDcheckPID.cxx:311
 AliTRDcheckPID.cxx:312
 AliTRDcheckPID.cxx:313
 AliTRDcheckPID.cxx:314
 AliTRDcheckPID.cxx:315
 AliTRDcheckPID.cxx:316
 AliTRDcheckPID.cxx:317
 AliTRDcheckPID.cxx:318
 AliTRDcheckPID.cxx:319
 AliTRDcheckPID.cxx:320
 AliTRDcheckPID.cxx:321
 AliTRDcheckPID.cxx:322
 AliTRDcheckPID.cxx:323
 AliTRDcheckPID.cxx:324
 AliTRDcheckPID.cxx:325
 AliTRDcheckPID.cxx:326
 AliTRDcheckPID.cxx:327
 AliTRDcheckPID.cxx:328
 AliTRDcheckPID.cxx:329
 AliTRDcheckPID.cxx:330
 AliTRDcheckPID.cxx:331
 AliTRDcheckPID.cxx:332
 AliTRDcheckPID.cxx:333
 AliTRDcheckPID.cxx:334
 AliTRDcheckPID.cxx:335
 AliTRDcheckPID.cxx:336
 AliTRDcheckPID.cxx:337
 AliTRDcheckPID.cxx:338
 AliTRDcheckPID.cxx:339
 AliTRDcheckPID.cxx:340
 AliTRDcheckPID.cxx:341
 AliTRDcheckPID.cxx:342
 AliTRDcheckPID.cxx:343
 AliTRDcheckPID.cxx:344
 AliTRDcheckPID.cxx:345
 AliTRDcheckPID.cxx:346
 AliTRDcheckPID.cxx:347
 AliTRDcheckPID.cxx:348
 AliTRDcheckPID.cxx:349
 AliTRDcheckPID.cxx:350
 AliTRDcheckPID.cxx:351
 AliTRDcheckPID.cxx:352
 AliTRDcheckPID.cxx:353
 AliTRDcheckPID.cxx:354
 AliTRDcheckPID.cxx:355
 AliTRDcheckPID.cxx:356
 AliTRDcheckPID.cxx:357
 AliTRDcheckPID.cxx:358
 AliTRDcheckPID.cxx:359
 AliTRDcheckPID.cxx:360
 AliTRDcheckPID.cxx:361
 AliTRDcheckPID.cxx:362
 AliTRDcheckPID.cxx:363
 AliTRDcheckPID.cxx:364
 AliTRDcheckPID.cxx:365
 AliTRDcheckPID.cxx:366
 AliTRDcheckPID.cxx:367
 AliTRDcheckPID.cxx:368
 AliTRDcheckPID.cxx:369
 AliTRDcheckPID.cxx:370
 AliTRDcheckPID.cxx:371
 AliTRDcheckPID.cxx:372
 AliTRDcheckPID.cxx:373
 AliTRDcheckPID.cxx:374
 AliTRDcheckPID.cxx:375
 AliTRDcheckPID.cxx:376
 AliTRDcheckPID.cxx:377
 AliTRDcheckPID.cxx:378
 AliTRDcheckPID.cxx:379
 AliTRDcheckPID.cxx:380
 AliTRDcheckPID.cxx:381
 AliTRDcheckPID.cxx:382
 AliTRDcheckPID.cxx:383
 AliTRDcheckPID.cxx:384
 AliTRDcheckPID.cxx:385
 AliTRDcheckPID.cxx:386
 AliTRDcheckPID.cxx:387
 AliTRDcheckPID.cxx:388
 AliTRDcheckPID.cxx:389
 AliTRDcheckPID.cxx:390
 AliTRDcheckPID.cxx:391
 AliTRDcheckPID.cxx:392
 AliTRDcheckPID.cxx:393
 AliTRDcheckPID.cxx:394
 AliTRDcheckPID.cxx:395
 AliTRDcheckPID.cxx:396
 AliTRDcheckPID.cxx:397
 AliTRDcheckPID.cxx:398
 AliTRDcheckPID.cxx:399
 AliTRDcheckPID.cxx:400
 AliTRDcheckPID.cxx:401
 AliTRDcheckPID.cxx:402
 AliTRDcheckPID.cxx:403
 AliTRDcheckPID.cxx:404
 AliTRDcheckPID.cxx:405
 AliTRDcheckPID.cxx:406
 AliTRDcheckPID.cxx:407
 AliTRDcheckPID.cxx:408
 AliTRDcheckPID.cxx:409
 AliTRDcheckPID.cxx:410
 AliTRDcheckPID.cxx:411
 AliTRDcheckPID.cxx:412
 AliTRDcheckPID.cxx:413
 AliTRDcheckPID.cxx:414
 AliTRDcheckPID.cxx:415
 AliTRDcheckPID.cxx:416
 AliTRDcheckPID.cxx:417
 AliTRDcheckPID.cxx:418
 AliTRDcheckPID.cxx:419
 AliTRDcheckPID.cxx:420
 AliTRDcheckPID.cxx:421
 AliTRDcheckPID.cxx:422
 AliTRDcheckPID.cxx:423
 AliTRDcheckPID.cxx:424
 AliTRDcheckPID.cxx:425
 AliTRDcheckPID.cxx:426
 AliTRDcheckPID.cxx:427
 AliTRDcheckPID.cxx:428
 AliTRDcheckPID.cxx:429
 AliTRDcheckPID.cxx:430
 AliTRDcheckPID.cxx:431
 AliTRDcheckPID.cxx:432
 AliTRDcheckPID.cxx:433
 AliTRDcheckPID.cxx:434
 AliTRDcheckPID.cxx:435
 AliTRDcheckPID.cxx:436
 AliTRDcheckPID.cxx:437
 AliTRDcheckPID.cxx:438
 AliTRDcheckPID.cxx:439
 AliTRDcheckPID.cxx:440
 AliTRDcheckPID.cxx:441
 AliTRDcheckPID.cxx:442
 AliTRDcheckPID.cxx:443
 AliTRDcheckPID.cxx:444
 AliTRDcheckPID.cxx:445
 AliTRDcheckPID.cxx:446
 AliTRDcheckPID.cxx:447
 AliTRDcheckPID.cxx:448
 AliTRDcheckPID.cxx:449
 AliTRDcheckPID.cxx:450
 AliTRDcheckPID.cxx:451
 AliTRDcheckPID.cxx:452
 AliTRDcheckPID.cxx:453
 AliTRDcheckPID.cxx:454
 AliTRDcheckPID.cxx:455
 AliTRDcheckPID.cxx:456
 AliTRDcheckPID.cxx:457
 AliTRDcheckPID.cxx:458
 AliTRDcheckPID.cxx:459
 AliTRDcheckPID.cxx:460
 AliTRDcheckPID.cxx:461
 AliTRDcheckPID.cxx:462
 AliTRDcheckPID.cxx:463
 AliTRDcheckPID.cxx:464
 AliTRDcheckPID.cxx:465
 AliTRDcheckPID.cxx:466
 AliTRDcheckPID.cxx:467
 AliTRDcheckPID.cxx:468
 AliTRDcheckPID.cxx:469
 AliTRDcheckPID.cxx:470
 AliTRDcheckPID.cxx:471
 AliTRDcheckPID.cxx:472
 AliTRDcheckPID.cxx:473
 AliTRDcheckPID.cxx:474
 AliTRDcheckPID.cxx:475
 AliTRDcheckPID.cxx:476
 AliTRDcheckPID.cxx:477
 AliTRDcheckPID.cxx:478
 AliTRDcheckPID.cxx:479
 AliTRDcheckPID.cxx:480
 AliTRDcheckPID.cxx:481
 AliTRDcheckPID.cxx:482
 AliTRDcheckPID.cxx:483
 AliTRDcheckPID.cxx:484
 AliTRDcheckPID.cxx:485
 AliTRDcheckPID.cxx:486
 AliTRDcheckPID.cxx:487
 AliTRDcheckPID.cxx:488
 AliTRDcheckPID.cxx:489
 AliTRDcheckPID.cxx:490
 AliTRDcheckPID.cxx:491
 AliTRDcheckPID.cxx:492
 AliTRDcheckPID.cxx:493
 AliTRDcheckPID.cxx:494
 AliTRDcheckPID.cxx:495
 AliTRDcheckPID.cxx:496
 AliTRDcheckPID.cxx:497
 AliTRDcheckPID.cxx:498
 AliTRDcheckPID.cxx:499
 AliTRDcheckPID.cxx:500
 AliTRDcheckPID.cxx:501
 AliTRDcheckPID.cxx:502
 AliTRDcheckPID.cxx:503
 AliTRDcheckPID.cxx:504
 AliTRDcheckPID.cxx:505
 AliTRDcheckPID.cxx:506
 AliTRDcheckPID.cxx:507
 AliTRDcheckPID.cxx:508
 AliTRDcheckPID.cxx:509
 AliTRDcheckPID.cxx:510
 AliTRDcheckPID.cxx:511
 AliTRDcheckPID.cxx:512
 AliTRDcheckPID.cxx:513
 AliTRDcheckPID.cxx:514
 AliTRDcheckPID.cxx:515
 AliTRDcheckPID.cxx:516
 AliTRDcheckPID.cxx:517
 AliTRDcheckPID.cxx:518
 AliTRDcheckPID.cxx:519
 AliTRDcheckPID.cxx:520
 AliTRDcheckPID.cxx:521
 AliTRDcheckPID.cxx:522
 AliTRDcheckPID.cxx:523
 AliTRDcheckPID.cxx:524
 AliTRDcheckPID.cxx:525
 AliTRDcheckPID.cxx:526
 AliTRDcheckPID.cxx:527
 AliTRDcheckPID.cxx:528
 AliTRDcheckPID.cxx:529
 AliTRDcheckPID.cxx:530
 AliTRDcheckPID.cxx:531
 AliTRDcheckPID.cxx:532
 AliTRDcheckPID.cxx:533
 AliTRDcheckPID.cxx:534
 AliTRDcheckPID.cxx:535
 AliTRDcheckPID.cxx:536
 AliTRDcheckPID.cxx:537
 AliTRDcheckPID.cxx:538
 AliTRDcheckPID.cxx:539
 AliTRDcheckPID.cxx:540
 AliTRDcheckPID.cxx:541
 AliTRDcheckPID.cxx:542
 AliTRDcheckPID.cxx:543
 AliTRDcheckPID.cxx:544
 AliTRDcheckPID.cxx:545
 AliTRDcheckPID.cxx:546
 AliTRDcheckPID.cxx:547
 AliTRDcheckPID.cxx:548
 AliTRDcheckPID.cxx:549
 AliTRDcheckPID.cxx:550
 AliTRDcheckPID.cxx:551
 AliTRDcheckPID.cxx:552
 AliTRDcheckPID.cxx:553
 AliTRDcheckPID.cxx:554
 AliTRDcheckPID.cxx:555
 AliTRDcheckPID.cxx:556
 AliTRDcheckPID.cxx:557
 AliTRDcheckPID.cxx:558
 AliTRDcheckPID.cxx:559
 AliTRDcheckPID.cxx:560
 AliTRDcheckPID.cxx:561
 AliTRDcheckPID.cxx:562
 AliTRDcheckPID.cxx:563
 AliTRDcheckPID.cxx:564
 AliTRDcheckPID.cxx:565
 AliTRDcheckPID.cxx:566
 AliTRDcheckPID.cxx:567
 AliTRDcheckPID.cxx:568
 AliTRDcheckPID.cxx:569
 AliTRDcheckPID.cxx:570
 AliTRDcheckPID.cxx:571
 AliTRDcheckPID.cxx:572
 AliTRDcheckPID.cxx:573
 AliTRDcheckPID.cxx:574
 AliTRDcheckPID.cxx:575
 AliTRDcheckPID.cxx:576
 AliTRDcheckPID.cxx:577
 AliTRDcheckPID.cxx:578
 AliTRDcheckPID.cxx:579
 AliTRDcheckPID.cxx:580
 AliTRDcheckPID.cxx:581
 AliTRDcheckPID.cxx:582
 AliTRDcheckPID.cxx:583
 AliTRDcheckPID.cxx:584
 AliTRDcheckPID.cxx:585
 AliTRDcheckPID.cxx:586
 AliTRDcheckPID.cxx:587
 AliTRDcheckPID.cxx:588
 AliTRDcheckPID.cxx:589
 AliTRDcheckPID.cxx:590
 AliTRDcheckPID.cxx:591
 AliTRDcheckPID.cxx:592
 AliTRDcheckPID.cxx:593
 AliTRDcheckPID.cxx:594
 AliTRDcheckPID.cxx:595
 AliTRDcheckPID.cxx:596
 AliTRDcheckPID.cxx:597
 AliTRDcheckPID.cxx:598
 AliTRDcheckPID.cxx:599
 AliTRDcheckPID.cxx:600
 AliTRDcheckPID.cxx:601
 AliTRDcheckPID.cxx:602
 AliTRDcheckPID.cxx:603
 AliTRDcheckPID.cxx:604
 AliTRDcheckPID.cxx:605
 AliTRDcheckPID.cxx:606
 AliTRDcheckPID.cxx:607
 AliTRDcheckPID.cxx:608
 AliTRDcheckPID.cxx:609
 AliTRDcheckPID.cxx:610
 AliTRDcheckPID.cxx:611
 AliTRDcheckPID.cxx:612
 AliTRDcheckPID.cxx:613
 AliTRDcheckPID.cxx:614
 AliTRDcheckPID.cxx:615
 AliTRDcheckPID.cxx:616
 AliTRDcheckPID.cxx:617
 AliTRDcheckPID.cxx:618
 AliTRDcheckPID.cxx:619
 AliTRDcheckPID.cxx:620
 AliTRDcheckPID.cxx:621
 AliTRDcheckPID.cxx:622
 AliTRDcheckPID.cxx:623
 AliTRDcheckPID.cxx:624
 AliTRDcheckPID.cxx:625
 AliTRDcheckPID.cxx:626
 AliTRDcheckPID.cxx:627
 AliTRDcheckPID.cxx:628
 AliTRDcheckPID.cxx:629
 AliTRDcheckPID.cxx:630
 AliTRDcheckPID.cxx:631
 AliTRDcheckPID.cxx:632
 AliTRDcheckPID.cxx:633
 AliTRDcheckPID.cxx:634
 AliTRDcheckPID.cxx:635
 AliTRDcheckPID.cxx:636
 AliTRDcheckPID.cxx:637
 AliTRDcheckPID.cxx:638
 AliTRDcheckPID.cxx:639
 AliTRDcheckPID.cxx:640
 AliTRDcheckPID.cxx:641
 AliTRDcheckPID.cxx:642
 AliTRDcheckPID.cxx:643
 AliTRDcheckPID.cxx:644
 AliTRDcheckPID.cxx:645
 AliTRDcheckPID.cxx:646
 AliTRDcheckPID.cxx:647
 AliTRDcheckPID.cxx:648
 AliTRDcheckPID.cxx:649
 AliTRDcheckPID.cxx:650
 AliTRDcheckPID.cxx:651
 AliTRDcheckPID.cxx:652
 AliTRDcheckPID.cxx:653
 AliTRDcheckPID.cxx:654
 AliTRDcheckPID.cxx:655
 AliTRDcheckPID.cxx:656
 AliTRDcheckPID.cxx:657
 AliTRDcheckPID.cxx:658
 AliTRDcheckPID.cxx:659
 AliTRDcheckPID.cxx:660
 AliTRDcheckPID.cxx:661
 AliTRDcheckPID.cxx:662
 AliTRDcheckPID.cxx:663
 AliTRDcheckPID.cxx:664
 AliTRDcheckPID.cxx:665
 AliTRDcheckPID.cxx:666
 AliTRDcheckPID.cxx:667
 AliTRDcheckPID.cxx:668
 AliTRDcheckPID.cxx:669
 AliTRDcheckPID.cxx:670
 AliTRDcheckPID.cxx:671
 AliTRDcheckPID.cxx:672
 AliTRDcheckPID.cxx:673
 AliTRDcheckPID.cxx:674
 AliTRDcheckPID.cxx:675
 AliTRDcheckPID.cxx:676
 AliTRDcheckPID.cxx:677
 AliTRDcheckPID.cxx:678
 AliTRDcheckPID.cxx:679
 AliTRDcheckPID.cxx:680
 AliTRDcheckPID.cxx:681
 AliTRDcheckPID.cxx:682
 AliTRDcheckPID.cxx:683
 AliTRDcheckPID.cxx:684
 AliTRDcheckPID.cxx:685
 AliTRDcheckPID.cxx:686
 AliTRDcheckPID.cxx:687
 AliTRDcheckPID.cxx:688
 AliTRDcheckPID.cxx:689
 AliTRDcheckPID.cxx:690
 AliTRDcheckPID.cxx:691
 AliTRDcheckPID.cxx:692
 AliTRDcheckPID.cxx:693
 AliTRDcheckPID.cxx:694
 AliTRDcheckPID.cxx:695
 AliTRDcheckPID.cxx:696
 AliTRDcheckPID.cxx:697
 AliTRDcheckPID.cxx:698
 AliTRDcheckPID.cxx:699
 AliTRDcheckPID.cxx:700
 AliTRDcheckPID.cxx:701
 AliTRDcheckPID.cxx:702
 AliTRDcheckPID.cxx:703
 AliTRDcheckPID.cxx:704
 AliTRDcheckPID.cxx:705
 AliTRDcheckPID.cxx:706
 AliTRDcheckPID.cxx:707
 AliTRDcheckPID.cxx:708
 AliTRDcheckPID.cxx:709
 AliTRDcheckPID.cxx:710
 AliTRDcheckPID.cxx:711
 AliTRDcheckPID.cxx:712
 AliTRDcheckPID.cxx:713
 AliTRDcheckPID.cxx:714
 AliTRDcheckPID.cxx:715
 AliTRDcheckPID.cxx:716
 AliTRDcheckPID.cxx:717
 AliTRDcheckPID.cxx:718
 AliTRDcheckPID.cxx:719
 AliTRDcheckPID.cxx:720
 AliTRDcheckPID.cxx:721
 AliTRDcheckPID.cxx:722
 AliTRDcheckPID.cxx:723
 AliTRDcheckPID.cxx:724
 AliTRDcheckPID.cxx:725
 AliTRDcheckPID.cxx:726
 AliTRDcheckPID.cxx:727
 AliTRDcheckPID.cxx:728
 AliTRDcheckPID.cxx:729
 AliTRDcheckPID.cxx:730
 AliTRDcheckPID.cxx:731
 AliTRDcheckPID.cxx:732
 AliTRDcheckPID.cxx:733
 AliTRDcheckPID.cxx:734
 AliTRDcheckPID.cxx:735
 AliTRDcheckPID.cxx:736
 AliTRDcheckPID.cxx:737
 AliTRDcheckPID.cxx:738
 AliTRDcheckPID.cxx:739
 AliTRDcheckPID.cxx:740
 AliTRDcheckPID.cxx:741
 AliTRDcheckPID.cxx:742
 AliTRDcheckPID.cxx:743
 AliTRDcheckPID.cxx:744
 AliTRDcheckPID.cxx:745
 AliTRDcheckPID.cxx:746
 AliTRDcheckPID.cxx:747
 AliTRDcheckPID.cxx:748
 AliTRDcheckPID.cxx:749
 AliTRDcheckPID.cxx:750
 AliTRDcheckPID.cxx:751
 AliTRDcheckPID.cxx:752
 AliTRDcheckPID.cxx:753
 AliTRDcheckPID.cxx:754
 AliTRDcheckPID.cxx:755
 AliTRDcheckPID.cxx:756
 AliTRDcheckPID.cxx:757
 AliTRDcheckPID.cxx:758
 AliTRDcheckPID.cxx:759
 AliTRDcheckPID.cxx:760
 AliTRDcheckPID.cxx:761
 AliTRDcheckPID.cxx:762
 AliTRDcheckPID.cxx:763
 AliTRDcheckPID.cxx:764
 AliTRDcheckPID.cxx:765
 AliTRDcheckPID.cxx:766
 AliTRDcheckPID.cxx:767
 AliTRDcheckPID.cxx:768
 AliTRDcheckPID.cxx:769
 AliTRDcheckPID.cxx:770
 AliTRDcheckPID.cxx:771
 AliTRDcheckPID.cxx:772
 AliTRDcheckPID.cxx:773
 AliTRDcheckPID.cxx:774
 AliTRDcheckPID.cxx:775
 AliTRDcheckPID.cxx:776
 AliTRDcheckPID.cxx:777
 AliTRDcheckPID.cxx:778
 AliTRDcheckPID.cxx:779
 AliTRDcheckPID.cxx:780
 AliTRDcheckPID.cxx:781
 AliTRDcheckPID.cxx:782
 AliTRDcheckPID.cxx:783
 AliTRDcheckPID.cxx:784
 AliTRDcheckPID.cxx:785
 AliTRDcheckPID.cxx:786
 AliTRDcheckPID.cxx:787
 AliTRDcheckPID.cxx:788
 AliTRDcheckPID.cxx:789
 AliTRDcheckPID.cxx:790
 AliTRDcheckPID.cxx:791
 AliTRDcheckPID.cxx:792
 AliTRDcheckPID.cxx:793
 AliTRDcheckPID.cxx:794
 AliTRDcheckPID.cxx:795
 AliTRDcheckPID.cxx:796
 AliTRDcheckPID.cxx:797
 AliTRDcheckPID.cxx:798
 AliTRDcheckPID.cxx:799
 AliTRDcheckPID.cxx:800
 AliTRDcheckPID.cxx:801
 AliTRDcheckPID.cxx:802
 AliTRDcheckPID.cxx:803
 AliTRDcheckPID.cxx:804
 AliTRDcheckPID.cxx:805
 AliTRDcheckPID.cxx:806
 AliTRDcheckPID.cxx:807
 AliTRDcheckPID.cxx:808
 AliTRDcheckPID.cxx:809
 AliTRDcheckPID.cxx:810
 AliTRDcheckPID.cxx:811
 AliTRDcheckPID.cxx:812
 AliTRDcheckPID.cxx:813
 AliTRDcheckPID.cxx:814
 AliTRDcheckPID.cxx:815
 AliTRDcheckPID.cxx:816
 AliTRDcheckPID.cxx:817
 AliTRDcheckPID.cxx:818
 AliTRDcheckPID.cxx:819
 AliTRDcheckPID.cxx:820
 AliTRDcheckPID.cxx:821
 AliTRDcheckPID.cxx:822
 AliTRDcheckPID.cxx:823
 AliTRDcheckPID.cxx:824
 AliTRDcheckPID.cxx:825
 AliTRDcheckPID.cxx:826
 AliTRDcheckPID.cxx:827
 AliTRDcheckPID.cxx:828
 AliTRDcheckPID.cxx:829
 AliTRDcheckPID.cxx:830
 AliTRDcheckPID.cxx:831
 AliTRDcheckPID.cxx:832
 AliTRDcheckPID.cxx:833
 AliTRDcheckPID.cxx:834
 AliTRDcheckPID.cxx:835
 AliTRDcheckPID.cxx:836
 AliTRDcheckPID.cxx:837
 AliTRDcheckPID.cxx:838
 AliTRDcheckPID.cxx:839
 AliTRDcheckPID.cxx:840
 AliTRDcheckPID.cxx:841
 AliTRDcheckPID.cxx:842
 AliTRDcheckPID.cxx:843
 AliTRDcheckPID.cxx:844
 AliTRDcheckPID.cxx:845
 AliTRDcheckPID.cxx:846
 AliTRDcheckPID.cxx:847
 AliTRDcheckPID.cxx:848
 AliTRDcheckPID.cxx:849
 AliTRDcheckPID.cxx:850
 AliTRDcheckPID.cxx:851
 AliTRDcheckPID.cxx:852
 AliTRDcheckPID.cxx:853
 AliTRDcheckPID.cxx:854
 AliTRDcheckPID.cxx:855
 AliTRDcheckPID.cxx:856
 AliTRDcheckPID.cxx:857
 AliTRDcheckPID.cxx:858
 AliTRDcheckPID.cxx:859
 AliTRDcheckPID.cxx:860
 AliTRDcheckPID.cxx:861
 AliTRDcheckPID.cxx:862
 AliTRDcheckPID.cxx:863
 AliTRDcheckPID.cxx:864
 AliTRDcheckPID.cxx:865
 AliTRDcheckPID.cxx:866
 AliTRDcheckPID.cxx:867
 AliTRDcheckPID.cxx:868
 AliTRDcheckPID.cxx:869
 AliTRDcheckPID.cxx:870
 AliTRDcheckPID.cxx:871
 AliTRDcheckPID.cxx:872
 AliTRDcheckPID.cxx:873
 AliTRDcheckPID.cxx:874
 AliTRDcheckPID.cxx:875
 AliTRDcheckPID.cxx:876
 AliTRDcheckPID.cxx:877
 AliTRDcheckPID.cxx:878
 AliTRDcheckPID.cxx:879
 AliTRDcheckPID.cxx:880
 AliTRDcheckPID.cxx:881
 AliTRDcheckPID.cxx:882
 AliTRDcheckPID.cxx:883
 AliTRDcheckPID.cxx:884
 AliTRDcheckPID.cxx:885
 AliTRDcheckPID.cxx:886
 AliTRDcheckPID.cxx:887
 AliTRDcheckPID.cxx:888
 AliTRDcheckPID.cxx:889
 AliTRDcheckPID.cxx:890
 AliTRDcheckPID.cxx:891
 AliTRDcheckPID.cxx:892
 AliTRDcheckPID.cxx:893
 AliTRDcheckPID.cxx:894
 AliTRDcheckPID.cxx:895
 AliTRDcheckPID.cxx:896
 AliTRDcheckPID.cxx:897
 AliTRDcheckPID.cxx:898
 AliTRDcheckPID.cxx:899
 AliTRDcheckPID.cxx:900
 AliTRDcheckPID.cxx:901
 AliTRDcheckPID.cxx:902
 AliTRDcheckPID.cxx:903
 AliTRDcheckPID.cxx:904
 AliTRDcheckPID.cxx:905
 AliTRDcheckPID.cxx:906
 AliTRDcheckPID.cxx:907
 AliTRDcheckPID.cxx:908
 AliTRDcheckPID.cxx:909
 AliTRDcheckPID.cxx:910
 AliTRDcheckPID.cxx:911
 AliTRDcheckPID.cxx:912
 AliTRDcheckPID.cxx:913
 AliTRDcheckPID.cxx:914
 AliTRDcheckPID.cxx:915
 AliTRDcheckPID.cxx:916
 AliTRDcheckPID.cxx:917
 AliTRDcheckPID.cxx:918
 AliTRDcheckPID.cxx:919
 AliTRDcheckPID.cxx:920
 AliTRDcheckPID.cxx:921
 AliTRDcheckPID.cxx:922
 AliTRDcheckPID.cxx:923
 AliTRDcheckPID.cxx:924
 AliTRDcheckPID.cxx:925
 AliTRDcheckPID.cxx:926
 AliTRDcheckPID.cxx:927
 AliTRDcheckPID.cxx:928
 AliTRDcheckPID.cxx:929
 AliTRDcheckPID.cxx:930
 AliTRDcheckPID.cxx:931
 AliTRDcheckPID.cxx:932
 AliTRDcheckPID.cxx:933
 AliTRDcheckPID.cxx:934
 AliTRDcheckPID.cxx:935
 AliTRDcheckPID.cxx:936
 AliTRDcheckPID.cxx:937
 AliTRDcheckPID.cxx:938
 AliTRDcheckPID.cxx:939
 AliTRDcheckPID.cxx:940
 AliTRDcheckPID.cxx:941
 AliTRDcheckPID.cxx:942
 AliTRDcheckPID.cxx:943
 AliTRDcheckPID.cxx:944
 AliTRDcheckPID.cxx:945
 AliTRDcheckPID.cxx:946
 AliTRDcheckPID.cxx:947
 AliTRDcheckPID.cxx:948
 AliTRDcheckPID.cxx:949
 AliTRDcheckPID.cxx:950
 AliTRDcheckPID.cxx:951
 AliTRDcheckPID.cxx:952
 AliTRDcheckPID.cxx:953
 AliTRDcheckPID.cxx:954
 AliTRDcheckPID.cxx:955
 AliTRDcheckPID.cxx:956
 AliTRDcheckPID.cxx:957
 AliTRDcheckPID.cxx:958
 AliTRDcheckPID.cxx:959
 AliTRDcheckPID.cxx:960
 AliTRDcheckPID.cxx:961
 AliTRDcheckPID.cxx:962
 AliTRDcheckPID.cxx:963
 AliTRDcheckPID.cxx:964
 AliTRDcheckPID.cxx:965
 AliTRDcheckPID.cxx:966
 AliTRDcheckPID.cxx:967
 AliTRDcheckPID.cxx:968
 AliTRDcheckPID.cxx:969
 AliTRDcheckPID.cxx:970
 AliTRDcheckPID.cxx:971
 AliTRDcheckPID.cxx:972
 AliTRDcheckPID.cxx:973
 AliTRDcheckPID.cxx:974
 AliTRDcheckPID.cxx:975
 AliTRDcheckPID.cxx:976
 AliTRDcheckPID.cxx:977
 AliTRDcheckPID.cxx:978
 AliTRDcheckPID.cxx:979
 AliTRDcheckPID.cxx:980
 AliTRDcheckPID.cxx:981
 AliTRDcheckPID.cxx:982
 AliTRDcheckPID.cxx:983
 AliTRDcheckPID.cxx:984
 AliTRDcheckPID.cxx:985
 AliTRDcheckPID.cxx:986
 AliTRDcheckPID.cxx:987
 AliTRDcheckPID.cxx:988
 AliTRDcheckPID.cxx:989
 AliTRDcheckPID.cxx:990
 AliTRDcheckPID.cxx:991
 AliTRDcheckPID.cxx:992
 AliTRDcheckPID.cxx:993
 AliTRDcheckPID.cxx:994
 AliTRDcheckPID.cxx:995
 AliTRDcheckPID.cxx:996
 AliTRDcheckPID.cxx:997
 AliTRDcheckPID.cxx:998
 AliTRDcheckPID.cxx:999
 AliTRDcheckPID.cxx:1000
 AliTRDcheckPID.cxx:1001
 AliTRDcheckPID.cxx:1002
 AliTRDcheckPID.cxx:1003
 AliTRDcheckPID.cxx:1004
 AliTRDcheckPID.cxx:1005
 AliTRDcheckPID.cxx:1006
 AliTRDcheckPID.cxx:1007
 AliTRDcheckPID.cxx:1008
 AliTRDcheckPID.cxx:1009
 AliTRDcheckPID.cxx:1010
 AliTRDcheckPID.cxx:1011
 AliTRDcheckPID.cxx:1012
 AliTRDcheckPID.cxx:1013
 AliTRDcheckPID.cxx:1014
 AliTRDcheckPID.cxx:1015
 AliTRDcheckPID.cxx:1016
 AliTRDcheckPID.cxx:1017
 AliTRDcheckPID.cxx:1018
 AliTRDcheckPID.cxx:1019
 AliTRDcheckPID.cxx:1020
 AliTRDcheckPID.cxx:1021
 AliTRDcheckPID.cxx:1022
 AliTRDcheckPID.cxx:1023
 AliTRDcheckPID.cxx:1024
 AliTRDcheckPID.cxx:1025
 AliTRDcheckPID.cxx:1026
 AliTRDcheckPID.cxx:1027
 AliTRDcheckPID.cxx:1028
 AliTRDcheckPID.cxx:1029
 AliTRDcheckPID.cxx:1030
 AliTRDcheckPID.cxx:1031
 AliTRDcheckPID.cxx:1032
 AliTRDcheckPID.cxx:1033
 AliTRDcheckPID.cxx:1034
 AliTRDcheckPID.cxx:1035
 AliTRDcheckPID.cxx:1036
 AliTRDcheckPID.cxx:1037
 AliTRDcheckPID.cxx:1038
 AliTRDcheckPID.cxx:1039
 AliTRDcheckPID.cxx:1040
 AliTRDcheckPID.cxx:1041
 AliTRDcheckPID.cxx:1042
 AliTRDcheckPID.cxx:1043
 AliTRDcheckPID.cxx:1044
 AliTRDcheckPID.cxx:1045
 AliTRDcheckPID.cxx:1046
 AliTRDcheckPID.cxx:1047
 AliTRDcheckPID.cxx:1048
 AliTRDcheckPID.cxx:1049
 AliTRDcheckPID.cxx:1050
 AliTRDcheckPID.cxx:1051
 AliTRDcheckPID.cxx:1052
 AliTRDcheckPID.cxx:1053
 AliTRDcheckPID.cxx:1054
 AliTRDcheckPID.cxx:1055
 AliTRDcheckPID.cxx:1056
 AliTRDcheckPID.cxx:1057
 AliTRDcheckPID.cxx:1058
 AliTRDcheckPID.cxx:1059
 AliTRDcheckPID.cxx:1060
 AliTRDcheckPID.cxx:1061
 AliTRDcheckPID.cxx:1062
 AliTRDcheckPID.cxx:1063
 AliTRDcheckPID.cxx:1064
 AliTRDcheckPID.cxx:1065
 AliTRDcheckPID.cxx:1066
 AliTRDcheckPID.cxx:1067
 AliTRDcheckPID.cxx:1068
 AliTRDcheckPID.cxx:1069
 AliTRDcheckPID.cxx:1070
 AliTRDcheckPID.cxx:1071
 AliTRDcheckPID.cxx:1072
 AliTRDcheckPID.cxx:1073
 AliTRDcheckPID.cxx:1074
 AliTRDcheckPID.cxx:1075
 AliTRDcheckPID.cxx:1076
 AliTRDcheckPID.cxx:1077
 AliTRDcheckPID.cxx:1078
 AliTRDcheckPID.cxx:1079
 AliTRDcheckPID.cxx:1080
 AliTRDcheckPID.cxx:1081
 AliTRDcheckPID.cxx:1082
 AliTRDcheckPID.cxx:1083
 AliTRDcheckPID.cxx:1084
 AliTRDcheckPID.cxx:1085
 AliTRDcheckPID.cxx:1086
 AliTRDcheckPID.cxx:1087
 AliTRDcheckPID.cxx:1088
 AliTRDcheckPID.cxx:1089
 AliTRDcheckPID.cxx:1090
 AliTRDcheckPID.cxx:1091
 AliTRDcheckPID.cxx:1092
 AliTRDcheckPID.cxx:1093
 AliTRDcheckPID.cxx:1094
 AliTRDcheckPID.cxx:1095
 AliTRDcheckPID.cxx:1096
 AliTRDcheckPID.cxx:1097
 AliTRDcheckPID.cxx:1098
 AliTRDcheckPID.cxx:1099
 AliTRDcheckPID.cxx:1100
 AliTRDcheckPID.cxx:1101
 AliTRDcheckPID.cxx:1102
 AliTRDcheckPID.cxx:1103
 AliTRDcheckPID.cxx:1104
 AliTRDcheckPID.cxx:1105
 AliTRDcheckPID.cxx:1106
 AliTRDcheckPID.cxx:1107
 AliTRDcheckPID.cxx:1108
 AliTRDcheckPID.cxx:1109
 AliTRDcheckPID.cxx:1110
 AliTRDcheckPID.cxx:1111
 AliTRDcheckPID.cxx:1112
 AliTRDcheckPID.cxx:1113
 AliTRDcheckPID.cxx:1114
 AliTRDcheckPID.cxx:1115
 AliTRDcheckPID.cxx:1116
 AliTRDcheckPID.cxx:1117
 AliTRDcheckPID.cxx:1118
 AliTRDcheckPID.cxx:1119
 AliTRDcheckPID.cxx:1120
 AliTRDcheckPID.cxx:1121
 AliTRDcheckPID.cxx:1122
 AliTRDcheckPID.cxx:1123
 AliTRDcheckPID.cxx:1124
 AliTRDcheckPID.cxx:1125
 AliTRDcheckPID.cxx:1126
 AliTRDcheckPID.cxx:1127
 AliTRDcheckPID.cxx:1128
 AliTRDcheckPID.cxx:1129
 AliTRDcheckPID.cxx:1130
 AliTRDcheckPID.cxx:1131
 AliTRDcheckPID.cxx:1132
 AliTRDcheckPID.cxx:1133
 AliTRDcheckPID.cxx:1134
 AliTRDcheckPID.cxx:1135
 AliTRDcheckPID.cxx:1136
 AliTRDcheckPID.cxx:1137
 AliTRDcheckPID.cxx:1138
 AliTRDcheckPID.cxx:1139
 AliTRDcheckPID.cxx:1140
 AliTRDcheckPID.cxx:1141
 AliTRDcheckPID.cxx:1142
 AliTRDcheckPID.cxx:1143
 AliTRDcheckPID.cxx:1144
 AliTRDcheckPID.cxx:1145
 AliTRDcheckPID.cxx:1146
 AliTRDcheckPID.cxx:1147
 AliTRDcheckPID.cxx:1148
 AliTRDcheckPID.cxx:1149
 AliTRDcheckPID.cxx:1150
 AliTRDcheckPID.cxx:1151
 AliTRDcheckPID.cxx:1152
 AliTRDcheckPID.cxx:1153
 AliTRDcheckPID.cxx:1154
 AliTRDcheckPID.cxx:1155
 AliTRDcheckPID.cxx:1156
 AliTRDcheckPID.cxx:1157
 AliTRDcheckPID.cxx:1158
 AliTRDcheckPID.cxx:1159
 AliTRDcheckPID.cxx:1160
 AliTRDcheckPID.cxx:1161
 AliTRDcheckPID.cxx:1162
 AliTRDcheckPID.cxx:1163
 AliTRDcheckPID.cxx:1164
 AliTRDcheckPID.cxx:1165
 AliTRDcheckPID.cxx:1166
 AliTRDcheckPID.cxx:1167
 AliTRDcheckPID.cxx:1168
 AliTRDcheckPID.cxx:1169
 AliTRDcheckPID.cxx:1170
 AliTRDcheckPID.cxx:1171
 AliTRDcheckPID.cxx:1172
 AliTRDcheckPID.cxx:1173
 AliTRDcheckPID.cxx:1174
 AliTRDcheckPID.cxx:1175
 AliTRDcheckPID.cxx:1176
 AliTRDcheckPID.cxx:1177
 AliTRDcheckPID.cxx:1178
 AliTRDcheckPID.cxx:1179
 AliTRDcheckPID.cxx:1180
 AliTRDcheckPID.cxx:1181
 AliTRDcheckPID.cxx:1182
 AliTRDcheckPID.cxx:1183
 AliTRDcheckPID.cxx:1184
 AliTRDcheckPID.cxx:1185
 AliTRDcheckPID.cxx:1186
 AliTRDcheckPID.cxx:1187
 AliTRDcheckPID.cxx:1188
 AliTRDcheckPID.cxx:1189
 AliTRDcheckPID.cxx:1190
 AliTRDcheckPID.cxx:1191
 AliTRDcheckPID.cxx:1192
 AliTRDcheckPID.cxx:1193
 AliTRDcheckPID.cxx:1194
 AliTRDcheckPID.cxx:1195
 AliTRDcheckPID.cxx:1196
 AliTRDcheckPID.cxx:1197
 AliTRDcheckPID.cxx:1198
 AliTRDcheckPID.cxx:1199
 AliTRDcheckPID.cxx:1200
 AliTRDcheckPID.cxx:1201
 AliTRDcheckPID.cxx:1202
 AliTRDcheckPID.cxx:1203
 AliTRDcheckPID.cxx:1204
 AliTRDcheckPID.cxx:1205
 AliTRDcheckPID.cxx:1206
 AliTRDcheckPID.cxx:1207
 AliTRDcheckPID.cxx:1208
 AliTRDcheckPID.cxx:1209
 AliTRDcheckPID.cxx:1210
 AliTRDcheckPID.cxx:1211
 AliTRDcheckPID.cxx:1212
 AliTRDcheckPID.cxx:1213
 AliTRDcheckPID.cxx:1214
 AliTRDcheckPID.cxx:1215
 AliTRDcheckPID.cxx:1216
 AliTRDcheckPID.cxx:1217
 AliTRDcheckPID.cxx:1218
 AliTRDcheckPID.cxx:1219
 AliTRDcheckPID.cxx:1220
 AliTRDcheckPID.cxx:1221
 AliTRDcheckPID.cxx:1222
 AliTRDcheckPID.cxx:1223
 AliTRDcheckPID.cxx:1224
 AliTRDcheckPID.cxx:1225
 AliTRDcheckPID.cxx:1226
 AliTRDcheckPID.cxx:1227
 AliTRDcheckPID.cxx:1228
 AliTRDcheckPID.cxx:1229
 AliTRDcheckPID.cxx:1230
 AliTRDcheckPID.cxx:1231
 AliTRDcheckPID.cxx:1232
 AliTRDcheckPID.cxx:1233
 AliTRDcheckPID.cxx:1234
 AliTRDcheckPID.cxx:1235
 AliTRDcheckPID.cxx:1236
 AliTRDcheckPID.cxx:1237
 AliTRDcheckPID.cxx:1238
 AliTRDcheckPID.cxx:1239
 AliTRDcheckPID.cxx:1240
 AliTRDcheckPID.cxx:1241
 AliTRDcheckPID.cxx:1242
 AliTRDcheckPID.cxx:1243
 AliTRDcheckPID.cxx:1244
 AliTRDcheckPID.cxx:1245
 AliTRDcheckPID.cxx:1246
 AliTRDcheckPID.cxx:1247
 AliTRDcheckPID.cxx:1248
 AliTRDcheckPID.cxx:1249
 AliTRDcheckPID.cxx:1250
 AliTRDcheckPID.cxx:1251
 AliTRDcheckPID.cxx:1252
 AliTRDcheckPID.cxx:1253
 AliTRDcheckPID.cxx:1254
 AliTRDcheckPID.cxx:1255
 AliTRDcheckPID.cxx:1256
 AliTRDcheckPID.cxx:1257
 AliTRDcheckPID.cxx:1258
 AliTRDcheckPID.cxx:1259
 AliTRDcheckPID.cxx:1260
 AliTRDcheckPID.cxx:1261
 AliTRDcheckPID.cxx:1262
 AliTRDcheckPID.cxx:1263
 AliTRDcheckPID.cxx:1264
 AliTRDcheckPID.cxx:1265
 AliTRDcheckPID.cxx:1266
 AliTRDcheckPID.cxx:1267
 AliTRDcheckPID.cxx:1268
 AliTRDcheckPID.cxx:1269
 AliTRDcheckPID.cxx:1270
 AliTRDcheckPID.cxx:1271
 AliTRDcheckPID.cxx:1272
 AliTRDcheckPID.cxx:1273
 AliTRDcheckPID.cxx:1274
 AliTRDcheckPID.cxx:1275
 AliTRDcheckPID.cxx:1276
 AliTRDcheckPID.cxx:1277
 AliTRDcheckPID.cxx:1278
 AliTRDcheckPID.cxx:1279
 AliTRDcheckPID.cxx:1280
 AliTRDcheckPID.cxx:1281
 AliTRDcheckPID.cxx:1282
 AliTRDcheckPID.cxx:1283
 AliTRDcheckPID.cxx:1284
 AliTRDcheckPID.cxx:1285
 AliTRDcheckPID.cxx:1286
 AliTRDcheckPID.cxx:1287
 AliTRDcheckPID.cxx:1288
 AliTRDcheckPID.cxx:1289
 AliTRDcheckPID.cxx:1290
 AliTRDcheckPID.cxx:1291
 AliTRDcheckPID.cxx:1292
 AliTRDcheckPID.cxx:1293
 AliTRDcheckPID.cxx:1294
 AliTRDcheckPID.cxx:1295
 AliTRDcheckPID.cxx:1296
 AliTRDcheckPID.cxx:1297
 AliTRDcheckPID.cxx:1298
 AliTRDcheckPID.cxx:1299
 AliTRDcheckPID.cxx:1300
 AliTRDcheckPID.cxx:1301
 AliTRDcheckPID.cxx:1302
 AliTRDcheckPID.cxx:1303
 AliTRDcheckPID.cxx:1304
 AliTRDcheckPID.cxx:1305
 AliTRDcheckPID.cxx:1306
 AliTRDcheckPID.cxx:1307
 AliTRDcheckPID.cxx:1308
 AliTRDcheckPID.cxx:1309
 AliTRDcheckPID.cxx:1310
 AliTRDcheckPID.cxx:1311
 AliTRDcheckPID.cxx:1312
 AliTRDcheckPID.cxx:1313
 AliTRDcheckPID.cxx:1314
 AliTRDcheckPID.cxx:1315
 AliTRDcheckPID.cxx:1316
 AliTRDcheckPID.cxx:1317
 AliTRDcheckPID.cxx:1318
 AliTRDcheckPID.cxx:1319
 AliTRDcheckPID.cxx:1320
 AliTRDcheckPID.cxx:1321
 AliTRDcheckPID.cxx:1322
 AliTRDcheckPID.cxx:1323
 AliTRDcheckPID.cxx:1324
 AliTRDcheckPID.cxx:1325
 AliTRDcheckPID.cxx:1326
 AliTRDcheckPID.cxx:1327
 AliTRDcheckPID.cxx:1328
 AliTRDcheckPID.cxx:1329
 AliTRDcheckPID.cxx:1330
 AliTRDcheckPID.cxx:1331
 AliTRDcheckPID.cxx:1332
 AliTRDcheckPID.cxx:1333
 AliTRDcheckPID.cxx:1334
 AliTRDcheckPID.cxx:1335
 AliTRDcheckPID.cxx:1336
 AliTRDcheckPID.cxx:1337
 AliTRDcheckPID.cxx:1338
 AliTRDcheckPID.cxx:1339
 AliTRDcheckPID.cxx:1340
 AliTRDcheckPID.cxx:1341
 AliTRDcheckPID.cxx:1342
 AliTRDcheckPID.cxx:1343
 AliTRDcheckPID.cxx:1344
 AliTRDcheckPID.cxx:1345