ROOT logo
// Macro compareFlowResults.C is used to show a set of predefined plots with results 
// of flow analysis. It's usage is very simple: If you have output root file of flow
// analysis <outputFileName> in directory <dir>, simply copy the macro in <dir> and
// execute it. Remarks: 
//  1.) Make sure that the 'TString analysisType' bellow is the same as the one which 
//      was used in the analysis which have produced the <outputFileName>;
//  2.) Abbreviations used here are: RF = Reference Flow, RP = Reference Particles,
//      POI = Particles Of Interest;
//  3.) To modify cosmetics of each plot change default settings in function which 
//      have produced that plot. Example: If you want to modify marker colors in 
//      the plot for reference flow, modify array Int_t methodMarkerColor[nMethods] 
//      in the function PlotReferenceFlow().

// Set name of the output file of flow analysis to be accessed:
TString outputFileName = "AnalysisResults.root";
//TString outputFileName = "outputCentrality4.root";

// Set here which plots will be shown by default:
//  Results:
Bool_t plotReferenceFlow = kTRUE; // reference flow 
Bool_t plotIntFlowPOI = kTRUE; // integrated flow of POIs
Bool_t plotDiffFlowPtPOI = kTRUE; // differential flow v(pt) for POIs
Bool_t plotDiffFlowEtaPOI = kTRUE; // differential flow v(eta) for POIs
Bool_t plotIntFlowRP = kTRUE; // integrated flow of RPs
Bool_t plotDiffFlowPtRP = kTRUE; // differential flow v(pt) for RPs
Bool_t plotDiffFlowEtaRP = kTRUE; // differential flow v(eta) for RPs
//  Results relative to MC:
Bool_t plotReferenceFlowRelativeToMC = kTRUE; // plot (v{MC}-v{method})/v{MC} for reference flow
Bool_t plotIntFlowRelativeToMCPOI = kTRUE; // plot (v{MC}-v{method})/v{MC} for integrated flow of POIs   
Bool_t plotDiffFlowPtRelativeToMCPOI = kTRUE; // plot (v{MC}-v{method})/v{MC} as a function of pt for POIs 
Bool_t plotDiffFlowEtaRelativeToMCPOI = kTRUE; // plot (v{MC}-v{method})/v{MC} as a function of eta for POIs
Bool_t plotIntFlowRelativeToMCRP = kTRUE; // plot (v{MC}-v{method})/v{MC} for integrated flow of RPs
Bool_t plotDiffFlowPtRelativeToMCRP = kTRUE; // plot (v{MC}-v{method})/v{MC} as a function of pt for RPs   
Bool_t plotDiffFlowEtaRelativeToMCRP = kTRUE; // plot (v{MC}-v{method})/v{MC} as a function of eta for RPs   
// Set here if the legends will be shown on the plots:
Bool_t showLegend = kTRUE; 
Bool_t showLegendDiffFlow = kTRUE;
// Some quick settings:
Bool_t showOnlyReferenceFlow = kFALSE;
Bool_t showResultsRelativeToMC = kFALSE;
Bool_t showOnlyPlotsForPOIs = kFALSE;
Bool_t showOnlyPlotsForRPs = kFALSE;
// Set here if you want to rebin pt bins to reduce the statistical errors in the plots for differential flow vs pt:
Bool_t rebinInPt = kTRUE;
const Int_t nPtIntervals = 3;
Double_t ptInterval[nPtIntervals+1] = {0.,2.,5.,10.}; // in GeV
Int_t nMergedBins[nPtIntervals] = {1,2,5}; // for instance in 2nd pt interval (2-5 GeV) 5 pt bins will be merged into 1
// Set here if you want to use default values for harmonic, pt and eta binning:
Bool_t useDefaultValues = kTRUE;
TString methodForSettings = "QC"; // alternatively set here method from whose output files harmonic, pt and eta binning will be accessed
// Set here if you want to show error mesh:
Bool_t showErrorMesh = kTRUE;
Bool_t showErrorMeshDiffFlow = kTRUE;
// Set here if both the error mesh and markers will be shown for specified method in the plots for differential flow:
Bool_t showBothErrorMeshAndMarkers = kFALSE; 

// Do not touch this unless you are looking for a trouble:
const Int_t nMethods = 12;
TString method[nMethods] = {"MCEP","SP","GFC","QC","FQD","LYZ1SUM","LYZ1PROD","LYZ2SUM","LYZ2PROD","LYZEP","MH","NL"};
TList *list[nMethods] = {NULL}; // lists holding histograms for each flow analysis method

enum libModes{mLocal,mLocalSource};

//void compareFlowResults(TString analysisType="",Int_t analysisMode=mLocalSource)
void compareFlowResults(TString analysisType="ESD",Int_t analysisMode=mLocal)
{
 // 1. analysisType: "ESD", "AOD", "MC", "ESDMCkineESD", "ESDMCkineMC", "MK", for analysis 'on the fly' use simply "";
 // 2. analysisMode: if analysisMode = mLocal -> analyze data on your computer using aliroot
 //                  if analysisMode = mLocalSource -> analyze data on your computer using root + source files 
  
 // Load needed libraries:
 LoadLibrariesCFR(analysisMode); 

 // Access common output file:
 TFile *outputFile = AccessOutputFile(outputFileName); 
 
 // Access from common output file the TDirectoryFile's for each flow analysis method
 // and from them the lists holding histograms with final results:
 GetListsWithHistograms(outputFile,analysisType);
 
 // Global settings which will affect all plots:
 GlobalSettings();
   
 // Calling the functions to produce the final plots:
 if(plotReferenceFlow) PlotReferenceFlow();
 if(!showOnlyReferenceFlow)
 { 
  if(!showOnlyPlotsForRPs)
  {
   if(plotIntFlowPOI) PlotIntFlowPOI(); 
   if(plotDiffFlowPtPOI) PlotDiffFlowPtPOI();
   if(plotDiffFlowEtaPOI) PlotDiffFlowEtaPOI();
  }
  if(!showOnlyPlotsForPOIs)
  {
   if(plotIntFlowRP) PlotIntFlowRP(); 
   if(plotDiffFlowPtRP) PlotDiffFlowPtRP();
   if(plotDiffFlowEtaRP) PlotDiffFlowEtaRP();  
  }
  if(showResultsRelativeToMC)
  {
   if(plotReferenceFlowRelativeToMC) PlotReferenceFlowRelativeToMC();
   if(!showOnlyPlotsForRPs)
   {
    if(plotIntFlowRelativeToMCPOI) PlotIntFlowRelativeToMCPOI();
    if(plotDiffFlowPtRelativeToMCPOI) PlotDiffFlowPtRelativeToMCPOI();
    if(plotDiffFlowEtaRelativeToMCPOI) PlotDiffFlowEtaRelativeToMCPOI();
   }
   if(!showOnlyPlotsForPOIs)
   {
    if(plotIntFlowRelativeToMCRP) PlotIntFlowRelativeToMCRP();
    if(plotDiffFlowPtRelativeToMCRP) PlotDiffFlowPtRelativeToMCRP();
    if(plotDiffFlowEtaRelativeToMCRP) PlotDiffFlowEtaRelativeToMCRP();
   }
  }
 }

} // end of void newCompare(TString analysisType="",Int_t analysisMode=mLocal)

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

void PlotReferenceFlow()
{
 // Make a plot which compares the results for reference flow.
  
 // Settings for methods:
 const Int_t nMethods = 13;
 TString method[nMethods] = {"MCEP","SP","2,GFC","2,QC","4,GFC","4,QC","6,GFC","6,QC","8,GFC","8,QC","FQD","LYZ1SUM","LYZ1PROD"};
 Int_t methodMarkerStyle[nMethods] = {21,21,21,21,21,21,21,21,21,21,21,21,21}; // see available marker styles in TAttMarker
 Int_t methodMarkerColor[nMethods] = {kBlack,kBlack,kBlack,kBlack,kBlack,kBlack,kBlack,kBlack,kBlack,kBlack,kBlack,kBlack,kBlack};
 // Settings for error mesh:
 TString methodUsedToMakeErrorMesh = "MCEP";
 Int_t meshStyle = 1001;
 Int_t meshColor = kGray;
   
 Plot(nMethods,method,methodMarkerStyle,methodMarkerColor,
      methodUsedToMakeErrorMesh,meshStyle,meshColor,"RF");
 
} // end of void PlotReferenceFlow()

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

void PlotIntFlowPOI()
{
 // Make a plot which compares the results for reference flow.
  
 // Settings for methods:
 const Int_t nMethods = 10;
 TString method[nMethods] = {"MCEP","SP","2,GFC","2,QC","4,GFC","4,QC","6,GFC","8,GFC","LYZ2SUM","LYZ2PROD"};
 Int_t methodMarkerStyle[nMethods] = {21,21,21,21,21,21,21,21,21,21}; // see available marker styles in TAttMarker
 Int_t methodMarkerColor[nMethods] = {kRed-3,kRed-3,kRed-3,kRed-3,kRed-3,kRed-3,kRed-3,kRed-3,kRed-3,kRed-3};
 // Settings for error mesh:
 TString methodUsedToMakeErrorMesh = "MCEP";
 Int_t meshStyle = 1001;
 Int_t meshColor = kRed-10;
   
 Plot(nMethods,method,methodMarkerStyle,methodMarkerColor,
      methodUsedToMakeErrorMesh,meshStyle,meshColor,"POI");
  
} // end of void PlotIntFlowPOI()

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

void PlotIntFlowRP()
{
 // Make a plot which compares the results for reference flow.
  
 // Settings for methods:
 const Int_t nMethods = 10;
 TString method[nMethods] = {"MCEP","SP","2,GFC","2,QC","4,GFC","4,QC","6,GFC","8,GFC","LYZ2SUM","LYZ2PROD"};
 Int_t methodMarkerStyle[nMethods] = {21,21,21,21,21,21,21,21,21,21}; // see available marker styles in TAttMarker
 Int_t methodMarkerColor[nMethods] = {kBlue-3,kBlue-3,kBlue-3,kBlue-3,kBlue-3,kBlue-3,kBlue-3,kBlue-3,kBlue-3,kBlue-3};
 // Settings for error mesh:
 TString methodUsedToMakeErrorMesh = "MCEP";
 Int_t meshStyle = 1001;
 Int_t meshColor = kBlue-10;
   
 Plot(nMethods,method,methodMarkerStyle,methodMarkerColor,
      methodUsedToMakeErrorMesh,meshStyle,meshColor,"RP");
  
} // end of void PlotIntFlowRP()

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

void PlotDiffFlowPtPOI()
{
 // Make a plot which compares the results for differential flow of POIs vs pt.

 // Settings for methods:
 const Int_t nMethods = 10;
 TString method[nMethods] = {"MCEP","SP","2,GFC","2,QC","4,GFC","4,QC","6,GFC","8,GFC","LYZ2SUM","LYZ2PROD"};
 Int_t methodMarkerStyle[nMethods] = {20,3,21,21,20,20,25,24,22,22}; // see available marker styles in TAttMarker
 Int_t methodMarkerColor[nMethods] = {kRed,kViolet-6,kAzure-7,kOrange-7,kAzure+3,kOrange+3,kAzure-7,kAzure+3,kYellow+3,kGreen+3};
 // Settings for error mesh:
 TString methodUsedToMakeErrorMesh = "MCEP";
 Int_t meshStyle = 1001;
 Int_t meshColor = kRed-10;
 
 PlotDiffFlow(nMethods,method,methodMarkerStyle,methodMarkerColor,
              methodUsedToMakeErrorMesh,meshStyle,meshColor,"Pt","POI");
 
} // end of void PlotDiffFlowPtPOI()

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

void PlotDiffFlowEtaPOI()
{
 // Make a plot which compares the results for differential flow of POIs vs eta.

 // Settings for methods:
 const Int_t nMethods = 10;
 TString method[nMethods] = {"MCEP","SP","2,GFC","2,QC","4,GFC","4,QC","6,GFC","8,GFC","LYZ2SUM","LYZ2PROD"};
 Int_t methodMarkerStyle[nMethods] = {20,3,21,21,20,20,25,24,22,22}; // see available marker styles in TAttMarker
 Int_t methodMarkerColor[nMethods] = {kRed,kViolet-6,kAzure-7,kOrange-7,kAzure+3,kOrange+3,kAzure-7,kAzure+3,kYellow+3,kGreen+3};
 // Settings for error mesh:
 TString methodUsedToMakeErrorMesh = "MCEP";
 Int_t meshStyle = 1001;
 Int_t meshColor = kRed-10;
 
 PlotDiffFlow(nMethods,method,methodMarkerStyle,methodMarkerColor,
              methodUsedToMakeErrorMesh,meshStyle,meshColor,"Eta","POI");
 
} // end of void PlotDiffFlowEtaPOI()

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

void PlotDiffFlowPtRP()
{
 // Make a plot which compares the results for differential flow of RPs vs pt.
 
 // Settings for methods:
 const Int_t nMethods = 10;
 TString method[nMethods] = {"MCEP","SP","2,GFC","2,QC","4,GFC","4,QC","6,GFC","8,GFC","LYZ2SUM","LYZ2PROD"};
 Int_t methodMarkerStyle[nMethods] = {20,3,21,21,20,20,25,24,22,22}; // see available marker styles in TAttMarker
 Int_t methodMarkerColor[nMethods] = {kBlue,kViolet-6,kAzure-7,kOrange-7,kAzure+3,kOrange+3,kAzure-7,kAzure+3,kYellow+3,kGreen+3};
 // Settings for error mesh:
 TString methodUsedToMakeErrorMesh = "MCEP";
 Int_t meshStyle = 1001;
 Int_t meshColor = kBlue-10;
 
 PlotDiffFlow(nMethods,method,methodMarkerStyle,methodMarkerColor,
              methodUsedToMakeErrorMesh,meshStyle,meshColor,"Pt","RP");
 
} // end of void PlotDiffFlowPtRP()

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

void PlotDiffFlowEtaRP()
{
 // Make a plot which compares the results for differential flow of RPs vs eta.

 // Settings for methods:
 const Int_t nMethods = 10;
 TString method[nMethods] = {"MCEP","SP","2,GFC","2,QC","4,GFC","4,QC","6,GFC","8,GFC","LYZ2SUM","LYZ2PROD"};
 Int_t methodMarkerStyle[nMethods] = {20,3,21,21,20,20,25,24,22,22}; // see available marker styles in TAttMarker
 Int_t methodMarkerColor[nMethods] = {kBlue,kViolet-6,kAzure-7,kOrange-7,kAzure+3,kOrange+3,kAzure-7,kAzure+3,kYellow+3,kGreen+3};
 // Settings for error mesh:
 TString methodUsedToMakeErrorMesh = "MCEP";
 Int_t meshStyle = 1001;
 Int_t meshColor = kBlue-10;
 
 PlotDiffFlow(nMethods,method,methodMarkerStyle,methodMarkerColor,
              methodUsedToMakeErrorMesh,meshStyle,meshColor,"Eta","RP");
 
} // end of void PlotDiffFlowEtaRP()

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

void PlotReferenceFlowRelativeToMC()
{
 // Make a plot (v{MC}-v{method})/v{MC} for reference flow.
  
 // Settings for methods:
 const Int_t nMethods = 12;
 TString method[nMethods] = {"SP","2,GFC","2,QC","4,GFC","4,QC","6,GFC","6,QC","8,GFC","8,QC","FQD","LYZ1SUM","LYZ1PROD"};
 Int_t methodMarkerStyle[nMethods] = {21,21,21,21,21,21,21,21,21,21,21,21}; // see available marker styles in TAttMarker
 Int_t methodMarkerColor[nMethods] = {kBlack,kBlack,kBlack,kBlack,kBlack,kBlack,kBlack,kBlack,kBlack,kBlack,kBlack,kBlack};
   
 PlotRelativeToMC(nMethods,method,methodMarkerStyle,methodMarkerColor,"RF");

} // end of void PlotReferenceFlowRelativeToMC()

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

void PlotIntFlowRelativeToMCPOI()
{
 // Make a plot (v{MC}-v{method})/v{MC} for integrated flow of POIs.
  
 // Settings for methods:
 const Int_t nMethods = 9;
 TString method[nMethods] = {"SP","2,GFC","2,QC","4,GFC","4,QC","6,GFC","8,GFC","LYZ2SUM","LYZ2PROD"};
 Int_t methodMarkerStyle[nMethods] = {21,21,21,21,21,21,21,21,21}; // see available marker styles in TAttMarker
 Int_t methodMarkerColor[nMethods] = {kRed-3,kRed-3,kRed-3,kRed-3,kRed-3,kRed-3,kRed-3,kRed-3,kRed-3};
   
 PlotRelativeToMC(nMethods,method,methodMarkerStyle,methodMarkerColor,"POI");

} // end of void PlotIntFlowRelativeToMCPOI()

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

