ROOT logo
//example script on what to do with the star events
//run e.g. like this:
//                    root runStarFlowAnalysis.C
// flow analysis method can be: (set to kTRUE or kFALSE)
Bool_t MCEP     = kTRUE;
Bool_t SP       = kTRUE;
Bool_t GFC      = kTRUE;
Bool_t QC       = kTRUE;
Bool_t FQD      = kTRUE;
Bool_t LYZ1SUM  = kTRUE;
Bool_t LYZ1PROD = kTRUE;
Bool_t LYZ2SUM  = kFALSE;
Bool_t LYZ2PROD = kFALSE;
Bool_t LYZEP    = kFALSE;
Bool_t MH       = kFALSE; // mixed harmonics 
Bool_t NL       = kFALSE; // nested loops
Bool_t MCEP_AH  = kFALSE; // MCEP in another harmonic 
//--------------------------------------------------------------------------------------

// Weights 
// use weights for Q-vector:
Bool_t usePhiWeights = kFALSE; // phi weights (correction for non-uniform azimuthal acceptance)
Bool_t usePtWeights  = kFALSE; // pt weights 
Bool_t useEtaWeights = kFALSE; // eta weights

// Define the range for eta subevents
Double_t minA = -0.9;
Double_t maxA = -0.01;
Double_t minB = 0.01;
Double_t maxB = 0.9;


