ROOT logo
enum anaModes {mLocal,mPROOF,mGrid};
Int_t binfirst = 0;  //where do we start numbering bins
Int_t binlast = 8;  //where do we stop numbering bins
const Int_t numberOfCentralityBins = 9;
Float_t centralityArray[numberOfCentralityBins+1] = {0.,5.,10.,20.,30.,40.,50.,60.,70.,80.}; // in centrality percentile
//Int_t centralityArray[numberOfCentralityBins+1] = {41,80,146,245,384,576,835,1203,1471,10000}; // in terms of TPC only reference multiplicity

TString commonOutputFileName = "outputCentrality"; // e.g.: result for centrality bin 0 will be in the file "outputCentrality0.root", etc
Int_t centralitysel = AliVEvent::kMB | AliVEvent::kCentral | AliVEvent::kSemiCentral;

void runFlowTaskCentralityPIDMHTrain( Int_t mode = mLocal,
				      Bool_t useFlowParFiles = kFALSE,
				      Bool_t DATA = kTRUE,
				      const Char_t* dataDir="fileList",
				      Int_t nEvents = 1e4,
				      Int_t offset=0 ) {
  // Time:
  TStopwatch timer;
  timer.Start();
  
  // Load needed libraries:
  LoadLibraries(mode,useFlowParFiles);

  // Create analysis manager:
  AliAnalysisManager *mgr = new AliAnalysisManager("FlowAnalysisManager");

  // Chains:
  if(mode == mLocal) {
    TChain *chain = new TChain("aodTree");
    TString filename;
    for(Int_t i = 1; i < 10; i++) {
      filename = "/glusterfs/alice1/alice2/pchrist/HeavyIons/Data/2011/Set";
      filename += i; filename += "/AliAOD.root";
      chain->Add(filename.Data());
    }
  }

  // Connect plug-in to the analysis manager:
  if(mode == mGrid)
  {
    gROOT->LoadMacro("CreateAlienHandler.C");
    AliAnalysisGrid *alienHandler = CreateAlienHandler(useFlowParFiles);
    if(!alienHandler) return;
    mgr->SetGridHandler(alienHandler);
  }

  // Event handlers:
  AliVEventHandler* aodH = new AliAODInputHandler;
  mgr->SetInputEventHandler(aodH);
  if (!DATA)
  {
    AliMCEventHandler *mc = new AliMCEventHandler();
    mgr->SetMCtruthEventHandler(mc);
  }

  // Task to check the offline trigger:
  //gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPhysicsSelection.C");
  //AddTaskPhysicsSelection(!DATA);

  //Add the centrality determination task
  gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskCentrality.C");
  AliCentralitySelectionTask* centSelTask = AddTaskCentrality();
  if (!DATA) centSelTask->SetMCInput();

  //add the PID response task
  gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPIDResponse.C");
  AliAnalysisTaskPIDResponse* pidresponsetask = AddTaskPIDResponse(DATA);

  //Add the TOF tender
  //gROOT->LoadMacro("$ALICE_ROOT/PWGCF/FLOW/macros/AddTaskTenderTOF.C");
  //AddTaskTenderTOF();

  // Setup analysis per centrality bin:
  //gROOT->LoadMacro("$ALICE_ROOT/PWGCF/FLOW/macros/AddTaskFlowCentralityPIDMH.C");
  gROOT->LoadMacro("AddTaskFlowCentralityPIDMH.C");
  for (Int_t i=binfirst; i<binlast+1; i++) {
    Float_t lowCentralityBinEdge = centralityArray[i];
    Float_t highCentralityBinEdge = centralityArray[i+1];
    AddTaskFlowCentralityPIDMH(centralitysel,
			       lowCentralityBinEdge,
			       highCentralityBinEdge,
			       kTRUE,
			       AliPID::kPion,
			       AliFlowTrackCuts::kTOFbayesian,
			       0,1,768,
			       2,kFALSE,
			       "PbPb",
			       commonOutputFileName);
  } // end of for (Int_t i=0; i<numberOfCentralityBins; i++)

  // Enable debug printouts:
  mgr->SetDebugLevel(2);
  // Run the analysis:
  if(!mgr->InitAnalysis()) return;
  mgr->PrintStatus();
  if(mode == mLocal)
  {
    mgr->StartAnalysis("local",chain);
  }
  else if(mode == mPROOF)
  {
    mgr->StartAnalysis("proof",dataDir,nEvents,offset);
  }
  else if(mode == mGrid)
  {
    mgr->StartAnalysis("grid");
  }

  // Print real and CPU time used for analysis:
  timer.Stop();
  timer.Print();

} // end of void runFlowTaskCentralityPIDTrain(...)

//===============================================================================================
/*
void CrossCheckUserSettings(Bool_t bData)
{
 // Check in this method if the user settings make sense.
 if(LYZ1SUM && LYZ2SUM) {cout<<" WARNING: You cannot run LYZ1 and LYZ2 at the same time! LYZ2 needs the output from LYZ1 !!!!"<<endl; exit(0); }
 if(LYZ1PROD && LYZ2PROD) {cout<<" WARNING: You cannot run LYZ1 and LYZ2 at the same time! LYZ2 needs the output from LYZ1 !!!!"<<endl; exit(0); }
 if(LYZ2SUM && LYZEP) {cout<<" WARNING: You cannot run LYZ2 and LYZEP at the same time! LYZEP needs the output from LYZ2 !!!!"<<endl; exit(0); }
 if(LYZ1SUM && LYZEP) {cout<<" WARNING: You cannot run LYZ1 and LYZEP at the same time! LYZEP needs the output from LYZ2 !!!!"<<endl; exit(0); }
} // end of void CrossCheckUserSettings()
*/
//===============================================================================================

