ROOT logo
enum anaModes {mLocal,mLocalPAR,mPROOF,mGrid,mGridPAR};
//mLocal: Analyze locally files in your computer using aliroot
//mLocalPAR: Analyze locally files in your computer using root + PAR files
//mPROOF: Analyze CAF files with PROOF
//mGrid: Analyze files on Grid via AliEn plug-in and using precompiled FLOW libraries
//mGridPAR: Analyze files on Grid via AliEn plug-in and using par files for FLOW package

//Analysis modes
const TString analysisMode = "TPC"; //"TPC", "Global"

//Centrality stuff
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.,100.}; // in centrality percentile
Float_t centralityArray[numberOfCentralityBins+1] = {0.,5.,10.,20.,30.,40.,50.,60.,70.,80.}; // in centrality percentile
const TString  centralityEstimator = "V0M";
Double_t vertexZ = 10.;
Int_t AODfilterBit = 128;

//output file
TString commonOutputFileName = "AnalysisResults";

//void runEffContTaskCentralityTrain(Int_t mode = mPROOF,Int_t nRuns = 600000, Bool_t DATA = kFALSE, 
                                    //const Char_t* dataDir="/alice/sim/LHC11a10a_000138662_AOD048", Int_t offset=0) { //PbPbAOD
				    //const Char_t* dataDir="/alice/sim/LHC11a10a_000139510", Int_t offset=0) {	    //PbPb ESD			      
void runEffContTaskCentralityTrain(Int_t mode = mLocal, Bool_t DATA = kFALSE) {
  //void runEffContTaskCentralityTrain(const char* runListFileName = "listOfRuns.txt",Int_t mode = mGrid,  Bool_t DATA = kFALSE) {`
  // Time:
  TStopwatch timer;
  timer.Start();
  
  // Load needed libraries:
  LoadLibraries(mode);
  
  // Create and configure the AliEn plug-in:
  if(mode == mGrid || mode == mGridPAR) {
    gROOT->LoadMacro("CreateAlienHandler.C");
    AliAnalysisGrid *alienHandler = CreateAlienHandler(runListFileName);  
    if (!alienHandler) return;
    gROOT->LoadMacro("AliAnalysisTaskEffContBF.cxx++");
  }
  // Chains:   
  if(mode==mLocal || mode == mLocalPAR) {
    gROOT->LoadMacro("AliAnalysisTaskEffContBF.cxx++");
    //TChain* chain = new TChain("esdTree");
    //chain->Add("/project/alice/users/alisrm/AcceptanceFilter/MonteCarlo/Set1/AliESDs.root");
    TChain* chain = new TChain("aodTree");
    for (Int_t i=0;i<99; i++){
      filename = "/project/alice/users/alisrm/Efficiency_Contamination/LHC13b3_HIJING_pA_AOD/";
      filename += i; 
      filename += "/AliAOD.root";
      chain->Add(filename.Data());
    }
    //chain->Add("/project/alice/users/alisrm/Efficiency_Contamination/AOD_LHC11a10a/AliAOD.root"); //si da
    //chain->Add("/project/alice/users/alisrm/Efficiency_Contamination/AOD_LHC10d2/AliAOD.root"); 
    //chain->Add("/project/alice/users/pchrist/Data/2011/Set3/AliAOD.root"); //data
  }
  //Proof
  if(mode == mPROOF) {
    gROOT->ProcessLine(Form(".include %s/include", gSystem->ExpandPathName("$ALICE_ROOT")));
    gProof->Load("AliAnalysisTaskEffContBF.cxx++");
  }

  // Create analysis manager:
  AliAnalysisManager *mgr = new AliAnalysisManager("FluctuationsAnalysisManager");
  // Connect plug-in to the analysis manager:
  if(mode == mGrid || mode == mGridPAR) { 
    mgr->SetGridHandler(alienHandler);
  }
  
  AliVEventHandler* aodH = new AliAODInputHandler; //NUEVO
  mgr->SetInputEventHandler(aodH); //NUEVO

  //AliMCEventHandler *mc = new AliMCEventHandler();
  //mc->SetReadTR(kFALSE);
  //mgr->SetMCtruthEventHandler(mc); 
    
  // Task to check the offline trigger:
  //if(mode == mLocal || mode == mGrid || mode == mGridPAR)
  //gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPhysicsSelection.C"); 
  //AliPhysicsSelectionTask* physicsSelTask = AddTaskPhysicsSelection(!DATA);
  //physicsSelTask->GetPhysicsSelection()->SetAnalyzeMC();
  // Enable debug printouts:
  //mgr->SetDebugLevel(2);
  
  //Add the centrality determination task
  /*gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskCentrality.C");
  AliCentralitySelectionTask *centralityTask = AddTaskCentrality();
  centralityTask->SetMCInput();*/ //antes for ESD

  //centralityTask->SetPass(2);
  //AliCentralitySelectionTask *taskCentrality = AddTaskCentrality();
  //taskCentrality->SelectCollisionCandidates(AliVEvent::kMB);

  // Load the analysis task:
  gROOT->LoadMacro("AddTaskBalanceEffCont.C");
  //gROOT->LoadMacro("AddEfficiencyTaskCentralityTrain.C");

  //for (Int_t i=binfirst; i<binlast+1; i++) {
  for (Int_t i = 0; i < numberOfCentralityBins; i++) {
    Float_t lowCentralityBinEdge = centralityArray[i];
    Float_t highCentralityBinEdge = centralityArray[i+1];
    Printf("\nWagon for centrality bin %i: %.0f-%.0f",i,lowCentralityBinEdge,highCentralityBinEdge);
    // AddEfficiencyTaskCentralityTrain(analysisMode.Data(),lowCentralityBinEdge, highCentralityBinEdge,commonOutputFileName);
    // AddTaskBalanceEfficiency(kUseHybrid,centralityEstimator, lowCentralityBinEdge, highCentralityBinEdge, vertexZ, AODfilterBit, commonOutputFileName);
  AddTaskBalanceEffCont(centralityEstimator, lowCentralityBinEdge, highCentralityBinEdge, vertexZ, AODfilterBit, commonOutputFileName);  
  } // end of for (Int_t i=0; i<numberOfCentralityBins; i++)

  // Run the analysis:
  if(!mgr->InitAnalysis()){return;}
  mgr->PrintStatus(); 
  if(mode == mLocal || mode == mLocalPAR) 
    mgr->StartAnalysis("local",chain);
  else if(mode == mPROOF) 
    mgr->StartAnalysis("proof",dataDir,nRuns,offset);
  else if(mode == mGrid || mode == mGridPAR) 
    mgr->StartAnalysis("grid");

  // Print real and CPU time used for analysis:  
  timer.Stop();
  timer.Print();
  
} // end of void runTaskFluctuations(...)