void PlotIntFlowRelativeToMCRP()
{
 // Make a plot (v{MC}-v{method})/v{MC} for integrated flow of RPs.
  
 // Settings for methods:
 const Int_t nMethods = 9;
 TString method[nMethods] = {"SP","2,GFC","2,QC","4,GFC","4,QC","6,GFC","8,GFC","LYZ2SUM","LYZ2PROD"};
 Int_t methodMarkerStyle[nMethods] = {21,21,21,21,21,21,21,21,21}; // see available marker styles in TAttMarker
 Int_t methodMarkerColor[nMethods] = {kBlue-3,kBlue-3,kBlue-3,kBlue-3,kBlue-3,kBlue-3,kBlue-3,kBlue-3,kBlue-3};
   
 PlotRelativeToMC(nMethods,method,methodMarkerStyle,methodMarkerColor,"RP");

} // end of void PlotIntFlowRelativeToMCRP()

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

void PlotDiffFlowPtRelativeToMCPOI()
{
 // Make a plot (v{MC}-v{method})/v{MC} for differential flow of POIs vs pt.

 // Settings for methods:
 const Int_t nMethods = 9;
 TString method[nMethods] = {"SP","2,GFC","2,QC","4,GFC","4,QC","6,GFC","8,GFC","LYZ2SUM","LYZ2PROD"};
 Int_t methodMarkerStyle[nMethods] = {3,21,21,20,20,25,24,22,22}; // see available marker styles in TAttMarker
 Int_t methodMarkerColor[nMethods] = {kViolet-6,kAzure-7,kOrange-7,kAzure+3,kOrange+3,kAzure-7,kAzure+3,kYellow+3,kGreen+3};
 
 PlotDiffFlowRelativeToMC(nMethods,method,methodMarkerStyle,methodMarkerColor,"Pt","POI");

} // end of void PlotDiffFlowPtRelativeToMCPOI()

// ===========================================================================================
  
void PlotDiffFlowEtaRelativeToMCPOI()
{
 // Make a plot (v{MC}-v{method})/v{MC} for differential flow of POIs vs eta.

 // Settings for methods:
 const Int_t nMethods = 9;
 TString method[nMethods] = {"SP","2,GFC","2,QC","4,GFC","4,QC","6,GFC","8,GFC","LYZ2SUM","LYZ2PROD"};
 Int_t methodMarkerStyle[nMethods] = {3,21,21,20,20,25,24,22,22}; // see available marker styles in TAttMarker
 Int_t methodMarkerColor[nMethods] = {kViolet-6,kAzure-7,kOrange-7,kAzure+3,kOrange+3,kAzure-7,kAzure+3,kYellow+3,kGreen+3};
 
 PlotDiffFlowRelativeToMC(nMethods,method,methodMarkerStyle,methodMarkerColor,"Eta","POI");

} // end of void PlotDiffFlowEtaRelativeToMCPOI()

// ===========================================================================================
  
void PlotDiffFlowPtRelativeToMCRP()
{
 // Make a plot (v{MC}-v{method})/v{MC} for differential flow of RPs vs pt.

 // Settings for methods:
 const Int_t nMethods = 9;
 TString method[nMethods] = {"SP","2,GFC","2,QC","4,GFC","4,QC","6,GFC","8,GFC","LYZ2SUM","LYZ2PROD"};
 Int_t methodMarkerStyle[nMethods] = {3,21,21,20,20,25,24,22,22}; // see available marker styles in TAttMarker
 Int_t methodMarkerColor[nMethods] = {kViolet-6,kAzure-7,kOrange-7,kAzure+3,kOrange+3,kAzure-7,kAzure+3,kYellow+3,kGreen+3};
 
 PlotDiffFlowRelativeToMC(nMethods,method,methodMarkerStyle,methodMarkerColor,"Pt","RP");

} // end of void PlotDiffFlowPtRelativeToMCRP()

// ===========================================================================================
  
void PlotDiffFlowEtaRelativeToMCRP()
{
 // Make a plot (v{MC}-v{method})/v{MC} for differential flow of RPs vs eta.

 // Settings for methods:
 const Int_t nMethods = 9;
 TString method[nMethods] = {"SP","2,GFC","2,QC","4,GFC","4,QC","6,GFC","8,GFC","LYZ2SUM","LYZ2PROD"};
 Int_t methodMarkerStyle[nMethods] = {3,21,21,20,20,25,24,22,22}; // see available marker styles in TAttMarker
 Int_t methodMarkerColor[nMethods] = {kViolet-6,kAzure-7,kOrange-7,kAzure+3,kOrange+3,kAzure-7,kAzure+3,kYellow+3,kGreen+3};
 
 PlotDiffFlowRelativeToMC(nMethods,method,methodMarkerStyle,methodMarkerColor,"Eta","RP");

} // end of void PlotDiffFlowPtRelativeToMCRP()

// ===========================================================================================
        
TGraph* GetErrorMesh(Int_t nPts, Double_t result, Double_t error, Int_t meshStyle, Int_t meshColor)
{
 // Make an error mesh from the specified method.
 
 TGraph *g = new TGraph(nPts);
 g->SetPoint(1,0,result+error);
 g->SetPoint(2,nPts+1,result+error);
 g->SetPoint(3,nPts+1,result-error);
 g->SetPoint(4,0,result-error);
 g->SetPoint(5,0,result-error);    
 g->SetFillStyle(meshStyle);
 g->SetFillColor(meshColor);

 return g;

} // end of GetErrorMesh(Int_t nPoints, Double_t result,Double_t error)

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

TGraphErrors* GetGraphErrors(Double_t x, Double_t result, Double_t error, Int_t markerStyle, Int_t markerColor)
{
 // From the result and error for each method make TGraphErrors.
 
 TGraphErrors *ge = NULL;
 
 ge = new TGraphErrors(1);
 ge->SetPoint(0,x,result);
 ge->SetPointError(0,0,error);
 ge->SetMarkerStyle(markerStyle);
 ge->SetMarkerColor(markerColor);

 return ge;

} // end of TGraphErrors* GetGraphErrors(Double_t x, Double_t result, Double_t error, Int_t markerStyle, Int_t markerColor)

// ===========================================================================================
 
void PlotDiffFlow(Int_t nMethods, TString *method, Int_t *methodMarkerStyle, Int_t *methodMarkerColor,
                  TString methodUsedToMakeErrorMesh, Int_t meshStyle, Int_t meshColor, TString ptEta, TString rpPoi)
{
 // Make plot for differential flow.

 TCanvas *c = NULL;
 Int_t sizeX = 1000; // canvas size in pixels along x
 Int_t sizeY = 600; // canvas size in pixels along y
 TString title = Form("Differential Flow vs %s (%s)",ptEta.Data(),rpPoi.Data()); 
 if(!showLegendDiffFlow) sizeX = 0.75*sizeX;
 c = new TCanvas(title.Data(),title.Data(),sizeX,sizeY);
 if(showLegendDiffFlow)
 {
  c->Divide(2,1);
  c->cd(1)->SetPad(0.0,0.0,0.75,1.0);
 } 
 // Style histogram:
 StyleHistDiffFlow(ptEta.Data(),rpPoi.Data())->Draw();
 // Error mesh:  
 TGraph *errorMesh = GetErrorMeshDiffFlow(methodUsedToMakeErrorMesh.Data(),rpPoi.Data(),ptEta.Data()); 
 if(errorMesh && showErrorMeshDiffFlow) 
 {
  errorMesh->SetFillStyle(meshStyle);
  errorMesh->SetFillColor(meshColor);
  errorMesh->Draw("lfsame");
 }
 // Results of methods:
 for(Int_t b=0;b<nMethods;b++)
 {
  if(method[b]==methodUsedToMakeErrorMesh && !showBothErrorMeshAndMarkers) continue;
  TH1D *hist = GetResultHistogram(method[b].Data(),rpPoi.Data(),ptEta.Data());
  if(hist)
  {
   if(rebinInPt && ptEta == "Pt"){hist = RebinInPt(hist);}
   hist->SetMarkerStyle(methodMarkerStyle[b]);
   hist->SetMarkerColor(methodMarkerColor[b]);
   hist->Draw("e1psamex0");
  }
 } 
 if(showLegendDiffFlow)
 {
  c->cd(2)->SetPad(0.73,0.0,0.97,1.0);
  DefaultTextInLegend()->Draw();
  LegendDiffFlow(nMethods,method,methodMarkerStyle,methodMarkerColor,
                 methodUsedToMakeErrorMesh,meshStyle,meshColor,ptEta,rpPoi)->Draw();
 }
} // end of void PlotDiffFlow(...)

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

void PlotDiffFlowRelativeToMC(Int_t nMethods, TString *method, Int_t *methodMarkerStyle,
                              Int_t *methodMarkerColor, TString ptEta, TString rpPoi)
{
 // Make plot for differential flow.
 
 TString title = Form("Differential Flow vs %s (%s) relative to MCEP",ptEta.Data(),rpPoi.Data()); 
 // MCEP:
 TH1D *mcep = GetResultHistogram("MCEP",rpPoi.Data(),ptEta.Data()); // MCEP result and error:
 if(!mcep)
 {
  cout<<"WARNING: MCEP histogram not available in making the plot for "<<title.Data()<<" !!!!"<<endl;   
  return;    
 } 
 TCanvas *c = NULL;
 Int_t sizeX = 1000; // canvas size in pixels along x
 Int_t sizeY = 600; // canvas size in pixels along y
 if(!showLegendDiffFlow) sizeX = 0.75*sizeX;
 c = new TCanvas(title.Data(),title.Data(),sizeX,sizeY);
 if(showLegendDiffFlow)
 {
  c->Divide(2,1);
  c->cd(1)->SetPad(0.0,0.0,0.75,1.0);
 } 
 // Style histogram:
 Int_t n = 2; // default harmonic
 if(!useDefaultValues){n = GetHarmonic(methodForSettings);}
 TH1D *styleHist = StyleHistDiffFlow(ptEta.Data(),rpPoi.Data());
 styleHist->GetYaxis()->SetTitle(Form("(v_{%d}\{MCEP\}-v_{%d}\{method\})/v_{%d}\{MCEP\}",n,n,n));
 styleHist->SetTitle(Form("Differential Flow #font[72]{vs} %s (%s) relative to MCEP",ptEta.Data(),rpPoi.Data())); 
 styleHist->SetMinimum(-10.); // to be improved
 styleHist->SetMaximum(10.); // to be improved
 styleHist->SetTitle(title.Data());
 styleHist->Draw();
 // Methods:
 for(Int_t nm=0;nm<nMethods;nm++)
 {
  TH1D *hist = NULL;
  if(GetResultHistogram(method[nm].Data(),rpPoi.Data(),ptEta.Data()))
  {
   hist = (TH1D*)(GetResultHistogram(method[nm].Data(),rpPoi.Data(),ptEta.Data())->Clone());
  }
  if(hist)
  {
   Int_t nBins = hist->GetNbinsX(); 
   for(Int_t b=1;b<=nBins;b++)
   { 
    Double_t mcepResult = mcep->GetBinContent(b);
    Double_t mcepError = mcep->GetBinError(b);
    if((TMath::Abs(mcepResult) > 1.e-44) && (TMath::Abs(mcepError) > 1.e-44)) 
    {
     Double_t result = hist->GetBinContent(b);
     Double_t error = hist->GetBinError(b); 
     //if((TMath::Abs(result)>1.e-44) && TMath::Abs(error)>1.e-44)) 
     if(TMath::Abs(result)>1.e-44)
     {
      error = pow(pow(error/mcepResult,2.)+pow(result*mcepError/pow(mcepResult,2.),2.),0.5); // Do not switch with the next line!
      result = (mcepResult-result)/mcepResult;
      hist->SetBinContent(b,result);
      hist->SetBinError(b,error);
     } else // end of if((TMath::Abs(result)>1.e-44) && TMath::Abs(error)>1.e-44))
       {
        hist->SetBinContent(b,0.);
        hist->SetBinError(b,0.);          
       }
    } else // end of if(TMath::Abs(mcepResult) > 1.e-44 && TMath::Abs(mcepError) > 1.e-44)  
      {
       hist->SetBinContent(b,0.);
       hist->SetBinError(b,0.);     
      }
   } // end of for(b=1;b<=nBins;b++) 
   hist->SetMarkerStyle(methodMarkerStyle[nm]);
   hist->SetMarkerColor(methodMarkerColor[nm]);
   hist->Draw("e1psame");
  } // end of if(hist)
 } // end of for(Int_t nm=0;nm<nMethods;nm++)  
 if(showLegendDiffFlow)
 {
  c->cd(2)->SetPad(0.73,0.0,0.97,1.0);
  DefaultTextInLegend()->Draw();
  LegendDiffFlow(nMethods,method,methodMarkerStyle,methodMarkerColor,"",-1,-1,ptEta,rpPoi)->Draw();
 }
} // end of void PlotDiffFlowRelativeToMC(...)

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

TGraph* GetErrorMeshDiffFlow(TString methodUsedToMakeErrorMesh, TString rpPoi, TString ptEta)
{
 // Error mesh for differential flow.
 
 TH1D *hist = GetResultHistogram(methodUsedToMakeErrorMesh.Data(),rpPoi.Data(),ptEta.Data());
 
 // Rebin higher pt bins:
 if(hist && rebinInPt && ptEta == "Pt")
 {
  hist = RebinInPt(hist);
 }
  
 // Make a mesh: 
 TGraph *errorMesh = NULL;
 if(hist)
 {
  Int_t nBins = hist->GetNbinsX();
  Double_t value = 0.;
  Double_t error = 0.;
  // Counting the non-empty bins: 
  Int_t nNonEmptyBins = 0;
  for(Int_t i=1;i<nBins+1;i++)
  {
   value = hist->GetBinContent(i);
   error = hist->GetBinError(i);
   if(TMath::Abs(value)>0.0 && error>0.0)
   {
    nNonEmptyBins++;
   }
  } // end of for(Int_t i=1;i<nBins+1;i++)  
  // Error mesh:
  errorMesh = new TGraph(2*nNonEmptyBins+1); 
  Int_t count = 0;
  Double_t binCenter = 0.;
  for(Int_t i=1;i<nBins+1;i++)
  {
   value = hist->GetBinContent(i);
   error = hist->GetBinError(i);
   // Setting up the the mesh:
   if(TMath::Abs(value)>0.0 && error>0.0)
   {    
    binCenter = hist->GetBinCenter(i);   
    errorMesh->SetPoint(count,binCenter,value+error);
    errorMesh->SetPoint(2*nNonEmptyBins-(count+1),binCenter,value-error);
    count++;
   }
  } // end of for(Int_t i=1;i<nBins+1;i++)
  // Closing the mesh area:
  Double_t xStart = 0.;
  Double_t yStart = 0.;
  errorMesh->GetPoint(0,xStart,yStart);
  errorMesh->SetPoint(2*nNonEmptyBins,xStart,yStart);   
 } // end if(hist)
 
 return errorMesh;
 
} // end of TGraph* GetErrorMeshDiffFlow(TString methodUsedToMakeErrorMesh, TString ptEta, TString rpPoi)

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

Int_t GetHarmonic(TString method)
{
 // Get harmonic used in analysis from the output file of specified method.
 Int_t n = -44; // harmonic
 
 AliFlowCommonHist *commonHist = NULL;
 for(Int_t l=0;l<nMethods;l++)
 {
  TString temp = "";
  if(list[l]) 
  {
   temp = TString(list[l]->GetName());
  }
  if(temp.Contains(method.Data()))
  {
   commonHist = dynamic_cast<AliFlowCommonHist*> list[l]->FindObject(Form("AliFlowCommonHist%s",method.Data()));
   if(commonHist && commonHist->GetHarmonic())
   {
    n = commonHist->GetHarmonic()->GetBinContent(1);
   } else
     {
      cout<<endl;
      cout<<" WARNING: commonHist && commonHist->GetHarmonic() is NULL !!!!"<<endl;
      cout<<endl;
     }
  } 
 } // end of for(Int_t l=0;l<nMethods;l++)
 
 if(n==-44)
 {
  cout<<endl;
  cout<<" WARNING: Couldn't access harmonic from common control histogram of specified method."<<endl;
  cout<<           "Try with another method in 'TString methodForSettings'."<<endl;
  cout<<endl;
 }
 
 return n;

} // end of Int_t GetHarmonic(TString method)

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

