ROOT logo
/**************************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: Satyajit Jena.                                                 *
 * 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 Fluctuaion Analysis for PID                     //
//                   Deepika Jena | drathee@cern.ch                        //
//                   Satyajit Jena | sjena@cern.ch                         //
//=========================================================================//

#include "TChain.h"
#include "TList.h"
#include "TFile.h"
#include "TTree.h"
#include "TH1D.h"
#include "TH2F.h"
#include "TH3F.h"
#include "TProfile.h"

#include "AliAnalysisTask.h"
#include "AliAnalysisManager.h"

#include "AliVEvent.h"
#include "AliESDEvent.h"
#include "AliMCEvent.h"
#include "AliAODEvent.h"

#include "AliStack.h"
#include "AliGenEventHeader.h"
#include "AliGenPythiaEventHeader.h"
#include "AliGenHijingEventHeader.h"
#include "AliGenDPMjetEventHeader.h"
#include "TDatabasePDG.h"

#include "AliEbyEPidRatioTaskOnFly.h"

ClassImp(AliEbyEPidRatioTaskOnFly)

//-----------------------------------------------------------------------
AliEbyEPidRatioTaskOnFly::AliEbyEPidRatioTaskOnFly( const char *name )
: AliAnalysisTaskSE( name ),
  fThnList(0),
  fPtLowerLimit(0.2),
  fPtHigherLimit(5.),
  fEtaLowerLimit(-1.),
  fEtaHigherLimit(1.),
  fCentrality(-1),
  fOrder(8),
  fRedFactp(NULL)
  
 
{ 
 
  DefineOutput(1, TList::Class()); 
}

AliEbyEPidRatioTaskOnFly::~AliEbyEPidRatioTaskOnFly()
{
  if (fThnList) delete fThnList;
  
  for (Int_t ii = 0; ii <= fOrder; ++ii) 
    if (fRedFactp[ii]) delete[] fRedFactp[ii];
  if (fRedFactp) delete[] fRedFactp;
  
}




//---------------------------------------------------------------------------------
void AliEbyEPidRatioTaskOnFly::UserCreateOutputObjects() {
  fThnList = new TList();
  fThnList->SetOwner(kTRUE);

  const Char_t *name = "Mc";
  const Char_t *title = Form(" #eta [%2.1f-%2.1f]",fEtaLowerLimit,fEtaHigherLimit);


  TString sName(name);
  TString sTitle(title);
 
    
  fRedFactp = new Double_t*[fOrder+1];
  for (Int_t ii = 0 ; ii <= fOrder; ++ii)
    fRedFactp[ii] = new Double_t[2];
  
  //TList *list[4];
  fThnList->Add(new TList);
  TList *list =  static_cast<TList*>(fThnList->Last());
  list->SetName(Form("f%s",name));
  list->SetOwner(kTRUE);
  
  for (Int_t iPid = 0; iPid < 4; ++iPid) {
    TString sNetTitle(Form("%s - %s",fgkPidLatex[iPid][1],fgkPidLatex[iPid][0]));

    list->Add(new TProfile(Form("fProfTot%sPlus%s",fgkPidName[iPid],name), 
			   Form("(%s) : %s;Centrality(100);(%s)",fgkPidName[iPid], sTitle.Data(), sNetTitle.Data()),
			   20,-0.5,19.5));

    list->Add(new TProfile(Form("fProfTot%sMinus%s",fgkPidName[iPid],name), 
			   Form("(%s) : %s;Centrality(100);(%s)",fgkPidName[iPid], sTitle.Data(), sNetTitle.Data()),
			   20,-0.5,19.5));
    
    for (Int_t idx = 1; idx <= fOrder; ++idx) {
      list->Add(new TProfile(Form("fProf%s%sNet%dM",fgkPidName[iPid],name, idx), 
			     Form("(%s)^{%d} : %s;Centrality(100);(%s)^{%d}",sNetTitle.Data(), idx, sTitle.Data(), sNetTitle.Data(), idx),
			     20,-0.5,19.5));
    }
    
    for (Int_t ii = 0; ii <= fOrder; ++ii) {
      for (Int_t kk = 0; kk <= fOrder; ++kk) {
	list->Add(new TProfile(Form("fProf%s%sNetF%02d%02d",fgkPidName[iPid], name, ii, kk),
			       Form("f_{%02d%02d} : %s;Centrality(100);f_{%02d%02d}", ii, kk, sTitle.Data(), ii, kk),
			       20,-0.5,19.5));
      }
    }
  
  }  
			     

  for (Int_t iPhy = 0; iPhy < 46; ++iPhy) { 
    list->Add(new TProfile(Form("fProf%sNu%02d",name,iPhy),Form("Physics Variable for index %d | %s ; Centrality;",iPhy,name),20,-0.5,19.5));
  }
  
 
  PostData(1, fThnList);
}


//----------------------------------------------------------------------------------
void AliEbyEPidRatioTaskOnFly::UserExec( Option_t * ){
  AliMCEvent* mcEvent = MCEvent();
  if (!mcEvent) {
    Printf("ERROR: Could not retrieve MC event");
    return;
  }
 
  for (Int_t ii = 0 ; ii < 4; ++ii) 
    for (Int_t kk = 0 ; kk < 2; ++kk) 
    fNp[ii][kk] = 0;
  

  const AliVVertex *vtxMC = mcEvent->GetPrimaryVertex();
  if (vtxMC->GetZ() > 10.) return;
 
  AliStack *stack = mcEvent->Stack();
 
  AliGenEventHeader* genHeader = mcEvent->GenEventHeader();
  if(!genHeader){
    printf("  Event generator header not available!!!\n");
    return;
  }
  
  Double_t imp = 21;
  
  if(genHeader->InheritsFrom(AliGenHijingEventHeader::Class())){
    imp = ((AliGenHijingEventHeader*) genHeader)->ImpactParameter();
  }  
  if (imp < 20) fCentrality = Int_t(imp);
  else return;

  Int_t nParticles = stack->GetNtrack();
  for (Int_t iParticle = 0; iParticle < nParticles; iParticle++) {
    TParticle* part = stack->Particle(iParticle);
    if (!part) {
      Printf(" No Particle Available ");
      continue;
    }
    
    Float_t pt = part->Pt();
    if(pt < fPtLowerLimit || pt > fPtHigherLimit ) continue;
    Float_t gEta = part->Eta();
    if(gEta < fEtaLowerLimit || gEta > fEtaHigherLimit ) continue;
    
    //  Float_t gCharge = (pdgPart ? pdgPart->Charge() : 0);
    
    Int_t pid = part->GetPdgCode();
    if(pid == 211)         { fNp[1][1]++;  fNp[0][1]++; } 
    else if(pid ==  -211)  { fNp[1][0]++;  fNp[0][0]++; } 
    else if(pid ==   321)  { fNp[2][1]++;  fNp[0][1]++; } 
    else if(pid ==  -321)  { fNp[2][0]++;  fNp[0][0]++; } 
    else if(pid ==  2212)  { fNp[3][1]++;  fNp[0][1]++; } 
    else if(pid == -2212)  { fNp[3][0]++;  fNp[0][0]++; } 
    
  }
    
  /*Printf("%6d %6d %6d %6d %6d %6d %6d %6d %6d", fCentrality,  
	 fNp[0][0], fNp[0][1], 
	 fNp[1][0], fNp[1][1], 
	 fNp[2][0], fNp[2][1], 
	 fNp[3][0], fNp[3][1]);*/


  FillHistSetCent();
  PostData(1, fThnList);
}

