ROOT logo
// Analysis type can be ESD, AOD, MC, ESDMCkineESD, ESDMCkineMC
// in this simple example only ESD is supported
const TString type = "ESD";
// tracks used to determine the Q vector (Global, Tracklet or FMD at the moment)
const TString rptype = "Global";
// Boolean to fill/not fill the QA histograms
Bool_t QA = kTRUE;   

// Boolean to use/not use weights for the Q vector
Bool_t WEIGHTS[] = {kFALSE,kFALSE,kFALSE}; //Phi, v'(pt), v'(eta)


void runFlowTaskExample(Int_t nRuns = 2, 
              Bool_t DATA = kFALSE, const Char_t* dataDir="/Users/snelling/alice_data/Therminator_midcentral", Int_t offset = 0)
{
  TStopwatch timer;
  timer.Start();
  
  //--------------------------------------
  // 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");
  gSystem->Load("libSTEERBase");
  gSystem->Load("libESD");
  gSystem->Load("libAOD");
  gSystem->Load("libANALYSIS");
  gSystem->Load("libANALYSISalice");
  gSystem->Load("libCORRFW");
  gSystem->Load("libPWGflowBase");
  gSystem->Load("libPWGflowTasks");


  if (type!="AOD") { TChain* chain = CreateESDChain(dataDir, nRuns, offset);}
  else { TChain* chain = CreateAODChain(dataDir, nRuns, offset);}


  // CORRFW correction framework cuts
  //----------Event cuts----------

  TObjArray* mcEventList = new TObjArray(0); 
  AliCFEventGenCuts* mcEventCuts = new AliCFEventGenCuts("mcEventCuts","MC-level event cuts");
  mcEventList->AddLast(mcEventCuts);

  TObjArray* recEventList = new TObjArray(0);
  AliCFEventRecCuts* recEventCuts = new AliCFEventRecCuts("recEventCuts","rec-level event cuts");
  recEventList->AddLast(recEventCuts);

  //----------Cuts for RP----------
  TObjArray* mcListRP = new TObjArray(0);
  AliCFTrackKineCuts *mcKineCutsRP = new AliCFTrackKineCuts("mcKineCutsRP","MC-level kinematic cuts");
  mcListRP->AddLast(mcKineCutsRP);
  AliCFParticleGenCuts *mcGenCutsRP = new AliCFParticleGenCuts("mcGenCutsRP","MC particle generation cuts for RP");
  mcGenCutsRP->SetRequireIsPrimary();
  mcListRP->AddLast(mcGenCutsRP);

  TObjArray* fPIDCutListRP = new TObjArray(0) ;
  AliCFTrackCutPid* cutPidRP = NULL;
  fPIDCutListRP->AddLast(cutPidRP);

  TObjArray* recListRP = new TObjArray(0) ;
  AliCFTrackKineCuts *recKineCutsRP = new AliCFTrackKineCuts("recKineCutsRP","rec-level kine cuts");
  recListRP->AddLast(recKineCutsRP); 
  AliCFTrackQualityCuts *recQualityCutsRP = new AliCFTrackQualityCuts("recQualityCutsRP","rec-level quality cuts");
  recQualityCutsRP->SetMinNClusterTPC(70);
  recListRP->AddLast(recQualityCutsRP);
  AliCFTrackIsPrimaryCuts *recIsPrimaryCutsRP = new AliCFTrackIsPrimaryCuts("recIsPrimaryCutsRP","rec-level isPrimary cuts");
  recIsPrimaryCutsRP->UseSPDvertex(kTRUE);
  recIsPrimaryCutsRP->UseTPCvertex(kTRUE);
  recListRP->AddLast(recIsPrimaryCutsRP);

  TObjArray* accListRP = new TObjArray(0) ;
  AliCFAcceptanceCuts *mcAccCutsRP = new AliCFAcceptanceCuts("mcAccCutsRP","MC acceptance cuts");
  mcAccCutsRP->SetMinNHitITS(2);
  accListRP->AddLast(mcAccCutsRP);

  //----------Cuts for POI----------
  TObjArray* mcListPOI = new TObjArray(0);
  AliCFTrackKineCuts *mcKineCutsPOI = new AliCFTrackKineCuts("mcKineCutsPOI","MC-level kinematic cuts");
  mcListPOI->AddLast(mcKineCutsPOI);
  AliCFParticleGenCuts *mcGenCutsPOI = new AliCFParticleGenCuts("mcGenCutsPOI","MC particle generation cuts for POI");
  mcGenCutsPOI->SetRequireIsPrimary();
  mcListPOI->AddLast(mcGenCutsPOI);

  TObjArray* fPIDCutListPOI = new TObjArray(0) ;
  AliCFTrackCutPid* cutPidPOI = NULL;
  fPIDCutListPOI->AddLast(cutPidPOI);

  TObjArray* recListPOI = new TObjArray(0) ;
  AliCFTrackKineCuts *recKineCutsPOI = new AliCFTrackKineCuts("recKineCutsPOI","rec-level kine cuts");
  recListPOI->AddLast(recKineCutsPOI); 
  AliCFTrackQualityCuts *recQualityCutsPOI = new AliCFTrackQualityCuts("recQualityCutsPOI","rec-level quality cuts");
  recQualityCutsPOI->SetMinNClusterTPC(70);
  recListPOI->AddLast(recQualityCutsPOI);
  AliCFTrackIsPrimaryCuts *recIsPrimaryCutsPOI = new AliCFTrackIsPrimaryCuts("recIsPrimaryCutsPOI","rec-level isPrimary cuts");
  recIsPrimaryCutsPOI->UseSPDvertex(kTRUE);
  recIsPrimaryCutsPOI->UseTPCvertex(kTRUE);
  recListPOI->AddLast(recIsPrimaryCutsPOI);

  TObjArray* accListPOI = new TObjArray(0) ;
  AliCFAcceptanceCuts *mcAccCutsPOI = new AliCFAcceptanceCuts("mcAccCutsPOI","MC acceptance cuts");
  mcAccCutsPOI->SetMinNHitITS(2);
  accListPOI->AddLast(mcAccCutsPOI);

  //----------Add Cut Lists to the CF Manager----------
  printf("CREATE INTERFACE AND CUTS\n");
  AliCFManager* cfmgrRP = new AliCFManager();
  cfmgrRP->SetNStepEvent(3);
  cfmgrRP->SetEventCutsList(AliCFManager::kEvtGenCuts,mcEventList); 
  cfmgrRP->SetEventCutsList(AliCFManager::kEvtRecCuts,recEventList); 
  cfmgrRP->SetNStepParticle(4); 
  cfmgrRP->SetParticleCutsList(AliCFManager::kPartGenCuts,mcListRP);
  cfmgrRP->SetParticleCutsList(AliCFManager::kPartAccCuts,accListRP);
  cfmgrRP->SetParticleCutsList(AliCFManager::kPartRecCuts,recListRP);
  cfmgrRP->SetParticleCutsList(AliCFManager::kPartSelCuts,fPIDCutListRP);

  AliCFManager* cfmgrPOI = new AliCFManager();
  cfmgrPOI->SetNStepEvent(3);
  cfmgrPOI->SetEventCutsList(AliCFManager::kEvtGenCuts,mcEventList); 
  cfmgrPOI->SetEventCutsList(AliCFManager::kEvtRecCuts,recEventList); 
  cfmgrPOI->SetNStepParticle(4); 
  cfmgrPOI->SetParticleCutsList(AliCFManager::kPartGenCuts,mcListPOI);
  cfmgrPOI->SetParticleCutsList(AliCFManager::kPartAccCuts,accListPOI);
  cfmgrPOI->SetParticleCutsList(AliCFManager::kPartRecCuts,recListPOI);
  cfmgrPOI->SetParticleCutsList(AliCFManager::kPartSelCuts,fPIDCutListPOI);


  // Make the analysis manager
  AliAnalysisManager *mgr = new AliAnalysisManager("FlowAnalysisManager");
  
  AliVEventHandler* esdH = new AliESDInputHandler;
  mgr->SetInputEventHandler(esdH);
  AliMCEventHandler *mc = new AliMCEventHandler();
  mgr->SetMCtruthEventHandler(mc); 


  //  gROOT->LoadMacro("$ALICE_ROOT/ANALYSIS/macros/AddTaskPhysicsSelection.C"); 
  //  AliPhysicsSelectionTask* physicsSelTask = AddTaskPhysicsSelection();
  //  if (!DATA) {physicsSelTask->GetPhysicsSelection()->SetAnalyzeMC();}
  
  // Add the task which makes the flowevent to the analysis manager 
  AliAnalysisTaskFlowEvent* taskFE = new AliAnalysisTaskFlowEvent("TaskFlowEvent",rptype,kFALSE,1);
  taskFE->SetAnalysisType(type);  
  //  taskFE->SelectCollisionCandidates();  
  mgr->AddTask(taskFE);

  // Set the cuts for the flowevent
  taskFE->SetCFManager1(cfmgrRP);
  taskFE->SetCFManager2(cfmgrPOI);

  // Instantiate the flow methods and add to the analysis manager
  AliAnalysisTaskMCEventPlane *taskMCEP = new AliAnalysisTaskMCEventPlane("TaskMCEventPlane");
  mgr->AddTask(taskMCEP);
  AliAnalysisTaskQCumulants *taskQC = new AliAnalysisTaskQCumulants("TaskQCumulants",kFALSE);
  mgr->AddTask(taskQC);

  // Create the output container for the data produced by the task
  // Connect to the input and output containers
  //===========================================================================
  AliAnalysisDataContainer *cinput1 = mgr->GetCommonInputContainer();
  
  AliAnalysisDataContainer *coutputFE = 
    mgr->CreateContainer("cobjFlowEventSimple",  AliFlowEventSimple::Class(),AliAnalysisManager::kExchangeContainer);
  mgr->ConnectInput(taskFE,0,cinput1); 
  mgr->ConnectOutput(taskFE,1,coutputFE);


  TString outputMCEP = AliAnalysisManager::GetCommonFileName();
  outputMCEP += ":outputMCEPanalysis";
  outputMCEP+= type;
    
  AliAnalysisDataContainer *coutputMCEP = mgr->CreateContainer("cobjMCEP", TList::Class(),AliAnalysisManager::kOutputContainer,outputMCEP); 
  mgr->ConnectInput(taskMCEP,0,coutputFE); 
  mgr->ConnectOutput(taskMCEP,1,coutputMCEP); 


  TString outputQC = AliAnalysisManager::GetCommonFileName();
  outputQC += ":outputQCanalysis";
  outputQC+= type;

  AliAnalysisDataContainer *coutputQC = mgr->CreateContainer("cobjQC", TList::Class(),AliAnalysisManager::kOutputContainer,outputQC); 
  mgr->ConnectInput(taskQC,0,coutputFE); 
  mgr->ConnectOutput(taskQC,1,coutputQC);

  // Run the analysis
  if (!mgr->InitAnalysis()) return;
  mgr->PrintStatus();
  mgr->StartAnalysis("local",chain);
  
  timer.Stop();
  timer.Print();
  
}

// 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;
}


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

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;
}

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