TH1D* RebinInPt(TH1D *hist)
{
 // Rebin original histograms.
 
 if(!hist)
 {
  cout<<endl;
  cout<<" WARNING: hist is NULL in RebinInPt() !!!!"<<endl;
  cout<<endl;
  exit(0); 
 } 
 
 Double_t binWidthOld = hist->GetXaxis()->GetBinWidth(4);
 Int_t nBinsOld = hist->GetXaxis()->GetNbins(); 
 for(Int_t b=1;b<=nBinsOld;b++)
 {
  if(TMath::Abs(hist->GetXaxis()->GetBinWidth(b)-binWidthOld)>1.e-44)
  {
   cout<<endl;
   cout<<Form(" WARNING: %s have bins of unequal width !!!!",hist->GetName())<<endl;
   cout<<"               Do not trust rebinning for high pt." <<endl;
   cout<<endl;
  }
 } // end of for(Int_t b=1;b<=nBinsOld;b++)
 if(binWidthOld<1.e-44)
 {
  cout<<endl;
  cout<<Form(" WARNING: in %s bin width is 0 !!!!",hist->GetName())<<endl;
  cout<<"               Cannot do rebinning in pt." <<endl;
  cout<<endl;
  exit(0);
 }
   
 // Book rebinned histogram:
 Int_t nBinsNew = 0;
 for(Int_t i=0;i<nPtIntervals;i++)
 {
  Double_t xMin = TMath::Nint(ptInterval[i]/binWidthOld)*binWidthOld;
  Double_t xMax = TMath::Nint(ptInterval[i+1]/binWidthOld)*binWidthOld;
  Int_t nBins = TMath::Nint((xMax-xMin)/binWidthOld); 
  if(nBins <= 0)
  {
   cout<<endl;
   cout<<Form(" WARNING: nBins <=0 when rebinning %s !!!!",hist->GetName())<<endl;
   cout<<"               Check entries in array ptInterval." <<endl;
   cout<<endl;
   exit(0);
  }
  if(nBins % nMergedBins[i] == 0)
  {
   nBinsNew += nBins/nMergedBins[i];
  } else
    {
     nBinsNew += (nBins/nMergedBins[i] + 1);  
    }      
 } // end of for(Int_t i=0;i<nPtIntervals;i++) 
 const Int_t nBinsRebinned = nBinsNew;
 Double_t binEdges[nBinsRebinned+1] = {0.};
 Int_t counterForRebinnedBins = 0; 
 for(Int_t i=0;i<nPtIntervals;i++)
 {
  Double_t xMin = TMath::Nint(ptInterval[i]/binWidthOld)*binWidthOld;
  Double_t xMax = TMath::Nint(ptInterval[i+1]/binWidthOld)*binWidthOld;
  Int_t nBins = TMath::Nint((xMax-xMin)/binWidthOld); 
  if(nBins % nMergedBins[i] == 0)
  {
   nBins = nBins/nMergedBins[i];
  } else
    {
     nBins = (nBins/nMergedBins[i] + 1);  
    }      
  for(Int_t b=0;b<nBins;b++)
  {
   binEdges[counterForRebinnedBins] = xMin + b*binWidthOld*nMergedBins[i];
   counterForRebinnedBins++;
  }          
 } // end of for(Int_t i=0;i<nPtIntervals;i++) 
 // Last bin edge:
 binEdges[counterForRebinnedBins] = hist->GetXaxis()->GetXmax(); 

 TH1D *temp = new TH1D("","",nBinsRebinned,binEdges); // rebinned histogram 
 for(Int_t br=0;br<nBinsRebinned;br++) // bins in rebinned histogram
 { 
  Double_t value = 0.;
  Double_t error = 0.;
  Double_t dSum1 = 0.; // sum value_i/(error_i)^2
  Double_t dSum2 = 0.; // sum 1/(error_i)^2
  Int_t startingBin = hist->FindBin(binEdges[br]);
  Int_t endingBin = hist->FindBin(binEdges[br+1]);  
  for(Int_t bo=startingBin;bo<endingBin;bo++) // bins in original histogram
  {
   value = hist->GetBinContent(bo);  
   error = hist->GetBinError(bo);  
   if(error>0.)
   {
    dSum1+=value/(error*error);
    dSum2+=1./(error*error);
   }
  } 
  if(dSum2>0.)
  {
   temp->SetBinContent(br+1,dSum1/dSum2);
   temp->SetBinError(br+1,pow(1./dSum2,0.5));
  }
 } // end of for(Int_t b=1;b<=nBinsOld;b++)
    
 return temp;
      
} // end of RebinInPt()

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

TH1D* StyleHistDiffFlow(TString ptEta, TString rpPoi)
{
 // Style histogram for differential flow.
 
 Int_t n = 2; // default harmonic
 if(!useDefaultValues){n = GetHarmonic(methodForSettings);}
 TH1D *styleHistDiffFlow = NULL;
 if(ptEta == "Pt")
 {
  Int_t iNbinsPt  = AliFlowCommonConstants::GetMaster()->GetNbinsPt();
  Double_t dPtMin = AliFlowCommonConstants::GetMaster()->GetPtMin();
  Double_t dPtMax = AliFlowCommonConstants::GetMaster()->GetPtMax();
  if(!useDefaultValues)
  {
   AliFlowCommonHist *commonHist = NULL;
   for(Int_t l=0;l<nMethods;l++)
   {
    TString temp = "";
    if(list[l]) 
    {
     temp = TString(list[l]->GetName());
    }
    if(temp.Contains(methodForSettings.Data()))
    {
     commonHist = dynamic_cast<AliFlowCommonHist*> list[l]->FindObject(Form("AliFlowCommonHist%s",methodForSettings.Data()));
     if(commonHist && commonHist->GetHistPtRP() && rpPoi == "RP")
     {
      iNbinsPt = commonHist->GetHistPtRP()->GetNbinsX();
      dPtMin = commonHist->GetHistPtRP()->GetXaxis()->GetXmin();
      dPtMax = commonHist->GetHistPtRP()->GetXaxis()->GetXmax();
     } else if(commonHist && commonHist->GetHistPtPOI() && rpPoi == "POI")
       {
        iNbinsPt = commonHist->GetHistPtPOI()->GetNbinsX();
        dPtMin = commonHist->GetHistPtPOI()->GetXaxis()->GetXmin();
        dPtMax = commonHist->GetHistPtPOI()->GetXaxis()->GetXmax();      
       } 
       else
       {
        cout<<endl;
        cout<<" WARNING: Coudn't access common control histogram for pt yield !!!!"<<endl;
        cout<<endl;
       }
    } 
   } // end of for(Int_t l=0;l<nMethods;l++)
  } // end of if(!useDefaultValues)
  styleHistDiffFlow = new TH1D("","styleHistDiffFlow",iNbinsPt,dPtMin,dPtMax);
  styleHistDiffFlow->SetTitle(Form("Differential Flow #font[72]{vs} p_{t} (%s)",rpPoi.Data()));
  styleHistDiffFlow->SetXTitle("p_{t} [GeV]");
  styleHistDiffFlow->SetYTitle(Form("v_{%d}",n));
 } 
 else if(ptEta == "Eta")
 {
  Int_t iNbinsEta  = AliFlowCommonConstants::GetMaster()->GetNbinsEta();
  Double_t dEtaMin = AliFlowCommonConstants::GetMaster()->GetEtaMin();
  Double_t dEtaMax = AliFlowCommonConstants::GetMaster()->GetEtaMax();
  if(!useDefaultValues)
  {
   AliFlowCommonHist *commonHist = NULL;
   for(Int_t l=0;l<nMethods;l++)
   {
    TString temp = "";
    if(list[l]) 
    {
     temp = TString(list[l]->GetName());
    }
    if(temp.Contains(methodForSettings.Data()))
    {
     commonHist = dynamic_cast<AliFlowCommonHist*> list[l]->FindObject(Form("AliFlowCommonHist%s",methodForSettings.Data()));
     if(commonHist && commonHist->GetHistEtaRP() && rpPoi == "RP")
     {
      iNbinsEta = commonHist->GetHistEtaRP()->GetNbinsX();
      dEtaMin = commonHist->GetHistEtaRP()->GetXaxis()->GetXmin();
      dEtaMax = commonHist->GetHistEtaRP()->GetXaxis()->GetXmax();
     } else if(commonHist && commonHist->GetHistEtaPOI() && rpPoi == "POI")
       {
        iNbinsEta = commonHist->GetHistEtaPOI()->GetNbinsX();
        dEtaMin = commonHist->GetHistEtaPOI()->GetXaxis()->GetXmin();
        dEtaMax = commonHist->GetHistEtaPOI()->GetXaxis()->GetXmax();      
       } 
       else
       {
        cout<<endl;
        cout<<" WARNING: Coudn't access common control histogram for eta distribution !!!!"<<endl;
        cout<<endl;
       }
    } 
   } // end of for(Int_t l=0;l<nMethods;l++)
  } // end of if(!useDefaultValues)
  styleHistDiffFlow = new TH1D("","",iNbinsEta,dEtaMin,dEtaMax);
  styleHistDiffFlow->SetTitle(Form("Differential Flow #font[72]{vs} #eta (%s)",rpPoi.Data()));
  styleHistDiffFlow->SetXTitle("#eta");
  styleHistDiffFlow->SetYTitle(Form("v_{%d}",n));
 }
 if(styleHistDiffFlow)
 {
  styleHistDiffFlow->SetMinimum(-0.25); // to be improved - implement algorithm for this 
  styleHistDiffFlow->SetMaximum(1.); // to be improved - implement algorithm for this 
  //styleHistDiffFlow->GetYaxis()->SetLabelSize(0.05);
  //styleHistDiffFlow->GetYaxis()->SetTitleSize(0.06);
  //styleHistDiffFlow->GetYaxis()->SetTitleOffset(0.55);
  //styleHistDiffFlow->GetXaxis()->SetLabelSize(0.05);
  //styleHistDiffFlow->GetXaxis()->SetTitleSize(0.06);
  //styleHistDiffFlow->GetXaxis()->SetTitleOffset(0.6);
  //styleHistDiffFlow->GetXaxis()->SetLabelOffset(0.02);
 }
 
 return styleHistDiffFlow;

} // end of TH1D* StyleHistDiffFlow(TString ptEta, TString rpPoi)

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

void Plot(const Int_t nMethods,TString *method,Int_t *methodMarkerStyle,Int_t *methodMarkerColor,
         TString methodUsedToMakeErrorMesh,Int_t meshStyle,Int_t meshColor,TString rfRpPoi)
{
 // Make a plot for reference and integrated flow.
 
 TString title = "";
 if(rfRpPoi == "RF")
 {
  title = "Reference Flow";
 } else if(rfRpPoi == "POI") 
   {
    title = "Integrated Flow (POI)";
   } else if(rfRpPoi == "RP") 
     {
      title = "Integrated Flow (RP)";
     }

 Double_t x = 0.; // determines position of the marker on x axis
 Double_t results[nMethods] = {0.};
 Double_t errors[nMethods] = {0.};
 TGraphErrors *ge[nMethods] = {NULL};
 TGraph *errorMesh = NULL;
 for(Int_t b=0;b<nMethods;b++)
 {
  x = b+0.5; 
  TH1D *hist = NULL;
  hist = GetResultHistogram(method[b].Data(),rfRpPoi.Data()); 
  if(hist)
  {
   results[b] = hist->GetBinContent(1);
   errors[b] = hist->GetBinError(1);
   if(TMath::Abs(results[b])>1.e-44) 
   {
    ge[b] = GetGraphErrors(x,results[b],errors[b],methodMarkerStyle[b],methodMarkerColor[b]);
   }
   if(strcmp(method[b].Data(),methodUsedToMakeErrorMesh.Data()) == 0)
   {
    errorMesh = GetErrorMesh(nMethods+1,results[b],errors[b],meshStyle,meshColor);
   }
  } else
    {
     //cout<<"WARNING: For a method "<<method[b].Data()<<" couldn't get the histogram with result"<<endl;
     //cout<<"         for "<<title.Data()<<" !!!! "<<endl;
    } 
 } // end of for(Int_t b=0;b<nMethods;b++)

 // Final drawing:
 TCanvas *c = NULL;
 // Settings for canvas:
 Int_t sizeX = 1000; // canvas size in pixels along x
 Int_t sizeY = 600; // canvas size in pixels along y
 if(!showLegend) sizeX = 0.75*sizeX;
 c = new TCanvas(title.Data(),title.Data(),sizeX,sizeY);
 if(showLegend)
 {
  c->Divide(2,1);
  c->cd(1)->SetPad(0.0,0.0,0.75,1.0);
 } 
 StyleHist(title,nMethods,method,results,errors)->Draw();
 if(errorMesh && showErrorMesh){errorMesh->Draw("lfsame");}
 for(Int_t b=0;b<nMethods;b++)
 {
  if(ge[b])ge[b]->Draw("psame");
 } 
 if(showLegend)
 {
  c->cd(2)->SetPad(0.73,0.0,0.97,1.0);
  DefaultTextInLegend()->Draw();
  Legend(nMethods,method,rfRpPoi)->Draw();
 }
 
 return;

} // end of Plot(...)

// ===========================================================================================
    
