ROOT logo
class AliAnalysisGrid; 
const char *dataset   = "";
TString anaLibs = "";
Int_t iESDfilter       = 1;
Int_t iAODTagCreation  = 1;
Int_t iAODAddMCBranch  = 1;

void AnalysisTrainFromESDToAOD(const char *analysisMode = "GRID", Bool_t usePLUGIN = kFALSE, Int_t nev=12345678)

//========================================================================
// The macro produces a standard AOD starting from ESD files. 
// (Simplified version of ANALYSIS/macros/AnalysisTrainNew.C)
//
// Two wagons are attached to the train: 
//      AddTaskESDFilter.C and AddTaskTagCreation.C 
//
// If the iESDfilter flag is activated, in AddTaskESDFilter.C 
// two tasks are executed :
// 1- with the first one (AliAnalysisTaskESDfilter), 
//    all the branches of the AOD are filled apart from the muons 
// 2- with the second task (AliAnalysisTaskESDMuonFilter) 
//    muons tracks are added to the tracks branch 
//
// In AddTaskESDFilter.C there is the possibility to apply cuts 
// on the tracks and muon tracks in order to reject them before 
// filling the AOD. 
//
// - if the flag iAODAddMCBranch is activated the MC branch 
// (containing Kinematics info) is added to the AOD 

// - if the iAODTagCreation flag is activated, in AddTaskTagCreation.C the 
//  AliAnalysisTaskTagCreator task is executed in order to create aod tags.  
//
//
// Options tested: (case sensitive)
//    GRID (with/without AliEn plugin)
//    LOCAL (you have to specify in TChain *CreateChain(...) 
//          the directory where your data are)
//========================================================================

{
    // Global configuration flags 
    //=====================================================================
    Bool_t debug         = kTRUE;
    Bool_t readTR        = kFALSE;      
    Bool_t useKFILTER    = kFALSE;  // add MC Branch 
    if(iAODAddMCBranch) useKFILTER=kTRUE;
    if(strcmp(analysisMode,"LOCAL")==0) usePLUGIN = kFALSE; 
       
    // Load common libraries (STEERBase, ESD, AOD, ANALYSIS. ANALYSISalice)
    //=====================================================================
    LoadCommonLibraries(analysisMode);
    gROOT->ProcessLine(".include $ALICE_ROOT/include");
   
    // Load analysis specific libraries
    //=====================================================================
    if (iESDfilter) {
       if(!strcmp(analysisMode, "LOCAL")){
         gSystem->Load("libPWGHFbase.so");
         gSystem->Load("libPWGmuon.so");
       } 
       else if(!strcmp(analysisMode, "GRID"))LoadAnalysisLibraries(analysisMode);
     }
     
    // If Plugin is used, load macro with JDL parameters
    //=====================================================================
    if(usePLUGIN){
      gROOT->LoadMacro("CreateAlienHandler_FromESDToAOD.C");
      AliAnalysisGrid *alienHandler = CreateAlienHandler_FromESDToAOD();  
      if (!alienHandler) return;     
    }

     // Create the chain. This is dependent on the analysis mode.
     //=====================================================================
     if(!usePLUGIN){
       if (!strcmp(analysisMode, "GRID")) TGrid::Connect("alien://");
       TChain* chain = CreateChain(analysisMode,""); 
     }
     
    // Create the train and set-up the handlers
    //=====================================================================
    AliAnalysisManager *mgr  = new AliAnalysisManager("Analysis Train", "Analysis Train for standard AOD production");

    // GRID handler
    if(usePLUGIN) mgr->SetGridHandler(alienHandler); 
    
    // ESD input handler
       AliESDInputHandler *esdHandler = new AliESDInputHandler();
       mgr->SetInputEventHandler(esdHandler);      

    // Monte Carlo handler
    if (iAODAddMCBranch) {
       AliMCEventHandler* mcHandler = new AliMCEventHandler();
       mgr->SetMCtruthEventHandler(mcHandler);
       mcHandler->SetReadTR(readTR);
    } 
     
    // AOD output handler
    AliAODHandler* aodHandler   = new AliAODHandler();
    mgr->SetOutputEventHandler(aodHandler);
    aodHandler->SetOutputFileName("AliAODs.root");
       
    // Debugging if requested
    if (debug) mgr->SetDebugLevel(3);
       
    // Load the tasks configuration macros for all included wagons
    //=====================================================================    
    if (iESDfilter) {
       gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskESDFilter.C");
       AliAnalysisTaskESDfilter *esdfilter = AddTaskESDFilter(useKFILTER);
       
       if (iAODTagCreation) {
// use this line if AddTaskTagCreation.C is available in the grid aliroot version
       if(!strcmp(analysisMode, "LOCAL")){
   	  gROOT->LoadMacro("$ALICE_ROOT/PWG3/muon/AddTaskTagCreation.C");
       } else  {
// uncomment  this line if AddTaskTagCreation.C is available in the grid aliroot version
//   	  gROOT->LoadMacro("$ALICE_ROOT/PWG3/muon/AddTaskTagCreation.C");
// otherwise temporary: (and AddTaskTagCreation.C must be also added in the jdl)
         gROOT->LoadMacro("AddTaskTagCreation.C");
       }	 
	AliAnalysisTaskTagCreator *tagcreator = AddTaskTagCreation();
      }       
    }  

    // Run the analysis
    //=====================================================================    
    if (mgr->InitAnalysis()) {
       mgr->PrintStatus();
       if(usePLUGIN) mgr->StartAnalysis("GRID");
       else mgr->StartAnalysis("local", chain,nev);
    }  
}

