ROOT logo
// DEFINITION OF A FEW CONSTANTS

const Double_t nevtmin= 1;
const Double_t nevtmax = 15000;

// Muons 
const Double_t ymin  = -4.0 ; 
const Double_t ymax  =  -2.5 ;

const Double_t phimin = -180;
const Double_t phimax = 180;

// Resonance
const Int_t    PDG = 443; //JPsi

const Double_t ptmin =  0.0 ;
const Double_t ptmax =  30 ;
const Double_t pmin =  0.0 ;
const Double_t pmax =  700 ;
const Int_t    charge  = 0 ;
const Double_t mmin =  0.1 ;
const Double_t mmax =  12 ;
const Double_t mymin =  -4 ;
const Double_t mymax =  -2.5 ;
const Double_t costCSmin =  -1.;
const Double_t costCSmax =  1.;
const Double_t costHEmin =  -1.;
const Double_t costHEmax =  1.;
const Double_t phiCSmin =  -TMath::Pi();
const Double_t phiCSmax =  TMath::Pi();
const Double_t phiHEmin =  -TMath::Pi();
const Double_t phiHEmax =  TMath::Pi();

//----------------------------------------------------

Bool_t AliCFMuonResTask1(
			    const Bool_t useGrid = 0,
			    const Bool_t readAOD = 0,
			    const char * kTagXMLFile="wn.xml" // XML file containing tags
			    )
{
  
  TBenchmark benchmark;
  benchmark.Start("AliMuonResTask1");

  AliLog::SetGlobalDebugLevel(0);

  Load() ; // load the required libraries

  TChain * analysisChain ;

///// INPUT

  if (useGrid) { // data located on AliEn
    TGrid::Connect("alien://") ;    //  Create an AliRunTagCuts and an AliEventTagCuts Object 
                                    //  and impose some selection criteria
    AliRunTagCuts      *runCuts   = new AliRunTagCuts(); 
    AliEventTagCuts    *eventCuts = new AliEventTagCuts(); 
    AliLHCTagCuts      *lhcCuts   = new AliLHCTagCuts(); 
    AliDetectorTagCuts *detCuts   = new AliDetectorTagCuts(); 
    eventCuts->SetMultiplicityRange(0,2000);

    //  Create an AliTagAnalysis Object and chain the tags
    AliTagAnalysis   *tagAna = new AliTagAnalysis(); 
    if (readAOD) tagAna->SetType("AOD");  // for aliroot > v4-05
    else         tagAna->SetType("ESD");  // for aliroot > v4-05
    TAlienCollection *coll   = TAlienCollection::Open(kTagXMLFile); 
    TGridResult      *tagResult = coll->GetGridResult("",0,0);
    tagResult->Print();
    tagAna->ChainGridTags(tagResult);

    // Create a new esd chain and assign the chain that is returned by querying the tags
    analysisChain = tagAna->QueryTags(runCuts,lhcCuts,detCuts,eventCuts); 
  }

  else {// local data
    // here put your input data path
    printf("\n\nRunning on local file, please check the path\n\n");

    if (readAOD) {
      analysisChain = new TChain("aodTree");
      analysisChain->Add("AliAOD.root");
    }
    else {
      analysisChain = new TChain("esdTree");
      analysisChain->Add("/alidata/alice/arnaldi/CORRFW/polar-1.1000.1000/AliESDs.root");
      analysisChain->Add("/alidata/alice/arnaldi/CORRFW/polar-1.1001.1000/AliESDs.root");
      analysisChain->Add("/alidata/alice/arnaldi/CORRFW/polar-1.1002.1000/AliESDs.root");
   }
  }
  
///// END INPUT


  Info("AliCFMuonResTask1",Form("CHAIN HAS %d ENTRIES",(Int_t)analysisChain->GetEntries()));

  // CONTAINER DEFINITION
  Info("AliCFMuonResTask1","SETUP CONTAINER");
  
  // The sensitive variables (13 in this example), their indices
  UInt_t nevt  = 0;
  UInt_t y1  = 1;
  UInt_t phi1  = 2;
  UInt_t y2  = 3;
  UInt_t phi2  = 4;
  UInt_t imass  = 5;
  UInt_t y  = 6;
  UInt_t pt = 7;
  UInt_t p = 8;
  UInt_t costCS = 9;
  UInt_t phiCS = 10;
  UInt_t costHE = 11;
  UInt_t phiHE = 12;


  // Setting up the container grid
  UInt_t nstep = 2 ; //number of selection steps : MC and ESD 
  const Int_t nvar   = 13 ;     //number of variables on the grid
  const Int_t nbin1  = nevtmax ;  
  const Int_t nbin2  = 100 ;  
  const Int_t nbin3  = 360 ;  
  const Int_t nbin4  = 100 ;  
  const Int_t nbin5  = 360 ;  
  const Int_t nbin6  = 100 ;  
  const Int_t nbin7  = 50 ;  
  const Int_t nbin8  = 50 ;  
  const Int_t nbin9  = 50 ;  
  const Int_t nbin10  = 20 ;  
  const Int_t nbin11  = 20 ;  
  const Int_t nbin12  = 20 ;  
  const Int_t nbin13  = 20 ;  

  // arrays for the number of bins in each dimension
  Int_t iBin[nvar];
  iBin[0]=nbin1;
  iBin[1]=nbin2;
  iBin[2]=nbin3;
  iBin[3]=nbin4;
  iBin[4]=nbin5;
  iBin[5]=nbin6;
  iBin[6]=nbin7;
  iBin[7]=nbin8;
  iBin[8]=nbin9;
  iBin[9]=nbin10;
  iBin[10]=nbin11;
  iBin[11]=nbin12;
  iBin[12]=nbin13;

  // arrays for lower bounds :
  Double_t *binLim1=new Double_t[nbin1+1];
  Double_t *binLim2=new Double_t[nbin2+1];
  Double_t *binLim3=new Double_t[nbin3+1];
  Double_t *binLim4=new Double_t[nbin4+1];
  Double_t *binLim5=new Double_t[nbin5+1];
  Double_t *binLim6=new Double_t[nbin6+1];
  Double_t *binLim7=new Double_t[nbin7+1];
  Double_t *binLim8=new Double_t[nbin8+1];
  Double_t *binLim9=new Double_t[nbin9+1];
  Double_t *binLim10=new Double_t[nbin10+1];
  Double_t *binLim11=new Double_t[nbin11+1];
  Double_t *binLim12=new Double_t[nbin12+1];
  Double_t *binLim13=new Double_t[nbin13+1];

  // values for bin lower bounds
  for(Int_t i=0; i<=nbin1; i++) binLim1[i]=(Double_t)nevtmin  + (nevtmax-nevtmin)  /nbin1*(Double_t)i ;
  for(Int_t i=0; i<=nbin2; i++) binLim2[i]=(Double_t)ymin  + (ymax-ymin)  /nbin2*(Double_t)i ;
  for(Int_t i=0; i<=nbin3; i++) binLim3[i]=(Double_t)phimin  + (phimax-phimin)  /nbin3*(Double_t)i ;
  for(Int_t i=0; i<=nbin4; i++) binLim4[i]=(Double_t)ymin  + (ymax-ymin)  /nbin4*(Double_t)i ;
  for(Int_t i=0; i<=nbin5; i++) binLim5[i]=(Double_t)phimin  + (phimax-phimin)  /nbin5*(Double_t)i ;
  for(Int_t i=0; i<=nbin6; i++) binLim6[i]=(Double_t)mmin  + (mmax-mmin)  /nbin6*(Double_t)i ;
  for(Int_t i=0; i<=nbin7; i++) binLim7[i]=(Double_t)mymin  + (mymax-mymin)  /nbin7*(Double_t)i ;
  for(Int_t i=0; i<=nbin8; i++) binLim8[i]=(Double_t)ptmin + (ptmax-ptmin)/nbin8*(Double_t)i ; 
  for(Int_t i=0; i<=nbin9; i++) binLim9[i]=(Double_t)pmin + (pmax-pmin)/nbin9*(Double_t)i ; 
  for(Int_t i=0; i<=nbin10; i++) binLim10[i]=(Double_t)costCSmin + (costCSmax-costCSmin)/nbin10*(Double_t)i ; 
  for(Int_t i=0; i<=nbin11; i++) binLim11[i]=(Double_t)phiCSmin + (phiCSmax-phiCSmin)/nbin11*(Double_t)i ; 
  for(Int_t i=0; i<=nbin12; i++) binLim12[i]=(Double_t)costHEmin + (costHEmax-costHEmin)/nbin12*(Double_t)i ; 
  for(Int_t i=0; i<=nbin13; i++) binLim13[i]=(Double_t)phiHEmin + (phiHEmax-phiHEmin)/nbin13*(Double_t)i ; 

  // one container  of 2 steps (MC and ESD) with 12 variables
  AliCFContainer* container = new AliCFContainer("container","container for tracks",nstep,nvar,iBin);
  // setting the bin limits
  container -> SetBinLimits(nevt,binLim1);
  container -> SetBinLimits(y1,binLim2);
  container -> SetBinLimits(phi1,binLim3);
  container -> SetBinLimits(y2,binLim4);
  container -> SetBinLimits(phi2,binLim5);
  container -> SetBinLimits(imass,binLim6);
  container -> SetBinLimits(y,binLim7);
  container -> SetBinLimits(pt,binLim8);
  container -> SetBinLimits(p,binLim9);
  container -> SetBinLimits(costCS,binLim10);
  container -> SetBinLimits(phiCS,binLim11);
  container -> SetBinLimits(costHE,binLim12);
  container -> SetBinLimits(phiHE,binLim13);

  // Set list
  TList* qaList = new TList();

  //CREATE THE CUTS
  // Choice of the Resonance
  AliCFParticleGenCuts* mcGenCuts = new AliCFParticleGenCuts("mcGenCuts","MC particle generation cuts");
  mcGenCuts->SetRequirePdgCode(PDG);
  mcGenCuts->SetQAOn(qaList);

  // Set a pt range of the resonance
  AliCFTrackKineCuts *mcKineCuts = new AliCFTrackKineCuts("mcKineCuts","MC-level kinematic cuts");
  mcKineCuts->SetChargeMC(charge);
  mcKineCuts->SetPtRange(ptmin,ptmax);
  mcKineCuts->SetQAOn(qaList);

  // Create and fill the list associated 
  TObjArray* mcList = new TObjArray(0) ;
  mcList->AddLast(mcKineCuts);
  mcList->AddLast(mcGenCuts);

  // kinematic cuts on muons rapidity 
  AliCFTrackKineCuts *recKineCuts = new AliCFTrackKineCuts("recKineCuts","rec-level kine cuts");
//  recKineCuts->SetRapidityRange(ymin,ymax);
  recKineCuts->SetRapidityRange(-4,-2.5);
  recKineCuts->SetQAOn(qaList);
  TObjArray* recList = new TObjArray(0) ;
  recList->AddLast(recKineCuts);

  // CREATE THE INTERFACE TO CORRECTION FRAMEWORK USED IN THE TASK

  printf("CREATE INTERFACE AND CUTS\n");
  AliCFManager* man = new AliCFManager() ;
  man->SetParticleContainer     (container);

  man->SetParticleCutsList(AliCFManager::kPartGenCuts,mcList);
  man->SetParticleCutsList(AliCFManager::kPartAccCuts,recList);

  //CREATE THE TASK
  printf("CREATE TASK\n");
  // create the task
  AliCFMuonResTask1 *task = new AliCFMuonResTask1("AliMuonResTask1");
  task->SetCFManager(man); //here is set the CF manager
  task->SetQAList(qaList);
  if (readAOD)       task->SetReadAODData() ;

  //SETUP THE ANALYSIS MANAGER TO READ INPUT CHAIN AND WRITE DESIRED OUTPUTS
  printf("CREATE ANALYSIS MANAGER\n");
  // Make the analysis manager
  AliAnalysisManager *mgr = new AliAnalysisManager("TestManager");

  if (useGrid) mgr->SetAnalysisType(AliAnalysisManager::kGridAnalysis);
  else mgr->SetAnalysisType(AliAnalysisManager::kLocalAnalysis);


  AliMCEventHandler*  mcHandler = new AliMCEventHandler();
  mgr->SetMCtruthEventHandler(mcHandler);
 
  AliInputEventHandler* dataHandler ;
  
  if   (readAOD) dataHandler = new AliAODInputHandler();
  else           dataHandler = new AliESDInputHandler();
  mgr->SetInputEventHandler(dataHandler);

  // Create and connect containers for input/output

  // input data 
  AliAnalysisDataContainer *cinput0  = mgr->CreateContainer("cchain0",TChain::Class(),AliAnalysisManager::kInputContainer);

  // output data
  Char_t file[256];
  sprintf(file,"CFMuonResTask1.root");
  printf("Analysis output in %s \n",file);

  // output TH1I for event counting
  AliAnalysisDataContainer *coutput1 = mgr->CreateContainer("chist0", TH1I::Class(),AliAnalysisManager::kOutputContainer,file);
  // output Correction Framework Container (for acceptance & efficiency calculations)
  AliAnalysisDataContainer *coutput2 = mgr->CreateContainer("ccontainer0", AliCFContainer::Class(),AliAnalysisManager::kOutputContainer,file);

  cinput0->SetData(analysisChain);
  mgr->AddTask(task);

  mgr->ConnectInput(task,0,mgr->GetCommonInputContainer());

  mgr->ConnectOutput(task,1,coutput1);
  mgr->ConnectOutput(task,2,coutput2);

  printf("READY TO RUN\n");
  //RUN !!!
  if (mgr->InitAnalysis()) {
    mgr->PrintStatus();
    mgr->StartAnalysis("local",analysisChain);
  }

  benchmark.Stop("AliMuonResTask1");
  benchmark.Show("AliMuonResTask1");

  return kTRUE ;
}

void Load() {

  //load the required aliroot libraries
  gSystem->Load("libANALYSIS") ;
  gSystem->Load("libANALYSISalice") ;

//  gSystem->Load("libCORRFW.so") ;
  gSystem->Load("$ALICE_ROOT/lib/tgt_linux/libCORRFW.so") ;

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