void PlotRelativeToMC(const Int_t nMethods, TString *method, Int_t *methodMarkerStyle,
                      Int_t *methodMarkerColor, TString rfRpPoi)
{
 // Make a plot (v{MC}-v{method})/v{MC} for reference and integrated flow.

 TString title = "";
 if(rfRpPoi == "RF")
 {
  title = "Reference Flow relative to MCEP";
 } else if(rfRpPoi == "POI") 
   {
    title = "Integrated Flow (POI) relative to MCEP";
   } else if(rfRpPoi == "RP") 
     {
      title = "Integrated Flow (RP) relative to MCEP";
     }

 Double_t x = 0.; // determines position of the marker on x axis
 Double_t results[nMethods] = {0.};
 Double_t errors[nMethods] = {0.};
 // MCEP result and error:
 TH1D *mcep = GetResultHistogram("MCEP","RF");
 Double_t mcepResult = 0.;
 Double_t mcepError = 0.;
 if(mcep)
 {
  mcepResult = mcep->GetBinContent(1);
  mcepError = mcep->GetBinError(1);
 } else
   {
    cout<<"WARNING: MCEP histogram not available in making the plot for "<<title.Data()<<" !!!!"<<endl;   
    return;    
   }
 if(TMath::Abs(mcepResult) < 1.e-44 || TMath::Abs(mcepError) < 1.e-44) 
 {
  cout<<"WARNING: Result or error for v{MCEP} is zero in making the plot for "<<title.Data()<<" !!!!"<<endl;   
  return;
 } 
 TGraphErrors *ge[nMethods] = {NULL};
 for(Int_t b=0;b<nMethods;b++)
 {
  x = b+0.5; 
  TH1D *hist = NULL;
  hist = GetResultHistogram(method[b].Data(),rfRpPoi.Data()); 
  if(hist)
  {
   results[b] = hist->GetBinContent(1);
   errors[b] = hist->GetBinError(1);
   if(TMath::Abs(results[b])>1.e-44) 
   {
    errors[b] = pow(pow(errors[b]/mcepResult,2.)+pow(results[b]*mcepError/pow(mcepResult,2.),2.),0.5); // Do not switch with the next line!
    results[b] = (mcepResult-results[b])/mcepResult;
    ge[b] = GetGraphErrors(x,results[b],errors[b],methodMarkerStyle[b],methodMarkerColor[b]);
   }
  } else
    {
     //cout<<"WARNING: For a method "<<method[b].Data()<<" couldn't get the histogram with result"<<endl;
     //cout<<"         for "<<title.Data()<<" !!!! "<<endl;
    } 
 } // end of for(Int_t b=0;b<nMethods;b++)

 // Final drawing:
 TCanvas *c = NULL;
 // Settings for canvas:
 Int_t sizeX = 1000; // canvas size in pixels along x
 Int_t sizeY = 600; // canvas size in pixels along y
 if(!showLegend) sizeX = 0.75*sizeX;
 c = new TCanvas(title.Data(),title.Data(),sizeX,sizeY);
 if(showLegend)
 {
  c->Divide(2,1);
  c->cd(1)->SetPad(0.0,0.0,0.75,1.0);
 } 
 // Style histogram:
 Int_t n = 2; // default harmonic
 if(!useDefaultValues){n = GetHarmonic(methodForSettings);}
 TH1D *styleHist = StyleHist(title,nMethods,method,results,errors);
 styleHist->GetYaxis()->SetTitleOffset(1.25);
 styleHist->GetYaxis()->SetTitleSize(0.03);
 styleHist->GetYaxis()->SetLabelSize(0.03);
 styleHist->GetYaxis()->SetTitle(Form("(v_{%d}\{MCEP\}-v_{%d}\{method\})/v_{%d}\{MCEP\}",n,n,n));
 styleHist->Draw();
 // Methods:
 for(Int_t b=0;b<nMethods;b++)
 {
  if(ge[b])ge[b]->Draw("psame");
 } 
 if(showLegend)
 {
  c->cd(2)->SetPad(0.73,0.0,0.97,1.0);
  DefaultTextInLegend()->Draw();
  Legend(nMethods,method,rfRpPoi)->Draw();
 }
 
 return;

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

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

TPaveText* DefaultTextInLegend()
{
 // Determine the default text in legend.
 
 TPaveText *textDefault = new TPaveText(0.05,0.77,0.95,0.90,"NDC");
 textDefault->SetTextFont(72);
 textDefault->SetTextSize(0.08);
 textDefault->AddText("Average Multiplicity");
 textDefault->AddText("and");
 textDefault->AddText("Number of Events");
 textDefault->SetFillStyle(0); // white instead of default grey

 return textDefault;
 
} // end of TPaveText* DefaultTextInLegend()
 
// =========================================================================================== 

TPaveText* Legend(Int_t nMethods, TString *method, TString rfRpPoi)
{
 // Make a legend.
 
 TPaveText *legend = new TPaveText(0.05,0.12,0.95,0.70,"NDC");
 legend->SetTextFont(72);
 legend->SetTextSize(0.06);
 legend->SetFillStyle(0); // white instead of default grey
 const Int_t nLegendEntries = 11;
 TString legendEntries[nLegendEntries] = {"MCEP ...... ","SP ........ ","GFC ....... ",
                                          "QC{2} ..... ","QC{4} ..... ","QC{6} ..... ",
                                          "QC{8} ..... ","FQD ....... ","LYZ{sum} .. ",
                                          "LYZ{prod} . ","LYZEP ..... "}; 
 TString temp = "";
 Int_t gfcCounter = 0; // represent "2,GFC", "4,GFC", "6,GFC" and "8,GFC" with the same entry GFC
 for(Int_t b=0;b<nMethods;b++)
 {
  for(Int_t le=0;le<nLegendEntries;le++)
  {
   if(legendEntries[le].Contains(method[b].Data())) // this is either MCEP, FQD, SP or LYZEP
   { 
    temp = legendEntries[le]+GetAvMultiplicityAndNoOfEvents(method[b].Data(),rfRpPoi);
    legend->AddText(temp.Data());
   }
   else if(method[b].Contains("GFC") && gfcCounter == 0 && legendEntries[le].Contains("GFC")) // GFC
   {
    temp = legendEntries[le]+GetAvMultiplicityAndNoOfEvents(method[b].Data(),rfRpPoi);
    legend->AddText(temp.Data()); 
    gfcCounter++;  
   } 
   else if(method[b].Contains("QC") && legendEntries[le].Contains("QC")) // QC
   {
    for(Int_t o=1;o<=4;o++) // QC order
    {
     if(method[b].Contains(Form("%d",2*o)) && legendEntries[le].Contains(Form("%d",2*o)))
     {
      temp = legendEntries[le]+GetAvMultiplicityAndNoOfEvents(method[b].Data(),rfRpPoi);
      legend->AddText(temp.Data());
     }
    } // end of for(Int o=1;o<=4;o++) // QC order
   }
   else if((method[b].Contains("LYZ1SUM")||method[b].Contains("LYZ2SUM")) && legendEntries[le].Contains("LYZ{sum}"))
   {
    temp = legendEntries[le]+GetAvMultiplicityAndNoOfEvents(method[b].Data(),rfRpPoi);
    legend->AddText(temp.Data());
   }
   else if((method[b].Contains("LYZ1PROD")||method[b].Contains("LYZ2PROD")) && legendEntries[le].Contains("LYZ{prod}"))
   {
    temp = legendEntries[le]+GetAvMultiplicityAndNoOfEvents(method[b].Data(),rfRpPoi);
    legend->AddText(temp.Data());
   }
  } // end of for(Int_t le=0;le<nLegendEntries;le++)
 } // end of for(Int_t b=0;b<nMethods;b++)
  
 return legend;

} // end of TPaveText* Legend(Int_t nMethods, TString *method, TString rfRpPoi)
// =========================================================================================== 

TLegend* LegendDiffFlow(Int_t nMethods, TString *method, Int_t *methodMarkerStyle, Int_t *methodMarkerColor,
                        TString methodUsedToMakeErrorMesh, Int_t meshStyle, Int_t meshColor, TString ptEta, TString rpPoi)
{
 // Make a legend for differential flow.
 
 TLegend *legend = new TLegend(0.0,0.12,0.99,0.70);
 legend->SetMargin(0.15);
 legend->SetTextFont(72);
 legend->SetTextSize(0.06);
 legend->SetFillStyle(0); // white instead of default grey
 const Int_t nLegendEntries = 14;
 TString legendEntries[nLegendEntries] = {"MCEP ...... ","SP ........ ","GFC{2} .... ","QC{2} ..... ",
                                          "GFC{4} .... ","QC{4} ..... ","GFC{6} .... ","QC{6} ..... ",
                                          "GFC{8} .... ","QC{8} ..... ","FQD ....... ","LYZ{sum} .. ",
                                          "LYZ{prod} . ","LYZEP ..... "};                                                                                     
 
 TH1D *hist = NULL;
 TString temp = "";
 for(Int_t b=0;b<nMethods;b++)
 {
  for(Int_t le=0;le<nLegendEntries;le++)
  {
   if(legendEntries[le].Contains(method[b].Data())) // this is either MCEP, FQD, SP or LYZEP
   { 
    temp = legendEntries[le]+GetAvMultiplicityAndNoOfEvents(method[b].Data(),rpPoi);
    hist = GetResultHistogram(method[b].Data(),rpPoi.Data(),ptEta.Data());
    if(hist)
    {
     hist->SetMarkerStyle(methodMarkerStyle[b]);
     hist->SetMarkerColor(methodMarkerColor[b]);  
     if(methodUsedToMakeErrorMesh == method[b].Data())
     {
      hist->SetFillStyle(meshStyle);
      hist->SetFillColor(meshColor);
      legend->AddEntry(hist,temp.Data(),"f");    
     } else
       {
        legend->AddEntry(hist,temp.Data(),"p");    
       }
    } // end of if(hist)   
   }       
   else if(method[b].Contains("GFC") && legendEntries[le].Contains("GFC")) // GFC
   {
    for(Int_t o=1;o<=4;o++) // GFC order
    {
     if(method[b].Contains(Form("%d",2*o)) && legendEntries[le].Contains(Form("%d",2*o)))
     { 
      temp = legendEntries[le]+GetAvMultiplicityAndNoOfEvents(method[b].Data(),rpPoi);
      hist = GetResultHistogram(method[b].Data(),rpPoi.Data(),ptEta.Data());
      if(hist)
      {
       hist->SetMarkerStyle(methodMarkerStyle[b]);
       hist->SetMarkerColor(methodMarkerColor[b]); 
       if(methodUsedToMakeErrorMesh == method[b].Data())
       {
        hist->SetFillStyle(meshStyle);
        hist->SetFillColor(meshColor);
        legend->AddEntry(hist,temp.Data(),"f");    
       } else
         {
          legend->AddEntry(hist,temp.Data(),"p");    
         }
      } // end of if(hist)           
     }
    }
   } 
   else if(method[b].Contains("QC") && legendEntries[le].Contains("QC")) // QC
   {
    for(Int_t o=1;o<=4;o++) // QC order
    {
     if(method[b].Contains(Form("%d",2*o)) && legendEntries[le].Contains(Form("%d",2*o)))
     {
      temp = legendEntries[le]+GetAvMultiplicityAndNoOfEvents(method[b].Data(),rpPoi);
      hist = GetResultHistogram(method[b].Data(),rpPoi.Data(),ptEta.Data());
      if(hist)
      {
       hist->SetMarkerStyle(methodMarkerStyle[b]);
       hist->SetMarkerColor(methodMarkerColor[b]);   
       if(methodUsedToMakeErrorMesh == method[b].Data())
       {
        hist->SetFillStyle(meshStyle);
        hist->SetFillColor(meshColor);
        legend->AddEntry(hist,temp.Data(),"f");    
       } else
         {
          legend->AddEntry(hist,temp.Data(),"p");    
         }
      } // end of if(hist)             
     }
    } // end of for(Int o=1;o<=4;o++) // QC order
   }
   else if((method[b].Contains("LYZ1SUM")||method[b].Contains("LYZ2SUM")) && legendEntries[le].Contains("LYZ{sum}"))
   {
    temp = legendEntries[le]+GetAvMultiplicityAndNoOfEvents(method[b].Data(),rpPoi);
    hist = GetResultHistogram(method[b].Data(),rpPoi.Data(),ptEta.Data());
    if(hist)
    {
     hist->SetMarkerStyle(methodMarkerStyle[b]);
     hist->SetMarkerColor(methodMarkerColor[b]);  
     if(methodUsedToMakeErrorMesh == method[b].Data())
     {
      hist->SetFillStyle(meshStyle);
      hist->SetFillColor(meshColor);
      legend->AddEntry(hist,temp.Data(),"f");    
     } else
       {
        legend->AddEntry(hist,temp.Data(),"p");    
       }         
    } // end of if(hist)
   }
   else if((method[b].Contains("LYZ1PROD")||method[b].Contains("LYZ2PROD")) && legendEntries[le].Contains("LYZ{prod}"))
   {
    temp = legendEntries[le]+GetAvMultiplicityAndNoOfEvents(method[b].Data(),rpPoi);
    hist = GetResultHistogram(method[b].Data(),rpPoi.Data(),ptEta.Data());
    if(hist)
    {
     hist->SetMarkerStyle(methodMarkerStyle[b]);
     hist->SetMarkerColor(methodMarkerColor[b]);  
     if(methodUsedToMakeErrorMesh == method[b].Data())
     {
      hist->SetFillStyle(meshStyle);
      hist->SetFillColor(meshColor);
      legend->AddEntry(hist,temp.Data(),"f");    
     } else
       {
        legend->AddEntry(hist,temp.Data(),"p");    
       }      
    } // end of if(hist)      
   }
  } // end of for(Int_t le=0;le<nLegendEntries;le++)
 } // end of for(Int_t b=0;b<nMethods;b++)
   
 return legend;

} // end of TLegend* Legend(...)

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

TString GetAvMultiplicityAndNoOfEvents(TString method, TString rfRpPoi)
{
 // Get average multiplicity and number of events for specified method and return it as "M = <AvM>, N = <N>".
 
 TString MN = ""; // string to hold "M = <AvM>, N = <N>"
 Long_t N = 0; // number of events 
 Double_t M = 0.; // average multiplicity
 
 TH1F *hist = GetControlHistogram(method,rfRpPoi); 
 if(hist)
 {
  N = hist->GetEntries();
  M = hist->GetMean();
  MN.Append("M = ");
  MN+=(Long_t)M;
  MN.Append(", N = ");
  MN+=N;
 } else 
   {
    MN.Append("n/a");
   }
 
 return MN;
 
} // end of TString GetAvMultiplicityAndNoOfEvents(TString *method, TString rfRpPoi)

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

TH1F* GetControlHistogram(TString method, TString rfRpPoi)
{
 // Get the control histogram for specified method holding the average multiplicity and number of events.
 
 AliFlowCommonHist *commonHist = NULL; 
 TString methodName = method.Data(); 
 Int_t cumulantOrder = 0;
 if(method.Contains("GFC"))
 {
  TString methodNameTemp1 = method;   
  TString methodNameTemp2 = method;   
  methodName = methodNameTemp1.Remove(0,2);
  cumulantOrder = methodNameTemp2.Remove(1,4).Atoi();      
 } else if(method.Contains("QC"))
   {
    TString methodNameTemp1 = method;   
    TString methodNameTemp2 = method;   
    methodName = methodNameTemp1.Remove(0,2);
    cumulantOrder = methodNameTemp2.Remove(1,3).Atoi();      
   }

 // Get for specified methodName (and cumulantOrder, if needed) the common control histogram:
 // (to be improved - this can certainly be implemented better, but some redesign of the flow code is first in order)
 for(Int_t l=0;l<nMethods;l++)
 {
  TString temp = "";
  if(list[l]) 
  {
   temp = TString(list[l]->GetName());
  }
  if(temp.Contains(methodName.Data()))
  {
   // Access from the common list the needed common result histogram:
   if(!(methodName.Contains("QC")))
   {
    commonHist = dynamic_cast<AliFlowCommonHist*> list[l]->FindObject(Form("AliFlowCommonHist%s",methodName.Data()));
   } 
   else if(methodName=="QC")
   {
    if(cumulantOrder==2)
    {
     commonHist = dynamic_cast<AliFlowCommonHist*> list[l]->FindObject("AliFlowCommonHist2ndOrderQC");    
    } 
    else if(cumulantOrder==4)
    {
     commonHist = dynamic_cast<AliFlowCommonHist*> list[l]->FindObject("AliFlowCommonHist4thOrderQC");    
    }
    else if(cumulantOrder==6)
    {
     commonHist = dynamic_cast<AliFlowCommonHist*> list[l]->FindObject("AliFlowCommonHist6thOrderQC");    
    }
    else if(cumulantOrder==8)
    {
     commonHist = dynamic_cast<AliFlowCommonHist*> list[l]->FindObject("AliFlowCommonHist8thOrderQC");    
    }
    else
    {
     cout<<"WARNING: You have specified cumulant order to be "<<cumulantOrder<<" !!!!"<<endl;
     cout<<"         There are no results for this cumulant order. "<<endl;
    }
   } // end of else if(methodName=="QC")
  } // end of if(temp.Contains(methodName.Data()))
 } // end of for(Int_t l=0;l<nMethods;l++)
 
 if(!commonHist)
 {
  //cout<<"WARNING: For a method "<<method.Data()<<" couldn't access the common hist result !!!!"<<endl;
  //cout<<"         File absent? Or perhaps a typo in the method's name?"<<endl;
  if(methodName.Contains("QC"))
  {
   //cout<<"         Or impossible cumulant order? Otherwise.... :'( "<<endl;
  }
 }

 // Finally, from commonHist access the required histogram: 
 TH1F *hist = NULL;
 if(commonHist) 
 { 
  if(rfRpPoi == "RF" || rfRpPoi == "RP")
  {
   hist = commonHist->GetHistMultRP();
  } else if(rfRpPoi == "POI")
    {
     hist = commonHist->GetHistMultPOI(); 
    } else 
      {
       cout<<"WARNING: Impossible TString rfRpPoi in GetControlHistogram() !!!!"<<endl;
       exit(0);
      } 
 }

 return hist;

} // end of TH1D* GetControlHistogram(TString method, TString rfRpPoi)

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

TH1D* StyleHist(TString title, Int_t nMethods, TString *method, Double_t *results, Double_t *errors)
{
 // Make style histogram.
 TH1D *styleHist = new TH1D("",title.Data(),nMethods,0,nMethods);
 Int_t n = 2; // default harmonic
 if(!useDefaultValues){n = GetHarmonic(methodForSettings);}
 Double_t styleHistMin = 44.;
 Double_t styleHistMax = -44.;
 for(Int_t b=0;b<nMethods;b++)
 {
  // Form bin labels from method's names:
  styleHist->GetXaxis()->SetBinLabel(b+1,Form("v_{%d}\{%s\}",n,method[b].Data()));
  if(method[b].Contains("LYZ1SUM") || method[b].Contains("LYZ2SUM"))
  {
   styleHist->GetXaxis()->SetBinLabel(b+1,Form("v_{%d}\{LYZ,sum\}",n)); 
  }
  if(method[b].Contains("LYZ1PROD") || method[b].Contains("LYZ2PROD"))
  {
   styleHist->GetXaxis()->SetBinLabel(b+1,Form("v_{%d}\{LYZ,prod\}",n)); 
  }
  // Establish min and max values for style histograms:
  if(TMath::Abs(results[b])>1.e-44)
  {
   if(styleHistMin > results[b]-errors[b]) styleHistMin = results[b]-errors[b]; // min value
   if(styleHistMax < results[b]+errors[b]) styleHistMax = results[b]+errors[b]; // max value    
  }
 }
 
 styleHist->SetMinimum(0.99*styleHistMin);
 styleHist->SetMaximum(1.01*styleHistMax);
 /*
 styleHist->GetYaxis()->SetNdivisions(5,5,0);
 styleHist->GetYaxis()->SetLabelSize(0.05);
 styleHist->GetXaxis()->SetLabelSize(0.07);
 styleHist->GetXaxis()->SetLabelOffset(0.01);
 */
 
 return styleHist;

} // end of TH1D* StyleHist(TString *title, Int_t nMethods, TString *method, Double_t *results, Double_t *errors)

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

TFile* AccessOutputFile(TString outputFileName)
{
 // Access the common output file.
    
 TFile *outputFile = NULL;
 if(!(gSystem->AccessPathName(Form("%s%s%s",gSystem->pwd(),"/",outputFileName.Data()),kFileExists)))
 {
  outputFile = TFile::Open(outputFileName.Data(),"READ");
 } else
   {
    cout<<endl;
    cout<<"WARNING: Couldn't find the file "<<outputFileName.Data()<<" in "<<endl;
    cout<<"         directory "<<gSystem->pwd()<<" !!!!"<<endl;
    cout<<endl;
    exit(0);
   }
  
 return outputFile;
 
} // end of TFile* AccessOutputFile(TString outputFileName)
  
// ===========================================================================================
 
void GetListsWithHistograms(TFile *outputFile, TString analysisType)
{
 // Access from common output file the TDirectoryFile's for each flow analysis method
 // and from them the TList's holding histograms with final results:
 
 TString fileName[nMethods]; 
 TDirectoryFile *dirFile[nMethods] = {NULL}; 
 TString listName[nMethods]; 
 Int_t failureCounter = 0;
 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";
  fileName[i]+=analysisType.Data();
  // Access this file:
  dirFile[i] = (TDirectoryFile*)outputFile->FindObjectAny(fileName[i].Data());
  // Form a list name for each method:
  if(dirFile[i])
  {
   TList* listTemp = dirFile[i]->GetListOfKeys();
   if(listTemp && listTemp->GetEntries() == 1)
   {
    listName[i] = listTemp->At(0)->GetName(); // to be improved - implemented better (use dynamic_cast instead)
    dirFile[i]->GetObject(listName[i].Data(),list[i]);
   } else
     {
      cout<<" WARNING: Accessing TList from TDirectoryFile failed for method "<<method[i].Data()<<" !!!!"<<endl;
      cout<<"          Did you actually use "<<method[i].Data()<<" in the analysis?"<<endl;
      cout<<endl;
     }
  } else 
    {
     cout<<" WARNING: Couldn't find a TDirectoryFile "<<fileName[i].Data()<<".root !!!!"<<endl;
     failureCounter++;
    }   
 } // end of for(Int_t i=0;i<nMethods;i++) 
 
 // If no files were found most probably the 'TString analysisType' was specified wrongly:
 if(failureCounter == nMethods)
 {
  cout<<endl; 
  cout<<"Did you specify 'TString analysisType' correctly? Can be \"\", \"ESD\", \"AOD\", etc."<<endl;
  cout<<endl; 
  exit(0);
 }
    
} // end of void GetListsWithHistograms(TFile *outputFile, TString analysisType)
 