void LoadLibraries(const anaModes mode, Bool_t useFlowParFiles )
{
  //--------------------------------------
  // Load the needed libraries most of them already loaded by aliroot
  //--------------------------------------

  gSystem->Load("libCore");
  gSystem->Load("libTree");
  gSystem->Load("libGeom");
  gSystem->Load("libVMC");
  gSystem->Load("libXMLIO");
  gSystem->Load("libPhysics");
  gSystem->Load("libXMLParser");
  gSystem->Load("libProof");
  gSystem->Load("libMinuit");

  if (mode==mLocal || mode==mGrid)
  {
    gSystem->Load("libSTEERBase");
    gSystem->Load("libCDB");
    gSystem->Load("libRAWDatabase");
    gSystem->Load("libRAWDatarec");
    gSystem->Load("libESD");
    gSystem->Load("libAOD");
    gSystem->Load("libSTEER");
    gSystem->Load("libANALYSIS");
    gSystem->Load("libANALYSISalice");
    gSystem->Load("libTPCbase");
    gSystem->Load("libTOFbase");
    gSystem->Load("libTOFrec");
    gSystem->Load("libTRDbase");
    gSystem->Load("libVZERObase");
    gSystem->Load("libVZEROrec");
    gSystem->Load("libT0base");
    gSystem->Load("libT0rec");
    gSystem->Load("libTENDER");
    gSystem->Load("libTENDERSupplies");

    if (useFlowParFiles)
    {
      AliAnalysisAlien::SetupPar("PWGflowBase");
      AliAnalysisAlien::SetupPar("PWGflowTasks");
    }
    else
    {
      gSystem->Load("libPWGflowBase");
      gSystem->Load("libPWGflowTasks");
    }
  }
  else if (mode==mPROOF)
  {
    TList* list = new TList();
    list->Add(new TNamed("ALIROOT_MODE", "ALIROOT"));
    if (useFlowParFiles)
      list->Add(new TNamed("ALIROOT_EXTRA_LIBS", "ANALYSIS:ANALYSISalice:TENDER:TENDERSupplies"));
    else
      list->Add(new TNamed("ALIROOT_EXTRA_LIBS", "ANALYSIS:ANALYSISalice:TENDER:TENDERSupplies:PWGflowBase:PWGflowTasks"));

    //list->Add(new TNamed("ALIROOT_EXTRA_INCLUDES","PWG/FLOW/Base:PWG/FLOW/Tasks"));

    // Connect to proof
    printf("*** Connect to PROOF ***\n");
    gEnv->SetValue("XSec.GSI.DelegProxy","2");
    //TProof* proof = TProof::Open("alice-caf.cern.ch");
    TProof* proof = TProof::Open("skaf.saske.sk");

    // list the data available
    //gProof->ShowDataSets("/*/*");
    //gProof->ShowDataSets("/alice/sim/"); //for MC Data
    //gProof->ShowDataSets("/alice/data/"); //for REAL Data

    proof->ClearPackages();
    proof->EnablePackage("VO_ALICE@AliRoot::v4-21-14-AN",list);

    if (useFlowParFiles)
    {
      gProof->UploadPackage("PWGflowBase.par");
      gProof->UploadPackage("PWGflowTasks.par");
    }

    // Show enables Packages
    gProof->ShowEnabledPackages();
  }
} // end of void LoadLibraries(const anaModes mode)

//===============================================================================================

TChain* CreateAODChain(const char* aDataDir, Int_t aRuns, Int_t offset)
{
  // creates chain of files in a given directory or file containing a list.
  // In case of directory the structure is expected as:
  // <aDataDir>/<dir0>/AliAOD.root
  // <aDataDir>/<dir1>/AliAOD.root
  // ...

  if (!aDataDir)
    return 0;

  Long_t id, size, flags, modtime;
  if (gSystem->GetPathInfo(aDataDir, &id, &size, &flags, &modtime))
  {
    printf("%s not found.\n", aDataDir);
    return 0;
  }

  TChain* chain = new TChain("aodTree");
  TChain* chaingAlice = 0;

  if (flags & 2)
  {
    TString execDir(gSystem->pwd());
    TSystemDirectory* baseDir = new TSystemDirectory(".", aDataDir);
    TList* dirList            = baseDir->GetListOfFiles();
    Int_t nDirs               = dirList->GetEntries();
    gSystem->cd(execDir);

    Int_t count = 0;

    for (Int_t iDir=0; iDir<nDirs; ++iDir)
    {
      TSystemFile* presentDir = (TSystemFile*) dirList->At(iDir);
      if (!presentDir || !presentDir->IsDirectory() || strcmp(presentDir->GetName(), ".") == 0 || strcmp(presentDir->GetName(), "..") == 0)
        continue;

      if (offset > 0)
      {
        --offset;
        continue;
      }

      if (count++ == aRuns)
        break;

      TString presentDirName(aDataDir);
      presentDirName += "/";
      presentDirName += presentDir->GetName();
      chain->Add(presentDirName + "/AliAOD.root/aodTree");
      // cerr<<presentDirName<<endl;
    }

  }
  else
  {
    // Open the input stream
    ifstream in;
    in.open(aDataDir);

    Int_t count = 0;

    // Read the input list of files and add them to the chain
    TString aodfile;
    while(in.good())
    {
      in >> aodfile;
      if (!aodfile.Contains("root")) continue; // protection

      if (offset > 0)
      {
        --offset;
        continue;
      }

      if (count++ == aRuns)
        break;

      // add aod file
      chain->Add(aodfile);
    }

    in.close();
  }

  return chain;

} // end of TChain* CreateAODChain(const char* aDataDir, Int_t aRuns, Int_t offset)

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