//=============================================================//
void LoadLibraries(const anaModes mode) {  
  //--------------------------------------
  // Load the needed libraries most of them already loaded by aliroot
  //--------------------------------------
  gSystem->Load("libTree");
  gSystem->Load("libGeom");
  gSystem->Load("libVMC");
  gSystem->Load("libXMLIO");
  gSystem->Load("libPhysics");
  
  //----------------------------------------------------------
  // >>>>>>>>>>> Local mode <<<<<<<<<<<<<< 
  //----------------------------------------------------------
  if (mode==mLocal || mode==mGrid || mode == mGridPAR) {
    //--------------------------------------------------------
    // If you want to use already compiled libraries 
    // in the aliroot distribution
    //--------------------------------------------------------
    gSystem->Load("libSTEERBase");
    gSystem->Load("libESD");
    gSystem->Load("libAOD");
    gSystem->Load("libANALYSIS");
    gSystem->Load("libANALYSISalice");
    gSystem->Load("libCORRFW");
    gSystem->Load("libPWGTools");
    
    // Use AliRoot includes to compile our task                                   
    gROOT->ProcessLine(".include $ALICE_ROOT/include");
  }
  
  else if (mode == mLocalPAR) {
    //--------------------------------------------------------
    //If you want to use root and par files from aliroot
    //--------------------------------------------------------  
    SetupPar("STEERBase");
    SetupPar("ESD");
    SetupPar("AOD");
    SetupPar("ANALYSIS");
    SetupPar("ANALYSISalice");
}
  
  //---------------------------------------------------------
  // <<<<<<<<<< PROOF mode >>>>>>>>>>>>
  //---------------------------------------------------------
  else if (mode==mPROOF) {
    // Connect to proof
    printf("*** Connect to PROOF ***\n");
    gEnv->SetValue("XSec.GSI.DelegProxy","2");
    // Put appropriate username here
    TProof::Open("alice-caf.cern.ch");
    //TProof::Open("skaf.saske.sk");
    //TProof::Open("prf000-iep-grid.saske.sk");

    // gProof->EnablePackage("VO_ALICE@AliRoot::v5-04-06-AN");
    gProof->EnablePackage("VO_ALICE@AliRoot::v5-04-44-AN");

    TString extraLibs = "";
    extraLibs += "CORRFW:PWGTools";

    TList *list = new TList();
    list->Add(new TNamed("ALIROOT_EXTRA_LIBS",extraLibs.Data()));

    //gProof->EnablePackage("VO_ALICE@AliRoot::v5-04-06-AN",list);
    gProof->EnablePackage("VO_ALICE@AliRoot::v5-04-44-AN");
  }  
  
} // end of void LoadLibraries(const anaModes mode)