// ===========================================================================================

TH1D* GetResultHistogram(TString method, TString rfRpPoi, TString ptEta="")
{
 // Get the specified histogram holding result.
 
 AliFlowCommonHistResults *commonHistRes = NULL; 
 TString methodName = method.Data(); 
 Int_t cumulantOrder = 0;
 if(method.Contains("GFC"))
 {
  TString methodNameTemp1 = method;   
  TString methodNameTemp2 = method;   
  methodName = methodNameTemp1.Remove(0,2);
  cumulantOrder = methodNameTemp2.Remove(1,4).Atoi();      
 } else if(method.Contains("QC"))
   {
    TString methodNameTemp1 = method;   
    TString methodNameTemp2 = method;   
    methodName = methodNameTemp1.Remove(0,2);
    cumulantOrder = methodNameTemp2.Remove(1,3).Atoi();      
   }
 // Get for specified methodName (and cumulantOrder, if needed) the common hist result:
 // (to be improved - this can certainly be implemented better, but some redesign of the flow code is first in order)
 for(Int_t l=0;l<nMethods;l++)
 {
  TString temp = "";
  if(list[l]) 
  {
   temp = TString(list[l]->GetName());
  }
  if(temp.Contains(methodName.Data()))
  {
   // Access from the common list the needed common result histogram:
   if(!(methodName.Contains("GFC") || methodName.Contains("QC")))
   {
    commonHistRes = dynamic_cast<AliFlowCommonHistResults*> list[l]->FindObject(Form("AliFlowCommonHistResults%s",methodName.Data()));
   } 
   else if(methodName=="GFC")
   {
    if(cumulantOrder==2)
    {
     commonHistRes = dynamic_cast<AliFlowCommonHistResults*> list[l]->FindObject("AliFlowCommonHistResults2ndOrderGFC");    
    } 
    else if(cumulantOrder==4)
    {
     commonHistRes = dynamic_cast<AliFlowCommonHistResults*> list[l]->FindObject("AliFlowCommonHistResults4thOrderGFC");    
    }
    else if(cumulantOrder==6)
    {
     commonHistRes = dynamic_cast<AliFlowCommonHistResults*> list[l]->FindObject("AliFlowCommonHistResults6thOrderGFC");    
    }
    else if(cumulantOrder==8)
    {
     commonHistRes = dynamic_cast<AliFlowCommonHistResults*> list[l]->FindObject("AliFlowCommonHistResults8thOrderGFC");    
    } 
    else
    {
     cout<<"WARNING: You have specified cumulant order to be "<<cumulantOrder<<" !!!!"<<endl;
     cout<<"         That is really not funny.... "<<endl;
    }
   } // end of else if(methodName=="GFC")
   else if(methodName=="QC")
   {
    if(cumulantOrder==2)
    {
     commonHistRes = dynamic_cast<AliFlowCommonHistResults*> list[l]->FindObject("AliFlowCommonHistResults2ndOrderQC");    
    } 
    else if(cumulantOrder==4)
    {
     commonHistRes = dynamic_cast<AliFlowCommonHistResults*> list[l]->FindObject("AliFlowCommonHistResults4thOrderQC");    
    }
    else if(cumulantOrder==6)
    {
     commonHistRes = dynamic_cast<AliFlowCommonHistResults*> list[l]->FindObject("AliFlowCommonHistResults6thOrderQC");    
    }
    else if(cumulantOrder==8)
    {
     commonHistRes = dynamic_cast<AliFlowCommonHistResults*> list[l]->FindObject("AliFlowCommonHistResults8thOrderQC");    
    }
    else
    {
     cout<<"WARNING: You have specified cumulant order to be "<<cumulantOrder<<" !!!!"<<endl;
     cout<<"         There are no results for this cumulant order. "<<endl;
    }
   } // end of else if(methodName=="QC")
  } // end of if(temp.Contains(methodName.Data()))
 } // end of for(Int_t l=0;l<nMethods;l++)
 
 if(!commonHistRes)
 {
  //cout<<"WARNING: For a method "<<method.Data()<<" couldn't access the common hist result !!!!"<<endl;
  //cout<<"         File absent? Or perhaps a typo in the method's name?"<<endl;
  if(methodName.Contains("GFC") || methodName.Contains("QC"))
  {
   //cout<<"         Or impossible cumulant order? Otherwise.... :'( "<<endl;
  }
 }
 

 // Finally, from commonHistRes access the required histogram: 
 TH1D *hist = NULL;
 if(commonHistRes) 
 { 
  if(rfRpPoi == "RF")
  {
   hist = commonHistRes->GetHistIntFlow();
  } else if(rfRpPoi == "RP")
    {
     if(ptEta == "")
     {
      hist = commonHistRes->GetHistIntFlowRP(); 
     } else if(ptEta == "Pt")
       {
        hist = commonHistRes->GetHistDiffFlowPtRP();      
       } else if(ptEta == "Eta")
         {
          hist = commonHistRes->GetHistDiffFlowEtaRP();
         }
    } else if(rfRpPoi == "POI")
      {
       if(ptEta == "")
       {
        hist = commonHistRes->GetHistIntFlowPOI(); 
       } else if(ptEta == "Pt") 
         {
          hist = commonHistRes->GetHistDiffFlowPtPOI();
         } else if(ptEta == "Eta")
           {
            hist = commonHistRes->GetHistDiffFlowEtaPOI();
           }  
      }
 }
  
 return hist;

} // end of TH1D* GetResultHistogram(TString method, TString rfRpPoi, TString ptEta="")

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

void GlobalSettings()
{
 // Settings which will affect all plots.
 
 gROOT->SetStyle("Plain"); // default color is white instead of gray
 gStyle->SetOptStat(0); // remove stat. box from all histos
 TGaxis::SetMaxDigits(4); // prefer exp notation for 5 and more significant digits
 
} // end of void GlobalSettings()

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

