//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: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