//===============================================================================================
void SetupPar(char* pararchivename) {
  //Load par files, create analysis libraries
  //For testing, if par file already decompressed and modified
  //classes then do not decompress.
  
  TString cdir(Form("%s", gSystem->WorkingDirectory() )) ; 
  TString parpar(Form("%s.par", pararchivename)) ; 
  if ( gSystem->AccessPathName(parpar.Data()) ) {
    gSystem->ChangeDirectory(gSystem->Getenv("ALICE_ROOT")) ;
    TString processline(Form(".! make %s", parpar.Data())) ; 
    gROOT->ProcessLine(processline.Data()) ;
    gSystem->ChangeDirectory(cdir) ; 
    processline = Form(".! mv /tmp/%s .", parpar.Data()) ;
    gROOT->ProcessLine(processline.Data()) ;
  } 
  if ( gSystem->AccessPathName(pararchivename) ) {  
    TString processline = Form(".! tar xvzf %s",parpar.Data()) ;
    gROOT->ProcessLine(processline.Data());
  }
  
  TString ocwd = gSystem->WorkingDirectory();
  gSystem->ChangeDirectory(pararchivename);
  
  // check for BUILD.sh and execute
  if (!gSystem->AccessPathName("PROOF-INF/BUILD.sh")) {
    printf("*******************************\n");
    printf("*** Building PAR archive    ***\n");
    cout<<pararchivename<<endl;
    printf("*******************************\n");
    if (gSystem->Exec("PROOF-INF/BUILD.sh")) {
      Error("runProcess","Cannot Build the PAR Archive! - Abort!");
      return -1;
    }
  }
  // check for SETUP.C and execute
  if (!gSystem->AccessPathName("PROOF-INF/SETUP.C")) {
    printf("*******************************\n");
    printf("*** Setup PAR archive       ***\n");
    cout<<pararchivename<<endl;
    printf("*******************************\n");
    gROOT->Macro("PROOF-INF/SETUP.C");
  }
  
  gSystem->ChangeDirectory(ocwd.Data());
  printf("Current dir: %s\n", ocwd.Data());

} // end of void SetupPar(char* pararchivename) 

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

// Helper macros for creating chains
// from: CreateESDChain.C,v 1.10 jgrosseo Exp