//______________________________________________________________________________
Bool_t LoadCommonLibraries(const char *mode)
{
// Load common analysis libraries.
   Int_t imode = -1;
   if (!strcmp(mode, "LOCAL")) imode = 0;
   if (!strcmp(mode, "PROOF")) imode = 1;
   if (!strcmp(mode, "GRID"))  imode = 2;
   if (!gSystem->Getenv("ALICE_ROOT")) {
      ::Error("LoadCommonLibraries", "Analysis train requires that analysis libraries are compiled with a local AliRoot"); 
      return kFALSE;
   }   
   Bool_t success = kTRUE;
   // ROOT libraries
   gSystem->Load("libTree.so");
   gSystem->Load("libGeom.so");
   gSystem->Load("libVMC.so");
   gSystem->Load("libPhysics.so");
   
   // Load framework classes. Par option ignored here.
   switch (imode) {
      case 0:
      case 2:
            success &= LoadLibrary("libSTEERBase.so", mode);
            success &= LoadLibrary("libESD.so", mode);
            success &= LoadLibrary("libAOD.so", mode);
            success &= LoadLibrary("libANALYSIS.so", mode);
            success &= LoadLibrary("libANALYSISalice.so", mode);
            success &= LoadLibrary("libCORRFW.so", mode);
            gROOT->ProcessLine(".include $ALICE_ROOT/include");
         break;
      case 1:
         Int_t ires = -1;
         if (!gSystem->AccessPathName(AFversion)) ires = gProof->UploadPackage(AFversion);
         if (ires < 0) {
            success &= LoadLibrary("STEERBase", mode);
            success &= LoadLibrary("ESD", mode);
            success &= LoadLibrary("AOD", mode);
            success &= LoadLibrary("ANALYSIS", mode);
            success &= LoadLibrary("ANALYSISalice", mode);
            success &= LoadLibrary("CORRFW", mode);
         } else { 
            ires = gProof->EnablePackage(AFversion);
            if (ires<0) success = kFALSE;
         }
         break;         
      default:
         ::Error("LoadCommonLibraries", "Unknown run mode: %s", mode);
         return kFALSE;
   }
   if (success) {
      ::Info("LoadCommodLibraries", "Load common libraries:    SUCCESS");
      ::Info("LoadCommodLibraries", "Include path for Aclic compilation:\n%s",
              gSystem->GetIncludePath());
   } else {           
      ::Info("LoadCommodLibraries", "Load common libraries:    FAILED");
   }   
      
   return success;
}