void  runStarFlowAnalysis(const char* inputDataFiles="/Users/snelling/alice_data/jthomas/testData/")
{
  gSystem->Load("libTree.so");
  gSystem->Load("libVMC.so");
  gSystem->Load("libPhysics.so");
  gSystem->Load("libPWGflowBase");

  Int_t maxNumberOfEvents = 1000000;

  TStopwatch timer;
  timer.Start();
  
  if (LYZ1SUM && LYZ2SUM) {cout<<"WARNING: you cannot run LYZ1 and LYZ2 at the same time! LYZ2 needs the output from LYZ1."<<endl; exit(1); }
  if (LYZ1PROD && LYZ2PROD) {cout<<"WARNING: you cannot run LYZ1 and LYZ2 at the same time! LYZ2 needs the output from LYZ1."<<endl; exit(1); }
  if (LYZ2SUM && LYZEP) {cout<<"WARNING: you cannot run LYZ2 and LYZEP at the same time! LYZEP needs the output from LYZ2."<<endl; exit(1); }
  if (LYZ1SUM && LYZEP) {cout<<"WARNING: you cannot run LYZ1 and LYZEP at the same time! LYZEP needs the output from LYZ2."<<endl; exit(1); }



  //define reference particles
  AliStarTrackCuts* rpCuts = AliStarTrackCuts::StandardCuts();
  rpCuts->SetPtMin(0.05);
  rpCuts->SetPtMax(10.);

  //define particles of interest
  AliStarTrackCuts* poiCuts = AliStarTrackCuts::StandardCuts();
  poiCuts->SetPtMin(0.05);
  poiCuts->SetPtMax(10.);

  //define event cuts
  AliStarEventCuts* starEventCuts = AliStarEventCuts::StandardCuts();
  starEventCuts-> SetCentralityIDMax(3);
  starEventCuts-> SetCentralityIDMin(3);

  //if the weights are used: 
  TFile *fileWithWeights = NULL;
  TList *listWithWeights = NULL;
  
  if(usePhiWeights||usePtWeights||useEtaWeights) {
    fileWithWeights = TFile::Open("weights.root","READ");
    if(fileWithWeights) {
      listWithWeights = (TList*)fileWithWeights->Get("weights");
    }
    else
      {cout << " WARNING: the file <weights.root> with weights from the previous run was not found."<<endl;
	break;
      }    
  }

  //---------------------------------------------------------------------------------------
  // Initialize all the flow methods for default analysis:  
  AliFlowAnalysisWithQCumulants *qc = NULL;
  AliFlowAnalysisWithCumulants *gfc = NULL;
  AliFlowAnalysisWithFittingQDistribution *fqd = NULL;
  AliFlowAnalysisWithLeeYangZeros *lyz1sum  = NULL;
  AliFlowAnalysisWithLeeYangZeros *lyz1prod = NULL;
  AliFlowAnalysisWithLeeYangZeros *lyz2sum  = NULL;
  AliFlowAnalysisWithLeeYangZeros *lyz2prod = NULL;
  AliFlowAnalysisWithLYZEventPlane *lyzep = NULL;
  AliFlowAnalysisWithScalarProduct *sp = NULL;
  AliFlowAnalysisWithMixedHarmonics *mh = NULL;
  AliFlowAnalysisWithNestedLoops *nl = NULL;
  AliFlowAnalysisWithMCEventPlane *mcep = NULL;   
  AliFlowAnalysisWithMCEventPlane *mcep_ah = NULL;   

// MCEP = monte carlo event plane
 if (MCEP) {
   AliFlowAnalysisWithMCEventPlane *mcep = new AliFlowAnalysisWithMCEventPlane();
   //mcep->SetHarmonic(2); // default is v2
   //mcep->SetFlowOfResonances(kTRUE);
   mcep->Init();
 }

 // MCEP = monte carlo event plane in another harmonic: 
 if(MCEP_AH)
 {
  AliFlowAnalysisWithMCEventPlane *mcep_ah = new AliFlowAnalysisWithMCEventPlane();
  mcep_ah->SetHarmonic(1);
  mcep_ah->Init();
 }
 
 // Mixed harmonics:
 if(MH) 
 {
  AliFlowAnalysisWithMixedHarmonics *mh = new AliFlowAnalysisWithMixedHarmonics();
  mh->SetHarmonic(1); // integer n in expression cos[n(2phi1-phi2-phi3)] = v2n*vn^2
  mh->SetMinMultiplicity(100); 
  mh->SetNoOfMultipicityBins(5);  
  mh->SetMultipicityBinWidth(200);   
  mh->Init(); 
 }
 
 // NL = nested loops:
 if(NL) {
   AliFlowAnalysisWithNestedLoops *nl = new AliFlowAnalysisWithNestedLoops();
   nl->Init();
 }

 // QC = Q-cumulants  
 if(QC) { 
   AliFlowAnalysisWithQCumulants* qc = new AliFlowAnalysisWithQCumulants();
   if(listWithWeights) qc->SetWeightsList(listWithWeights);
   if(usePhiWeights) qc->SetUsePhiWeights(usePhiWeights);
   if(usePtWeights) qc->SetUsePtWeights(usePtWeights);
   if(useEtaWeights) qc->SetUseEtaWeights(useEtaWeights);
   // qc->SetHarmonic(2); // default is v2
   // qc->SetApplyCorrectionForNUA(kTRUE); // default
   // qc->SetCalculate2DFlow(kFALSE); // default
   // qc->SetMultiplicityWeight("combinations"); // default
   // qc->SetMultiplicityWeight("unit");
   // qc->SetMultiplicityWeight("multiplicity");  
   qc->SetnBinsMult(10000);
   qc->SetMinMult(0);
   qc->SetMaxMult(10000);      
   qc->Init();  
 }
  
 // GFC = Generating Function Cumulants 
 if(GFC) {
   AliFlowAnalysisWithCumulants* gfc = new AliFlowAnalysisWithCumulants();
   if(listWithWeights) gfc->SetWeightsList(listWithWeights);
   if(usePhiWeights) gfc->SetUsePhiWeights(usePhiWeights);
   if(usePtWeights) gfc->SetUsePtWeights(usePtWeights);
   if(useEtaWeights) gfc->SetUseEtaWeights(useEtaWeights);
   // calculation vs multiplicity:
   gfc->SetCalculateVsMultiplicity(kFALSE);   
   gfc->SetnBinsMult(10000);
   gfc->SetMinMult(0);
   gfc->SetMaxMult(10000);   
   // tuning of interpolating parameters:
   gfc->SetTuneParameters(kFALSE);
   Double_t r0[10] = {1.8,1.9,2.0,2.1,2.2,2.3,2.4,2.5,2.6,2.7}; // up to 10 values allowed
   for(Int_t r=0;r<10;r++) {gfc->SetTuningR0(r0[r],r);}
   gfc->Init();
 }
 
 // FQD = Fitting q-distribution 
 if(FQD) {
   AliFlowAnalysisWithFittingQDistribution* fqd = new AliFlowAnalysisWithFittingQDistribution();
   if(listWithWeights) fqd->SetWeightsList(listWithWeights);
   if(usePhiWeights) fqd->SetUsePhiWeights(usePhiWeights);  
   fqd->Init();
 }
 
 // SP = Scalar Product 
 if(SP) {
   AliFlowAnalysisWithScalarProduct* sp = new AliFlowAnalysisWithScalarProduct();
   if(listWithWeights) sp->SetWeightsList(listWithWeights);
   sp->SetUsePhiWeights(usePhiWeights);  
   sp->Init();
 }

 // LYZ1 = Lee-Yang Zeroes first run
 if(LYZ1SUM) {
   AliFlowAnalysisWithLeeYangZeros* lyz1sum = new AliFlowAnalysisWithLeeYangZeros();
   lyz1sum->SetFirstRun(kTRUE);
   lyz1sum->SetUseSum(kTRUE);
   lyz1sum->Init();
 }
 if(LYZ1PROD) {
   AliFlowAnalysisWithLeeYangZeros* lyz1prod = new AliFlowAnalysisWithLeeYangZeros();
   lyz1prod->SetFirstRun(kTRUE);
   lyz1prod->SetUseSum(kFALSE);
   lyz1prod->Init();
 }
 // LYZ2 = Lee-Yang Zeroes second run
 if(LYZ2SUM) {
   AliFlowAnalysisWithLeeYangZeros* lyz2sum = new AliFlowAnalysisWithLeeYangZeros();
   // read the input file from the first run 
   TString inputFileNameLYZ2SUM = "outputLYZ1SUManalysis.root" ;
   TFile* inputFileLYZ2SUM = new TFile(inputFileNameLYZ2SUM.Data(),"READ");
   if(!inputFileLYZ2SUM || inputFileLYZ2SUM->IsZombie()) { 
     cerr << " ERROR: To run LYZ2SUM you need the output file from LYZ1SUM. This file is not there! Please run LYZ1SUM first." << endl ;
     break; 
   }
   else { 
     TList* inputListLYZ2SUM = (TList*)inputFileLYZ2SUM->Get("cobjLYZ1SUM");  
     if (!inputListLYZ2SUM) {cout<<"Input list LYZ2SUM is NULL pointer!"<<endl; break;}
     else {
       cout<<"LYZ2SUM input file/list read..."<<endl;
       lyz2sum->SetFirstRunList(inputListLYZ2SUM);
       lyz2sum->SetFirstRun(kFALSE);
       lyz2sum->SetUseSum(kTRUE);
       lyz2sum->Init();
     }
   }
 }
 if(LYZ2PROD) {
   AliFlowAnalysisWithLeeYangZeros* lyz2prod = new AliFlowAnalysisWithLeeYangZeros();
   // read the input file from the first run 
   TString inputFileNameLYZ2PROD = "outputLYZ1PRODanalysis.root" ;
   TFile* inputFileLYZ2PROD = new TFile(inputFileNameLYZ2PROD.Data(),"READ");
   if(!inputFileLYZ2PROD || inputFileLYZ2PROD->IsZombie()) { 
     cerr << " ERROR: To run LYZ2PROD you need the output file from LYZ1PROD. This file is not there! Please run LYZ1PROD first." << endl ;
     break; 
   }
   else { 
     TList* inputListLYZ2PROD = (TList*)inputFileLYZ2PROD->Get("cobjLYZ1PROD");  
     if (!inputListLYZ2PROD) {cout<<"Input list LYZ2PROD is NULL pointer!"<<endl; break;}
     else {
       cout<<"LYZ2PROD input file/list read..."<<endl;
       lyz2prod->SetFirstRunList(inputListLYZ2PROD);
       lyz2prod->SetFirstRun(kFALSE);
       lyz2prod->SetUseSum(kFALSE);
       lyz2prod->Init();
     }
   }
 }

 // LYZEP = Lee-Yang Zeroes event plane
 if(LYZEP) {
   AliFlowLYZEventPlane* ep = new AliFlowLYZEventPlane() ;
   AliFlowAnalysisWithLYZEventPlane* lyzep = new AliFlowAnalysisWithLYZEventPlane();
   // read the input file from the second lyz run 
   TString inputFileNameLYZEP = "outputLYZ2SUManalysis.root" ;
   TFile* inputFileLYZEP = new TFile(inputFileNameLYZEP.Data(),"READ");
   if(!inputFileLYZEP || inputFileLYZEP->IsZombie()) { 
     cerr << " ERROR: To run LYZEP you need the output file from LYZ2SUM. This file is not there! Please run LYZ2SUM first." << endl ; 
     break;
   }
   else { 
     TList* inputListLYZEP = (TList*)inputFileLYZEP->Get("cobjLYZ2SUM");  
     if (!inputListLYZEP) {cout<<"Input list LYZEP is NULL pointer!"<<endl; break;}
     else {
       cout<<"LYZEP input file/list read..."<<endl;
       ep   ->SetSecondRunList(inputListLYZEP);
       lyzep->SetSecondRunList(inputListLYZEP);
       ep   ->Init();
       lyzep->Init();
     }
   }
 }
 //---------------------------------------------------------------------------------------


  Int_t i=0;
  AliStarEventReader starReader(inputDataFiles) ;
  while ( starReader.GetNextEvent() )                                // Get next event
  {
    AliStarEvent* starEvent = starReader.GetEvent();
    if ( !starEventCuts->PassesCuts(starEvent) ) continue;              // Test if the event is good

    AliFlowEventSimple* flowEvent = new AliFlowEventStar(starEvent,rpCuts,poiCuts);  // make a flow event from a star event (aka "the magic")
    flowEvent->TagSubeventsInEta(minA, maxA, minB, maxB );

    /////analysis here////////////////

    // do flow analysis for various methods
    if(MCEP)    mcep->Make(flowEvent);
    if(QC)      qc->Make(flowEvent);
    if(GFC)     gfc->Make(flowEvent);
    if(FQD)     fqd->Make(flowEvent);
    if(LYZ1SUM) lyz1sum->Make(flowEvent);
    if(LYZ1PROD)lyz1prod->Make(flowEvent);
    if(LYZ2SUM) lyz2sum->Make(flowEvent);
    if(LYZ2PROD)lyz2prod->Make(flowEvent);
    if(LYZEP)   lyzep->Make(flowEvent,ep);
    if(SP)      sp->Make(flowEvent);	      
    if(MH)      mh->Make(flowEvent);
    if(NL)      nl->Make(flowEvent);
    if(MCEP_AH) mcep_ah->Make(flowEvent);

    //////////////////////////////////

    flowEvent->Print();

    delete flowEvent;

    i++;
    if (i>maxNumberOfEvents) break;
  }

  //---------------------------------------------------------------------------------------  
  // create a new file which will hold the final results of all methods:
  TString outputFileName = "AnalysisResults.root";  
  TFile *outputFile = new TFile(outputFileName.Data(),"RECREATE");
  // create a new file for each method wich will hold list with final results:
  const Int_t nMethods = 13;
  TString method[nMethods] = {"MCEP","SP","GFC","QC","FQD","LYZ1SUM","LYZ1PROD","LYZ2SUM","LYZ2PROD","LYZEP","MH","NL","MCEP_AH"};
  TDirectoryFile *dirFileFinal[nMethods] = {NULL};
  TString fileName[nMethods]; 
  for(Int_t i=0;i<nMethods;i++)
    {
      // form a file name for each method:
      fileName[i]+="output";
      fileName[i]+=method[i].Data();
      fileName[i]+="analysis";
      dirFileFinal[i] = new TDirectoryFile(fileName[i].Data(),fileName[i].Data());
    } 
  
  // calculating and storing the final results of default flow analysis:
  if(MCEP)    {mcep->Finish();    mcep->WriteHistograms(dirFileFinal[0]);}
  if(SP)      {sp->Finish();      sp->WriteHistograms(dirFileFinal[1]);}
  if(GFC)     {gfc->Finish();     gfc->WriteHistograms(dirFileFinal[2]);}
  if(QC)      {qc->Finish();      qc->WriteHistograms(dirFileFinal[3]);}
  if(FQD)     {fqd->Finish();     fqd->WriteHistograms(dirFileFinal[4]);}
  if(LYZ1SUM) {lyz1sum->Finish(); lyz1sum->WriteHistograms(dirFileFinal[5]);}
  if(LYZ1PROD){lyz1prod->Finish();lyz1prod->WriteHistograms(dirFileFinal[6]);}
  if(LYZ2SUM) {lyz2sum->Finish(); lyz2sum->WriteHistograms(dirFileFinal[7]);}
  if(LYZ2PROD){lyz2prod->Finish();lyz2prod->WriteHistograms(dirFileFinal[8]);}
  if(LYZEP)   {lyzep->Finish();   lyzep->WriteHistograms(dirFileFinal[9]);}
  if(MH)      {mh->Finish();      mh->WriteHistograms(dirFileFinal[10]);}
  if(NL)      {nl->Finish();      nl->WriteHistograms(dirFileFinal[11]);}
  if(MCEP_AH) {mcep_ah->Finish(); mcep_ah->WriteHistograms(dirFileFinal[12]);}
  //---------------------------------------------------------------------------------------  
  
  outputFile->Close();
  delete outputFile;
  
  cout<<endl;
  cout<<endl;
  cout<<" ---- LANDED SUCCESSFULLY ---- "<<endl;
  cout<<endl; 
  
  timer.Stop();
  cout << endl;
  timer.Print();
  
  delete rpCuts;
  delete poiCuts;
  delete starEventCuts;
}
 runStarFlowAnalysis.C:1
 runStarFlowAnalysis.C:2
 runStarFlowAnalysis.C:3
 runStarFlowAnalysis.C:4
 runStarFlowAnalysis.C:5
 runStarFlowAnalysis.C:6
 runStarFlowAnalysis.C:7
 runStarFlowAnalysis.C:8
 runStarFlowAnalysis.C:9
 runStarFlowAnalysis.C:10
 runStarFlowAnalysis.C:11
 runStarFlowAnalysis.C:12
 runStarFlowAnalysis.C:13
 runStarFlowAnalysis.C:14
 runStarFlowAnalysis.C:15
 runStarFlowAnalysis.C:16
 runStarFlowAnalysis.C:17
 runStarFlowAnalysis.C:18
 runStarFlowAnalysis.C:19
 runStarFlowAnalysis.C:20
 runStarFlowAnalysis.C:21
 runStarFlowAnalysis.C:22
 runStarFlowAnalysis.C:23
 runStarFlowAnalysis.C:24
 runStarFlowAnalysis.C:25
 runStarFlowAnalysis.C:26
 runStarFlowAnalysis.C:27
 runStarFlowAnalysis.C:28
 runStarFlowAnalysis.C:29
 runStarFlowAnalysis.C:30
 runStarFlowAnalysis.C:31
 runStarFlowAnalysis.C:32
 runStarFlowAnalysis.C:33
 runStarFlowAnalysis.C:34
 runStarFlowAnalysis.C:35
 runStarFlowAnalysis.C:36
 runStarFlowAnalysis.C:37
 runStarFlowAnalysis.C:38
 runStarFlowAnalysis.C:39
 runStarFlowAnalysis.C:40
 runStarFlowAnalysis.C:41
 runStarFlowAnalysis.C:42
 runStarFlowAnalysis.C:43
 runStarFlowAnalysis.C:44
 runStarFlowAnalysis.C:45
 runStarFlowAnalysis.C:46
 runStarFlowAnalysis.C:47
 runStarFlowAnalysis.C:48
 runStarFlowAnalysis.C:49
 runStarFlowAnalysis.C:50
 runStarFlowAnalysis.C:51
 runStarFlowAnalysis.C:52
 runStarFlowAnalysis.C:53
 runStarFlowAnalysis.C:54
 runStarFlowAnalysis.C:55
 runStarFlowAnalysis.C:56
 runStarFlowAnalysis.C:57
 runStarFlowAnalysis.C:58
 runStarFlowAnalysis.C:59
 runStarFlowAnalysis.C:60
 runStarFlowAnalysis.C:61
 runStarFlowAnalysis.C:62
 runStarFlowAnalysis.C:63
 runStarFlowAnalysis.C:64
 runStarFlowAnalysis.C:65
 runStarFlowAnalysis.C:66
 runStarFlowAnalysis.C:67
 runStarFlowAnalysis.C:68
 runStarFlowAnalysis.C:69
 runStarFlowAnalysis.C:70
 runStarFlowAnalysis.C:71
 runStarFlowAnalysis.C:72
 runStarFlowAnalysis.C:73
 runStarFlowAnalysis.C:74
 runStarFlowAnalysis.C:75
 runStarFlowAnalysis.C:76
 runStarFlowAnalysis.C:77
 runStarFlowAnalysis.C:78
 runStarFlowAnalysis.C:79
 runStarFlowAnalysis.C:80
 runStarFlowAnalysis.C:81
 runStarFlowAnalysis.C:82
 runStarFlowAnalysis.C:83
 runStarFlowAnalysis.C:84
 runStarFlowAnalysis.C:85
 runStarFlowAnalysis.C:86
 runStarFlowAnalysis.C:87
 runStarFlowAnalysis.C:88
 runStarFlowAnalysis.C:89
 runStarFlowAnalysis.C:90
 runStarFlowAnalysis.C:91
 runStarFlowAnalysis.C:92
 runStarFlowAnalysis.C:93
 runStarFlowAnalysis.C:94
 runStarFlowAnalysis.C:95
 runStarFlowAnalysis.C:96
 runStarFlowAnalysis.C:97
 runStarFlowAnalysis.C:98
 runStarFlowAnalysis.C:99
 runStarFlowAnalysis.C:100
 runStarFlowAnalysis.C:101
 runStarFlowAnalysis.C:102
 runStarFlowAnalysis.C:103
 runStarFlowAnalysis.C:104
 runStarFlowAnalysis.C:105
 runStarFlowAnalysis.C:106
 runStarFlowAnalysis.C:107
 runStarFlowAnalysis.C:108
 runStarFlowAnalysis.C:109
 runStarFlowAnalysis.C:110
 runStarFlowAnalysis.C:111
 runStarFlowAnalysis.C:112
 runStarFlowAnalysis.C:113
 runStarFlowAnalysis.C:114
 runStarFlowAnalysis.C:115
 runStarFlowAnalysis.C:116
 runStarFlowAnalysis.C:117
 runStarFlowAnalysis.C:118
 runStarFlowAnalysis.C:119
 runStarFlowAnalysis.C:120
 runStarFlowAnalysis.C:121
 runStarFlowAnalysis.C:122
 runStarFlowAnalysis.C:123
 runStarFlowAnalysis.C:124
 runStarFlowAnalysis.C:125
 runStarFlowAnalysis.C:126
 runStarFlowAnalysis.C:127
 runStarFlowAnalysis.C:128
 runStarFlowAnalysis.C:129
 runStarFlowAnalysis.C:130
 runStarFlowAnalysis.C:131
 runStarFlowAnalysis.C:132
 runStarFlowAnalysis.C:133
 runStarFlowAnalysis.C:134
 runStarFlowAnalysis.C:135
 runStarFlowAnalysis.C:136
 runStarFlowAnalysis.C:137
 runStarFlowAnalysis.C:138
 runStarFlowAnalysis.C:139
 runStarFlowAnalysis.C:140
 runStarFlowAnalysis.C:141
 runStarFlowAnalysis.C:142
 runStarFlowAnalysis.C:143
 runStarFlowAnalysis.C:144
 runStarFlowAnalysis.C:145
 runStarFlowAnalysis.C:146
 runStarFlowAnalysis.C:147
 runStarFlowAnalysis.C:148
 runStarFlowAnalysis.C:149
 runStarFlowAnalysis.C:150
 runStarFlowAnalysis.C:151
 runStarFlowAnalysis.C:152
 runStarFlowAnalysis.C:153
 runStarFlowAnalysis.C:154
 runStarFlowAnalysis.C:155
 runStarFlowAnalysis.C:156
 runStarFlowAnalysis.C:157
 runStarFlowAnalysis.C:158
 runStarFlowAnalysis.C:159
 runStarFlowAnalysis.C:160
 runStarFlowAnalysis.C:161
 runStarFlowAnalysis.C:162
 runStarFlowAnalysis.C:163
 runStarFlowAnalysis.C:164
 runStarFlowAnalysis.C:165
 runStarFlowAnalysis.C:166
 runStarFlowAnalysis.C:167
 runStarFlowAnalysis.C:168
 runStarFlowAnalysis.C:169
 runStarFlowAnalysis.C:170
 runStarFlowAnalysis.C:171
 runStarFlowAnalysis.C:172
 runStarFlowAnalysis.C:173
 runStarFlowAnalysis.C:174
 runStarFlowAnalysis.C:175
 runStarFlowAnalysis.C:176
 runStarFlowAnalysis.C:177
 runStarFlowAnalysis.C:178
 runStarFlowAnalysis.C:179
 runStarFlowAnalysis.C:180
 runStarFlowAnalysis.C:181
 runStarFlowAnalysis.C:182
 runStarFlowAnalysis.C:183
 runStarFlowAnalysis.C:184
 runStarFlowAnalysis.C:185
 runStarFlowAnalysis.C:186
 runStarFlowAnalysis.C:187
 runStarFlowAnalysis.C:188
 runStarFlowAnalysis.C:189
 runStarFlowAnalysis.C:190
 runStarFlowAnalysis.C:191
 runStarFlowAnalysis.C:192
 runStarFlowAnalysis.C:193
 runStarFlowAnalysis.C:194
 runStarFlowAnalysis.C:195
 runStarFlowAnalysis.C:196
 runStarFlowAnalysis.C:197
 runStarFlowAnalysis.C:198
 runStarFlowAnalysis.C:199
 runStarFlowAnalysis.C:200
 runStarFlowAnalysis.C:201
 runStarFlowAnalysis.C:202
 runStarFlowAnalysis.C:203
 runStarFlowAnalysis.C:204
 runStarFlowAnalysis.C:205
 runStarFlowAnalysis.C:206
 runStarFlowAnalysis.C:207
 runStarFlowAnalysis.C:208
 runStarFlowAnalysis.C:209
 runStarFlowAnalysis.C:210
 runStarFlowAnalysis.C:211
 runStarFlowAnalysis.C:212
 runStarFlowAnalysis.C:213
 runStarFlowAnalysis.C:214
 runStarFlowAnalysis.C:215
 runStarFlowAnalysis.C:216
 runStarFlowAnalysis.C:217
 runStarFlowAnalysis.C:218
 runStarFlowAnalysis.C:219
 runStarFlowAnalysis.C:220
 runStarFlowAnalysis.C:221
 runStarFlowAnalysis.C:222
 runStarFlowAnalysis.C:223
 runStarFlowAnalysis.C:224
 runStarFlowAnalysis.C:225
 runStarFlowAnalysis.C:226
 runStarFlowAnalysis.C:227
 runStarFlowAnalysis.C:228
 runStarFlowAnalysis.C:229
 runStarFlowAnalysis.C:230
 runStarFlowAnalysis.C:231
 runStarFlowAnalysis.C:232
 runStarFlowAnalysis.C:233
 runStarFlowAnalysis.C:234
 runStarFlowAnalysis.C:235
 runStarFlowAnalysis.C:236
 runStarFlowAnalysis.C:237
 runStarFlowAnalysis.C:238
 runStarFlowAnalysis.C:239
 runStarFlowAnalysis.C:240
 runStarFlowAnalysis.C:241
 runStarFlowAnalysis.C:242
 runStarFlowAnalysis.C:243
 runStarFlowAnalysis.C:244
 runStarFlowAnalysis.C:245
 runStarFlowAnalysis.C:246
 runStarFlowAnalysis.C:247
 runStarFlowAnalysis.C:248
 runStarFlowAnalysis.C:249
 runStarFlowAnalysis.C:250
 runStarFlowAnalysis.C:251
 runStarFlowAnalysis.C:252
 runStarFlowAnalysis.C:253
 runStarFlowAnalysis.C:254
 runStarFlowAnalysis.C:255
 runStarFlowAnalysis.C:256
 runStarFlowAnalysis.C:257
 runStarFlowAnalysis.C:258
 runStarFlowAnalysis.C:259
 runStarFlowAnalysis.C:260
 runStarFlowAnalysis.C:261
 runStarFlowAnalysis.C:262
 runStarFlowAnalysis.C:263
 runStarFlowAnalysis.C:264
 runStarFlowAnalysis.C:265
 runStarFlowAnalysis.C:266
 runStarFlowAnalysis.C:267
 runStarFlowAnalysis.C:268
 runStarFlowAnalysis.C:269
 runStarFlowAnalysis.C:270
 runStarFlowAnalysis.C:271
 runStarFlowAnalysis.C:272
 runStarFlowAnalysis.C:273
 runStarFlowAnalysis.C:274
 runStarFlowAnalysis.C:275
 runStarFlowAnalysis.C:276
 runStarFlowAnalysis.C:277
 runStarFlowAnalysis.C:278
 runStarFlowAnalysis.C:279
 runStarFlowAnalysis.C:280
 runStarFlowAnalysis.C:281
 runStarFlowAnalysis.C:282
 runStarFlowAnalysis.C:283
 runStarFlowAnalysis.C:284
 runStarFlowAnalysis.C:285
 runStarFlowAnalysis.C:286
 runStarFlowAnalysis.C:287
 runStarFlowAnalysis.C:288
 runStarFlowAnalysis.C:289
 runStarFlowAnalysis.C:290
 runStarFlowAnalysis.C:291
 runStarFlowAnalysis.C:292
 runStarFlowAnalysis.C:293
 runStarFlowAnalysis.C:294
 runStarFlowAnalysis.C:295
 runStarFlowAnalysis.C:296
 runStarFlowAnalysis.C:297
 runStarFlowAnalysis.C:298
 runStarFlowAnalysis.C:299
 runStarFlowAnalysis.C:300
 runStarFlowAnalysis.C:301
 runStarFlowAnalysis.C:302
 runStarFlowAnalysis.C:303
 runStarFlowAnalysis.C:304
 runStarFlowAnalysis.C:305
 runStarFlowAnalysis.C:306
 runStarFlowAnalysis.C:307
 runStarFlowAnalysis.C:308
 runStarFlowAnalysis.C:309
 runStarFlowAnalysis.C:310
 runStarFlowAnalysis.C:311
 runStarFlowAnalysis.C:312
 runStarFlowAnalysis.C:313
 runStarFlowAnalysis.C:314
 runStarFlowAnalysis.C:315
 runStarFlowAnalysis.C:316
 runStarFlowAnalysis.C:317
 runStarFlowAnalysis.C:318
 runStarFlowAnalysis.C:319
 runStarFlowAnalysis.C:320
 runStarFlowAnalysis.C:321
 runStarFlowAnalysis.C:322
 runStarFlowAnalysis.C:323
 runStarFlowAnalysis.C:324
 runStarFlowAnalysis.C:325
 runStarFlowAnalysis.C:326
 runStarFlowAnalysis.C:327
 runStarFlowAnalysis.C:328
 runStarFlowAnalysis.C:329
 runStarFlowAnalysis.C:330
 runStarFlowAnalysis.C:331
 runStarFlowAnalysis.C:332
 runStarFlowAnalysis.C:333
 runStarFlowAnalysis.C:334
 runStarFlowAnalysis.C:335
 runStarFlowAnalysis.C:336
 runStarFlowAnalysis.C:337
 runStarFlowAnalysis.C:338
 runStarFlowAnalysis.C:339
 runStarFlowAnalysis.C:340
 runStarFlowAnalysis.C:341
 runStarFlowAnalysis.C:342
 runStarFlowAnalysis.C:343
 runStarFlowAnalysis.C:344
 runStarFlowAnalysis.C:345
 runStarFlowAnalysis.C:346
 runStarFlowAnalysis.C:347
 runStarFlowAnalysis.C:348
 runStarFlowAnalysis.C:349
 runStarFlowAnalysis.C:350
 runStarFlowAnalysis.C:351
 runStarFlowAnalysis.C:352
 runStarFlowAnalysis.C:353
 runStarFlowAnalysis.C:354
 runStarFlowAnalysis.C:355