void LoadLibrariesCFR(const libModes analysisMode) {
  
  //--------------------------------------
  // 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 (analysisMode==mLocal) {
    //--------------------------------------------------------
    // If you want to use already compiled libraries 
    // in the aliroot distribution
    //--------------------------------------------------------
    
    //==================================================================================  
    //load needed libraries:
    gSystem->AddIncludePath("-I$ROOTSYS/include");
    //gSystem->Load("libTree");
    
    // for AliRoot
    gSystem->AddIncludePath("-I$ALICE_ROOT/include");
    gSystem->Load("libANALYSIS");
    gSystem->Load("libPWGflowBase");
    //cerr<<"libPWGflowBase loaded ..."<<endl;
    
  }
  
  else if (analysisMode==mLocalSource) {
    
    // In root inline compile
   
   // Constants  
    gROOT->LoadMacro("BaseAliFlowCommonConstants.cxx+");
    gROOT->LoadMacro("BaseAliFlowLYZConstants.cxx+");
    
    // Flow event
    gROOT->LoadMacro("BaseAliFlowVector.cxx+"); 
    gROOT->LoadMacro("BaseAliFlowTrackSimple.cxx+");    
    gROOT->LoadMacro("BaseAliFlowTrackSimpleCuts.cxx+");    
    gROOT->LoadMacro("BaseAliFlowEventSimple.cxx+");
    
    // Output histosgrams
    gROOT->LoadMacro("BaseAliFlowCommonHist.cxx+");
    gROOT->LoadMacro("BaseAliFlowCommonHistResults.cxx+");
    gROOT->LoadMacro("BaseAliFlowLYZHist1.cxx+");
    gROOT->LoadMacro("BaseAliFlowLYZHist2.cxx+");
    
    cout << "finished loading macros!" << endl;  
    
  }  
  
} // end of void LoadLibrariesCFR(const libModes analysisMode) 

 compareFlowResults.C:1
 compareFlowResults.C:2
 compareFlowResults.C:3
 compareFlowResults.C:4
 compareFlowResults.C:5
 compareFlowResults.C:6
 compareFlowResults.C:7
 compareFlowResults.C:8
 compareFlowResults.C:9
 compareFlowResults.C:10
 compareFlowResults.C:11
 compareFlowResults.C:12
 compareFlowResults.C:13
 compareFlowResults.C:14
 compareFlowResults.C:15
 compareFlowResults.C:16
 compareFlowResults.C:17
 compareFlowResults.C:18
 compareFlowResults.C:19
 compareFlowResults.C:20
 compareFlowResults.C:21
 compareFlowResults.C:22
 compareFlowResults.C:23
 compareFlowResults.C:24
 compareFlowResults.C:25
 compareFlowResults.C:26
 compareFlowResults.C:27
 compareFlowResults.C:28
 compareFlowResults.C:29
 compareFlowResults.C:30
 compareFlowResults.C:31
 compareFlowResults.C:32
 compareFlowResults.C:33
 compareFlowResults.C:34
 compareFlowResults.C:35
 compareFlowResults.C:36
 compareFlowResults.C:37
 compareFlowResults.C:38
 compareFlowResults.C:39
 compareFlowResults.C:40
 compareFlowResults.C:41
 compareFlowResults.C:42
 compareFlowResults.C:43
 compareFlowResults.C:44
 compareFlowResults.C:45
 compareFlowResults.C:46
 compareFlowResults.C:47
 compareFlowResults.C:48
 compareFlowResults.C:49
 compareFlowResults.C:50
 compareFlowResults.C:51
 compareFlowResults.C:52
 compareFlowResults.C:53
 compareFlowResults.C:54
 compareFlowResults.C:55
 compareFlowResults.C:56
 compareFlowResults.C:57
 compareFlowResults.C:58
 compareFlowResults.C:59
 compareFlowResults.C:60
 compareFlowResults.C:61
 compareFlowResults.C:62
 compareFlowResults.C:63
 compareFlowResults.C:64
 compareFlowResults.C:65
 compareFlowResults.C:66
 compareFlowResults.C:67
 compareFlowResults.C:68
 compareFlowResults.C:69
 compareFlowResults.C:70
 compareFlowResults.C:71
 compareFlowResults.C:72
 compareFlowResults.C:73
 compareFlowResults.C:74
 compareFlowResults.C:75
 compareFlowResults.C:76
 compareFlowResults.C:77
 compareFlowResults.C:78
 compareFlowResults.C:79
 compareFlowResults.C:80
 compareFlowResults.C:81
 compareFlowResults.C:82
 compareFlowResults.C:83
 compareFlowResults.C:84
 compareFlowResults.C:85
 compareFlowResults.C:86
 compareFlowResults.C:87
 compareFlowResults.C:88
 compareFlowResults.C:89
 compareFlowResults.C:90
 compareFlowResults.C:91
 compareFlowResults.C:92
 compareFlowResults.C:93
 compareFlowResults.C:94
 compareFlowResults.C:95
 compareFlowResults.C:96
 compareFlowResults.C:97
 compareFlowResults.C:98
 compareFlowResults.C:99
 compareFlowResults.C:100
 compareFlowResults.C:101
 compareFlowResults.C:102
 compareFlowResults.C:103
 compareFlowResults.C:104
 compareFlowResults.C:105
 compareFlowResults.C:106
 compareFlowResults.C:107
 compareFlowResults.C:108
 compareFlowResults.C:109
 compareFlowResults.C:110
 compareFlowResults.C:111
 compareFlowResults.C:112
 compareFlowResults.C:113
 compareFlowResults.C:114
 compareFlowResults.C:115
 compareFlowResults.C:116
 compareFlowResults.C:117
 compareFlowResults.C:118
 compareFlowResults.C:119
 compareFlowResults.C:120
 compareFlowResults.C:121
 compareFlowResults.C:122
 compareFlowResults.C:123
 compareFlowResults.C:124
 compareFlowResults.C:125
 compareFlowResults.C:126
 compareFlowResults.C:127
 compareFlowResults.C:128
 compareFlowResults.C:129
 compareFlowResults.C:130
 compareFlowResults.C:131
 compareFlowResults.C:132
 compareFlowResults.C:133
 compareFlowResults.C:134
 compareFlowResults.C:135
 compareFlowResults.C:136
 compareFlowResults.C:137
 compareFlowResults.C:138
 compareFlowResults.C:139
 compareFlowResults.C:140
 compareFlowResults.C:141
 compareFlowResults.C:142
 compareFlowResults.C:143
 compareFlowResults.C:144
 compareFlowResults.C:145
 compareFlowResults.C:146
 compareFlowResults.C:147
 compareFlowResults.C:148
 compareFlowResults.C:149
 compareFlowResults.C:150
 compareFlowResults.C:151
 compareFlowResults.C:152
 compareFlowResults.C:153
 compareFlowResults.C:154
 compareFlowResults.C:155
 compareFlowResults.C:156
 compareFlowResults.C:157
 compareFlowResults.C:158
 compareFlowResults.C:159
 compareFlowResults.C:160
 compareFlowResults.C:161
 compareFlowResults.C:162
 compareFlowResults.C:163
 compareFlowResults.C:164
 compareFlowResults.C:165
 compareFlowResults.C:166
 compareFlowResults.C:167
 compareFlowResults.C:168
 compareFlowResults.C:169
 compareFlowResults.C:170
 compareFlowResults.C:171
 compareFlowResults.C:172
 compareFlowResults.C:173
 compareFlowResults.C:174
 compareFlowResults.C:175
 compareFlowResults.C:176
 compareFlowResults.C:177
 compareFlowResults.C:178
 compareFlowResults.C:179
 compareFlowResults.C:180
 compareFlowResults.C:181
 compareFlowResults.C:182
 compareFlowResults.C:183
 compareFlowResults.C:184
 compareFlowResults.C:185
 compareFlowResults.C:186
 compareFlowResults.C:187
 compareFlowResults.C:188
 compareFlowResults.C:189
 compareFlowResults.C:190
 compareFlowResults.C:191
 compareFlowResults.C:192
 compareFlowResults.C:193
 compareFlowResults.C:194
 compareFlowResults.C:195
 compareFlowResults.C:196
 compareFlowResults.C:197
 compareFlowResults.C:198
 compareFlowResults.C:199
 compareFlowResults.C:200
 compareFlowResults.C:201
 compareFlowResults.C:202
 compareFlowResults.C:203
 compareFlowResults.C:204
 compareFlowResults.C:205
 compareFlowResults.C:206
 compareFlowResults.C:207
 compareFlowResults.C:208
 compareFlowResults.C:209
 compareFlowResults.C:210
 compareFlowResults.C:211
 compareFlowResults.C:212
 compareFlowResults.C:213
 compareFlowResults.C:214
 compareFlowResults.C:215
 compareFlowResults.C:216
 compareFlowResults.C:217
 compareFlowResults.C:218
 compareFlowResults.C:219
 compareFlowResults.C:220
 compareFlowResults.C:221
 compareFlowResults.C:222
 compareFlowResults.C:223
 compareFlowResults.C:224
 compareFlowResults.C:225
 compareFlowResults.C:226
 compareFlowResults.C:227
 compareFlowResults.C:228
 compareFlowResults.C:229
 compareFlowResults.C:230
 compareFlowResults.C:231
 compareFlowResults.C:232
 compareFlowResults.C:233
 compareFlowResults.C:234
 compareFlowResults.C:235
 compareFlowResults.C:236
 compareFlowResults.C:237
 compareFlowResults.C:238
 compareFlowResults.C:239
 compareFlowResults.C:240
 compareFlowResults.C:241
 compareFlowResults.C:242
 compareFlowResults.C:243
 compareFlowResults.C:244
 compareFlowResults.C:245
 compareFlowResults.C:246
 compareFlowResults.C:247
 compareFlowResults.C:248
 compareFlowResults.C:249
 compareFlowResults.C:250
 compareFlowResults.C:251
 compareFlowResults.C:252
 compareFlowResults.C:253
 compareFlowResults.C:254
 compareFlowResults.C:255
 compareFlowResults.C:256
 compareFlowResults.C:257
 compareFlowResults.C:258
 compareFlowResults.C:259
 compareFlowResults.C:260
 compareFlowResults.C:261
 compareFlowResults.C:262
 compareFlowResults.C:263
 compareFlowResults.C:264
 compareFlowResults.C:265
 compareFlowResults.C:266
 compareFlowResults.C:267
 compareFlowResults.C:268
 compareFlowResults.C:269
 compareFlowResults.C:270
 compareFlowResults.C:271
 compareFlowResults.C:272
 compareFlowResults.C:273
 compareFlowResults.C:274
 compareFlowResults.C:275
 compareFlowResults.C:276
 compareFlowResults.C:277
 compareFlowResults.C:278
 compareFlowResults.C:279
 compareFlowResults.C:280
 compareFlowResults.C:281
 compareFlowResults.C:282
 compareFlowResults.C:283
 compareFlowResults.C:284
 compareFlowResults.C:285
 compareFlowResults.C:286
 compareFlowResults.C:287
 compareFlowResults.C:288
 compareFlowResults.C:289
 compareFlowResults.C:290
 compareFlowResults.C:291
 compareFlowResults.C:292
 compareFlowResults.C:293
 compareFlowResults.C:294
 compareFlowResults.C:295
 compareFlowResults.C:296
 compareFlowResults.C:297
 compareFlowResults.C:298
 compareFlowResults.C:299
 compareFlowResults.C:300
 compareFlowResults.C:301
 compareFlowResults.C:302
 compareFlowResults.C:303
 compareFlowResults.C:304
 compareFlowResults.C:305
 compareFlowResults.C:306
 compareFlowResults.C:307
 compareFlowResults.C:308
 compareFlowResults.C:309
 compareFlowResults.C:310
 compareFlowResults.C:311
 compareFlowResults.C:312
 compareFlowResults.C:313
 compareFlowResults.C:314
 compareFlowResults.C:315
 compareFlowResults.C:316
 compareFlowResults.C:317
 compareFlowResults.C:318
 compareFlowResults.C:319
 compareFlowResults.C:320
 compareFlowResults.C:321
 compareFlowResults.C:322
 compareFlowResults.C:323
 compareFlowResults.C:324
 compareFlowResults.C:325
 compareFlowResults.C:326
 compareFlowResults.C:327
 compareFlowResults.C:328
 compareFlowResults.C:329
 compareFlowResults.C:330
 compareFlowResults.C:331
 compareFlowResults.C:332
 compareFlowResults.C:333
 compareFlowResults.C:334
 compareFlowResults.C:335
 compareFlowResults.C:336
 compareFlowResults.C:337
 compareFlowResults.C:338
 compareFlowResults.C:339
 compareFlowResults.C:340
 compareFlowResults.C:341
 compareFlowResults.C:342
 compareFlowResults.C:343
 compareFlowResults.C:344
 compareFlowResults.C:345
 compareFlowResults.C:346
 compareFlowResults.C:347
 compareFlowResults.C:348
 compareFlowResults.C:349
 compareFlowResults.C:350
 compareFlowResults.C:351
 compareFlowResults.C:352
 compareFlowResults.C:353
 compareFlowResults.C:354
 compareFlowResults.C:355
 compareFlowResults.C:356
 compareFlowResults.C:357
 compareFlowResults.C:358
 compareFlowResults.C:359
 compareFlowResults.C:360
 compareFlowResults.C:361
 compareFlowResults.C:362
 compareFlowResults.C:363
 compareFlowResults.C:364
 compareFlowResults.C:365
 compareFlowResults.C:366
 compareFlowResults.C:367
 compareFlowResults.C:368
 compareFlowResults.C:369
 compareFlowResults.C:370
 compareFlowResults.C:371
 compareFlowResults.C:372
 compareFlowResults.C:373
 compareFlowResults.C:374
 compareFlowResults.C:375
 compareFlowResults.C:376
 compareFlowResults.C:377
 compareFlowResults.C:378
 compareFlowResults.C:379
 compareFlowResults.C:380
 compareFlowResults.C:381
 compareFlowResults.C:382
 compareFlowResults.C:383
 compareFlowResults.C:384
 compareFlowResults.C:385
 compareFlowResults.C:386
 compareFlowResults.C:387
 compareFlowResults.C:388
 compareFlowResults.C:389
 compareFlowResults.C:390
 compareFlowResults.C:391
 compareFlowResults.C:392
 compareFlowResults.C:393
 compareFlowResults.C:394
 compareFlowResults.C:395
 compareFlowResults.C:396
 compareFlowResults.C:397
 compareFlowResults.C:398
 compareFlowResults.C:399
 compareFlowResults.C:400
 compareFlowResults.C:401
 compareFlowResults.C:402
 compareFlowResults.C:403
 compareFlowResults.C:404
 compareFlowResults.C:405
 compareFlowResults.C:406
 compareFlowResults.C:407
 compareFlowResults.C:408
 compareFlowResults.C:409
 compareFlowResults.C:410
 compareFlowResults.C:411
 compareFlowResults.C:412
 compareFlowResults.C:413
 compareFlowResults.C:414
 compareFlowResults.C:415
 compareFlowResults.C:416
 compareFlowResults.C:417
 compareFlowResults.C:418
 compareFlowResults.C:419
 compareFlowResults.C:420
 compareFlowResults.C:421
 compareFlowResults.C:422
 compareFlowResults.C:423
 compareFlowResults.C:424
 compareFlowResults.C:425
 compareFlowResults.C:426
 compareFlowResults.C:427
 compareFlowResults.C:428
 compareFlowResults.C:429
 compareFlowResults.C:430
 compareFlowResults.C:431
 compareFlowResults.C:432
 compareFlowResults.C:433
 compareFlowResults.C:434
 compareFlowResults.C:435
 compareFlowResults.C:436
 compareFlowResults.C:437
 compareFlowResults.C:438
 compareFlowResults.C:439
 compareFlowResults.C:440
 compareFlowResults.C:441
 compareFlowResults.C:442
 compareFlowResults.C:443
 compareFlowResults.C:444
 compareFlowResults.C:445
 compareFlowResults.C:446
 compareFlowResults.C:447
 compareFlowResults.C:448
 compareFlowResults.C:449
 compareFlowResults.C:450
 compareFlowResults.C:451
 compareFlowResults.C:452
 compareFlowResults.C:453
 compareFlowResults.C:454
 compareFlowResults.C:455
 compareFlowResults.C:456
 compareFlowResults.C:457
 compareFlowResults.C:458
 compareFlowResults.C:459
 compareFlowResults.C:460
 compareFlowResults.C:461
 compareFlowResults.C:462
 compareFlowResults.C:463
 compareFlowResults.C:464
 compareFlowResults.C:465
 compareFlowResults.C:466
 compareFlowResults.C:467
 compareFlowResults.C:468
 compareFlowResults.C:469
 compareFlowResults.C:470
 compareFlowResults.C:471
 compareFlowResults.C:472
 compareFlowResults.C:473
 compareFlowResults.C:474
 compareFlowResults.C:475
 compareFlowResults.C:476
 compareFlowResults.C:477
 compareFlowResults.C:478
 compareFlowResults.C:479
 compareFlowResults.C:480
 compareFlowResults.C:481
 compareFlowResults.C:482
 compareFlowResults.C:483
 compareFlowResults.C:484
 compareFlowResults.C:485
 compareFlowResults.C:486
 compareFlowResults.C:487
 compareFlowResults.C:488
 compareFlowResults.C:489
 compareFlowResults.C:490
 compareFlowResults.C:491
 compareFlowResults.C:492
 compareFlowResults.C:493
 compareFlowResults.C:494
 compareFlowResults.C:495
 compareFlowResults.C:496
 compareFlowResults.C:497
 compareFlowResults.C:498
 compareFlowResults.C:499
 compareFlowResults.C:500
 compareFlowResults.C:501
 compareFlowResults.C:502
 compareFlowResults.C:503
 compareFlowResults.C:504
 compareFlowResults.C:505
 compareFlowResults.C:506
 compareFlowResults.C:507
 compareFlowResults.C:508
 compareFlowResults.C:509
 compareFlowResults.C:510
 compareFlowResults.C:511
 compareFlowResults.C:512
 compareFlowResults.C:513
 compareFlowResults.C:514
 compareFlowResults.C:515
 compareFlowResults.C:516
 compareFlowResults.C:517
 compareFlowResults.C:518
 compareFlowResults.C:519
 compareFlowResults.C:520
 compareFlowResults.C:521
 compareFlowResults.C:522
 compareFlowResults.C:523
 compareFlowResults.C:524
 compareFlowResults.C:525
 compareFlowResults.C:526
 compareFlowResults.C:527
 compareFlowResults.C:528
 compareFlowResults.C:529
 compareFlowResults.C:530
 compareFlowResults.C:531
 compareFlowResults.C:532
 compareFlowResults.C:533
 compareFlowResults.C:534
 compareFlowResults.C:535
 compareFlowResults.C:536
 compareFlowResults.C:537
 compareFlowResults.C:538
 compareFlowResults.C:539
 compareFlowResults.C:540
 compareFlowResults.C:541
 compareFlowResults.C:542
 compareFlowResults.C:543
 compareFlowResults.C:544
 compareFlowResults.C:545
 compareFlowResults.C:546
 compareFlowResults.C:547
 compareFlowResults.C:548
 compareFlowResults.C:549
 compareFlowResults.C:550
 compareFlowResults.C:551
 compareFlowResults.C:552
 compareFlowResults.C:553
 compareFlowResults.C:554
 compareFlowResults.C:555
 compareFlowResults.C:556
 compareFlowResults.C:557
 compareFlowResults.C:558
 compareFlowResults.C:559
 compareFlowResults.C:560
 compareFlowResults.C:561
 compareFlowResults.C:562
 compareFlowResults.C:563
 compareFlowResults.C:564
 compareFlowResults.C:565
 compareFlowResults.C:566
 compareFlowResults.C:567
 compareFlowResults.C:568
 compareFlowResults.C:569
 compareFlowResults.C:570
 compareFlowResults.C:571
 compareFlowResults.C:572
 compareFlowResults.C:573
 compareFlowResults.C:574
 compareFlowResults.C:575
 compareFlowResults.C:576
 compareFlowResults.C:577
 compareFlowResults.C:578
 compareFlowResults.C:579
 compareFlowResults.C:580
 compareFlowResults.C:581
 compareFlowResults.C:582
 compareFlowResults.C:583
 compareFlowResults.C:584
 compareFlowResults.C:585
 compareFlowResults.C:586
 compareFlowResults.C:587
 compareFlowResults.C:588
 compareFlowResults.C:589
 compareFlowResults.C:590
 compareFlowResults.C:591
 compareFlowResults.C:592
 compareFlowResults.C:593
 compareFlowResults.C:594
 compareFlowResults.C:595
 compareFlowResults.C:596
 compareFlowResults.C:597
 compareFlowResults.C:598
 compareFlowResults.C:599
 compareFlowResults.C:600
 compareFlowResults.C:601
 compareFlowResults.C:602
 compareFlowResults.C:603
 compareFlowResults.C:604
 compareFlowResults.C:605
 compareFlowResults.C:606
 compareFlowResults.C:607
 compareFlowResults.C:608
 compareFlowResults.C:609
 compareFlowResults.C:610
 compareFlowResults.C:611
 compareFlowResults.C:612
 compareFlowResults.C:613
 compareFlowResults.C:614
 compareFlowResults.C:615
 compareFlowResults.C:616
 compareFlowResults.C:617
 compareFlowResults.C:618
 compareFlowResults.C:619
 compareFlowResults.C:620
 compareFlowResults.C:621
 compareFlowResults.C:622
 compareFlowResults.C:623
 compareFlowResults.C:624
 compareFlowResults.C:625
 compareFlowResults.C:626
 compareFlowResults.C:627
 compareFlowResults.C:628
 compareFlowResults.C:629
 compareFlowResults.C:630
 compareFlowResults.C:631
 compareFlowResults.C:632
 compareFlowResults.C:633
 compareFlowResults.C:634
 compareFlowResults.C:635
 compareFlowResults.C:636
 compareFlowResults.C:637
 compareFlowResults.C:638
 compareFlowResults.C:639
 compareFlowResults.C:640
 compareFlowResults.C:641
 compareFlowResults.C:642
 compareFlowResults.C:643
 compareFlowResults.C:644
 compareFlowResults.C:645
 compareFlowResults.C:646
 compareFlowResults.C:647
 compareFlowResults.C:648
 compareFlowResults.C:649
 compareFlowResults.C:650
 compareFlowResults.C:651
 compareFlowResults.C:652
 compareFlowResults.C:653
 compareFlowResults.C:654
 compareFlowResults.C:655
 compareFlowResults.C:656
 compareFlowResults.C:657
 compareFlowResults.C:658
 compareFlowResults.C:659
 compareFlowResults.C:660
 compareFlowResults.C:661
 compareFlowResults.C:662
 compareFlowResults.C:663
 compareFlowResults.C:664
 compareFlowResults.C:665
 compareFlowResults.C:666
 compareFlowResults.C:667
 compareFlowResults.C:668
 compareFlowResults.C:669
 compareFlowResults.C:670
 compareFlowResults.C:671
 compareFlowResults.C:672
 compareFlowResults.C:673
 compareFlowResults.C:674
 compareFlowResults.C:675
 compareFlowResults.C:676
 compareFlowResults.C:677
 compareFlowResults.C:678
 compareFlowResults.C:679
 compareFlowResults.C:680
 compareFlowResults.C:681
 compareFlowResults.C:682
 compareFlowResults.C:683
 compareFlowResults.C:684
 compareFlowResults.C:685
 compareFlowResults.C:686
 compareFlowResults.C:687
 compareFlowResults.C:688
 compareFlowResults.C:689
 compareFlowResults.C:690
 compareFlowResults.C:691
 compareFlowResults.C:692
 compareFlowResults.C:693
 compareFlowResults.C:694
 compareFlowResults.C:695
 compareFlowResults.C:696
 compareFlowResults.C:697
 compareFlowResults.C:698
 compareFlowResults.C:699
 compareFlowResults.C:700
 compareFlowResults.C:701
 compareFlowResults.C:702
 compareFlowResults.C:703
 compareFlowResults.C:704
 compareFlowResults.C:705
 compareFlowResults.C:706
 compareFlowResults.C:707
 compareFlowResults.C:708
 compareFlowResults.C:709
 compareFlowResults.C:710
 compareFlowResults.C:711
 compareFlowResults.C:712
 compareFlowResults.C:713
 compareFlowResults.C:714
 compareFlowResults.C:715
 compareFlowResults.C:716
 compareFlowResults.C:717
 compareFlowResults.C:718
 compareFlowResults.C:719
 compareFlowResults.C:720
 compareFlowResults.C:721
 compareFlowResults.C:722
 compareFlowResults.C:723
 compareFlowResults.C:724
 compareFlowResults.C:725
 compareFlowResults.C:726
 compareFlowResults.C:727
 compareFlowResults.C:728
 compareFlowResults.C:729
 compareFlowResults.C:730
 compareFlowResults.C:731
 compareFlowResults.C:732
 compareFlowResults.C:733
 compareFlowResults.C:734
 compareFlowResults.C:735
 compareFlowResults.C:736
 compareFlowResults.C:737
 compareFlowResults.C:738
 compareFlowResults.C:739
 compareFlowResults.C:740
 compareFlowResults.C:741
 compareFlowResults.C:742
 compareFlowResults.C:743
 compareFlowResults.C:744
 compareFlowResults.C:745
 compareFlowResults.C:746
 compareFlowResults.C:747
 compareFlowResults.C:748
 compareFlowResults.C:749
 compareFlowResults.C:750
 compareFlowResults.C:751
 compareFlowResults.C:752
 compareFlowResults.C:753
 compareFlowResults.C:754
 compareFlowResults.C:755
 compareFlowResults.C:756
 compareFlowResults.C:757
 compareFlowResults.C:758
 compareFlowResults.C:759
 compareFlowResults.C:760
 compareFlowResults.C:761
 compareFlowResults.C:762
 compareFlowResults.C:763
 compareFlowResults.C:764
 compareFlowResults.C:765
 compareFlowResults.C:766
 compareFlowResults.C:767
 compareFlowResults.C:768
 compareFlowResults.C:769
 compareFlowResults.C:770
 compareFlowResults.C:771
 compareFlowResults.C:772
 compareFlowResults.C:773
 compareFlowResults.C:774
 compareFlowResults.C:775
 compareFlowResults.C:776
 compareFlowResults.C:777
 compareFlowResults.C:778
 compareFlowResults.C:779
 compareFlowResults.C:780
 compareFlowResults.C:781
 compareFlowResults.C:782
 compareFlowResults.C:783
 compareFlowResults.C:784
 compareFlowResults.C:785
 compareFlowResults.C:786
 compareFlowResults.C:787
 compareFlowResults.C:788
 compareFlowResults.C:789
 compareFlowResults.C:790
 compareFlowResults.C:791
 compareFlowResults.C:792
 compareFlowResults.C:793
 compareFlowResults.C:794
 compareFlowResults.C:795
 compareFlowResults.C:796
 compareFlowResults.C:797
 compareFlowResults.C:798
 compareFlowResults.C:799
 compareFlowResults.C:800
 compareFlowResults.C:801
 compareFlowResults.C:802
 compareFlowResults.C:803
 compareFlowResults.C:804
 compareFlowResults.C:805
 compareFlowResults.C:806
 compareFlowResults.C:807
 compareFlowResults.C:808
 compareFlowResults.C:809
 compareFlowResults.C:810
 compareFlowResults.C:811
 compareFlowResults.C:812
 compareFlowResults.C:813
 compareFlowResults.C:814
 compareFlowResults.C:815
 compareFlowResults.C:816
 compareFlowResults.C:817
 compareFlowResults.C:818
 compareFlowResults.C:819
 compareFlowResults.C:820
 compareFlowResults.C:821
 compareFlowResults.C:822
 compareFlowResults.C:823
 compareFlowResults.C:824
 compareFlowResults.C:825
 compareFlowResults.C:826
 compareFlowResults.C:827
 compareFlowResults.C:828
 compareFlowResults.C:829
 compareFlowResults.C:830
 compareFlowResults.C:831
 compareFlowResults.C:832
 compareFlowResults.C:833
 compareFlowResults.C:834
 compareFlowResults.C:835
 compareFlowResults.C:836
 compareFlowResults.C:837
 compareFlowResults.C:838
 compareFlowResults.C:839
 compareFlowResults.C:840
 compareFlowResults.C:841
 compareFlowResults.C:842
 compareFlowResults.C:843
 compareFlowResults.C:844
 compareFlowResults.C:845
 compareFlowResults.C:846
 compareFlowResults.C:847
 compareFlowResults.C:848
 compareFlowResults.C:849
 compareFlowResults.C:850
 compareFlowResults.C:851
 compareFlowResults.C:852
 compareFlowResults.C:853
 compareFlowResults.C:854
 compareFlowResults.C:855
 compareFlowResults.C:856
 compareFlowResults.C:857
 compareFlowResults.C:858
 compareFlowResults.C:859
 compareFlowResults.C:860
 compareFlowResults.C:861
 compareFlowResults.C:862
 compareFlowResults.C:863
 compareFlowResults.C:864
 compareFlowResults.C:865
 compareFlowResults.C:866
 compareFlowResults.C:867
 compareFlowResults.C:868
 compareFlowResults.C:869
 compareFlowResults.C:870
 compareFlowResults.C:871
 compareFlowResults.C:872
 compareFlowResults.C:873
 compareFlowResults.C:874
 compareFlowResults.C:875
 compareFlowResults.C:876
 compareFlowResults.C:877
 compareFlowResults.C:878
 compareFlowResults.C:879
 compareFlowResults.C:880
 compareFlowResults.C:881
 compareFlowResults.C:882
 compareFlowResults.C:883
 compareFlowResults.C:884
 compareFlowResults.C:885
 compareFlowResults.C:886
 compareFlowResults.C:887
 compareFlowResults.C:888
 compareFlowResults.C:889
 compareFlowResults.C:890
 compareFlowResults.C:891
 compareFlowResults.C:892
 compareFlowResults.C:893
 compareFlowResults.C:894
 compareFlowResults.C:895
 compareFlowResults.C:896
 compareFlowResults.C:897
 compareFlowResults.C:898
 compareFlowResults.C:899
 compareFlowResults.C:900
 compareFlowResults.C:901
 compareFlowResults.C:902
 compareFlowResults.C:903
 compareFlowResults.C:904
 compareFlowResults.C:905
 compareFlowResults.C:906
 compareFlowResults.C:907
 compareFlowResults.C:908
 compareFlowResults.C:909
 compareFlowResults.C:910
 compareFlowResults.C:911
 compareFlowResults.C:912
 compareFlowResults.C:913
 compareFlowResults.C:914
 compareFlowResults.C:915
 compareFlowResults.C:916
 compareFlowResults.C:917
 compareFlowResults.C:918
 compareFlowResults.C:919
 compareFlowResults.C:920
 compareFlowResults.C:921
 compareFlowResults.C:922
 compareFlowResults.C:923
 compareFlowResults.C:924
 compareFlowResults.C:925
 compareFlowResults.C:926
 compareFlowResults.C:927
 compareFlowResults.C:928
 compareFlowResults.C:929
 compareFlowResults.C:930
 compareFlowResults.C:931
 compareFlowResults.C:932
 compareFlowResults.C:933
 compareFlowResults.C:934
 compareFlowResults.C:935
 compareFlowResults.C:936
 compareFlowResults.C:937
 compareFlowResults.C:938
 compareFlowResults.C:939
 compareFlowResults.C:940
 compareFlowResults.C:941
 compareFlowResults.C:942
 compareFlowResults.C:943
 compareFlowResults.C:944
 compareFlowResults.C:945
 compareFlowResults.C:946
 compareFlowResults.C:947
 compareFlowResults.C:948
 compareFlowResults.C:949
 compareFlowResults.C:950
 compareFlowResults.C:951
 compareFlowResults.C:952
 compareFlowResults.C:953
 compareFlowResults.C:954
 compareFlowResults.C:955
 compareFlowResults.C:956
 compareFlowResults.C:957
 compareFlowResults.C:958
 compareFlowResults.C:959
 compareFlowResults.C:960
 compareFlowResults.C:961
 compareFlowResults.C:962
 compareFlowResults.C:963
 compareFlowResults.C:964
 compareFlowResults.C:965
 compareFlowResults.C:966
 compareFlowResults.C:967
 compareFlowResults.C:968
 compareFlowResults.C:969
 compareFlowResults.C:970
 compareFlowResults.C:971
 compareFlowResults.C:972
 compareFlowResults.C:973
 compareFlowResults.C:974
 compareFlowResults.C:975
 compareFlowResults.C:976
 compareFlowResults.C:977
 compareFlowResults.C:978
 compareFlowResults.C:979
 compareFlowResults.C:980
 compareFlowResults.C:981
 compareFlowResults.C:982
 compareFlowResults.C:983
 compareFlowResults.C:984
 compareFlowResults.C:985
 compareFlowResults.C:986
 compareFlowResults.C:987
 compareFlowResults.C:988
 compareFlowResults.C:989
 compareFlowResults.C:990
 compareFlowResults.C:991
 compareFlowResults.C:992
 compareFlowResults.C:993
 compareFlowResults.C:994
 compareFlowResults.C:995
 compareFlowResults.C:996
 compareFlowResults.C:997
 compareFlowResults.C:998
 compareFlowResults.C:999
 compareFlowResults.C:1000
 compareFlowResults.C:1001
 compareFlowResults.C:1002
 compareFlowResults.C:1003
 compareFlowResults.C:1004
 compareFlowResults.C:1005
 compareFlowResults.C:1006
 compareFlowResults.C:1007
 compareFlowResults.C:1008
 compareFlowResults.C:1009
 compareFlowResults.C:1010
 compareFlowResults.C:1011
 compareFlowResults.C:1012
 compareFlowResults.C:1013
 compareFlowResults.C:1014
 compareFlowResults.C:1015
 compareFlowResults.C:1016
 compareFlowResults.C:1017
 compareFlowResults.C:1018
 compareFlowResults.C:1019
 compareFlowResults.C:1020
 compareFlowResults.C:1021
 compareFlowResults.C:1022
 compareFlowResults.C:1023
 compareFlowResults.C:1024
 compareFlowResults.C:1025
 compareFlowResults.C:1026
 compareFlowResults.C:1027
 compareFlowResults.C:1028
 compareFlowResults.C:1029
 compareFlowResults.C:1030
 compareFlowResults.C:1031
 compareFlowResults.C:1032
 compareFlowResults.C:1033
 compareFlowResults.C:1034
 compareFlowResults.C:1035
 compareFlowResults.C:1036
 compareFlowResults.C:1037
 compareFlowResults.C:1038
 compareFlowResults.C:1039
 compareFlowResults.C:1040
 compareFlowResults.C:1041
 compareFlowResults.C:1042
 compareFlowResults.C:1043
 compareFlowResults.C:1044
 compareFlowResults.C:1045
 compareFlowResults.C:1046
 compareFlowResults.C:1047
 compareFlowResults.C:1048
 compareFlowResults.C:1049
 compareFlowResults.C:1050
 compareFlowResults.C:1051
 compareFlowResults.C:1052
 compareFlowResults.C:1053
 compareFlowResults.C:1054
 compareFlowResults.C:1055
 compareFlowResults.C:1056
 compareFlowResults.C:1057
 compareFlowResults.C:1058
 compareFlowResults.C:1059
 compareFlowResults.C:1060
 compareFlowResults.C:1061
 compareFlowResults.C:1062
 compareFlowResults.C:1063
 compareFlowResults.C:1064
 compareFlowResults.C:1065
 compareFlowResults.C:1066
 compareFlowResults.C:1067
 compareFlowResults.C:1068
 compareFlowResults.C:1069
 compareFlowResults.C:1070
 compareFlowResults.C:1071
 compareFlowResults.C:1072
 compareFlowResults.C:1073
 compareFlowResults.C:1074
 compareFlowResults.C:1075
 compareFlowResults.C:1076
 compareFlowResults.C:1077
 compareFlowResults.C:1078
 compareFlowResults.C:1079
 compareFlowResults.C:1080
 compareFlowResults.C:1081
 compareFlowResults.C:1082
 compareFlowResults.C:1083
 compareFlowResults.C:1084
 compareFlowResults.C:1085
 compareFlowResults.C:1086
 compareFlowResults.C:1087
 compareFlowResults.C:1088
 compareFlowResults.C:1089
 compareFlowResults.C:1090
 compareFlowResults.C:1091
 compareFlowResults.C:1092
 compareFlowResults.C:1093
 compareFlowResults.C:1094
 compareFlowResults.C:1095
 compareFlowResults.C:1096
 compareFlowResults.C:1097
 compareFlowResults.C:1098
 compareFlowResults.C:1099
 compareFlowResults.C:1100
 compareFlowResults.C:1101
 compareFlowResults.C:1102
 compareFlowResults.C:1103
 compareFlowResults.C:1104
 compareFlowResults.C:1105
 compareFlowResults.C:1106
 compareFlowResults.C:1107
 compareFlowResults.C:1108
 compareFlowResults.C:1109
 compareFlowResults.C:1110
 compareFlowResults.C:1111
 compareFlowResults.C:1112
 compareFlowResults.C:1113
 compareFlowResults.C:1114
 compareFlowResults.C:1115
 compareFlowResults.C:1116
 compareFlowResults.C:1117
 compareFlowResults.C:1118
 compareFlowResults.C:1119
 compareFlowResults.C:1120
 compareFlowResults.C:1121
 compareFlowResults.C:1122
 compareFlowResults.C:1123
 compareFlowResults.C:1124
 compareFlowResults.C:1125
 compareFlowResults.C:1126
 compareFlowResults.C:1127
 compareFlowResults.C:1128
 compareFlowResults.C:1129
 compareFlowResults.C:1130
 compareFlowResults.C:1131
 compareFlowResults.C:1132
 compareFlowResults.C:1133
 compareFlowResults.C:1134
 compareFlowResults.C:1135
 compareFlowResults.C:1136
 compareFlowResults.C:1137
 compareFlowResults.C:1138
 compareFlowResults.C:1139
 compareFlowResults.C:1140
 compareFlowResults.C:1141
 compareFlowResults.C:1142
 compareFlowResults.C:1143
 compareFlowResults.C:1144
 compareFlowResults.C:1145
 compareFlowResults.C:1146
 compareFlowResults.C:1147
 compareFlowResults.C:1148
 compareFlowResults.C:1149
 compareFlowResults.C:1150
 compareFlowResults.C:1151
 compareFlowResults.C:1152
 compareFlowResults.C:1153
 compareFlowResults.C:1154
 compareFlowResults.C:1155
 compareFlowResults.C:1156
 compareFlowResults.C:1157
 compareFlowResults.C:1158
 compareFlowResults.C:1159
 compareFlowResults.C:1160
 compareFlowResults.C:1161
 compareFlowResults.C:1162
 compareFlowResults.C:1163
 compareFlowResults.C:1164
 compareFlowResults.C:1165
 compareFlowResults.C:1166
 compareFlowResults.C:1167
 compareFlowResults.C:1168
 compareFlowResults.C:1169
 compareFlowResults.C:1170
 compareFlowResults.C:1171
 compareFlowResults.C:1172
 compareFlowResults.C:1173
 compareFlowResults.C:1174
 compareFlowResults.C:1175
 compareFlowResults.C:1176
 compareFlowResults.C:1177
 compareFlowResults.C:1178
 compareFlowResults.C:1179
 compareFlowResults.C:1180
 compareFlowResults.C:1181
 compareFlowResults.C:1182
 compareFlowResults.C:1183
 compareFlowResults.C:1184
 compareFlowResults.C:1185
 compareFlowResults.C:1186
 compareFlowResults.C:1187
 compareFlowResults.C:1188
 compareFlowResults.C:1189
 compareFlowResults.C:1190
 compareFlowResults.C:1191
 compareFlowResults.C:1192
 compareFlowResults.C:1193
 compareFlowResults.C:1194
 compareFlowResults.C:1195
 compareFlowResults.C:1196
 compareFlowResults.C:1197
 compareFlowResults.C:1198
 compareFlowResults.C:1199
 compareFlowResults.C:1200
 compareFlowResults.C:1201
 compareFlowResults.C:1202
 compareFlowResults.C:1203
 compareFlowResults.C:1204
 compareFlowResults.C:1205
 compareFlowResults.C:1206
 compareFlowResults.C:1207
 compareFlowResults.C:1208
 compareFlowResults.C:1209
 compareFlowResults.C:1210
 compareFlowResults.C:1211
 compareFlowResults.C:1212
 compareFlowResults.C:1213
 compareFlowResults.C:1214
 compareFlowResults.C:1215
 compareFlowResults.C:1216
 compareFlowResults.C:1217
 compareFlowResults.C:1218
 compareFlowResults.C:1219
 compareFlowResults.C:1220
 compareFlowResults.C:1221
 compareFlowResults.C:1222
 compareFlowResults.C:1223
 compareFlowResults.C:1224
 compareFlowResults.C:1225
 compareFlowResults.C:1226
 compareFlowResults.C:1227
 compareFlowResults.C:1228
 compareFlowResults.C:1229
 compareFlowResults.C:1230
 compareFlowResults.C:1231
 compareFlowResults.C:1232
 compareFlowResults.C:1233
 compareFlowResults.C:1234
 compareFlowResults.C:1235
 compareFlowResults.C:1236
 compareFlowResults.C:1237
 compareFlowResults.C:1238
 compareFlowResults.C:1239
 compareFlowResults.C:1240
 compareFlowResults.C:1241
 compareFlowResults.C:1242
 compareFlowResults.C:1243
 compareFlowResults.C:1244
 compareFlowResults.C:1245
 compareFlowResults.C:1246
 compareFlowResults.C:1247
 compareFlowResults.C:1248
 compareFlowResults.C:1249
 compareFlowResults.C:1250
 compareFlowResults.C:1251
 compareFlowResults.C:1252
 compareFlowResults.C:1253
 compareFlowResults.C:1254
 compareFlowResults.C:1255
 compareFlowResults.C:1256
 compareFlowResults.C:1257
 compareFlowResults.C:1258
 compareFlowResults.C:1259
 compareFlowResults.C:1260
 compareFlowResults.C:1261
 compareFlowResults.C:1262
 compareFlowResults.C:1263
 compareFlowResults.C:1264
 compareFlowResults.C:1265
 compareFlowResults.C:1266
 compareFlowResults.C:1267
 compareFlowResults.C:1268
 compareFlowResults.C:1269
 compareFlowResults.C:1270
 compareFlowResults.C:1271
 compareFlowResults.C:1272
 compareFlowResults.C:1273
 compareFlowResults.C:1274
 compareFlowResults.C:1275
 compareFlowResults.C:1276
 compareFlowResults.C:1277
 compareFlowResults.C:1278
 compareFlowResults.C:1279
 compareFlowResults.C:1280
 compareFlowResults.C:1281
 compareFlowResults.C:1282
 compareFlowResults.C:1283
 compareFlowResults.C:1284
 compareFlowResults.C:1285
 compareFlowResults.C:1286
 compareFlowResults.C:1287
 compareFlowResults.C:1288
 compareFlowResults.C:1289
 compareFlowResults.C:1290
 compareFlowResults.C:1291
 compareFlowResults.C:1292
 compareFlowResults.C:1293
 compareFlowResults.C:1294
 compareFlowResults.C:1295
 compareFlowResults.C:1296
 compareFlowResults.C:1297
 compareFlowResults.C:1298
 compareFlowResults.C:1299
 compareFlowResults.C:1300
 compareFlowResults.C:1301
 compareFlowResults.C:1302
 compareFlowResults.C:1303
 compareFlowResults.C:1304
 compareFlowResults.C:1305
 compareFlowResults.C:1306
 compareFlowResults.C:1307
 compareFlowResults.C:1308
 compareFlowResults.C:1309
 compareFlowResults.C:1310
 compareFlowResults.C:1311
 compareFlowResults.C:1312
 compareFlowResults.C:1313
 compareFlowResults.C:1314
 compareFlowResults.C:1315
 compareFlowResults.C:1316
 compareFlowResults.C:1317
 compareFlowResults.C:1318
 compareFlowResults.C:1319
 compareFlowResults.C:1320
 compareFlowResults.C:1321
 compareFlowResults.C:1322
 compareFlowResults.C:1323
 compareFlowResults.C:1324
 compareFlowResults.C:1325
 compareFlowResults.C:1326
 compareFlowResults.C:1327
 compareFlowResults.C:1328
 compareFlowResults.C:1329
 compareFlowResults.C:1330
 compareFlowResults.C:1331
 compareFlowResults.C:1332
 compareFlowResults.C:1333
 compareFlowResults.C:1334
 compareFlowResults.C:1335
 compareFlowResults.C:1336
 compareFlowResults.C:1337
 compareFlowResults.C:1338
 compareFlowResults.C:1339
 compareFlowResults.C:1340
 compareFlowResults.C:1341
 compareFlowResults.C:1342
 compareFlowResults.C:1343
 compareFlowResults.C:1344
 compareFlowResults.C:1345
 compareFlowResults.C:1346
 compareFlowResults.C:1347
 compareFlowResults.C:1348
 compareFlowResults.C:1349
 compareFlowResults.C:1350
 compareFlowResults.C:1351
 compareFlowResults.C:1352
 compareFlowResults.C:1353
 compareFlowResults.C:1354
 compareFlowResults.C:1355
 compareFlowResults.C:1356
 compareFlowResults.C:1357
 compareFlowResults.C:1358
 compareFlowResults.C:1359
 compareFlowResults.C:1360
 compareFlowResults.C:1361
 compareFlowResults.C:1362
 compareFlowResults.C:1363
 compareFlowResults.C:1364
 compareFlowResults.C:1365
 compareFlowResults.C:1366
 compareFlowResults.C:1367
 compareFlowResults.C:1368
 compareFlowResults.C:1369
 compareFlowResults.C:1370
 compareFlowResults.C:1371
 compareFlowResults.C:1372
 compareFlowResults.C:1373
 compareFlowResults.C:1374
 compareFlowResults.C:1375
 compareFlowResults.C:1376
 compareFlowResults.C:1377
 compareFlowResults.C:1378
 compareFlowResults.C:1379
 compareFlowResults.C:1380
 compareFlowResults.C:1381
 compareFlowResults.C:1382
 compareFlowResults.C:1383
 compareFlowResults.C:1384
 compareFlowResults.C:1385
 compareFlowResults.C:1386
 compareFlowResults.C:1387
 compareFlowResults.C:1388
 compareFlowResults.C:1389
 compareFlowResults.C:1390
 compareFlowResults.C:1391
 compareFlowResults.C:1392
 compareFlowResults.C:1393
 compareFlowResults.C:1394
 compareFlowResults.C:1395
 compareFlowResults.C:1396
 compareFlowResults.C:1397
 compareFlowResults.C:1398
 compareFlowResults.C:1399
 compareFlowResults.C:1400
 compareFlowResults.C:1401
 compareFlowResults.C:1402
 compareFlowResults.C:1403
 compareFlowResults.C:1404
 compareFlowResults.C:1405
 compareFlowResults.C:1406
 compareFlowResults.C:1407
 compareFlowResults.C:1408
 compareFlowResults.C:1409
 compareFlowResults.C:1410
 compareFlowResults.C:1411
 compareFlowResults.C:1412
 compareFlowResults.C:1413
 compareFlowResults.C:1414
 compareFlowResults.C:1415
 compareFlowResults.C:1416
 compareFlowResults.C:1417
 compareFlowResults.C:1418
 compareFlowResults.C:1419
 compareFlowResults.C:1420
 compareFlowResults.C:1421
 compareFlowResults.C:1422
 compareFlowResults.C:1423
 compareFlowResults.C:1424
 compareFlowResults.C:1425
 compareFlowResults.C:1426
 compareFlowResults.C:1427
 compareFlowResults.C:1428
 compareFlowResults.C:1429
 compareFlowResults.C:1430
 compareFlowResults.C:1431
 compareFlowResults.C:1432
 compareFlowResults.C:1433
 compareFlowResults.C:1434
 compareFlowResults.C:1435
 compareFlowResults.C:1436
 compareFlowResults.C:1437
 compareFlowResults.C:1438
 compareFlowResults.C:1439
 compareFlowResults.C:1440
 compareFlowResults.C:1441
 compareFlowResults.C:1442
 compareFlowResults.C:1443
 compareFlowResults.C:1444
 compareFlowResults.C:1445
 compareFlowResults.C:1446
 compareFlowResults.C:1447
 compareFlowResults.C:1448
 compareFlowResults.C:1449
 compareFlowResults.C:1450
 compareFlowResults.C:1451
 compareFlowResults.C:1452
 compareFlowResults.C:1453
 compareFlowResults.C:1454
 compareFlowResults.C:1455
 compareFlowResults.C:1456
 compareFlowResults.C:1457
 compareFlowResults.C:1458
 compareFlowResults.C:1459
 compareFlowResults.C:1460
 compareFlowResults.C:1461
 compareFlowResults.C:1462
 compareFlowResults.C:1463
 compareFlowResults.C:1464
 compareFlowResults.C:1465
 compareFlowResults.C:1466
 compareFlowResults.C:1467
 compareFlowResults.C:1468
 compareFlowResults.C:1469
 compareFlowResults.C:1470
 compareFlowResults.C:1471
 compareFlowResults.C:1472
 compareFlowResults.C:1473
 compareFlowResults.C:1474
 compareFlowResults.C:1475
 compareFlowResults.C:1476
 compareFlowResults.C:1477
 compareFlowResults.C:1478
 compareFlowResults.C:1479
 compareFlowResults.C:1480
 compareFlowResults.C:1481
 compareFlowResults.C:1482
 compareFlowResults.C:1483
 compareFlowResults.C:1484
 compareFlowResults.C:1485
 compareFlowResults.C:1486
 compareFlowResults.C:1487
 compareFlowResults.C:1488
 compareFlowResults.C:1489
 compareFlowResults.C:1490
 compareFlowResults.C:1491
 compareFlowResults.C:1492
 compareFlowResults.C:1493
 compareFlowResults.C:1494
 compareFlowResults.C:1495
 compareFlowResults.C:1496
 compareFlowResults.C:1497
 compareFlowResults.C:1498
 compareFlowResults.C:1499
 compareFlowResults.C:1500
 compareFlowResults.C:1501
 compareFlowResults.C:1502
 compareFlowResults.C:1503
 compareFlowResults.C:1504
 compareFlowResults.C:1505
 compareFlowResults.C:1506
 compareFlowResults.C:1507
 compareFlowResults.C:1508
 compareFlowResults.C:1509
 compareFlowResults.C:1510
 compareFlowResults.C:1511
 compareFlowResults.C:1512
 compareFlowResults.C:1513
 compareFlowResults.C:1514
 compareFlowResults.C:1515
 compareFlowResults.C:1516
 compareFlowResults.C:1517
 compareFlowResults.C:1518
 compareFlowResults.C:1519
 compareFlowResults.C:1520
 compareFlowResults.C:1521
 compareFlowResults.C:1522
 compareFlowResults.C:1523
 compareFlowResults.C:1524
 compareFlowResults.C:1525
 compareFlowResults.C:1526
 compareFlowResults.C:1527
 compareFlowResults.C:1528
 compareFlowResults.C:1529
 compareFlowResults.C:1530
 compareFlowResults.C:1531
 compareFlowResults.C:1532
 compareFlowResults.C:1533
 compareFlowResults.C:1534
 compareFlowResults.C:1535
 compareFlowResults.C:1536
 compareFlowResults.C:1537
 compareFlowResults.C:1538
 compareFlowResults.C:1539
 compareFlowResults.C:1540
 compareFlowResults.C:1541
 compareFlowResults.C:1542
 compareFlowResults.C:1543
 compareFlowResults.C:1544
 compareFlowResults.C:1545
 compareFlowResults.C:1546
 compareFlowResults.C:1547
 compareFlowResults.C:1548
 compareFlowResults.C:1549
 compareFlowResults.C:1550
 compareFlowResults.C:1551
 compareFlowResults.C:1552
 compareFlowResults.C:1553
 compareFlowResults.C:1554
 compareFlowResults.C:1555
 compareFlowResults.C:1556
 compareFlowResults.C:1557
 compareFlowResults.C:1558
 compareFlowResults.C:1559
 compareFlowResults.C:1560
 compareFlowResults.C:1561
 compareFlowResults.C:1562
 compareFlowResults.C:1563
 compareFlowResults.C:1564
 compareFlowResults.C:1565
 compareFlowResults.C:1566
 compareFlowResults.C:1567
 compareFlowResults.C:1568
 compareFlowResults.C:1569
 compareFlowResults.C:1570
 compareFlowResults.C:1571
 compareFlowResults.C:1572
 compareFlowResults.C:1573
 compareFlowResults.C:1574
 compareFlowResults.C:1575
 compareFlowResults.C:1576
 compareFlowResults.C:1577
 compareFlowResults.C:1578
 compareFlowResults.C:1579
 compareFlowResults.C:1580
 compareFlowResults.C:1581
 compareFlowResults.C:1582
 compareFlowResults.C:1583
 compareFlowResults.C:1584
 compareFlowResults.C:1585
 compareFlowResults.C:1586
 compareFlowResults.C:1587
 compareFlowResults.C:1588
 compareFlowResults.C:1589
 compareFlowResults.C:1590
 compareFlowResults.C:1591
 compareFlowResults.C:1592
 compareFlowResults.C:1593
 compareFlowResults.C:1594
 compareFlowResults.C:1595
 compareFlowResults.C:1596
 compareFlowResults.C:1597
 compareFlowResults.C:1598
 compareFlowResults.C:1599
 compareFlowResults.C:1600
 compareFlowResults.C:1601
 compareFlowResults.C:1602
 compareFlowResults.C:1603
 compareFlowResults.C:1604
 compareFlowResults.C:1605
 compareFlowResults.C:1606
 compareFlowResults.C:1607
 compareFlowResults.C:1608
 compareFlowResults.C:1609
 compareFlowResults.C:1610
 compareFlowResults.C:1611
 compareFlowResults.C:1612
 compareFlowResults.C:1613
 compareFlowResults.C:1614
 compareFlowResults.C:1615
 compareFlowResults.C:1616
 compareFlowResults.C:1617
 compareFlowResults.C:1618
 compareFlowResults.C:1619
 compareFlowResults.C:1620
 compareFlowResults.C:1621
 compareFlowResults.C:1622
 compareFlowResults.C:1623
 compareFlowResults.C:1624
 compareFlowResults.C:1625
 compareFlowResults.C:1626
 compareFlowResults.C:1627
 compareFlowResults.C:1628
 compareFlowResults.C:1629
 compareFlowResults.C:1630
 compareFlowResults.C:1631
 compareFlowResults.C:1632
 compareFlowResults.C:1633
 compareFlowResults.C:1634
 compareFlowResults.C:1635
 compareFlowResults.C:1636
 compareFlowResults.C:1637
 compareFlowResults.C:1638
 compareFlowResults.C:1639
 compareFlowResults.C:1640
 compareFlowResults.C:1641
 compareFlowResults.C:1642
 compareFlowResults.C:1643
 compareFlowResults.C:1644
 compareFlowResults.C:1645
 compareFlowResults.C:1646
 compareFlowResults.C:1647
 compareFlowResults.C:1648
 compareFlowResults.C:1649
 compareFlowResults.C:1650
 compareFlowResults.C:1651
 compareFlowResults.C:1652
 compareFlowResults.C:1653
 compareFlowResults.C:1654
 compareFlowResults.C:1655
 compareFlowResults.C:1656
 compareFlowResults.C:1657
 compareFlowResults.C:1658
 compareFlowResults.C:1659
 compareFlowResults.C:1660
 compareFlowResults.C:1661
 compareFlowResults.C:1662
 compareFlowResults.C:1663
 compareFlowResults.C:1664
 compareFlowResults.C:1665
 compareFlowResults.C:1666
 compareFlowResults.C:1667
 compareFlowResults.C:1668
 compareFlowResults.C:1669
 compareFlowResults.C:1670
 compareFlowResults.C:1671
 compareFlowResults.C:1672
 compareFlowResults.C:1673
 compareFlowResults.C:1674
 compareFlowResults.C:1675
 compareFlowResults.C:1676
 compareFlowResults.C:1677
 compareFlowResults.C:1678
 compareFlowResults.C:1679
 compareFlowResults.C:1680
 compareFlowResults.C:1681
 compareFlowResults.C:1682
 compareFlowResults.C:1683
 compareFlowResults.C:1684
 compareFlowResults.C:1685
 compareFlowResults.C:1686
 compareFlowResults.C:1687
 compareFlowResults.C:1688
 compareFlowResults.C:1689
 compareFlowResults.C:1690
 compareFlowResults.C:1691
 compareFlowResults.C:1692
 compareFlowResults.C:1693
 compareFlowResults.C:1694
 compareFlowResults.C:1695
 compareFlowResults.C:1696
 compareFlowResults.C:1697
 compareFlowResults.C:1698
 compareFlowResults.C:1699
 compareFlowResults.C:1700
 compareFlowResults.C:1701
 compareFlowResults.C:1702
 compareFlowResults.C:1703
 compareFlowResults.C:1704
 compareFlowResults.C:1705
 compareFlowResults.C:1706
 compareFlowResults.C:1707
 compareFlowResults.C:1708
 compareFlowResults.C:1709
 compareFlowResults.C:1710
 compareFlowResults.C:1711
 compareFlowResults.C:1712
 compareFlowResults.C:1713
 compareFlowResults.C:1714
 compareFlowResults.C:1715
 compareFlowResults.C:1716
 compareFlowResults.C:1717
 compareFlowResults.C:1718
 compareFlowResults.C:1719
 compareFlowResults.C:1720
 compareFlowResults.C:1721
 compareFlowResults.C:1722
 compareFlowResults.C:1723