//______________________________________________________________________________
TChain *CreateChain(const char *mode, const char *plugin_mode)
{
// Create the input chain
   Int_t imode = -1;
   if (!strcmp(mode, "LOCAL")) imode = 0;
   if (!strcmp(mode, "PROOF")) imode = 1;
   if (!strcmp(mode, "GRID"))  imode = 2;
   TChain *chain = NULL;
   // Local chain
   switch (imode) {
      case 0:
            if (!strlen(dataset)) {
               // Local ESD
               chain = new TChain("esdTree");
               if (gSystem->AccessPathName("/n60raid3/alice/roberta/MCBranch/AliESDs.root")) 
                  ::Error("CreateChain", "File: AliESDs.root not in ./data dir");
               else chain->Add("/n60raid3/alice/roberta/MCBranch/AliESDs.root");
            } else {
               // Interactive ESD
               chain = CreateChainSingle(dataset, "esdTree");
            }   
         break;
      case 1:
         break;
      case 2:
            TString  treeName = "esdTree";
            chain = CreateChainSingle("wn.xml", treeName);
         break;      
      default:   
   }
   if (chain && chain->GetNtrees()) return chain;
   return NULL;
}   

//______________________________________________________________________________
Bool_t LoadLibrary(const char *module, const char *mode, Bool_t rec=kFALSE)
{
// Load a module library in a given mode. Reports success.
   Int_t imode = -1;
   Int_t result;
   TString smodule(module);
   if (!strcmp(mode, "LOCAL")) imode = 0;
   if (!strcmp(mode, "PROOF")) imode = 1;
   if (!strcmp(mode, "GRID"))  imode = 2;
   TString mod(module);
   if (!mod.Length()) {
      ::Error("LoadLibrary", "Empty module name");
      return kFALSE;
   }   
   // If a library is specified, just load it
   if (smodule.EndsWith(".so")) {
      mod.Remove(mod.Index(".so"));
      result = gSystem->Load(mod);
      if (result < 0) {
         ::Error("LoadLibrary", "Could not load library %s", module);
         return kFALSE;
      }
      if (rec) anaLibs += Form("%s.so ",mod.Data()); 
      return kTRUE;
   } 
   // Check if the library is already loaded
   if (strlen(gSystem->GetLibraries(Form("%s.so", module), "", kFALSE)) > 0)
      return kTRUE;    
   switch (imode) {
      case 0:
      case 2:
            result = gSystem->Load(Form("lib%s.so", module));
            if (rec) anaLibs += Form("lib%s.so ", module);
         break;
      case 1:
         result = gProof->UploadPackage(module);
         if (result<0) {
            result = gProof->UploadPackage(gSystem->ExpandPathName(Form("$ALICE_ROOT/%s.par", module)));
            if (result<0) {
               ::Error("LoadLibrary", "Could not find module %s.par in current directory nor in $ALICE_ROOT", module);
               return kFALSE;
            }
         }   
         result = gProof->EnablePackage(module);
         break;
      default:
         return kFALSE;
   }         
   if (result < 0) {
      ::Error("LoadLibrary", "Could not load module %s", module);
      return kFALSE;
   }
   return kTRUE;
}           

//______________________________________________________________________________
TChain* CreateChainSingle(const char* xmlfile, const char *treeName)
{
   printf("*******************************\n");
   printf("*** Getting the ESD Chain   ***\n");
   printf("*******************************\n");
   TAlienCollection * myCollection  = TAlienCollection::Open(xmlfile);

   if (!myCollection) {
      ::Error("CreateChainSingle", "Cannot create an AliEn collection from %s", xmlfile) ;
      return NULL ;
   }

   TChain* chain = new TChain(treeName);
   myCollection->Reset() ;
   while ( myCollection->Next() ) chain->Add(myCollection->GetTURL("")) ;
   chain->ls();
   return chain;
}

//______________________________________________________________________________
Bool_t LoadAnalysisLibraries(const char *mode)
{
// Load common analysis libraries.
   Bool_t success = kTRUE;
      if (!LoadLibrary("PWG3base", mode, kTRUE) ||
          !LoadLibrary("PWG3muon", mode, kTRUE)) return kFALSE;
   ::Info("LoadAnalysisLibraries", "Load other libraries:   SUCCESS");
   return kTRUE;
}

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