ROOT logo
/**************************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: ALICE Offline.                                                 *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/

//=========================================================================//
//             AliEbyE Analysis for Particle Ratio Fluctuation             //
//                   Deepika Rathee  | Satyajit Jena                       //
//                   drathee@cern.ch | sjena@cern.ch                       //
//                  Date: Wed Jul  9 18:38:30 CEST 2014                    // 
//          New approch to find particle ratio to reduce memory            //
//                             (Test Only)                                 //
//        Copied from NetParticle Classes
//        Origin: Authors: Jochen Thaeder <jochen@thaeder.de>
//                         Michael Weber <m.weber@cern.ch>
//=========================================================================//

#include "TMath.h"
#include "TAxis.h"
#include "TSystem.h" 
#include "TFile.h" 
#include "TPRegexp.h"

#include "AliStack.h"
#include "AliMCEvent.h"
#include "AliMCParticle.h"
#include "AliESDtrackCuts.h"
#include "AliESDInputHandler.h"
#include "AliESDpid.h"
#include "AliAODInputHandler.h"
#include "AliAODEvent.h"
#include "AliAODMCParticle.h"
#include "AliCentrality.h"
#include "AliTracker.h"

#include "AliEbyEPidRatioHelper.h"

using namespace std;


ClassImp(AliEbyEPidRatioHelper)
//________________________________________________________________________
AliEbyEPidRatioHelper::AliEbyEPidRatioHelper() :
  fModeDistCreation(0),

  fInputEventHandler(NULL),
  fPIDResponse(NULL),
  fESD(NULL),
  fESDTrackCuts(NULL),
  fAOD(NULL),
  fAODtrackCutBit(1024),
  fIsMC(kFALSE),
  fMCEvent(NULL),
  fStack(NULL),

  fCentralityBin(-1),
  fCentralityPercentile(-1.),

  fCentralityBinMax(11),
  fVertexZMax(10.),
  fRapidityMax(0.9),
  fPhiMin(0.),
  fPhiMax(TMath::TwoPi()),
  fMinTrackLengthMC(70.),
  fNSigmaMaxCdd(3.),
  fNSigmaMaxCzz(3.),

  fPIDStrategy(0),
  fNSigmaMaxITS(4.),
  fNSigmaMaxTPC(4.),
  fNSigmaMaxTPClow(3.),
  fNSigmaMaxTOF(4.),
  fMinPtForTOFRequired(0.69),
  fMaxPtForTPClow(0.69),

  fHEventStat0(NULL),
  fHEventStat1(NULL),
  fHEventStatMax(6),

  fHTriggerStat(NULL),
  fNTriggers(5),

  fHCentralityStat(NULL),
  fHCentralityPer(NULL),
  fHCentralityPerAll(NULL),
  fNCentralityBins(11),
  
  fSubSamples(25),
  fRandom(NULL),
  fSubSampleIdx(1), 

  fIsRatio(kFALSE), 
  fIsPtBin(kFALSE), fIsDetectorWise(kFALSE) {
  // Constructor   
  
  AliLog::SetClassDebugLevel("AliEbyEPidRatioHelper",10);
}

const Float_t AliEbyEPidRatioHelper::fgkfHistBinWitdthRap = 0.1;
const Float_t AliEbyEPidRatioHelper::fgkfHistBinWitdthPt  = 0.3; // 0.08 // 300 MeV  // was 80 MeV

const Float_t AliEbyEPidRatioHelper::fgkfHistRangeCent[]  = {-0.5, 10.5};
const Int_t   AliEbyEPidRatioHelper::fgkfHistNBinsCent    = 11 ;

const Float_t AliEbyEPidRatioHelper::fgkfHistRangeEta[]   = {-0.9, 0.9};
const Int_t   AliEbyEPidRatioHelper::fgkfHistNBinsEta     = Int_t((AliEbyEPidRatioHelper::fgkfHistRangeEta[1] -
								   AliEbyEPidRatioHelper::fgkfHistRangeEta[0]) / 
								  AliEbyEPidRatioHelper::fgkfHistBinWitdthRap) +1;

const Float_t AliEbyEPidRatioHelper::fgkfHistRangeRap[]   = {-0.8, 0.8};
const Int_t   AliEbyEPidRatioHelper::fgkfHistNBinsRap     = Int_t((AliEbyEPidRatioHelper::fgkfHistRangeRap[1] - AliEbyEPidRatioHelper::fgkfHistRangeRap[0]) / AliEbyEPidRatioHelper::fgkfHistBinWitdthRap) +1;

const Float_t AliEbyEPidRatioHelper::fgkfHistRangePhi[]   = {0.0, static_cast<Float_t>(TMath::TwoPi())};
const Int_t   AliEbyEPidRatioHelper::fgkfHistNBinsPhi     = 42;

const Float_t AliEbyEPidRatioHelper::fgkfHistRangePt[]    = {0.2, 2.9}; // {0.2, 5.}; // was {0.3, 2.22}
const Int_t   AliEbyEPidRatioHelper::fgkfHistNBinsPt      = Int_t((AliEbyEPidRatioHelper::fgkfHistRangePt[1] - AliEbyEPidRatioHelper::fgkfHistRangePt[0]) / AliEbyEPidRatioHelper::fgkfHistBinWitdthPt); 

const Float_t AliEbyEPidRatioHelper::fgkfHistRangeSign[]  = {-1.5, 1.5};
const Int_t   AliEbyEPidRatioHelper::fgkfHistNBinsSign    =  3;

const Char_t* AliEbyEPidRatioHelper::fgkEventNames[]         = {"All", "IsTriggered", "HasVertex", "Vz<Vz_{Max}", "Centrality [0,100]%"};
const Char_t* AliEbyEPidRatioHelper::fgkCentralityMaxNames[] = {"5", "10", "20", "30", "40", "50", "60", "70", "80", "90", "100"};
const Char_t* AliEbyEPidRatioHelper::fgkTriggerNames[]       = {"kMB", "kCentral", "kSemiCentral", "kEMCEJE", "kEMCEGA" }; 
const Char_t* AliEbyEPidRatioHelper::fgkCentralityNames[]    = {"0-5%", "5-10%", "10-20%", "20-30%", "30-40%", "40-50%","50-60%", "60-70%", "70-80%", "80-90%", "90-100%"};

const Char_t* AliEbyEPidRatioHelper::fgkPidName[4]      = {"Nch","Npi","Nka","Npr"};
const Char_t* AliEbyEPidRatioHelper::fgkPidShLatex[4]      = {"N","#pi","K","p"};
const Char_t* AliEbyEPidRatioHelper::fgkPidLatex[4][2]  = {{"N_{-}","N_{+}"}, {"N_{#pi^{-}}","N_{#pi^{+}}"},{"N_{K^{-}}","N_{K^{+}}"}, {"N_{#bar{p}}","N_{p}"}};
const Char_t* AliEbyEPidRatioHelper::fgkPidTitles[4][2] = {{"Negative","Positive"},{"Anti-Pions","Pions"},{"Anti-Kaons","Kaons"}, {"Anti-Protons","Protons"}};


const Char_t* AliEbyEPidRatioHelper::fgkNetHistName[4]      = {"","Plus","Minus","Net"};
const Char_t* AliEbyEPidRatioHelper::fgkNetHistLatex[4]      = {"+ + +","+","-","+ - -"};
const Int_t AliEbyEPidRatioHelper::fgkfNetHistBin[4][4]  = {{3000,2400,1600,1200}, {1500,1200,800,600},{1500,1200,800,600},{600,600,600,600}};


//________________________________________________________________________
AliEbyEPidRatioHelper::~AliEbyEPidRatioHelper() {
  // Destructor

  if (fRandom)
    delete fRandom;

  return;
}

//________________________________________________________________________
void AliEbyEPidRatioHelper::SetPhiRange(Float_t f1, Float_t f2) {
  // -- Set phi range and adopt to phi-histogram
  
  fPhiMin = f1; 
  fPhiMax = (f1 < f2) ? f2 : f2+TMath::TwoPi();

  Float_t phiMin = fPhiMin;
  Float_t phiMax = fPhiMax;
  
  // -- Update Ranges
  Float_t binWidth = (AliEbyEPidRatioHelper::fgkfHistRangePhi[1] - AliEbyEPidRatioHelper::fgkfHistRangePhi[0]) / 
    Float_t(AliEbyEPidRatioHelper::fgkfHistNBinsPhi);

  Float_t lowEdge  = AliEbyEPidRatioHelper::fgkfHistRangePhi[0] - binWidth;
  Float_t highEdge = AliEbyEPidRatioHelper::fgkfHistRangePhi[0];

  for (Int_t ii = 1; ii <= AliEbyEPidRatioHelper::fgkfHistNBinsPhi; ++ii) {
    lowEdge += binWidth;
    highEdge += binWidth;

    if (phiMin >= lowEdge && phiMin < highEdge ) 
      phiMin = lowEdge;
    if (phiMax > lowEdge && phiMax <= highEdge ) 
      phiMax = highEdge;
  }
  
  printf(">>>> Update Phi Range : [%f,%f] -> [%f,%f]\n", fPhiMin, fPhiMax, phiMin, phiMax);
  fPhiMin = phiMin;
  fPhiMax = phiMax;
}



//________________________________________________________________________
Int_t AliEbyEPidRatioHelper::Initialize(AliESDtrackCuts *cuts, Bool_t isMC, Bool_t isRatio, Bool_t isPtBin, Bool_t isDetWise, Int_t trackCutBit, Int_t modeDistCreation) {
  // -- Initialize helper

  Int_t iResult = 0;

  // -- ESD track cuts
  fESDTrackCuts     = cuts;

  
  // -- Is MC
  fIsMC             = isMC;
  fIsRatio          = isRatio;
  fIsPtBin          = isPtBin;
  fIsDetectorWise   = isDetWise;

  

  // -- AOD track filter bit
  fAODtrackCutBit   = trackCutBit;
    
  // -- mode Distribution creation
  fModeDistCreation = modeDistCreation;

  // -- Setup event cut statistics 
  InitializeEventStats();

  // -- Setup trigger statistics 
  InitializeTriggerStats();

  // -- Setup centrality statistics 
  InitializeCentralityStats();

  // -- PRINT PID Strategy
  //    0 :   TPC(TPClow+TPCHigh)
  //    1 :   ITS
  //    2 :   TOF
  //    3 :   ITS+TPC(TPClow+TPCHigh)
  //    4 :   TPC(TPClow+TPCHigh)+TOF
  //    5 :   TPC(TPClow+TPCHigh)+TOF for pT >= fMinPtForTOFRequired TOF is required, below, only used if there
  //    6 :   TPC(TPClow+TPCHigh)+ITS+TOF with TOF only for those tracks which have TOF information
  //    7 :   TPC(TPClow+TPCHigh)+ITS+TOF for pT >= fMinPtForTOFRequired TOF is required, below, only used if there
  //    8 :   TPC(TPClow+TPCHigh)+ITS+TOF 
  printf(">>>>  PID STRATEGY: %d || sigmaMax: ITS %.2f TPC %.2f TOF %.2f \n", fPIDStrategy, fNSigmaMaxITS, fNSigmaMaxTPC, fNSigmaMaxTOF);            
                      
  // -- Initialize random number generator
  fRandom = new TRandom3();
  fRandom->SetSeed();
                      
  return iResult;
}

//________________________________________________________________________
Int_t AliEbyEPidRatioHelper::SetupEvent(AliESDInputHandler *esdHandler, AliAODInputHandler *aodHandler, AliMCEvent *mcEvent) {
  // -- Setup Event
  
  // -- Get ESD objects
  if(esdHandler){
    fInputEventHandler = static_cast<AliInputEventHandler*>(esdHandler);
    fESD               = dynamic_cast<AliESDEvent*>(fInputEventHandler->GetEvent());
    if (!fESD) {
      AliError("ESD event handler not available");
      return -1;
    }
  }

  // -- Get AOD objects
  else if(aodHandler){
    fInputEventHandler = static_cast<AliInputEventHandler*>(aodHandler);
    fAOD               = dynamic_cast<AliAODEvent*>(fInputEventHandler->GetEvent());
    if (!fAOD) {
      AliError("AOD event handler not available");
      return -1;
    }
  }

  // -- Get Common objects
  fPIDResponse = fInputEventHandler->GetPIDResponse();

  // -- Get MC objects
  fMCEvent     = mcEvent;
  if (fMCEvent)
    fStack     = fMCEvent->Stack();

  // -- Get event centrality
  // >  0-5|5-10|10-20|20-30|30-40|40-50|50-60|60-70|70-80|80-90|90-100 --> 11 bins
  // >   0   1     2     3     4     5     6     7     8     9     10

  AliCentrality *centrality = NULL;

  if(esdHandler)
    centrality = fESD->GetCentrality();
  else if(aodHandler)
    centrality = ((AliVAODHeader*)fAOD->GetHeader())->GetCentralityP();

  if (!centrality) {
    AliError("Centrality not available");
    return -1;
  }

  
  // Int_t a = centrality->GetCentralityClass5("V0M");
  // if (a < 0 || a >= 20 ) fCentralityBin = -2;
  // else if (a <= 1) fCentralityBin = a;
  // else fCentralityBin = 1 + centrality->GetCentralityClass10("V0M");
  
  
  
  Int_t centBin = centrality->GetCentralityClass10("V0M");
  if (centBin == 0) { fCentralityBin = centrality->GetCentralityClass5("V0M"); }
  else if (centBin == 11 || centBin == -1.)           { fCentralityBin = -1; }
  else if (centBin > 0 && centBin < fNCentralityBins) { fCentralityBin = centBin + 1; }
  else {  fCentralityBin = -2; }
  
  
  if (fCentralityBin >= fCentralityBinMax)
    fCentralityBin = -2;
    
  

  fCentralityPercentile = centrality->GetCentralityPercentile("V0M");
  
  fSubSampleIdx = fRandom->Integer(fSubSamples);

  return 0;
}
//________________________________________________________________________
Bool_t AliEbyEPidRatioHelper::IsEventTriggered() {
  // -- Check if Event is triggered and fill Trigger Histogram
  
  Bool_t *aTriggerFired = new Bool_t[fNTriggers];
  for (Int_t ii = 0; ii < fNTriggers; ++ii)
    aTriggerFired[ii] = kFALSE;

  if ((fInputEventHandler->IsEventSelected() & AliVEvent::kMB))          aTriggerFired[0] = kTRUE;
  if ((fInputEventHandler->IsEventSelected() & AliVEvent::kCentral))     aTriggerFired[1] = kTRUE;
  if ((fInputEventHandler->IsEventSelected() & AliVEvent::kSemiCentral)) aTriggerFired[2] = kTRUE;
  if ((fInputEventHandler->IsEventSelected() & AliVEvent::kEMCEJE))      aTriggerFired[3] = kTRUE;
  if ((fInputEventHandler->IsEventSelected() & AliVEvent::kEMCEGA))      aTriggerFired[4] = kTRUE;

  Bool_t isTriggered = kFALSE;

  for (Int_t ii=0; ii<fNTriggers; ++ii) {
    if(aTriggerFired[ii]) {
      isTriggered = kTRUE;
      fHTriggerStat->Fill(ii);
    }
  }
  
  delete[] aTriggerFired;

  return isTriggered;
}

//________________________________________________________________________
Bool_t AliEbyEPidRatioHelper::IsEventRejected() {
  // -- Evaluate event statistics histograms
    
  Int_t *aEventCuts = new Int_t[fHEventStatMax];
  // set aEventCuts[ii] to 1 in case of reject
  
  for (Int_t ii=0;ii<fHEventStatMax; ++ii)
    aEventCuts[ii] = 0;

  Int_t iCut = 0;

  // -- 0 - Before Physics Selection   
  aEventCuts[iCut] = 0;

  // -- 1 - No Trigger fired
  ++iCut;
  if (!IsEventTriggered())
    aEventCuts[iCut] = 1;

  // -- 2 - No Vertex 
  ++iCut;
  const AliESDVertex* vtxESD = NULL;
  const AliAODVertex* vtxAOD = NULL;
  if (fESD){
    vtxESD = fESD->GetPrimaryVertexTracks();
    if (!vtxESD)
      aEventCuts[iCut] = 1;
  }
  else if (fAOD){
    vtxAOD = fAOD->GetPrimaryVertex();
    if (!vtxAOD)
      aEventCuts[iCut] = 1;
  }

  // -- 3 - Vertex z outside cut window
  ++iCut;
  if (vtxESD){
    if(TMath::Abs(vtxESD->GetZ()) > fVertexZMax) 
      aEventCuts[iCut] = 1;
  }
  else if(vtxAOD){
    if(TMath::Abs(vtxAOD->GetZ()) > fVertexZMax) 
      aEventCuts[iCut] = 1;
  }
  else
    aEventCuts[iCut] = 1;

  // -- 4 - Centrality = -1  (no centrality or not hadronic)
  ++iCut;
  if(fCentralityBin == -1.) 
    aEventCuts[iCut] = 1;

  // -- 5 - Centrality < fCentralityMax
  ++iCut;
  if(fCentralityBin == -2.) 
    aEventCuts[iCut] = 1;

  // -- Fill statistics / reject event
  Bool_t isRejected = FillEventStats(aEventCuts);

  // -- Cleanup 
  delete[] aEventCuts;

  //cout << isRejected << endl;

  return isRejected;
}

//________________________________________________________________________
Bool_t AliEbyEPidRatioHelper::IsParticleAcceptedBasicCharged(AliVParticle *particle, Int_t idxMC) {
  // -- Check if MC particle is accepted for basic parameters
  
  if (!particle) 
    return kFALSE;

  // -- check if charged
  if (particle->Charge() == 0.0) 
    return kFALSE;
  
  // -- check if physical primary - ESD
  if (fESD) {
    if(!fStack->IsPhysicalPrimary(idxMC)) 
      return kFALSE;
  }
  // -- check if physical primary - AOD
  else {
    if(!(static_cast<AliAODMCParticle*>(particle))->IsPhysicalPrimary()) 
      return kFALSE;
  }
  
  return kTRUE;
}

//________________________________________________________________________
Bool_t AliEbyEPidRatioHelper::IsParticleAcceptedBasicNeutral(AliVParticle *particle, Int_t idxMC) {
  // -- Check if MC particle is accepted for basic parameters
  
  if (!particle) 
    return kFALSE;

  // -- check if charged
  if (particle->Charge() != 0.0) 
    return kFALSE;
  
  // -- check if physical primary - ESD
  if (fESD) {
    if(!fStack->IsPhysicalPrimary(idxMC)) 
      return kFALSE;
  }
  // -- check if physical primary - AOD
  else {
    if(!(static_cast<AliAODMCParticle*>(particle))->IsPhysicalPrimary()) 
      return kFALSE;
  }
  
  return kTRUE;
}

//________________________________________________________________________
Bool_t AliEbyEPidRatioHelper::IsParticleAcceptedRapidity(AliVParticle *particle, Double_t &yP, Int_t gCurPid) {
  
 if (gCurPid == 0) {
   yP = particle->Eta();
   return kTRUE;
 }
  
 Double_t mP = AliPID::ParticleMass(AliPID::kPion);
 if(gCurPid == 1) mP = AliPID::ParticleMass(AliPID::kPion);
 else if(gCurPid == 2) mP = AliPID::ParticleMass(AliPID::kKaon);
 else if(gCurPid == 3) mP = AliPID::ParticleMass(AliPID::kProton);
 
 // -- Calculate rapidities and kinematics
  Double_t p  = particle->P();
  Double_t pz = particle->Pz();

  Double_t eP = TMath::Sqrt(p*p + mP*mP);
  yP          = 0.5 * TMath::Log((eP + pz) / (eP - pz));  

  // -- Check Rapidity window
  if (TMath::Abs(yP) > fRapidityMax)
    return kFALSE;
  
  return kTRUE;
}

//________________________________________________________________________
Bool_t AliEbyEPidRatioHelper::IsParticleAcceptedPhi(AliVParticle *particle) {
  // -- Check if particle is accepted
  // > in phi
  // > return 0 if not accepted
  
  if (particle->Phi() > fPhiMin && particle->Phi() <= fPhiMax)
    return kTRUE;
  else if (particle->Phi() < fPhiMin && (particle->Phi() + TMath::TwoPi()) <= fPhiMax)
    return kTRUE;
  else
    return kFALSE;
}

//_____________________________________________________________________________
Bool_t AliEbyEPidRatioHelper::IsParticleFindable(Int_t label) {
  // -- Check if MC particle is findable tracks

  AliMCParticle *mcParticle = static_cast<AliMCParticle*>(fMCEvent->GetTrack(label));
  if(!mcParticle) 
    return kFALSE;
  
  Int_t counter; 
  Float_t tpcTrackLength = mcParticle->GetTPCTrackLength(AliTracker::GetBz(), 0.05, counter, 3.0); 

  return (tpcTrackLength > fMinTrackLengthMC);    
}
//________________________________________________________________________
Bool_t AliEbyEPidRatioHelper::IsTrackAcceptedBasicCharged(AliVTrack* track) {
  // -- Check if track is accepted 
  // > for basic parameters

  if (!track)
    return kFALSE;
  
  if (track->Charge() == 0) 
    return kFALSE;
  
  return kTRUE;
} 
 
//________________________________________________________________________
Bool_t AliEbyEPidRatioHelper::IsTrackAcceptedRapidity(AliVTrack *track, Double_t &yP, Int_t gCurPid) {
   if (gCurPid == 0) {
    yP = track->Eta();
    return kTRUE;
  }
  
  Double_t mP = AliPID::ParticleMass(AliPID::kPion);
  if(gCurPid == 1) mP = AliPID::ParticleMass(AliPID::kPion);
  else if(gCurPid == 2) mP = AliPID::ParticleMass(AliPID::kKaon);
  else if(gCurPid == 3) mP = AliPID::ParticleMass(AliPID::kProton);

  // -- Calculate rapidities and kinematics
  Double_t pvec[3];
  track->GetPxPyPz(pvec);

  Double_t p  = track->P();
  Double_t eP = TMath::Sqrt(p*p + mP*mP);
           yP = 0.5 * TMath::Log((eP + pvec[2]) / (eP - pvec[2]));
  
  // -- Check Rapidity window
  if (TMath::Abs(yP) > fRapidityMax)
    return kFALSE;
  
  return kTRUE;
}

//________________________________________________________________________
Bool_t AliEbyEPidRatioHelper::IsTrackAcceptedDCA(AliVTrack *vTrack) {
   Bool_t isAccepted = kTRUE;

  if (!fESD)
    return isAccepted;

  AliESDtrack* track = dynamic_cast<AliESDtrack*>(vTrack);
  if (!track)
    return kFALSE;
  
  // -- Get nHits SPD
  if (track->HasPointOnITSLayer(0) && track->HasPointOnITSLayer(1)) {

    // -- Get DCA nSigmas
    Float_t dca[2], cov[3]; // dca_xy, dca_z, sigma_xy, sigma_xy_z, sigma_z
    track->GetImpactParameters(dca,cov);

    Float_t nSigmaCdd = (cov[0] != 0.) ? dca[0]/TMath::Sqrt(cov[0]) : -9.99; 
    Float_t nSigmaCzz = (cov[2] != 0.) ? dca[1]/TMath::Sqrt(cov[2]) : -9.99; 
    
    if (fNSigmaMaxCdd != 0.) {
      if (TMath::Abs(nSigmaCdd) > fNSigmaMaxCdd)
	isAccepted = kFALSE;
    }

    if (fNSigmaMaxCzz != 0.) {
      if (TMath::Abs(nSigmaCzz) > fNSigmaMaxCzz)
	isAccepted = kFALSE;
    }
  }

  return isAccepted;
}

//________________________________________________________________________
Bool_t AliEbyEPidRatioHelper::IsTrackAcceptedPID(AliVTrack *track, Double_t* pid, AliPID::EParticleType gCurPid) {

  Bool_t isAcceptedITS    = kFALSE;
  Bool_t isAcceptedTPC    = kFALSE;
  Bool_t isAcceptedTPClow = kFALSE;
  Bool_t isAcceptedTOF    = kFALSE;
  Bool_t isAccepted       = kFALSE;

  // -- In case not PID is used
  if (gCurPid == AliPID::kUnknown) {
    pid[0] = 10.;
    pid[1] = 10.;
    pid[2] = 10.;
    return kTRUE;
  }
  
  if (fPIDResponse->NumberOfSigmas(AliPIDResponse::kITS, track, gCurPid, pid[0]) == AliPIDResponse::kDetPidOk) {
    if (TMath::Abs(pid[0]) < fNSigmaMaxITS) 
      isAcceptedITS = kTRUE;
  }

  if (fPIDResponse->NumberOfSigmas(AliPIDResponse::kTPC, track, gCurPid, pid[1]) == AliPIDResponse::kDetPidOk) {
    if (TMath::Abs(pid[1]) < fNSigmaMaxTPC) 
      isAcceptedTPC = kTRUE;
    if (TMath::Abs(pid[1]) < fNSigmaMaxTPClow) 
      isAcceptedTPClow = kTRUE;
    if (track->Pt() < fMaxPtForTPClow)
      isAcceptedTPC = isAcceptedTPClow;
  }

  Bool_t hasPIDTOF = kFALSE;
  if (fPIDResponse->NumberOfSigmas(AliPIDResponse::kTOF, track, gCurPid, pid[2]) == AliPIDResponse::kDetPidOk) {
    hasPIDTOF = kTRUE;
    if (TMath::Abs(pid[2]) < fNSigmaMaxTOF) 
      isAcceptedTOF = kTRUE;
  }
  // -- Check TOF missmatch for MC
  
  //if (ESD)
  if (fIsMC && isAcceptedTOF) {
    Int_t tofLabel[3];                                                                                                                                        
    //    AliESDtrack* track = dynamic_cast<AliESDtrack*>(vTrack);
    // TODO add code for AOD 

    (dynamic_cast<AliESDtrack*>(track))->GetTOFLabel(tofLabel);
   
    Bool_t hasMatchTOF = kTRUE;
    if (TMath::Abs(track->GetLabel()) != TMath::Abs(tofLabel[0]) || tofLabel[1] > 0) 
      hasMatchTOF = kFALSE;

    TParticle *matchedTrack = fStack->Particle(TMath::Abs(tofLabel[0]));
    if (TMath::Abs(matchedTrack->GetFirstMother()) == TMath::Abs(track->GetLabel())) 
      hasMatchTOF = kTRUE;

    isAcceptedTOF = hasMatchTOF;
  }

  //    0 :   TPC(TPClow+TPCHigh)
  //    1 :   ITS
  //    2 :   TOF
  //    3 :   ITS+TPC(TPClow+TPCHigh)
  //    4 :   TPC(TPClow+TPCHigh)+TOF
  //    5 :   TPC(TPClow+TPCHigh)+TOF for pT >= fMinPtForTOFRequired TOF is required, below, only used if there
  //    6 :   TPC(TPClow+TPCHigh)+ITS+TOF with TOF only for those tracks which have TOF information
  //    7 :   TPC(TPClow+TPCHigh)+ITS+TOF for pT >= fMinPtForTOFRequired TOF is required, below, only used if there
  //    8 :   TPC(TPClow+TPCHigh)+ITS+TOF 
  if (fPIDStrategy == 0) {             //  TPC PID
    isAccepted = isAcceptedTPC;
  }
  else if (fPIDStrategy == 1) {        //  ITS PID
    isAccepted = isAcceptedITS;
  }
  else if (fPIDStrategy == 2) {        //  TOF PID
    isAccepted = isAcceptedTOF;
  }
  else if (fPIDStrategy == 3) {        //  TPC+ITS PID
    isAccepted = isAcceptedTPC && isAcceptedITS;
  }
  else if (fPIDStrategy == 4) {        //  TPC+TOF PID
    isAccepted = isAcceptedTPC && isAcceptedTOF;
  }
  else if (fPIDStrategy == 5) {        //  TPC+TOF PID -- for pT >= fMinPtForTOFRequired TOF is required
    if (!hasPIDTOF && track->Pt() < fMinPtForTOFRequired) 
      isAcceptedTOF = kTRUE;
    isAccepted = isAcceptedTPC && isAcceptedTOF;
  }
  else if (fPIDStrategy == 6) {        //  ITS+TPC+TOF PID -- TOF only for those tracks which have TOF information
    isAccepted = isAcceptedTPC && isAcceptedITS;
    if (hasPIDTOF)
      isAccepted = isAccepted && isAcceptedTOF;
  }
  else if (fPIDStrategy == 7) {        //  ITS+TPC+TOF PID -- for pT >= fMinPtForTOFRequired TOF is required
    if (!hasPIDTOF && track->Pt() < fMinPtForTOFRequired)
      isAcceptedTOF = kTRUE;
    isAccepted = isAcceptedITS && isAcceptedTPC && isAcceptedTOF;
  }
  else if (fPIDStrategy == 8) {        //  ITS+TPC+TOF PID
    isAccepted = isAcceptedITS && isAcceptedTPC && isAcceptedTOF;
  }

  return isAccepted;
}

//________________________________________________________________________
Bool_t AliEbyEPidRatioHelper::IsTrackAcceptedPhi(AliVTrack *track) {
  // -- Check if track is accepted
  // > in phi
  // > return 0 if not accepted
  
  if (track->Phi() > fPhiMin && track->Phi() <= fPhiMax)
    return kTRUE;
  else if (track->Phi() < fPhiMin && (track->Phi() + TMath::TwoPi()) <= fPhiMax)
    return kTRUE;
  else
    return kFALSE;
}

//________________________________________________________________________
void AliEbyEPidRatioHelper::BinLogAxis(const THnBase *hn, Int_t axisNumber, AliESDtrackCuts* cuts) {
    AliESDtrackCuts* esdTrackCuts = (cuts) ? cuts : fESDTrackCuts;

  // -- Make logarithmic binning 
  TAxis *axis = hn->GetAxis(axisNumber);
  Int_t  nBins = axis->GetNbins();

  Double_t from  = axis->GetXmin();
  Double_t to    = axis->GetXmax();
  Double_t *newBins = new Double_t[nBins + 1];
   
  newBins[0] = from;
  Double_t factor = TMath::Power(to/from, 1./nBins);
  
  for (int ii = 1; ii <= nBins; ii++)
   newBins[ii] = factor * newBins[ii-1];
  
  axis->Set(nBins, newBins);

  delete [] newBins;

  // -- Update Ranges
  // ------------------
  Float_t ptRange[2];
  Float_t oldPtRange[2];
  esdTrackCuts->GetPtRange(ptRange[0],ptRange[1]);
  esdTrackCuts->GetPtRange(oldPtRange[0],oldPtRange[1]);

  Float_t minPtForTOFRequired = fMinPtForTOFRequired;
  Float_t maxPtForTPClow      = fMaxPtForTPClow;

  // -- Update minPt Cut
  Int_t bin = axis->FindBin(ptRange[0]+10e-7);
  ptRange[0] = axis->GetBinLowEdge(bin); 

  // -- Update maxPt Cut
  bin = axis->FindBin(ptRange[1]-10e-7);
  ptRange[1] = axis->GetBinUpEdge(bin); 

  if (ptRange[0] != oldPtRange[0] || ptRange[1] != oldPtRange[1]) {
    printf(">>>> Update Pt Range : [%f,%f] -> [%f,%f]\n", oldPtRange[0], oldPtRange[1], ptRange[0], ptRange[1]);
    esdTrackCuts->SetPtRange(ptRange[0],ptRange[1]);
  }

  // -- Update MinPtForTOFRequired
  bin = axis->FindBin(minPtForTOFRequired-10e-7);
  minPtForTOFRequired = axis->GetBinUpEdge(bin); 

  if (minPtForTOFRequired != fMinPtForTOFRequired) {
    printf(">>>> Update Min Pt for TOF : %f -> %f\n", fMinPtForTOFRequired, minPtForTOFRequired);
    fMinPtForTOFRequired = minPtForTOFRequired;
  }

  // -- Update MaxPtForTPClow
  bin = axis->FindBin(maxPtForTPClow-10e-7);
  maxPtForTPClow = axis->GetBinUpEdge(bin); 

  if (maxPtForTPClow != fMaxPtForTPClow) {
    printf(">>>> Update Max Pt for TPC Low : %f -> %f\n", fMaxPtForTPClow, maxPtForTPClow);
    fMaxPtForTPClow = maxPtForTPClow;
  }
}

//________________________________________________________________________
void AliEbyEPidRatioHelper::InitializeEventStats() {
  // -- Initialize event statistics histograms

  fHEventStat0 = new TH1F("hEventStat0","Event cut statistics 0;Event Cuts;Events", fHEventStatMax,-0.5,fHEventStatMax-0.5);
  fHEventStat1 = new TH1F("hEventStat1","Event cut statistics 1;Event Cuts;Events", fHEventStatMax,-0.5,fHEventStatMax-0.5);

  for ( Int_t ii=0; ii < fHEventStatMax-1; ii++ ) {
    fHEventStat0->GetXaxis()->SetBinLabel(ii+1, AliEbyEPidRatioHelper::fgkEventNames[ii]);
    fHEventStat1->GetXaxis()->SetBinLabel(ii+1, AliEbyEPidRatioHelper::fgkEventNames[ii]);
  }

  fHEventStat0->GetXaxis()->SetBinLabel(fHEventStatMax, Form("Centrality [0-%s]%%", AliEbyEPidRatioHelper::fgkCentralityMaxNames[fCentralityBinMax-1]));
  fHEventStat1->GetXaxis()->SetBinLabel(fHEventStatMax, Form("Centrality [0-%s]%%", AliEbyEPidRatioHelper::fgkCentralityMaxNames[fCentralityBinMax-1]));
}

//________________________________________________________________________
void AliEbyEPidRatioHelper::InitializeTriggerStats() {
  // -- Initialize trigger statistics histograms

  fHTriggerStat = new TH1F("hTriggerStat","Trigger statistics;Trigger;Events", fNTriggers,-0.5,fNTriggers-0.5);

  for ( Int_t ii=0; ii < fNTriggers; ii++ )
    fHTriggerStat->GetXaxis()->SetBinLabel(ii+1, AliEbyEPidRatioHelper::fgkTriggerNames[ii]);
}

//________________________________________________________________________
void AliEbyEPidRatioHelper::InitializeCentralityStats() {
  // -- Initialize trigger statistics histograms

  fHCentralityStat = new TH1F("hCentralityStat","Centrality statistics;Centrality Bins;Events", 
			      fNCentralityBins,-0.5,fNCentralityBins-0.5);
  
  for ( Int_t ii=0; ii < fNCentralityBins; ii++ )
    fHCentralityStat->GetXaxis()->SetBinLabel(ii+1, AliEbyEPidRatioHelper::fgkCentralityNames[ii]);
  
  fHCentralityPer = new TH1F("hCentralityPercentileAccepted","Centrality Percentile statistics;Centrality Bins;Events", 
			     100,-0.5,99.5);

  fHCentralityPerAll = new TH1F("hCentralityPercentileAll","Centrality Percentile statistics;Centrality Bins;Events", 
			     100,-0.5,99.5);


}
//________________________________________________________________________
Bool_t AliEbyEPidRatioHelper::FillEventStats(Int_t *aEventCuts) {
  // -- Fill event / centrality statistics 

  Bool_t isRejected = kFALSE;


  // -- Fill event statistics
  for (Int_t idx = 0; idx < fHEventStatMax ; ++idx) {

    if (aEventCuts[idx])
      isRejected = kTRUE;
    else
      fHEventStat0->Fill(idx);
  }
  
  for (Int_t idx = 0; idx < fHEventStatMax; ++idx) {
    if (aEventCuts[idx])
      break;
    fHEventStat1->Fill(idx);
  }

  // -- Fill centrality statistics of accepted events
  if (!isRejected) {
    fHCentralityStat->Fill(fCentralityBin);
    fHCentralityPer->Fill(fCentralityPercentile);
  }

  fHCentralityPerAll->Fill(fCentralityPercentile);



  return isRejected;
}
 AliEbyEPidRatioHelper.cxx:1
 AliEbyEPidRatioHelper.cxx:2
 AliEbyEPidRatioHelper.cxx:3
 AliEbyEPidRatioHelper.cxx:4
 AliEbyEPidRatioHelper.cxx:5
 AliEbyEPidRatioHelper.cxx:6
 AliEbyEPidRatioHelper.cxx:7
 AliEbyEPidRatioHelper.cxx:8
 AliEbyEPidRatioHelper.cxx:9
 AliEbyEPidRatioHelper.cxx:10
 AliEbyEPidRatioHelper.cxx:11
 AliEbyEPidRatioHelper.cxx:12
 AliEbyEPidRatioHelper.cxx:13
 AliEbyEPidRatioHelper.cxx:14
 AliEbyEPidRatioHelper.cxx:15
 AliEbyEPidRatioHelper.cxx:16
 AliEbyEPidRatioHelper.cxx:17
 AliEbyEPidRatioHelper.cxx:18
 AliEbyEPidRatioHelper.cxx:19
 AliEbyEPidRatioHelper.cxx:20
 AliEbyEPidRatioHelper.cxx:21
 AliEbyEPidRatioHelper.cxx:22
 AliEbyEPidRatioHelper.cxx:23
 AliEbyEPidRatioHelper.cxx:24
 AliEbyEPidRatioHelper.cxx:25
 AliEbyEPidRatioHelper.cxx:26
 AliEbyEPidRatioHelper.cxx:27
 AliEbyEPidRatioHelper.cxx:28
 AliEbyEPidRatioHelper.cxx:29
 AliEbyEPidRatioHelper.cxx:30
 AliEbyEPidRatioHelper.cxx:31
 AliEbyEPidRatioHelper.cxx:32
 AliEbyEPidRatioHelper.cxx:33
 AliEbyEPidRatioHelper.cxx:34
 AliEbyEPidRatioHelper.cxx:35
 AliEbyEPidRatioHelper.cxx:36
 AliEbyEPidRatioHelper.cxx:37
 AliEbyEPidRatioHelper.cxx:38
 AliEbyEPidRatioHelper.cxx:39
 AliEbyEPidRatioHelper.cxx:40
 AliEbyEPidRatioHelper.cxx:41
 AliEbyEPidRatioHelper.cxx:42
 AliEbyEPidRatioHelper.cxx:43
 AliEbyEPidRatioHelper.cxx:44
 AliEbyEPidRatioHelper.cxx:45
 AliEbyEPidRatioHelper.cxx:46
 AliEbyEPidRatioHelper.cxx:47
 AliEbyEPidRatioHelper.cxx:48
 AliEbyEPidRatioHelper.cxx:49
 AliEbyEPidRatioHelper.cxx:50
 AliEbyEPidRatioHelper.cxx:51
 AliEbyEPidRatioHelper.cxx:52
 AliEbyEPidRatioHelper.cxx:53
 AliEbyEPidRatioHelper.cxx:54
 AliEbyEPidRatioHelper.cxx:55
 AliEbyEPidRatioHelper.cxx:56
 AliEbyEPidRatioHelper.cxx:57
 AliEbyEPidRatioHelper.cxx:58
 AliEbyEPidRatioHelper.cxx:59
 AliEbyEPidRatioHelper.cxx:60
 AliEbyEPidRatioHelper.cxx:61
 AliEbyEPidRatioHelper.cxx:62
 AliEbyEPidRatioHelper.cxx:63
 AliEbyEPidRatioHelper.cxx:64
 AliEbyEPidRatioHelper.cxx:65
 AliEbyEPidRatioHelper.cxx:66
 AliEbyEPidRatioHelper.cxx:67
 AliEbyEPidRatioHelper.cxx:68
 AliEbyEPidRatioHelper.cxx:69
 AliEbyEPidRatioHelper.cxx:70
 AliEbyEPidRatioHelper.cxx:71
 AliEbyEPidRatioHelper.cxx:72
 AliEbyEPidRatioHelper.cxx:73
 AliEbyEPidRatioHelper.cxx:74
 AliEbyEPidRatioHelper.cxx:75
 AliEbyEPidRatioHelper.cxx:76
 AliEbyEPidRatioHelper.cxx:77
 AliEbyEPidRatioHelper.cxx:78
 AliEbyEPidRatioHelper.cxx:79
 AliEbyEPidRatioHelper.cxx:80
 AliEbyEPidRatioHelper.cxx:81
 AliEbyEPidRatioHelper.cxx:82
 AliEbyEPidRatioHelper.cxx:83
 AliEbyEPidRatioHelper.cxx:84
 AliEbyEPidRatioHelper.cxx:85
 AliEbyEPidRatioHelper.cxx:86
 AliEbyEPidRatioHelper.cxx:87
 AliEbyEPidRatioHelper.cxx:88
 AliEbyEPidRatioHelper.cxx:89
 AliEbyEPidRatioHelper.cxx:90
 AliEbyEPidRatioHelper.cxx:91
 AliEbyEPidRatioHelper.cxx:92
 AliEbyEPidRatioHelper.cxx:93
 AliEbyEPidRatioHelper.cxx:94
 AliEbyEPidRatioHelper.cxx:95
 AliEbyEPidRatioHelper.cxx:96
 AliEbyEPidRatioHelper.cxx:97
 AliEbyEPidRatioHelper.cxx:98
 AliEbyEPidRatioHelper.cxx:99
 AliEbyEPidRatioHelper.cxx:100
 AliEbyEPidRatioHelper.cxx:101
 AliEbyEPidRatioHelper.cxx:102
 AliEbyEPidRatioHelper.cxx:103
 AliEbyEPidRatioHelper.cxx:104
 AliEbyEPidRatioHelper.cxx:105
 AliEbyEPidRatioHelper.cxx:106
 AliEbyEPidRatioHelper.cxx:107
 AliEbyEPidRatioHelper.cxx:108
 AliEbyEPidRatioHelper.cxx:109
 AliEbyEPidRatioHelper.cxx:110
 AliEbyEPidRatioHelper.cxx:111
 AliEbyEPidRatioHelper.cxx:112
 AliEbyEPidRatioHelper.cxx:113
 AliEbyEPidRatioHelper.cxx:114
 AliEbyEPidRatioHelper.cxx:115
 AliEbyEPidRatioHelper.cxx:116
 AliEbyEPidRatioHelper.cxx:117
 AliEbyEPidRatioHelper.cxx:118
 AliEbyEPidRatioHelper.cxx:119
 AliEbyEPidRatioHelper.cxx:120
 AliEbyEPidRatioHelper.cxx:121
 AliEbyEPidRatioHelper.cxx:122
 AliEbyEPidRatioHelper.cxx:123
 AliEbyEPidRatioHelper.cxx:124
 AliEbyEPidRatioHelper.cxx:125
 AliEbyEPidRatioHelper.cxx:126
 AliEbyEPidRatioHelper.cxx:127
 AliEbyEPidRatioHelper.cxx:128
 AliEbyEPidRatioHelper.cxx:129
 AliEbyEPidRatioHelper.cxx:130
 AliEbyEPidRatioHelper.cxx:131
 AliEbyEPidRatioHelper.cxx:132
 AliEbyEPidRatioHelper.cxx:133
 AliEbyEPidRatioHelper.cxx:134
 AliEbyEPidRatioHelper.cxx:135
 AliEbyEPidRatioHelper.cxx:136
 AliEbyEPidRatioHelper.cxx:137
 AliEbyEPidRatioHelper.cxx:138
 AliEbyEPidRatioHelper.cxx:139
 AliEbyEPidRatioHelper.cxx:140
 AliEbyEPidRatioHelper.cxx:141
 AliEbyEPidRatioHelper.cxx:142
 AliEbyEPidRatioHelper.cxx:143
 AliEbyEPidRatioHelper.cxx:144
 AliEbyEPidRatioHelper.cxx:145
 AliEbyEPidRatioHelper.cxx:146
 AliEbyEPidRatioHelper.cxx:147
 AliEbyEPidRatioHelper.cxx:148
 AliEbyEPidRatioHelper.cxx:149
 AliEbyEPidRatioHelper.cxx:150
 AliEbyEPidRatioHelper.cxx:151
 AliEbyEPidRatioHelper.cxx:152
 AliEbyEPidRatioHelper.cxx:153
 AliEbyEPidRatioHelper.cxx:154
 AliEbyEPidRatioHelper.cxx:155
 AliEbyEPidRatioHelper.cxx:156
 AliEbyEPidRatioHelper.cxx:157
 AliEbyEPidRatioHelper.cxx:158
 AliEbyEPidRatioHelper.cxx:159
 AliEbyEPidRatioHelper.cxx:160
 AliEbyEPidRatioHelper.cxx:161
 AliEbyEPidRatioHelper.cxx:162
 AliEbyEPidRatioHelper.cxx:163
 AliEbyEPidRatioHelper.cxx:164
 AliEbyEPidRatioHelper.cxx:165
 AliEbyEPidRatioHelper.cxx:166
 AliEbyEPidRatioHelper.cxx:167
 AliEbyEPidRatioHelper.cxx:168
 AliEbyEPidRatioHelper.cxx:169
 AliEbyEPidRatioHelper.cxx:170
 AliEbyEPidRatioHelper.cxx:171
 AliEbyEPidRatioHelper.cxx:172
 AliEbyEPidRatioHelper.cxx:173
 AliEbyEPidRatioHelper.cxx:174
 AliEbyEPidRatioHelper.cxx:175
 AliEbyEPidRatioHelper.cxx:176
 AliEbyEPidRatioHelper.cxx:177
 AliEbyEPidRatioHelper.cxx:178
 AliEbyEPidRatioHelper.cxx:179
 AliEbyEPidRatioHelper.cxx:180
 AliEbyEPidRatioHelper.cxx:181
 AliEbyEPidRatioHelper.cxx:182
 AliEbyEPidRatioHelper.cxx:183
 AliEbyEPidRatioHelper.cxx:184
 AliEbyEPidRatioHelper.cxx:185
 AliEbyEPidRatioHelper.cxx:186
 AliEbyEPidRatioHelper.cxx:187
 AliEbyEPidRatioHelper.cxx:188
 AliEbyEPidRatioHelper.cxx:189
 AliEbyEPidRatioHelper.cxx:190
 AliEbyEPidRatioHelper.cxx:191
 AliEbyEPidRatioHelper.cxx:192
 AliEbyEPidRatioHelper.cxx:193
 AliEbyEPidRatioHelper.cxx:194
 AliEbyEPidRatioHelper.cxx:195
 AliEbyEPidRatioHelper.cxx:196
 AliEbyEPidRatioHelper.cxx:197
 AliEbyEPidRatioHelper.cxx:198
 AliEbyEPidRatioHelper.cxx:199
 AliEbyEPidRatioHelper.cxx:200
 AliEbyEPidRatioHelper.cxx:201
 AliEbyEPidRatioHelper.cxx:202
 AliEbyEPidRatioHelper.cxx:203
 AliEbyEPidRatioHelper.cxx:204
 AliEbyEPidRatioHelper.cxx:205
 AliEbyEPidRatioHelper.cxx:206
 AliEbyEPidRatioHelper.cxx:207
 AliEbyEPidRatioHelper.cxx:208
 AliEbyEPidRatioHelper.cxx:209
 AliEbyEPidRatioHelper.cxx:210
 AliEbyEPidRatioHelper.cxx:211
 AliEbyEPidRatioHelper.cxx:212
 AliEbyEPidRatioHelper.cxx:213
 AliEbyEPidRatioHelper.cxx:214
 AliEbyEPidRatioHelper.cxx:215
 AliEbyEPidRatioHelper.cxx:216
 AliEbyEPidRatioHelper.cxx:217
 AliEbyEPidRatioHelper.cxx:218
 AliEbyEPidRatioHelper.cxx:219
 AliEbyEPidRatioHelper.cxx:220
 AliEbyEPidRatioHelper.cxx:221
 AliEbyEPidRatioHelper.cxx:222
 AliEbyEPidRatioHelper.cxx:223
 AliEbyEPidRatioHelper.cxx:224
 AliEbyEPidRatioHelper.cxx:225
 AliEbyEPidRatioHelper.cxx:226
 AliEbyEPidRatioHelper.cxx:227
 AliEbyEPidRatioHelper.cxx:228
 AliEbyEPidRatioHelper.cxx:229
 AliEbyEPidRatioHelper.cxx:230
 AliEbyEPidRatioHelper.cxx:231
 AliEbyEPidRatioHelper.cxx:232
 AliEbyEPidRatioHelper.cxx:233
 AliEbyEPidRatioHelper.cxx:234
 AliEbyEPidRatioHelper.cxx:235
 AliEbyEPidRatioHelper.cxx:236
 AliEbyEPidRatioHelper.cxx:237
 AliEbyEPidRatioHelper.cxx:238
 AliEbyEPidRatioHelper.cxx:239
 AliEbyEPidRatioHelper.cxx:240
 AliEbyEPidRatioHelper.cxx:241
 AliEbyEPidRatioHelper.cxx:242
 AliEbyEPidRatioHelper.cxx:243
 AliEbyEPidRatioHelper.cxx:244
 AliEbyEPidRatioHelper.cxx:245
 AliEbyEPidRatioHelper.cxx:246
 AliEbyEPidRatioHelper.cxx:247
 AliEbyEPidRatioHelper.cxx:248
 AliEbyEPidRatioHelper.cxx:249
 AliEbyEPidRatioHelper.cxx:250
 AliEbyEPidRatioHelper.cxx:251
 AliEbyEPidRatioHelper.cxx:252
 AliEbyEPidRatioHelper.cxx:253
 AliEbyEPidRatioHelper.cxx:254
 AliEbyEPidRatioHelper.cxx:255
 AliEbyEPidRatioHelper.cxx:256
 AliEbyEPidRatioHelper.cxx:257
 AliEbyEPidRatioHelper.cxx:258
 AliEbyEPidRatioHelper.cxx:259
 AliEbyEPidRatioHelper.cxx:260
 AliEbyEPidRatioHelper.cxx:261
 AliEbyEPidRatioHelper.cxx:262
 AliEbyEPidRatioHelper.cxx:263
 AliEbyEPidRatioHelper.cxx:264
 AliEbyEPidRatioHelper.cxx:265
 AliEbyEPidRatioHelper.cxx:266
 AliEbyEPidRatioHelper.cxx:267
 AliEbyEPidRatioHelper.cxx:268
 AliEbyEPidRatioHelper.cxx:269
 AliEbyEPidRatioHelper.cxx:270
 AliEbyEPidRatioHelper.cxx:271
 AliEbyEPidRatioHelper.cxx:272
 AliEbyEPidRatioHelper.cxx:273
 AliEbyEPidRatioHelper.cxx:274
 AliEbyEPidRatioHelper.cxx:275
 AliEbyEPidRatioHelper.cxx:276
 AliEbyEPidRatioHelper.cxx:277
 AliEbyEPidRatioHelper.cxx:278
 AliEbyEPidRatioHelper.cxx:279
 AliEbyEPidRatioHelper.cxx:280
 AliEbyEPidRatioHelper.cxx:281
 AliEbyEPidRatioHelper.cxx:282
 AliEbyEPidRatioHelper.cxx:283
 AliEbyEPidRatioHelper.cxx:284
 AliEbyEPidRatioHelper.cxx:285
 AliEbyEPidRatioHelper.cxx:286
 AliEbyEPidRatioHelper.cxx:287
 AliEbyEPidRatioHelper.cxx:288
 AliEbyEPidRatioHelper.cxx:289
 AliEbyEPidRatioHelper.cxx:290
 AliEbyEPidRatioHelper.cxx:291
 AliEbyEPidRatioHelper.cxx:292
 AliEbyEPidRatioHelper.cxx:293
 AliEbyEPidRatioHelper.cxx:294
 AliEbyEPidRatioHelper.cxx:295
 AliEbyEPidRatioHelper.cxx:296
 AliEbyEPidRatioHelper.cxx:297
 AliEbyEPidRatioHelper.cxx:298
 AliEbyEPidRatioHelper.cxx:299
 AliEbyEPidRatioHelper.cxx:300
 AliEbyEPidRatioHelper.cxx:301
 AliEbyEPidRatioHelper.cxx:302
 AliEbyEPidRatioHelper.cxx:303
 AliEbyEPidRatioHelper.cxx:304
 AliEbyEPidRatioHelper.cxx:305
 AliEbyEPidRatioHelper.cxx:306
 AliEbyEPidRatioHelper.cxx:307
 AliEbyEPidRatioHelper.cxx:308
 AliEbyEPidRatioHelper.cxx:309
 AliEbyEPidRatioHelper.cxx:310
 AliEbyEPidRatioHelper.cxx:311
 AliEbyEPidRatioHelper.cxx:312
 AliEbyEPidRatioHelper.cxx:313
 AliEbyEPidRatioHelper.cxx:314
 AliEbyEPidRatioHelper.cxx:315
 AliEbyEPidRatioHelper.cxx:316
 AliEbyEPidRatioHelper.cxx:317
 AliEbyEPidRatioHelper.cxx:318
 AliEbyEPidRatioHelper.cxx:319
 AliEbyEPidRatioHelper.cxx:320
 AliEbyEPidRatioHelper.cxx:321
 AliEbyEPidRatioHelper.cxx:322
 AliEbyEPidRatioHelper.cxx:323
 AliEbyEPidRatioHelper.cxx:324
 AliEbyEPidRatioHelper.cxx:325
 AliEbyEPidRatioHelper.cxx:326
 AliEbyEPidRatioHelper.cxx:327
 AliEbyEPidRatioHelper.cxx:328
 AliEbyEPidRatioHelper.cxx:329
 AliEbyEPidRatioHelper.cxx:330
 AliEbyEPidRatioHelper.cxx:331
 AliEbyEPidRatioHelper.cxx:332
 AliEbyEPidRatioHelper.cxx:333
 AliEbyEPidRatioHelper.cxx:334
 AliEbyEPidRatioHelper.cxx:335
 AliEbyEPidRatioHelper.cxx:336
 AliEbyEPidRatioHelper.cxx:337
 AliEbyEPidRatioHelper.cxx:338
 AliEbyEPidRatioHelper.cxx:339
 AliEbyEPidRatioHelper.cxx:340
 AliEbyEPidRatioHelper.cxx:341
 AliEbyEPidRatioHelper.cxx:342
 AliEbyEPidRatioHelper.cxx:343
 AliEbyEPidRatioHelper.cxx:344
 AliEbyEPidRatioHelper.cxx:345
 AliEbyEPidRatioHelper.cxx:346
 AliEbyEPidRatioHelper.cxx:347
 AliEbyEPidRatioHelper.cxx:348
 AliEbyEPidRatioHelper.cxx:349
 AliEbyEPidRatioHelper.cxx:350
 AliEbyEPidRatioHelper.cxx:351
 AliEbyEPidRatioHelper.cxx:352
 AliEbyEPidRatioHelper.cxx:353
 AliEbyEPidRatioHelper.cxx:354
 AliEbyEPidRatioHelper.cxx:355
 AliEbyEPidRatioHelper.cxx:356
 AliEbyEPidRatioHelper.cxx:357
 AliEbyEPidRatioHelper.cxx:358
 AliEbyEPidRatioHelper.cxx:359
 AliEbyEPidRatioHelper.cxx:360
 AliEbyEPidRatioHelper.cxx:361
 AliEbyEPidRatioHelper.cxx:362
 AliEbyEPidRatioHelper.cxx:363
 AliEbyEPidRatioHelper.cxx:364
 AliEbyEPidRatioHelper.cxx:365
 AliEbyEPidRatioHelper.cxx:366
 AliEbyEPidRatioHelper.cxx:367
 AliEbyEPidRatioHelper.cxx:368
 AliEbyEPidRatioHelper.cxx:369
 AliEbyEPidRatioHelper.cxx:370
 AliEbyEPidRatioHelper.cxx:371
 AliEbyEPidRatioHelper.cxx:372
 AliEbyEPidRatioHelper.cxx:373
 AliEbyEPidRatioHelper.cxx:374
 AliEbyEPidRatioHelper.cxx:375
 AliEbyEPidRatioHelper.cxx:376
 AliEbyEPidRatioHelper.cxx:377
 AliEbyEPidRatioHelper.cxx:378
 AliEbyEPidRatioHelper.cxx:379
 AliEbyEPidRatioHelper.cxx:380
 AliEbyEPidRatioHelper.cxx:381
 AliEbyEPidRatioHelper.cxx:382
 AliEbyEPidRatioHelper.cxx:383
 AliEbyEPidRatioHelper.cxx:384
 AliEbyEPidRatioHelper.cxx:385
 AliEbyEPidRatioHelper.cxx:386
 AliEbyEPidRatioHelper.cxx:387
 AliEbyEPidRatioHelper.cxx:388
 AliEbyEPidRatioHelper.cxx:389
 AliEbyEPidRatioHelper.cxx:390
 AliEbyEPidRatioHelper.cxx:391
 AliEbyEPidRatioHelper.cxx:392
 AliEbyEPidRatioHelper.cxx:393
 AliEbyEPidRatioHelper.cxx:394
 AliEbyEPidRatioHelper.cxx:395
 AliEbyEPidRatioHelper.cxx:396
 AliEbyEPidRatioHelper.cxx:397
 AliEbyEPidRatioHelper.cxx:398
 AliEbyEPidRatioHelper.cxx:399
 AliEbyEPidRatioHelper.cxx:400
 AliEbyEPidRatioHelper.cxx:401
 AliEbyEPidRatioHelper.cxx:402
 AliEbyEPidRatioHelper.cxx:403
 AliEbyEPidRatioHelper.cxx:404
 AliEbyEPidRatioHelper.cxx:405
 AliEbyEPidRatioHelper.cxx:406
 AliEbyEPidRatioHelper.cxx:407
 AliEbyEPidRatioHelper.cxx:408
 AliEbyEPidRatioHelper.cxx:409
 AliEbyEPidRatioHelper.cxx:410
 AliEbyEPidRatioHelper.cxx:411
 AliEbyEPidRatioHelper.cxx:412
 AliEbyEPidRatioHelper.cxx:413
 AliEbyEPidRatioHelper.cxx:414
 AliEbyEPidRatioHelper.cxx:415
 AliEbyEPidRatioHelper.cxx:416
 AliEbyEPidRatioHelper.cxx:417
 AliEbyEPidRatioHelper.cxx:418
 AliEbyEPidRatioHelper.cxx:419
 AliEbyEPidRatioHelper.cxx:420
 AliEbyEPidRatioHelper.cxx:421
 AliEbyEPidRatioHelper.cxx:422
 AliEbyEPidRatioHelper.cxx:423
 AliEbyEPidRatioHelper.cxx:424
 AliEbyEPidRatioHelper.cxx:425
 AliEbyEPidRatioHelper.cxx:426
 AliEbyEPidRatioHelper.cxx:427
 AliEbyEPidRatioHelper.cxx:428
 AliEbyEPidRatioHelper.cxx:429
 AliEbyEPidRatioHelper.cxx:430
 AliEbyEPidRatioHelper.cxx:431
 AliEbyEPidRatioHelper.cxx:432
 AliEbyEPidRatioHelper.cxx:433
 AliEbyEPidRatioHelper.cxx:434
 AliEbyEPidRatioHelper.cxx:435
 AliEbyEPidRatioHelper.cxx:436
 AliEbyEPidRatioHelper.cxx:437
 AliEbyEPidRatioHelper.cxx:438
 AliEbyEPidRatioHelper.cxx:439
 AliEbyEPidRatioHelper.cxx:440
 AliEbyEPidRatioHelper.cxx:441
 AliEbyEPidRatioHelper.cxx:442
 AliEbyEPidRatioHelper.cxx:443
 AliEbyEPidRatioHelper.cxx:444
 AliEbyEPidRatioHelper.cxx:445
 AliEbyEPidRatioHelper.cxx:446
 AliEbyEPidRatioHelper.cxx:447
 AliEbyEPidRatioHelper.cxx:448
 AliEbyEPidRatioHelper.cxx:449
 AliEbyEPidRatioHelper.cxx:450
 AliEbyEPidRatioHelper.cxx:451
 AliEbyEPidRatioHelper.cxx:452
 AliEbyEPidRatioHelper.cxx:453
 AliEbyEPidRatioHelper.cxx:454
 AliEbyEPidRatioHelper.cxx:455
 AliEbyEPidRatioHelper.cxx:456
 AliEbyEPidRatioHelper.cxx:457
 AliEbyEPidRatioHelper.cxx:458
 AliEbyEPidRatioHelper.cxx:459
 AliEbyEPidRatioHelper.cxx:460
 AliEbyEPidRatioHelper.cxx:461
 AliEbyEPidRatioHelper.cxx:462
 AliEbyEPidRatioHelper.cxx:463
 AliEbyEPidRatioHelper.cxx:464
 AliEbyEPidRatioHelper.cxx:465
 AliEbyEPidRatioHelper.cxx:466
 AliEbyEPidRatioHelper.cxx:467
 AliEbyEPidRatioHelper.cxx:468
 AliEbyEPidRatioHelper.cxx:469
 AliEbyEPidRatioHelper.cxx:470
 AliEbyEPidRatioHelper.cxx:471
 AliEbyEPidRatioHelper.cxx:472
 AliEbyEPidRatioHelper.cxx:473
 AliEbyEPidRatioHelper.cxx:474
 AliEbyEPidRatioHelper.cxx:475
 AliEbyEPidRatioHelper.cxx:476
 AliEbyEPidRatioHelper.cxx:477
 AliEbyEPidRatioHelper.cxx:478
 AliEbyEPidRatioHelper.cxx:479
 AliEbyEPidRatioHelper.cxx:480
 AliEbyEPidRatioHelper.cxx:481
 AliEbyEPidRatioHelper.cxx:482
 AliEbyEPidRatioHelper.cxx:483
 AliEbyEPidRatioHelper.cxx:484
 AliEbyEPidRatioHelper.cxx:485
 AliEbyEPidRatioHelper.cxx:486
 AliEbyEPidRatioHelper.cxx:487
 AliEbyEPidRatioHelper.cxx:488
 AliEbyEPidRatioHelper.cxx:489
 AliEbyEPidRatioHelper.cxx:490
 AliEbyEPidRatioHelper.cxx:491
 AliEbyEPidRatioHelper.cxx:492
 AliEbyEPidRatioHelper.cxx:493
 AliEbyEPidRatioHelper.cxx:494
 AliEbyEPidRatioHelper.cxx:495
 AliEbyEPidRatioHelper.cxx:496
 AliEbyEPidRatioHelper.cxx:497
 AliEbyEPidRatioHelper.cxx:498
 AliEbyEPidRatioHelper.cxx:499
 AliEbyEPidRatioHelper.cxx:500
 AliEbyEPidRatioHelper.cxx:501
 AliEbyEPidRatioHelper.cxx:502
 AliEbyEPidRatioHelper.cxx:503
 AliEbyEPidRatioHelper.cxx:504
 AliEbyEPidRatioHelper.cxx:505
 AliEbyEPidRatioHelper.cxx:506
 AliEbyEPidRatioHelper.cxx:507
 AliEbyEPidRatioHelper.cxx:508
 AliEbyEPidRatioHelper.cxx:509
 AliEbyEPidRatioHelper.cxx:510
 AliEbyEPidRatioHelper.cxx:511
 AliEbyEPidRatioHelper.cxx:512
 AliEbyEPidRatioHelper.cxx:513
 AliEbyEPidRatioHelper.cxx:514
 AliEbyEPidRatioHelper.cxx:515
 AliEbyEPidRatioHelper.cxx:516
 AliEbyEPidRatioHelper.cxx:517
 AliEbyEPidRatioHelper.cxx:518
 AliEbyEPidRatioHelper.cxx:519
 AliEbyEPidRatioHelper.cxx:520
 AliEbyEPidRatioHelper.cxx:521
 AliEbyEPidRatioHelper.cxx:522
 AliEbyEPidRatioHelper.cxx:523
 AliEbyEPidRatioHelper.cxx:524
 AliEbyEPidRatioHelper.cxx:525
 AliEbyEPidRatioHelper.cxx:526
 AliEbyEPidRatioHelper.cxx:527
 AliEbyEPidRatioHelper.cxx:528
 AliEbyEPidRatioHelper.cxx:529
 AliEbyEPidRatioHelper.cxx:530
 AliEbyEPidRatioHelper.cxx:531
 AliEbyEPidRatioHelper.cxx:532
 AliEbyEPidRatioHelper.cxx:533
 AliEbyEPidRatioHelper.cxx:534
 AliEbyEPidRatioHelper.cxx:535
 AliEbyEPidRatioHelper.cxx:536
 AliEbyEPidRatioHelper.cxx:537
 AliEbyEPidRatioHelper.cxx:538
 AliEbyEPidRatioHelper.cxx:539
 AliEbyEPidRatioHelper.cxx:540
 AliEbyEPidRatioHelper.cxx:541
 AliEbyEPidRatioHelper.cxx:542
 AliEbyEPidRatioHelper.cxx:543
 AliEbyEPidRatioHelper.cxx:544
 AliEbyEPidRatioHelper.cxx:545
 AliEbyEPidRatioHelper.cxx:546
 AliEbyEPidRatioHelper.cxx:547
 AliEbyEPidRatioHelper.cxx:548
 AliEbyEPidRatioHelper.cxx:549
 AliEbyEPidRatioHelper.cxx:550
 AliEbyEPidRatioHelper.cxx:551
 AliEbyEPidRatioHelper.cxx:552
 AliEbyEPidRatioHelper.cxx:553
 AliEbyEPidRatioHelper.cxx:554
 AliEbyEPidRatioHelper.cxx:555
 AliEbyEPidRatioHelper.cxx:556
 AliEbyEPidRatioHelper.cxx:557
 AliEbyEPidRatioHelper.cxx:558
 AliEbyEPidRatioHelper.cxx:559
 AliEbyEPidRatioHelper.cxx:560
 AliEbyEPidRatioHelper.cxx:561
 AliEbyEPidRatioHelper.cxx:562
 AliEbyEPidRatioHelper.cxx:563
 AliEbyEPidRatioHelper.cxx:564
 AliEbyEPidRatioHelper.cxx:565
 AliEbyEPidRatioHelper.cxx:566
 AliEbyEPidRatioHelper.cxx:567
 AliEbyEPidRatioHelper.cxx:568
 AliEbyEPidRatioHelper.cxx:569
 AliEbyEPidRatioHelper.cxx:570
 AliEbyEPidRatioHelper.cxx:571
 AliEbyEPidRatioHelper.cxx:572
 AliEbyEPidRatioHelper.cxx:573
 AliEbyEPidRatioHelper.cxx:574
 AliEbyEPidRatioHelper.cxx:575
 AliEbyEPidRatioHelper.cxx:576
 AliEbyEPidRatioHelper.cxx:577
 AliEbyEPidRatioHelper.cxx:578
 AliEbyEPidRatioHelper.cxx:579
 AliEbyEPidRatioHelper.cxx:580
 AliEbyEPidRatioHelper.cxx:581
 AliEbyEPidRatioHelper.cxx:582
 AliEbyEPidRatioHelper.cxx:583
 AliEbyEPidRatioHelper.cxx:584
 AliEbyEPidRatioHelper.cxx:585
 AliEbyEPidRatioHelper.cxx:586
 AliEbyEPidRatioHelper.cxx:587
 AliEbyEPidRatioHelper.cxx:588
 AliEbyEPidRatioHelper.cxx:589
 AliEbyEPidRatioHelper.cxx:590
 AliEbyEPidRatioHelper.cxx:591
 AliEbyEPidRatioHelper.cxx:592
 AliEbyEPidRatioHelper.cxx:593
 AliEbyEPidRatioHelper.cxx:594
 AliEbyEPidRatioHelper.cxx:595
 AliEbyEPidRatioHelper.cxx:596
 AliEbyEPidRatioHelper.cxx:597
 AliEbyEPidRatioHelper.cxx:598
 AliEbyEPidRatioHelper.cxx:599
 AliEbyEPidRatioHelper.cxx:600
 AliEbyEPidRatioHelper.cxx:601
 AliEbyEPidRatioHelper.cxx:602
 AliEbyEPidRatioHelper.cxx:603
 AliEbyEPidRatioHelper.cxx:604
 AliEbyEPidRatioHelper.cxx:605
 AliEbyEPidRatioHelper.cxx:606
 AliEbyEPidRatioHelper.cxx:607
 AliEbyEPidRatioHelper.cxx:608
 AliEbyEPidRatioHelper.cxx:609
 AliEbyEPidRatioHelper.cxx:610
 AliEbyEPidRatioHelper.cxx:611
 AliEbyEPidRatioHelper.cxx:612
 AliEbyEPidRatioHelper.cxx:613
 AliEbyEPidRatioHelper.cxx:614
 AliEbyEPidRatioHelper.cxx:615
 AliEbyEPidRatioHelper.cxx:616
 AliEbyEPidRatioHelper.cxx:617
 AliEbyEPidRatioHelper.cxx:618
 AliEbyEPidRatioHelper.cxx:619
 AliEbyEPidRatioHelper.cxx:620
 AliEbyEPidRatioHelper.cxx:621
 AliEbyEPidRatioHelper.cxx:622
 AliEbyEPidRatioHelper.cxx:623
 AliEbyEPidRatioHelper.cxx:624
 AliEbyEPidRatioHelper.cxx:625
 AliEbyEPidRatioHelper.cxx:626
 AliEbyEPidRatioHelper.cxx:627
 AliEbyEPidRatioHelper.cxx:628
 AliEbyEPidRatioHelper.cxx:629
 AliEbyEPidRatioHelper.cxx:630
 AliEbyEPidRatioHelper.cxx:631
 AliEbyEPidRatioHelper.cxx:632
 AliEbyEPidRatioHelper.cxx:633
 AliEbyEPidRatioHelper.cxx:634
 AliEbyEPidRatioHelper.cxx:635
 AliEbyEPidRatioHelper.cxx:636
 AliEbyEPidRatioHelper.cxx:637
 AliEbyEPidRatioHelper.cxx:638
 AliEbyEPidRatioHelper.cxx:639
 AliEbyEPidRatioHelper.cxx:640
 AliEbyEPidRatioHelper.cxx:641
 AliEbyEPidRatioHelper.cxx:642
 AliEbyEPidRatioHelper.cxx:643
 AliEbyEPidRatioHelper.cxx:644
 AliEbyEPidRatioHelper.cxx:645
 AliEbyEPidRatioHelper.cxx:646
 AliEbyEPidRatioHelper.cxx:647
 AliEbyEPidRatioHelper.cxx:648
 AliEbyEPidRatioHelper.cxx:649
 AliEbyEPidRatioHelper.cxx:650
 AliEbyEPidRatioHelper.cxx:651
 AliEbyEPidRatioHelper.cxx:652
 AliEbyEPidRatioHelper.cxx:653
 AliEbyEPidRatioHelper.cxx:654
 AliEbyEPidRatioHelper.cxx:655
 AliEbyEPidRatioHelper.cxx:656
 AliEbyEPidRatioHelper.cxx:657
 AliEbyEPidRatioHelper.cxx:658
 AliEbyEPidRatioHelper.cxx:659
 AliEbyEPidRatioHelper.cxx:660
 AliEbyEPidRatioHelper.cxx:661
 AliEbyEPidRatioHelper.cxx:662
 AliEbyEPidRatioHelper.cxx:663
 AliEbyEPidRatioHelper.cxx:664
 AliEbyEPidRatioHelper.cxx:665
 AliEbyEPidRatioHelper.cxx:666
 AliEbyEPidRatioHelper.cxx:667
 AliEbyEPidRatioHelper.cxx:668
 AliEbyEPidRatioHelper.cxx:669
 AliEbyEPidRatioHelper.cxx:670
 AliEbyEPidRatioHelper.cxx:671
 AliEbyEPidRatioHelper.cxx:672
 AliEbyEPidRatioHelper.cxx:673
 AliEbyEPidRatioHelper.cxx:674
 AliEbyEPidRatioHelper.cxx:675
 AliEbyEPidRatioHelper.cxx:676
 AliEbyEPidRatioHelper.cxx:677
 AliEbyEPidRatioHelper.cxx:678
 AliEbyEPidRatioHelper.cxx:679
 AliEbyEPidRatioHelper.cxx:680
 AliEbyEPidRatioHelper.cxx:681
 AliEbyEPidRatioHelper.cxx:682
 AliEbyEPidRatioHelper.cxx:683
 AliEbyEPidRatioHelper.cxx:684
 AliEbyEPidRatioHelper.cxx:685
 AliEbyEPidRatioHelper.cxx:686
 AliEbyEPidRatioHelper.cxx:687
 AliEbyEPidRatioHelper.cxx:688
 AliEbyEPidRatioHelper.cxx:689
 AliEbyEPidRatioHelper.cxx:690
 AliEbyEPidRatioHelper.cxx:691
 AliEbyEPidRatioHelper.cxx:692
 AliEbyEPidRatioHelper.cxx:693
 AliEbyEPidRatioHelper.cxx:694
 AliEbyEPidRatioHelper.cxx:695
 AliEbyEPidRatioHelper.cxx:696
 AliEbyEPidRatioHelper.cxx:697
 AliEbyEPidRatioHelper.cxx:698
 AliEbyEPidRatioHelper.cxx:699
 AliEbyEPidRatioHelper.cxx:700
 AliEbyEPidRatioHelper.cxx:701
 AliEbyEPidRatioHelper.cxx:702
 AliEbyEPidRatioHelper.cxx:703
 AliEbyEPidRatioHelper.cxx:704
 AliEbyEPidRatioHelper.cxx:705
 AliEbyEPidRatioHelper.cxx:706
 AliEbyEPidRatioHelper.cxx:707
 AliEbyEPidRatioHelper.cxx:708
 AliEbyEPidRatioHelper.cxx:709
 AliEbyEPidRatioHelper.cxx:710
 AliEbyEPidRatioHelper.cxx:711
 AliEbyEPidRatioHelper.cxx:712
 AliEbyEPidRatioHelper.cxx:713
 AliEbyEPidRatioHelper.cxx:714
 AliEbyEPidRatioHelper.cxx:715
 AliEbyEPidRatioHelper.cxx:716
 AliEbyEPidRatioHelper.cxx:717
 AliEbyEPidRatioHelper.cxx:718
 AliEbyEPidRatioHelper.cxx:719
 AliEbyEPidRatioHelper.cxx:720
 AliEbyEPidRatioHelper.cxx:721
 AliEbyEPidRatioHelper.cxx:722
 AliEbyEPidRatioHelper.cxx:723
 AliEbyEPidRatioHelper.cxx:724
 AliEbyEPidRatioHelper.cxx:725
 AliEbyEPidRatioHelper.cxx:726
 AliEbyEPidRatioHelper.cxx:727
 AliEbyEPidRatioHelper.cxx:728
 AliEbyEPidRatioHelper.cxx:729
 AliEbyEPidRatioHelper.cxx:730
 AliEbyEPidRatioHelper.cxx:731
 AliEbyEPidRatioHelper.cxx:732
 AliEbyEPidRatioHelper.cxx:733
 AliEbyEPidRatioHelper.cxx:734
 AliEbyEPidRatioHelper.cxx:735
 AliEbyEPidRatioHelper.cxx:736
 AliEbyEPidRatioHelper.cxx:737
 AliEbyEPidRatioHelper.cxx:738
 AliEbyEPidRatioHelper.cxx:739
 AliEbyEPidRatioHelper.cxx:740
 AliEbyEPidRatioHelper.cxx:741
 AliEbyEPidRatioHelper.cxx:742
 AliEbyEPidRatioHelper.cxx:743
 AliEbyEPidRatioHelper.cxx:744
 AliEbyEPidRatioHelper.cxx:745
 AliEbyEPidRatioHelper.cxx:746
 AliEbyEPidRatioHelper.cxx:747
 AliEbyEPidRatioHelper.cxx:748
 AliEbyEPidRatioHelper.cxx:749
 AliEbyEPidRatioHelper.cxx:750
 AliEbyEPidRatioHelper.cxx:751
 AliEbyEPidRatioHelper.cxx:752
 AliEbyEPidRatioHelper.cxx:753
 AliEbyEPidRatioHelper.cxx:754
 AliEbyEPidRatioHelper.cxx:755
 AliEbyEPidRatioHelper.cxx:756
 AliEbyEPidRatioHelper.cxx:757
 AliEbyEPidRatioHelper.cxx:758
 AliEbyEPidRatioHelper.cxx:759
 AliEbyEPidRatioHelper.cxx:760
 AliEbyEPidRatioHelper.cxx:761
 AliEbyEPidRatioHelper.cxx:762
 AliEbyEPidRatioHelper.cxx:763
 AliEbyEPidRatioHelper.cxx:764
 AliEbyEPidRatioHelper.cxx:765
 AliEbyEPidRatioHelper.cxx:766
 AliEbyEPidRatioHelper.cxx:767
 AliEbyEPidRatioHelper.cxx:768
 AliEbyEPidRatioHelper.cxx:769
 AliEbyEPidRatioHelper.cxx:770
 AliEbyEPidRatioHelper.cxx:771
 AliEbyEPidRatioHelper.cxx:772
 AliEbyEPidRatioHelper.cxx:773
 AliEbyEPidRatioHelper.cxx:774
 AliEbyEPidRatioHelper.cxx:775
 AliEbyEPidRatioHelper.cxx:776
 AliEbyEPidRatioHelper.cxx:777
 AliEbyEPidRatioHelper.cxx:778
 AliEbyEPidRatioHelper.cxx:779
 AliEbyEPidRatioHelper.cxx:780
 AliEbyEPidRatioHelper.cxx:781
 AliEbyEPidRatioHelper.cxx:782
 AliEbyEPidRatioHelper.cxx:783
 AliEbyEPidRatioHelper.cxx:784
 AliEbyEPidRatioHelper.cxx:785
 AliEbyEPidRatioHelper.cxx:786
 AliEbyEPidRatioHelper.cxx:787
 AliEbyEPidRatioHelper.cxx:788
 AliEbyEPidRatioHelper.cxx:789
 AliEbyEPidRatioHelper.cxx:790
 AliEbyEPidRatioHelper.cxx:791
 AliEbyEPidRatioHelper.cxx:792
 AliEbyEPidRatioHelper.cxx:793
 AliEbyEPidRatioHelper.cxx:794
 AliEbyEPidRatioHelper.cxx:795
 AliEbyEPidRatioHelper.cxx:796
 AliEbyEPidRatioHelper.cxx:797
 AliEbyEPidRatioHelper.cxx:798
 AliEbyEPidRatioHelper.cxx:799
 AliEbyEPidRatioHelper.cxx:800
 AliEbyEPidRatioHelper.cxx:801
 AliEbyEPidRatioHelper.cxx:802
 AliEbyEPidRatioHelper.cxx:803
 AliEbyEPidRatioHelper.cxx:804
 AliEbyEPidRatioHelper.cxx:805
 AliEbyEPidRatioHelper.cxx:806
 AliEbyEPidRatioHelper.cxx:807
 AliEbyEPidRatioHelper.cxx:808
 AliEbyEPidRatioHelper.cxx:809
 AliEbyEPidRatioHelper.cxx:810
 AliEbyEPidRatioHelper.cxx:811
 AliEbyEPidRatioHelper.cxx:812
 AliEbyEPidRatioHelper.cxx:813
 AliEbyEPidRatioHelper.cxx:814
 AliEbyEPidRatioHelper.cxx:815
 AliEbyEPidRatioHelper.cxx:816
 AliEbyEPidRatioHelper.cxx:817
 AliEbyEPidRatioHelper.cxx:818
 AliEbyEPidRatioHelper.cxx:819
 AliEbyEPidRatioHelper.cxx:820
 AliEbyEPidRatioHelper.cxx:821
 AliEbyEPidRatioHelper.cxx:822
 AliEbyEPidRatioHelper.cxx:823
 AliEbyEPidRatioHelper.cxx:824
 AliEbyEPidRatioHelper.cxx:825
 AliEbyEPidRatioHelper.cxx:826
 AliEbyEPidRatioHelper.cxx:827
 AliEbyEPidRatioHelper.cxx:828
 AliEbyEPidRatioHelper.cxx:829
 AliEbyEPidRatioHelper.cxx:830
 AliEbyEPidRatioHelper.cxx:831
 AliEbyEPidRatioHelper.cxx:832
 AliEbyEPidRatioHelper.cxx:833
 AliEbyEPidRatioHelper.cxx:834
 AliEbyEPidRatioHelper.cxx:835
 AliEbyEPidRatioHelper.cxx:836
 AliEbyEPidRatioHelper.cxx:837
 AliEbyEPidRatioHelper.cxx:838
 AliEbyEPidRatioHelper.cxx:839
 AliEbyEPidRatioHelper.cxx:840
 AliEbyEPidRatioHelper.cxx:841
 AliEbyEPidRatioHelper.cxx:842
 AliEbyEPidRatioHelper.cxx:843
 AliEbyEPidRatioHelper.cxx:844
 AliEbyEPidRatioHelper.cxx:845
 AliEbyEPidRatioHelper.cxx:846
 AliEbyEPidRatioHelper.cxx:847
 AliEbyEPidRatioHelper.cxx:848
 AliEbyEPidRatioHelper.cxx:849
 AliEbyEPidRatioHelper.cxx:850
 AliEbyEPidRatioHelper.cxx:851
 AliEbyEPidRatioHelper.cxx:852
 AliEbyEPidRatioHelper.cxx:853
 AliEbyEPidRatioHelper.cxx:854