void AliEbyEPidRatioTaskOnFly::Terminate( Option_t * ){
  Info("AliEbyEPidRatioTaskOnFly"," Task Successfully finished");
}
//________________________________________________________________________
const Char_t* AliEbyEPidRatioTaskOnFly::fgkPidName[4]      = {"Nch","Npi","Nka","Npr"};
//________________________________________________________________________
const Char_t* AliEbyEPidRatioTaskOnFly::fgkPidLatex[4][2]  = {{"N_{-}","N_{+}"}, {"N_{#pi^{-}}","N_{#pi^{+}}"},{"N_{K^{-}}","N_{K^{+}}"}, {"N_{#bar{p}}","N_{p}"}};
//________________________________________________________________________
const Char_t* AliEbyEPidRatioTaskOnFly::fgkPidTitles[4][2] = {{"Negative","Positive"},{"Anti-Pions","Pions"},{"Anti-Kaons","Kaons"}, {"Anti-Protons","Protons"}};
//________________________________________________________________________
void AliEbyEPidRatioTaskOnFly::FillHistSetCent()  {

  const Char_t *name = "Mc";
    
  TList *list = static_cast<TList*>(fThnList->FindObject(Form("f%s",name)));
  
  for (Int_t iPid = 0; iPid < 4; ++iPid) {
    Int_t deltaNp = fNp[iPid][1]-fNp[iPid][0];  
    Double_t delta = 1.;
    (static_cast<TProfile*>(list->FindObject(Form("fProfTot%sPlus%s", fgkPidName[iPid], name))))->Fill(fCentrality, fNp[iPid][1]);
    (static_cast<TProfile*>(list->FindObject(Form("fProfTot%sMinus%s", fgkPidName[iPid], name))))->Fill(fCentrality, fNp[iPid][0]);
    for (Int_t idxOrder = 1; idxOrder <= fOrder; ++idxOrder) {
      delta *= deltaNp;
      (static_cast<TProfile*>(list->FindObject(Form("fProf%s%sNet%dM", fgkPidName[iPid], name, idxOrder))))->Fill(fCentrality, delta);
    }
    
    for (Int_t idxOrder = 0; idxOrder <= fOrder; ++ idxOrder) {
      fRedFactp[idxOrder][0]  = 1.;
      fRedFactp[idxOrder][1]  = 1.;
    }
    
    for (Int_t idxOrder = 1; idxOrder <= fOrder; ++ idxOrder) {
      fRedFactp[idxOrder][0]  = fRedFactp[idxOrder-1][0]  * Double_t(fNp[iPid][0]-(idxOrder-1));
      fRedFactp[idxOrder][1]  = fRedFactp[idxOrder-1][1]  * Double_t(fNp[iPid][1]-(idxOrder-1));
    }
    
    for (Int_t ii = 0; ii <= fOrder; ++ii) {  
      for (Int_t kk = 0; kk <= fOrder; ++kk) { 
	Double_t fik = fRedFactp[ii][1] * fRedFactp[kk][0];   
	(static_cast<TProfile*>(list->FindObject(Form("fProf%s%sNetF%02d%02d", fgkPidName[iPid], name, ii, kk))))->Fill(fCentrality, fik);
      }
    }
  }
 
  //Printf("%6d %20s %6.2f %6d %6d %6d %6d  %6d %6d %6d %6d", idx, name, centralityBin,
  //	 fNp[0][1],  fNp[0][0], 
  //	 fNp[1][1],  fNp[1][0], 
  ///	 fNp[2][1],  fNp[2][0], 
  //	 fNp[3][1],  fNp[3][0]);
  //

   Int_t a[6][4]; Int_t b[22];
   for (Int_t iPid = 0; iPid < 4; ++iPid) {
     a[0][iPid] = fNp[iPid][1]+fNp[iPid][0];       // 0  n+ + n-
     a[1][iPid] = fNp[iPid][1];                        // 1  n+
     a[2][iPid] = fNp[iPid][0];                        // 2  n-
     a[3][iPid] = fNp[iPid][1]*fNp[iPid][0];       // 3  n+ . n-
     a[4][iPid] = fNp[iPid][1]*(fNp[iPid][1]-1);   // 4  n+ (n+ - 1)
     a[5][iPid] = fNp[iPid][0]*(fNp[iPid][0]-1);   // 5  n- (n- - 1)
     
     // Printf("%6d %20s %6.2f %6d %6d %6d ", idx, name, centralityBin,
     //	   a[0][iPid], a[1][iPid], a[2][iPid]);

  }
  
  b[0]  = a[0][0]*a[0][2];       // 24 N   K
  b[1]  = a[0][1]*a[0][2];       // 25 Pi  K
  b[2]  = a[1][1]*a[1][2];       // 26 pi+ k+
  b[3]  = a[1][1]*a[2][2];       // 27 pi+ k-
  b[4]  = a[2][1]*a[1][2];       // 28 pi- k+  
  b[5]  = a[2][1]*a[2][2];       // 29 pi- k-
  
  b[6]  = a[0][0]*a[0][3];       // 30 N   P
  b[7]  = a[0][2]*a[0][3];       // 31 K   P
  b[8]  = a[1][2]*a[1][3];       // 32 k+  p+
  b[9]  = a[1][2]*a[2][3];       // 33 k+  p-
  b[10] = a[2][2]*a[1][3];       // 34 k-  p+
  b[11] = a[2][2]*a[2][3];       // 35 k-  p-
  
  b[12] = a[0][0]*a[0][1];       // 36 N  Pi
  b[13] = a[0][3]*a[0][1];       // 37 P  Pi
  b[14] = a[1][3]*a[1][1];       // 38 p+ pi+
  b[15] = a[1][3]*a[2][1];       // 39 p+ pi-
  b[16] = a[2][3]*a[1][1];       // 40 p- pi+
  b[17] = a[2][3]*a[2][1];       // 41 p- pi-
  
  b[18] = a[0][0]*(a[0][0] - 1); // 42 N ( N - 1 )
  b[19] = a[0][1]*(a[0][1] - 1); // 43 Pi( Pi- 1 )
  b[20] = a[0][2]*(a[0][1] - 1); // 44 K ( K - 1 )
  b[21] = a[0][3]*(a[0][3] - 1); // 45 P ( P - 1 )
  // TList *list_nu = static_cast<TList*>(fOutList->FindObject(Form("f%s_nu",name)));
  Int_t k = 0;
  for (Int_t j = 0; j < 4; j++) {
    for (Int_t i = 0; i < 6; i++) {
      (static_cast<TProfile*>(list->FindObject(Form("fProf%sNu%02d", name,k))))->Fill(fCentrality,a[i][j]); 
      k++;
    }
  }

  for (Int_t j = 0; j < 22; j++) {
    (static_cast<TProfile*>(list->FindObject(Form("fProf%sNu%02d", name,j+24))))->Fill(fCentrality,b[j]); 
  }
  
  /*
  Printf("%6d %6d %6d %6d %6d %6d %6d %6d %6d", fCentrality,  
	 fNp[0][0], fNp[0][1], 
	 fNp[1][0], fNp[1][1], 
	 fNp[2][0], fNp[2][1], 
	 fNp[3][0], fNp[3][1]);
  */

  return;
}

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