TChain* CreateESDChain(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>/AliESDs.root
  // <aDataDir>/<dir1>/AliESDs.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("esdTree");
  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 + "/AliESDs.root/esdTree");
	  //  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 esdfile;
      while(in.good()) {
	in >> esdfile;
	if (!esdfile.Contains("root")) continue; // protection
	
	if (offset > 0)
	  {
	    --offset;
	    continue;
	  }
	
	if (count++ == aRuns)
	  break;
	
	// add esd file
	chain->Add(esdfile);
      }
      
      in.close();
    }
  
  return chain;

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

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

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)

 runEffContTaskCentralityTrain.C:1
 runEffContTaskCentralityTrain.C:2
 runEffContTaskCentralityTrain.C:3
 runEffContTaskCentralityTrain.C:4
 runEffContTaskCentralityTrain.C:5
 runEffContTaskCentralityTrain.C:6
 runEffContTaskCentralityTrain.C:7
 runEffContTaskCentralityTrain.C:8
 runEffContTaskCentralityTrain.C:9
 runEffContTaskCentralityTrain.C:10
 runEffContTaskCentralityTrain.C:11
 runEffContTaskCentralityTrain.C:12
 runEffContTaskCentralityTrain.C:13
 runEffContTaskCentralityTrain.C:14
 runEffContTaskCentralityTrain.C:15
 runEffContTaskCentralityTrain.C:16
 runEffContTaskCentralityTrain.C:17
 runEffContTaskCentralityTrain.C:18
 runEffContTaskCentralityTrain.C:19
 runEffContTaskCentralityTrain.C:20
 runEffContTaskCentralityTrain.C:21
 runEffContTaskCentralityTrain.C:22
 runEffContTaskCentralityTrain.C:23
 runEffContTaskCentralityTrain.C:24
 runEffContTaskCentralityTrain.C:25
 runEffContTaskCentralityTrain.C:26
 runEffContTaskCentralityTrain.C:27
 runEffContTaskCentralityTrain.C:28
 runEffContTaskCentralityTrain.C:29
 runEffContTaskCentralityTrain.C:30
 runEffContTaskCentralityTrain.C:31
 runEffContTaskCentralityTrain.C:32
 runEffContTaskCentralityTrain.C:33
 runEffContTaskCentralityTrain.C:34
 runEffContTaskCentralityTrain.C:35
 runEffContTaskCentralityTrain.C:36
 runEffContTaskCentralityTrain.C:37
 runEffContTaskCentralityTrain.C:38
 runEffContTaskCentralityTrain.C:39
 runEffContTaskCentralityTrain.C:40
 runEffContTaskCentralityTrain.C:41
 runEffContTaskCentralityTrain.C:42
 runEffContTaskCentralityTrain.C:43
 runEffContTaskCentralityTrain.C:44
 runEffContTaskCentralityTrain.C:45
 runEffContTaskCentralityTrain.C:46
 runEffContTaskCentralityTrain.C:47
 runEffContTaskCentralityTrain.C:48
 runEffContTaskCentralityTrain.C:49
 runEffContTaskCentralityTrain.C:50
 runEffContTaskCentralityTrain.C:51
 runEffContTaskCentralityTrain.C:52
 runEffContTaskCentralityTrain.C:53
 runEffContTaskCentralityTrain.C:54
 runEffContTaskCentralityTrain.C:55
 runEffContTaskCentralityTrain.C:56
 runEffContTaskCentralityTrain.C:57
 runEffContTaskCentralityTrain.C:58
 runEffContTaskCentralityTrain.C:59
 runEffContTaskCentralityTrain.C:60
 runEffContTaskCentralityTrain.C:61
 runEffContTaskCentralityTrain.C:62
 runEffContTaskCentralityTrain.C:63
 runEffContTaskCentralityTrain.C:64
 runEffContTaskCentralityTrain.C:65
 runEffContTaskCentralityTrain.C:66
 runEffContTaskCentralityTrain.C:67
 runEffContTaskCentralityTrain.C:68
 runEffContTaskCentralityTrain.C:69
 runEffContTaskCentralityTrain.C:70
 runEffContTaskCentralityTrain.C:71
 runEffContTaskCentralityTrain.C:72
 runEffContTaskCentralityTrain.C:73
 runEffContTaskCentralityTrain.C:74
 runEffContTaskCentralityTrain.C:75
 runEffContTaskCentralityTrain.C:76
 runEffContTaskCentralityTrain.C:77
 runEffContTaskCentralityTrain.C:78
 runEffContTaskCentralityTrain.C:79
 runEffContTaskCentralityTrain.C:80
 runEffContTaskCentralityTrain.C:81
 runEffContTaskCentralityTrain.C:82
 runEffContTaskCentralityTrain.C:83
 runEffContTaskCentralityTrain.C:84
 runEffContTaskCentralityTrain.C:85
 runEffContTaskCentralityTrain.C:86
 runEffContTaskCentralityTrain.C:87
 runEffContTaskCentralityTrain.C:88
 runEffContTaskCentralityTrain.C:89
 runEffContTaskCentralityTrain.C:90
 runEffContTaskCentralityTrain.C:91
 runEffContTaskCentralityTrain.C:92
 runEffContTaskCentralityTrain.C:93
 runEffContTaskCentralityTrain.C:94
 runEffContTaskCentralityTrain.C:95
 runEffContTaskCentralityTrain.C:96
 runEffContTaskCentralityTrain.C:97
 runEffContTaskCentralityTrain.C:98
 runEffContTaskCentralityTrain.C:99
 runEffContTaskCentralityTrain.C:100
 runEffContTaskCentralityTrain.C:101
 runEffContTaskCentralityTrain.C:102
 runEffContTaskCentralityTrain.C:103
 runEffContTaskCentralityTrain.C:104
 runEffContTaskCentralityTrain.C:105
 runEffContTaskCentralityTrain.C:106
 runEffContTaskCentralityTrain.C:107
 runEffContTaskCentralityTrain.C:108
 runEffContTaskCentralityTrain.C:109
 runEffContTaskCentralityTrain.C:110
 runEffContTaskCentralityTrain.C:111
 runEffContTaskCentralityTrain.C:112
 runEffContTaskCentralityTrain.C:113
 runEffContTaskCentralityTrain.C:114
 runEffContTaskCentralityTrain.C:115
 runEffContTaskCentralityTrain.C:116
 runEffContTaskCentralityTrain.C:117
 runEffContTaskCentralityTrain.C:118
 runEffContTaskCentralityTrain.C:119
 runEffContTaskCentralityTrain.C:120
 runEffContTaskCentralityTrain.C:121
 runEffContTaskCentralityTrain.C:122
 runEffContTaskCentralityTrain.C:123
 runEffContTaskCentralityTrain.C:124
 runEffContTaskCentralityTrain.C:125
 runEffContTaskCentralityTrain.C:126
 runEffContTaskCentralityTrain.C:127
 runEffContTaskCentralityTrain.C:128
 runEffContTaskCentralityTrain.C:129
 runEffContTaskCentralityTrain.C:130
 runEffContTaskCentralityTrain.C:131
 runEffContTaskCentralityTrain.C:132
 runEffContTaskCentralityTrain.C:133
 runEffContTaskCentralityTrain.C:134
 runEffContTaskCentralityTrain.C:135
 runEffContTaskCentralityTrain.C:136
 runEffContTaskCentralityTrain.C:137
 runEffContTaskCentralityTrain.C:138
 runEffContTaskCentralityTrain.C:139
 runEffContTaskCentralityTrain.C:140
 runEffContTaskCentralityTrain.C:141
 runEffContTaskCentralityTrain.C:142
 runEffContTaskCentralityTrain.C:143
 runEffContTaskCentralityTrain.C:144
 runEffContTaskCentralityTrain.C:145
 runEffContTaskCentralityTrain.C:146
 runEffContTaskCentralityTrain.C:147
 runEffContTaskCentralityTrain.C:148
 runEffContTaskCentralityTrain.C:149
 runEffContTaskCentralityTrain.C:150
 runEffContTaskCentralityTrain.C:151
 runEffContTaskCentralityTrain.C:152
 runEffContTaskCentralityTrain.C:153
 runEffContTaskCentralityTrain.C:154
 runEffContTaskCentralityTrain.C:155
 runEffContTaskCentralityTrain.C:156
 runEffContTaskCentralityTrain.C:157
 runEffContTaskCentralityTrain.C:158
 runEffContTaskCentralityTrain.C:159
 runEffContTaskCentralityTrain.C:160
 runEffContTaskCentralityTrain.C:161
 runEffContTaskCentralityTrain.C:162
 runEffContTaskCentralityTrain.C:163
 runEffContTaskCentralityTrain.C:164
 runEffContTaskCentralityTrain.C:165
 runEffContTaskCentralityTrain.C:166
 runEffContTaskCentralityTrain.C:167
 runEffContTaskCentralityTrain.C:168
 runEffContTaskCentralityTrain.C:169
 runEffContTaskCentralityTrain.C:170
 runEffContTaskCentralityTrain.C:171
 runEffContTaskCentralityTrain.C:172
 runEffContTaskCentralityTrain.C:173
 runEffContTaskCentralityTrain.C:174
 runEffContTaskCentralityTrain.C:175
 runEffContTaskCentralityTrain.C:176
 runEffContTaskCentralityTrain.C:177
 runEffContTaskCentralityTrain.C:178
 runEffContTaskCentralityTrain.C:179
 runEffContTaskCentralityTrain.C:180
 runEffContTaskCentralityTrain.C:181
 runEffContTaskCentralityTrain.C:182
 runEffContTaskCentralityTrain.C:183
 runEffContTaskCentralityTrain.C:184
 runEffContTaskCentralityTrain.C:185
 runEffContTaskCentralityTrain.C:186
 runEffContTaskCentralityTrain.C:187
 runEffContTaskCentralityTrain.C:188
 runEffContTaskCentralityTrain.C:189
 runEffContTaskCentralityTrain.C:190
 runEffContTaskCentralityTrain.C:191
 runEffContTaskCentralityTrain.C:192
 runEffContTaskCentralityTrain.C:193
 runEffContTaskCentralityTrain.C:194
 runEffContTaskCentralityTrain.C:195
 runEffContTaskCentralityTrain.C:196
 runEffContTaskCentralityTrain.C:197
 runEffContTaskCentralityTrain.C:198
 runEffContTaskCentralityTrain.C:199
 runEffContTaskCentralityTrain.C:200
 runEffContTaskCentralityTrain.C:201
 runEffContTaskCentralityTrain.C:202
 runEffContTaskCentralityTrain.C:203
 runEffContTaskCentralityTrain.C:204
 runEffContTaskCentralityTrain.C:205
 runEffContTaskCentralityTrain.C:206
 runEffContTaskCentralityTrain.C:207
 runEffContTaskCentralityTrain.C:208
 runEffContTaskCentralityTrain.C:209
 runEffContTaskCentralityTrain.C:210
 runEffContTaskCentralityTrain.C:211
 runEffContTaskCentralityTrain.C:212
 runEffContTaskCentralityTrain.C:213
 runEffContTaskCentralityTrain.C:214
 runEffContTaskCentralityTrain.C:215
 runEffContTaskCentralityTrain.C:216
 runEffContTaskCentralityTrain.C:217
 runEffContTaskCentralityTrain.C:218
 runEffContTaskCentralityTrain.C:219
 runEffContTaskCentralityTrain.C:220
 runEffContTaskCentralityTrain.C:221
 runEffContTaskCentralityTrain.C:222
 runEffContTaskCentralityTrain.C:223
 runEffContTaskCentralityTrain.C:224
 runEffContTaskCentralityTrain.C:225
 runEffContTaskCentralityTrain.C:226
 runEffContTaskCentralityTrain.C:227
 runEffContTaskCentralityTrain.C:228
 runEffContTaskCentralityTrain.C:229
 runEffContTaskCentralityTrain.C:230
 runEffContTaskCentralityTrain.C:231
 runEffContTaskCentralityTrain.C:232
 runEffContTaskCentralityTrain.C:233
 runEffContTaskCentralityTrain.C:234
 runEffContTaskCentralityTrain.C:235
 runEffContTaskCentralityTrain.C:236
 runEffContTaskCentralityTrain.C:237
 runEffContTaskCentralityTrain.C:238
 runEffContTaskCentralityTrain.C:239
 runEffContTaskCentralityTrain.C:240
 runEffContTaskCentralityTrain.C:241
 runEffContTaskCentralityTrain.C:242
 runEffContTaskCentralityTrain.C:243
 runEffContTaskCentralityTrain.C:244
 runEffContTaskCentralityTrain.C:245
 runEffContTaskCentralityTrain.C:246
 runEffContTaskCentralityTrain.C:247
 runEffContTaskCentralityTrain.C:248
 runEffContTaskCentralityTrain.C:249
 runEffContTaskCentralityTrain.C:250
 runEffContTaskCentralityTrain.C:251
 runEffContTaskCentralityTrain.C:252
 runEffContTaskCentralityTrain.C:253
 runEffContTaskCentralityTrain.C:254
 runEffContTaskCentralityTrain.C:255
 runEffContTaskCentralityTrain.C:256
 runEffContTaskCentralityTrain.C:257
 runEffContTaskCentralityTrain.C:258
 runEffContTaskCentralityTrain.C:259
 runEffContTaskCentralityTrain.C:260
 runEffContTaskCentralityTrain.C:261
 runEffContTaskCentralityTrain.C:262
 runEffContTaskCentralityTrain.C:263
 runEffContTaskCentralityTrain.C:264
 runEffContTaskCentralityTrain.C:265
 runEffContTaskCentralityTrain.C:266
 runEffContTaskCentralityTrain.C:267
 runEffContTaskCentralityTrain.C:268
 runEffContTaskCentralityTrain.C:269
 runEffContTaskCentralityTrain.C:270
 runEffContTaskCentralityTrain.C:271
 runEffContTaskCentralityTrain.C:272
 runEffContTaskCentralityTrain.C:273
 runEffContTaskCentralityTrain.C:274
 runEffContTaskCentralityTrain.C:275
 runEffContTaskCentralityTrain.C:276
 runEffContTaskCentralityTrain.C:277
 runEffContTaskCentralityTrain.C:278
 runEffContTaskCentralityTrain.C:279
 runEffContTaskCentralityTrain.C:280
 runEffContTaskCentralityTrain.C:281
 runEffContTaskCentralityTrain.C:282
 runEffContTaskCentralityTrain.C:283
 runEffContTaskCentralityTrain.C:284
 runEffContTaskCentralityTrain.C:285
 runEffContTaskCentralityTrain.C:286
 runEffContTaskCentralityTrain.C:287
 runEffContTaskCentralityTrain.C:288
 runEffContTaskCentralityTrain.C:289
 runEffContTaskCentralityTrain.C:290
 runEffContTaskCentralityTrain.C:291
 runEffContTaskCentralityTrain.C:292
 runEffContTaskCentralityTrain.C:293
 runEffContTaskCentralityTrain.C:294
 runEffContTaskCentralityTrain.C:295
 runEffContTaskCentralityTrain.C:296
 runEffContTaskCentralityTrain.C:297
 runEffContTaskCentralityTrain.C:298
 runEffContTaskCentralityTrain.C:299
 runEffContTaskCentralityTrain.C:300
 runEffContTaskCentralityTrain.C:301
 runEffContTaskCentralityTrain.C:302
 runEffContTaskCentralityTrain.C:303
 runEffContTaskCentralityTrain.C:304
 runEffContTaskCentralityTrain.C:305
 runEffContTaskCentralityTrain.C:306
 runEffContTaskCentralityTrain.C:307
 runEffContTaskCentralityTrain.C:308
 runEffContTaskCentralityTrain.C:309
 runEffContTaskCentralityTrain.C:310
 runEffContTaskCentralityTrain.C:311
 runEffContTaskCentralityTrain.C:312
 runEffContTaskCentralityTrain.C:313
 runEffContTaskCentralityTrain.C:314
 runEffContTaskCentralityTrain.C:315
 runEffContTaskCentralityTrain.C:316
 runEffContTaskCentralityTrain.C:317
 runEffContTaskCentralityTrain.C:318
 runEffContTaskCentralityTrain.C:319
 runEffContTaskCentralityTrain.C:320
 runEffContTaskCentralityTrain.C:321
 runEffContTaskCentralityTrain.C:322
 runEffContTaskCentralityTrain.C:323
 runEffContTaskCentralityTrain.C:324
 runEffContTaskCentralityTrain.C:325
 runEffContTaskCentralityTrain.C:326
 runEffContTaskCentralityTrain.C:327
 runEffContTaskCentralityTrain.C:328
 runEffContTaskCentralityTrain.C:329
 runEffContTaskCentralityTrain.C:330
 runEffContTaskCentralityTrain.C:331
 runEffContTaskCentralityTrain.C:332
 runEffContTaskCentralityTrain.C:333
 runEffContTaskCentralityTrain.C:334
 runEffContTaskCentralityTrain.C:335
 runEffContTaskCentralityTrain.C:336
 runEffContTaskCentralityTrain.C:337
 runEffContTaskCentralityTrain.C:338
 runEffContTaskCentralityTrain.C:339
 runEffContTaskCentralityTrain.C:340
 runEffContTaskCentralityTrain.C:341
 runEffContTaskCentralityTrain.C:342
 runEffContTaskCentralityTrain.C:343
 runEffContTaskCentralityTrain.C:344
 runEffContTaskCentralityTrain.C:345
 runEffContTaskCentralityTrain.C:346
 runEffContTaskCentralityTrain.C:347
 runEffContTaskCentralityTrain.C:348
 runEffContTaskCentralityTrain.C:349
 runEffContTaskCentralityTrain.C:350
 runEffContTaskCentralityTrain.C:351
 runEffContTaskCentralityTrain.C:352
 runEffContTaskCentralityTrain.C:353
 runEffContTaskCentralityTrain.C:354
 runEffContTaskCentralityTrain.C:355
 runEffContTaskCentralityTrain.C:356
 runEffContTaskCentralityTrain.C:357
 runEffContTaskCentralityTrain.C:358
 runEffContTaskCentralityTrain.C:359
 runEffContTaskCentralityTrain.C:360
 runEffContTaskCentralityTrain.C:361
 runEffContTaskCentralityTrain.C:362
 runEffContTaskCentralityTrain.C:363
 runEffContTaskCentralityTrain.C:364
 runEffContTaskCentralityTrain.C:365
 runEffContTaskCentralityTrain.C:366
 runEffContTaskCentralityTrain.C:367
 runEffContTaskCentralityTrain.C:368
 runEffContTaskCentralityTrain.C:369
 runEffContTaskCentralityTrain.C:370
 runEffContTaskCentralityTrain.C:371
 runEffContTaskCentralityTrain.C:372
 runEffContTaskCentralityTrain.C:373
 runEffContTaskCentralityTrain.C:374
 runEffContTaskCentralityTrain.C:375
 runEffContTaskCentralityTrain.C:376
 runEffContTaskCentralityTrain.C:377
 runEffContTaskCentralityTrain.C:378
 runEffContTaskCentralityTrain.C:379
 runEffContTaskCentralityTrain.C:380
 runEffContTaskCentralityTrain.C:381
 runEffContTaskCentralityTrain.C:382
 runEffContTaskCentralityTrain.C:383
 runEffContTaskCentralityTrain.C:384
 runEffContTaskCentralityTrain.C:385
 runEffContTaskCentralityTrain.C:386
 runEffContTaskCentralityTrain.C:387
 runEffContTaskCentralityTrain.C:388
 runEffContTaskCentralityTrain.C:389
 runEffContTaskCentralityTrain.C:390
 runEffContTaskCentralityTrain.C:391
 runEffContTaskCentralityTrain.C:392
 runEffContTaskCentralityTrain.C:393
 runEffContTaskCentralityTrain.C:394
 runEffContTaskCentralityTrain.C:395
 runEffContTaskCentralityTrain.C:396
 runEffContTaskCentralityTrain.C:397
 runEffContTaskCentralityTrain.C:398
 runEffContTaskCentralityTrain.C:399
 runEffContTaskCentralityTrain.C:400
 runEffContTaskCentralityTrain.C:401
 runEffContTaskCentralityTrain.C:402
 runEffContTaskCentralityTrain.C:403
 runEffContTaskCentralityTrain.C:404
 runEffContTaskCentralityTrain.C:405
 runEffContTaskCentralityTrain.C:406
 runEffContTaskCentralityTrain.C:407
 runEffContTaskCentralityTrain.C:408
 runEffContTaskCentralityTrain.C:409
 runEffContTaskCentralityTrain.C:410
 runEffContTaskCentralityTrain.C:411
 runEffContTaskCentralityTrain.C:412
 runEffContTaskCentralityTrain.C:413
 runEffContTaskCentralityTrain.C:414
 runEffContTaskCentralityTrain.C:415
 runEffContTaskCentralityTrain.C:416
 runEffContTaskCentralityTrain.C:417
 runEffContTaskCentralityTrain.C:418
 runEffContTaskCentralityTrain.C:419
 runEffContTaskCentralityTrain.C:420
 runEffContTaskCentralityTrain.C:421
 runEffContTaskCentralityTrain.C:422
 runEffContTaskCentralityTrain.C:423
 runEffContTaskCentralityTrain.C:424
 runEffContTaskCentralityTrain.C:425
 runEffContTaskCentralityTrain.C:426
 runEffContTaskCentralityTrain.C:427