ROOT logo
#include <TFile.h>
#include <TProfile.h>
#include <TList.h>
#include <TError.h>
#include <TCanvas.h>
#include <TPad.h>
#include <TStyle.h>
#include <TLegend.h>
#include <TMath.h>
#include <TLatex.h>
/**
 * @defgroup pwglf_forward_scripts_flow Flow scripts
 *
 * Various functions to do stuff on flow 
 *
 * @ingroup pwglf_forward_scripts
 * 
 */
// Data members
const char* pdfName = "Flow.pdf";


/** 
 * @todo Document me  
 * 
 * @param name 
 * 
 * @return 
 *
 * @ingroup pwglf_forward_scripts_flow
 */
TCanvas* SetupCanvas(TString name)
{
  TCanvas* c = new TCanvas("c","c",640,960);

  c->SetFillColor(0);
  c->SetBorderMode(0);
  c->SetBorderSize(0);
  c->cd();

  if (name.Contains("Monitoring")) return c;

  TPad* p1 = new TPad("p1", "p1", 0, 0.5, 1.0, 1.0, 0, 0);
  p1->SetTopMargin(0.1);
  p1->SetBottomMargin(0.1);
  p1->SetRightMargin(0.05);
  p1->SetGridx();
  p1->SetTicks(1, 1);
  p1->Draw();
  p1->cd();

  TProfile* p = new TProfile(name, "p", 48, -6, 6);
  p->GetYaxis()->SetRangeUser(0, 0.083);
  p->GetXaxis()->SetTitleFont(22);
  p->GetXaxis()->SetLabelFont(22);
  p->GetYaxis()->SetTitleFont(22);
  p->GetYaxis()->SetLabelFont(22);
  p->SetXTitle("#eta");
  p->SetYTitle("v_{2}");
  p->Draw();

  TLatex* pt = new TLatex(.12, .87, "FMD Preliminary");
  pt->SetNDC();
  pt->SetTextFont(22);
  pt->SetTextSize(0.07);
  pt->SetTextColor(kRed+1);
  pt->SetTextAlign(13);
  pt->Draw();

  c->cd();

  TPad* p2 = new TPad("p2", "p2", 0, 0.25, 1.0, 0.5, 0, 0);
  p2->SetTopMargin(0.);
  p2->SetRightMargin(0.05);
  p2->SetBottomMargin(0.2);
  p2->SetGridx();
  p2->SetGridy();
  p2->SetTicks(1,1);
  p2->Draw();
  p2->cd();

  TProfile* pp = new TProfile(Form("%s_diff", name.Data()), "p", 48, -6, 6);
  pp->GetXaxis()->SetTitleFont(22);
  pp->GetXaxis()->SetLabelFont(22);
  pp->GetYaxis()->SetTitleFont(22);
  pp->GetYaxis()->SetLabelFont(22);
  pp->SetXTitle("#eta");
  if ( name.Contains("MC")) {
    pp->SetYTitle("measured / truth");
    pp->GetYaxis()->SetRangeUser(0.51, 1.15);
  }
  if (!name.Contains("MC")) {
    pp->SetYTitle("v_{2}{2} / v_{2}{4}");
    pp->GetYaxis()->SetRangeUser(0.98, 1.17);
  }
  pp->GetXaxis()->SetTitleSize(2.*p->GetXaxis()->GetTitleSize());
  pp->GetXaxis()->SetLabelSize(2.*p->GetXaxis()->GetLabelSize());
  pp->GetYaxis()->SetTitleSize(2.*p->GetYaxis()->GetTitleSize());
  pp->GetYaxis()->SetLabelSize(2.*p->GetYaxis()->GetLabelSize());
  pp->GetYaxis()->SetTitleOffset(0.5);
  pp->Draw();

  TF1* oneLine = new TF1("oneLine","1",-6,6);
  oneLine->SetLineWidth(0.5);
  oneLine->Draw("same");

  if (!name.Contains("MC")) return c;

  c->cd();

  TPad* p3 = new TPad("p3", "p3", 0, 0, 1.0, 0.25, 0, 0);
  p3->SetTopMargin(0.);
  p3->SetRightMargin(0.05);
  p3->SetBottomMargin(0.2);
  p3->SetGridx();
  p3->SetGridy();
  p3->SetTicks(1,1);
  p3->Draw();
  p3->cd();

  TProfile* ppp = new TProfile(Form("%s_trdiff", name.Data()), "p", 48, -6, 6);
  ppp->GetXaxis()->SetTitleFont(22);
  ppp->GetXaxis()->SetLabelFont(22);
  ppp->GetYaxis()->SetTitleFont(22);
  ppp->GetYaxis()->SetLabelFont(22);
  ppp->GetYaxis()->SetRangeUser(0.66, 1.19);
  ppp->SetXTitle("#eta");
  ppp->SetYTitle("measured / track ref");
  ppp->GetXaxis()->SetTitleSize(2.*p->GetXaxis()->GetTitleSize());
  ppp->GetXaxis()->SetLabelSize(2.*p->GetXaxis()->GetLabelSize());
  ppp->GetYaxis()->SetTitleSize(2.*p->GetYaxis()->GetTitleSize());
  ppp->GetYaxis()->SetLabelSize(2.*p->GetYaxis()->GetLabelSize());
  ppp->GetYaxis()->SetTitleOffset(0.5);
  ppp->Draw();

  oneLine->Draw("same");

  return c;
}

/** 
 * @todo Document me 
 * 
 * @param f 
 *
 * @ingroup pwglf_forward_scripts_flow
 */
void MakeFmdAndSpdPlots(TFile* f) 
{
  TList* qList = static_cast<TList*>(f->Get("FlowResults/QCumulants"));
  TList* aList = static_cast<TList*>(qList->FindObject("FMD"));
  TList* fmdList = static_cast<TList*>(aList->FindObject("v2"));
  aList = static_cast<TList*>(qList->FindObject("SPD"));
  TList* spdList = static_cast<TList*>(aList->FindObject("v2"));

  TPad*     pad = 0;
   
  Int_t y[11] = { 0, 5, 10, 20, 30, 40, 50, 60, 70, 80, 100 };
  for (Int_t c = -2; c < 10; c++) {
    TProfile* fmd2DiffHist = 0;
    TProfile* spd2DiffHist = 0;
    TProfile* fmd4DiffHist = 0;
    TProfile* spd4DiffHist = 0;
    TH1D*       fmdDiff = 0;
    TH1D*       spdDiff = 0;
    TH1D*       fmd = 0;
    TH1D*       spd = 0;
 
     if (c == -2) {
      fmd2DiffHist = (TProfile*)fmdList->FindObject("hQ2Cumulant2DiffFlowFMD_mb");
      spd2DiffHist = (TProfile*)spdList->FindObject("hQ2Cumulant2DiffFlowSPD_mb");
      fmd4DiffHist = (TProfile*)fmdList->FindObject("hQ2Cumulant4DiffFlowFMD_mb");
      spd4DiffHist = (TProfile*)spdList->FindObject("hQ2Cumulant4DiffFlowSPD_mb");
    }
    else if (c == -1) {
      fmd2DiffHist = (TProfile*)fmdList->FindObject("hQ2Cumulant2DiffFlowFMD_0_40");
      spd2DiffHist = (TProfile*)spdList->FindObject("hQ2Cumulant2DiffFlowSPD_0_40");
      fmd4DiffHist = (TProfile*)fmdList->FindObject("hQ2Cumulant4DiffFlowFMD_0_40");
      spd4DiffHist = (TProfile*)spdList->FindObject("hQ2Cumulant4DiffFlowSPD_0_40");
    }
    else {
      fmd2DiffHist = (TProfile*)fmdList->FindObject(Form("hQ2Cumulant2DiffFlowFMD_%d_%d", y[c], y[c+1]));
      spd2DiffHist = (TProfile*)spdList->FindObject(Form("hQ2Cumulant2DiffFlowSPD_%d_%d", y[c], y[c+1]));
      fmd4DiffHist = (TProfile*)fmdList->FindObject(Form("hQ2Cumulant4DiffFlowFMD_%d_%d", y[c], y[c+1]));
      spd4DiffHist = (TProfile*)spdList->FindObject(Form("hQ2Cumulant4DiffFlowSPD_%d_%d", y[c], y[c+1]));
    }
    
    TString name = "v_{2}{2} and v_{2}{4} ";
    if (c == -2)      name += "Minimum Bias";
    else if (c == -1) name += "0-40% Centrality"; 
    else {
                      name += TString::Format("%d-%d", y[c], y[c+1]);
                      name += "% Centrality";
    }

    TCanvas* c1 = SetupCanvas(name);
    pad = (TPad*)c1->GetPrimitive("p1");
    pad->cd();
    
    TLatex* tit = new TLatex(0.10, 0.95, name);
    tit->SetNDC();
    tit->SetTextFont(132);
    tit->SetTextSize(0.07);
    tit->Draw();

    Int_t nEvs = (Int_t)fmd2DiffHist->GetBinContent(fmd2DiffHist->GetNbinsX()+1);
    TLatex* et = new TLatex(.93, .87, Form("%d events", nEvs));
    et->SetNDC();
    et->SetTextFont(132);
    et->SetTextAlign(33);
    et->Draw();

    fmd2DiffHist->SetMarkerStyle(22);
    spd2DiffHist->SetMarkerStyle(23);
    fmd4DiffHist->SetMarkerStyle(22);
    spd4DiffHist->SetMarkerStyle(23);

    fmd2DiffHist->SetMarkerColor(kRed);
    spd2DiffHist->SetMarkerColor(kRed);
    fmd4DiffHist->SetMarkerColor(kBlue);
    spd4DiffHist->SetMarkerColor(kBlue);

    fmd2DiffHist->SetLineColor(kRed);
    spd2DiffHist->SetLineColor(kRed);
    fmd4DiffHist->SetLineColor(kBlue);
    spd4DiffHist->SetLineColor(kBlue);

    spd2DiffHist->Draw("same e1");
    fmd2DiffHist->Draw("same e1");
    spd4DiffHist->Draw("same e1");
    fmd4DiffHist->Draw("same e1");

    TLegend* l = new TLegend(.12,.40,.35,.80);
//    l->SetNColumns(2);
    l->SetFillColor(0);
    l->SetFillStyle(0);
    l->SetBorderSize(0);
    l->SetTextFont(132);
    l->AddEntry(fmd2DiffHist, "FMD v_{2}{2}", "lpe");
    l->AddEntry(spd2DiffHist, "SPD v_{2}{2}", "lpe");
    l->AddEntry(fmd4DiffHist, "FMD v_{2}{4}", "lpe");
    l->AddEntry(spd4DiffHist, "SPD v_{2}{4}", "lpe");
    l->Draw();

    pad = (TPad*)c1->GetPrimitive("p2");
    pad->cd();

    fmdDiff = fmd2DiffHist->ProjectionX("fmdDiff", "e");
    fmd = fmd4DiffHist->ProjectionX("fmd4Diff", "e");
    fmdDiff->Divide(fmd);
    fmdDiff->SetLineColor(kBlue);
    fmdDiff->Draw("same e1");

    spdDiff = spd2DiffHist->ProjectionX("spdDiff", "e");
    spd = spd4DiffHist->ProjectionX("spd4Diff", "e");
    spdDiff->Divide(spd);
    spdDiff->SetLineColor(kRed);
    spdDiff->Draw("same e1");

    name.Prepend("Title:");
    cout<<name<<endl;
    c1->Print(pdfName, name);

    delete fmd;
    delete spd;
    delete fmdDiff;
    delete spdDiff;
    delete c1;
   } // end of c
}

/** 
 * @todo Document me  
 * 
 * @param f 
 *
 * @ingroup pwglf_forward_scripts_flow
 */
void Make2ParticlePlots(TFile* f) 
{
  TList* qList = static_cast<TList*>(f->Get("FlowResults/QCumulants"));
  TList* aList = static_cast<TList*>(qList->FindObject("MC"));
  TList* mcList = static_cast<TList*>(aList->FindObject("v2"));
  aList = static_cast<TList*>(qList->FindObject("FMDTR"));
  TList* fmdtrList = static_cast<TList*>(aList->FindObject("v2"));
  aList = static_cast<TList*>(qList->FindObject("SPDTR"));
  TList* spdtrList = static_cast<TList*>(aList->FindObject("v2"));
  aList = static_cast<TList*>(qList->FindObject("FMD"));
  TList* fmdList = static_cast<TList*>(aList->FindObject("v2"));
  aList = static_cast<TList*>(qList->FindObject("SPD"));
  TList* spdList = static_cast<TList*>(aList->FindObject("v2"));

  TProfile2D* mcProfile = (TProfile2D*)qList->FindObject("pMCTruth");
  TPad*       pad = 0;

  Int_t y[11] = { 0, 5, 10, 20, 30, 40, 50, 60, 70, 80, 100 };
  for (Int_t c = -2; c < 10; c++) {
    TProfile*   mcDiffHist = 0;
    TProfile*   fmdtrDiffHist = 0;
    TProfile*   spdtrDiffHist = 0;
    TProfile*   fmdDiffHist = 0;
    TProfile*   spdDiffHist = 0;
    TH1D*       mcTruth = 0;
    TH1D*       fmdDiff = 0;
    TH1D*       spdDiff = 0;
    TH1D*       fmdTrDiff = 0;
    TH1D*       spdTrDiff = 0;

    if (c == -2) {
      mcDiffHist = (TProfile*)mcList->FindObject("hQ2Cumulant2DiffFlowMC_mb");
      fmdtrDiffHist = (TProfile*)fmdtrList->FindObject("hQ2Cumulant2DiffFlowFMDTR_mb");
      spdtrDiffHist = (TProfile*)spdtrList->FindObject("hQ2Cumulant2DiffFlowSPDTR_mb");
      fmdDiffHist = (TProfile*)fmdList->FindObject("hQ2Cumulant2DiffFlowFMD_mb");
      spdDiffHist = (TProfile*)spdList->FindObject("hQ2Cumulant2DiffFlowSPD_mb");
      mcTruth = (TH1D*)mcProfile->ProjectionX("mcTruth", 1, 9, "E");
      mcTruth->Scale(1./9.);
    }
    else if (c == -1) {
      mcDiffHist = (TProfile*)mcList->FindObject("hQ2Cumulant2DiffFlowMC_0_40");
      fmdtrDiffHist = (TProfile*)fmdtrList->FindObject("hQ2Cumulant2DiffFlowFMDTR_0_40");
      spdtrDiffHist = (TProfile*)spdtrList->FindObject("hQ2Cumulant2DiffFlowSPDTR_0_40");
      fmdDiffHist = (TProfile*)fmdList->FindObject("hQ2Cumulant2DiffFlowFMD_0_40");
      spdDiffHist = (TProfile*)spdList->FindObject("hQ2Cumulant2DiffFlowSPD_0_40");
      mcTruth = (TH1D*)mcProfile->ProjectionX("mcTruth", 1, 5, "E");
      mcTruth->Scale(1./5.);
    }
    else {
      mcDiffHist = (TProfile*)mcList->FindObject(Form("hQ2Cumulant2DiffFlowMC_%d_%d", y[c], y[c+1]));
      fmdtrDiffHist = (TProfile*)fmdtrList->FindObject(Form("hQ2Cumulant2DiffFlowFMDTR_%d_%d", y[c], y[c+1]));
      spdtrDiffHist = (TProfile*)spdtrList->FindObject(Form("hQ2Cumulant2DiffFlowSPDTR_%d_%d", y[c], y[c+1]));
      fmdDiffHist = (TProfile*)fmdList->FindObject(Form("hQ2Cumulant2DiffFlowFMD_%d_%d", y[c], y[c+1]));
      spdDiffHist = (TProfile*)spdList->FindObject(Form("hQ2Cumulant2DiffFlowSPD_%d_%d", y[c], y[c+1]));
      mcTruth = (TH1D*)mcProfile->ProjectionX("mcTruth", c+1, c+1, "E");
    }

    TString name = "v_{2}{2} MC ";
    if (c == -2)      name += "Minimum Bias";
    else if (c == -1) name += "0-40% Centrality"; 
    else {
                      name += TString::Format("%d-%d", y[c], y[c+1]);
                      name += "% Centrality";
    }
    
    TCanvas* c1 = SetupCanvas(name);
    pad = (TPad*)c1->GetPrimitive("p1");
    pad->cd();

    TLatex* tit = new TLatex(0.10, 0.95, name);
    tit->SetNDC();
    tit->SetTextFont(132);
    tit->SetTextSize(0.07);
    tit->Draw();

    Int_t nEvs = (Int_t)fmdDiffHist->GetBinContent(fmdDiffHist->GetNbinsX()+1);
    TLatex* et = new TLatex(.93, .87, Form("%d events", nEvs));
    et->SetNDC();
    et->SetTextFont(132);
    et->SetTextAlign(33);
    et->Draw();

    mcDiffHist->SetMarkerStyle(21);
    fmdDiffHist->SetLineColor(kBlue);
    spdDiffHist->SetLineColor(kRed);
    fmdtrDiffHist->SetLineColor(kGreen+1);
    spdtrDiffHist->SetLineColor(kCyan+1);
    mcTruth->SetFillColor(kGray);

    mcTruth->Draw("same e3");
    mcDiffHist->Draw("same e1");
    fmdDiffHist->Draw("same e1");
    spdDiffHist->Draw("same e1");
    fmdtrDiffHist->Draw("same e1");
    spdtrDiffHist->Draw("same e1");
 
    TLegend* l = new TLegend(.12,.40,.35,.80);
    l->SetFillColor(0);
    l->SetFillStyle(0);
    l->SetBorderSize(0);
    l->SetTextFont(132);
    l->AddEntry(fmdDiffHist, "FMD", "lpe");
    l->AddEntry(spdDiffHist, "SPD", "lpe");
    l->AddEntry(fmdtrDiffHist, "FMD TrackRefs", "lpe");
    l->AddEntry(spdtrDiffHist, "SPD TrackRefs", "lpe");
    l->AddEntry(mcDiffHist, "MC Truth", "lpe");
    l->AddEntry(mcTruth, "cos(2(#varphi-#Psi_{rp}))", "f");
    l->Draw();

    pad = (TPad*)c1->GetPrimitive("p2");
    pad->cd();

    fmdDiff = fmdDiffHist->ProjectionX("fmdDiff", "e");
    mcDiff1 = mcDiffHist->ProjectionX("mcDiff1", "e");
    fmdDiff->Divide(mcDiff1);
    fmdDiff->SetLineColor(kBlue);
    fmdDiff->Draw("same e1");

    spdDiff = spdDiffHist->ProjectionX("spdDiff", "e");
    mcDiff2 = mcDiffHist->ProjectionX("mcDiff2", "e");
    spdDiff->Divide(mcDiff2);
    spdDiff->SetLineColor(kRed);
    spdDiff->Draw("same e1");

    pad = (TPad*)c1->GetPrimitive("p3");
    pad->cd();

    fmdTrDiff = fmdDiffHist->ProjectionX("fmdTrDiff", "e");
    mcDiff3 = fmdtrDiffHist->ProjectionX("mcDiff3", "e");
    fmdTrDiff->Divide(mcDiff3);
    fmdTrDiff->SetLineColor(kBlue);
    fmdTrDiff->Draw("same e1");

    spdTrDiff = spdDiffHist->ProjectionX("spdTrDiff", "e");
    mcDiff4 = spdtrDiffHist->ProjectionX("mcDiff4", "e");
    spdTrDiff->Divide(mcDiff4);
    spdTrDiff->SetLineColor(kRed);
    spdTrDiff->Draw("same e1");

    name.Prepend("Title:");
    cout<<name<<endl;
    c1->Print(pdfName, name);
  
    delete mcDiff1;
    delete mcDiff2;
    delete mcDiff3;
    delete mcDiff4; 
    delete fmdDiff;
    delete spdDiff;
    delete fmdTrDiff;
    delete spdTrDiff;
    delete c1;
   } // end of c
}

/** 
 * @todo Document me  
 * 
 * @param f 
 *
 * @ingroup pwglf_forward_scripts_flow
 */
void Make4ParticlePlots(TFile* f) 
{
  TList* qList = static_cast<TList*>(f->Get("FlowResults/QCumulants"));
  TList* aList = static_cast<TList*>(qList->FindObject("MC"));
  TList* mcList = static_cast<TList*>(aList->FindObject("v2"));
  aList = static_cast<TList*>(qList->FindObject("FMDTR"));
  TList* fmdtrList = static_cast<TList*>(aList->FindObject("v2"));
  aList = static_cast<TList*>(qList->FindObject("SPDTR"));
  TList* spdtrList = static_cast<TList*>(aList->FindObject("v2"));
  aList = static_cast<TList*>(qList->FindObject("FMD"));
  TList* fmdList = static_cast<TList*>(aList->FindObject("v2"));
  aList = static_cast<TList*>(qList->FindObject("SPD"));
  TList* spdList = static_cast<TList*>(aList->FindObject("v2"));

  TProfile2D* mcProfile = (TProfile2D*)qList->FindObject("pMCTruth");
  TPad*       pad = 0;
 
  Int_t y[11] = { 0, 5, 10, 20, 30, 40, 50, 60, 70, 80, 100 };
  for (Int_t c = -2; c < 10; c++) {
    TProfile* mcDiffHist = 0;
    TProfile* fmdtrDiffHist = 0;
    TProfile* spdtrDiffHist = 0;
    TProfile* fmdDiffHist = 0;
    TProfile* spdDiffHist = 0;
    TH1D*       mcTruth = 0;
    TH1D*       fmdDiff = 0;
    TH1D*       spdDiff = 0;
    TH1D*       fmdTrDiff = 0;
    TH1D*       spdTrDiff = 0;
    TH1D*       mcDiff1 = 0;
    TH1D*       mcDiff2 = 0;
    TH1D*       mcDiff3 = 0;
    TH1D*       mcDiff4 = 0;

    if (c == -2) {
      mcDiffHist = (TProfile*)mcList->FindObject("hQ2Cumulant4DiffFlowMC_mb");
      fmdtrDiffHist = (TProfile*)fmdtrList->FindObject("hQ2Cumulant4DiffFlowFMDTR_mb");
      spdtrDiffHist = (TProfile*)spdtrList->FindObject("hQ2Cumulant4DiffFlowSPDTR_mb");
      fmdDiffHist = (TProfile*)fmdList->FindObject("hQ2Cumulant4DiffFlowFMD_mb");
      spdDiffHist = (TProfile*)spdList->FindObject("hQ2Cumulant4DiffFlowSPD_mb");
      mcTruth = (TH1D*)mcProfile->ProjectionX("mcTruth", 1, 9, "E");
      mcTruth->Scale(1./9.);
    }
    else if (c == -1) {
      mcDiffHist = (TProfile*)mcList->FindObject("hQ2Cumulant4DiffFlowMC_0_40");
      fmdtrDiffHist = (TProfile*)fmdtrList->FindObject("hQ2Cumulant4DiffFlowFMDTR_0_40");
      spdtrDiffHist = (TProfile*)spdtrList->FindObject("hQ2Cumulant4DiffFlowSPDTR_0_40");
      fmdDiffHist = (TProfile*)fmdList->FindObject("hQ2Cumulant4DiffFlowFMD_0_40");
      spdDiffHist = (TProfile*)spdList->FindObject("hQ2Cumulant4DiffFlowSPD_0_40");
      mcTruth = (TH1D*)mcProfile->ProjectionX("mcTruth", 1, 5, "E");
      mcTruth->Scale(1./5.);
    }
    else {
      mcDiffHist = (TProfile*)mcList->FindObject(Form("hQ2Cumulant4DiffFlowMC_%d_%d", y[c], y[c+1]));
      fmdtrDiffHist = (TProfile*)fmdtrList->FindObject(Form("hQ2Cumulant4DiffFlowFMDTR_%d_%d", y[c], y[c+1]));
      spdtrDiffHist = (TProfile*)spdtrList->FindObject(Form("hQ2Cumulant4DiffFlowSPDTR_%d_%d", y[c], y[c+1]));
      fmdDiffHist = (TProfile*)fmdList->FindObject(Form("hQ2Cumulant4DiffFlowFMD_%d_%d", y[c], y[c+1]));
      spdDiffHist = (TProfile*)spdList->FindObject(Form("hQ2Cumulant4DiffFlowSPD_%d_%d", y[c], y[c+1]));
      mcTruth = (TH1D*)mcProfile->ProjectionX("mcTruth", c+1, c+1, "E");
    }
 
    TString name = "v_{2}{4} MC ";
    if (c == -2)      name += "Minimum Bias";
    else if (c == -1) name += "0-40% Centrality"; 
    else {
                      name += TString::Format("%d-%d", y[c], y[c+1]);
                      name += "% Centrality";
    }    
     
    TCanvas* c1 = SetupCanvas(name);
    pad = (TPad*)c1->GetPrimitive("p1");
    pad->cd();

    TLatex* tit = new TLatex(0.10, 0.95, name);
    tit->SetNDC();
    tit->SetTextFont(132);
    tit->SetTextSize(0.07);
    tit->Draw();

    Int_t nEvs = (Int_t)fmdDiffHist->GetBinContent(fmdDiffHist->GetNbinsX()+1);
    TLatex* et = new TLatex(.93, .87, Form("%d events", nEvs));
    et->SetNDC();
    et->SetTextFont(132);
    et->SetTextAlign(33);
    et->Draw();

    mcDiffHist->SetMarkerStyle(21);
    fmdDiffHist->SetLineColor(kBlue);
    spdDiffHist->SetLineColor(kRed);
    fmdtrDiffHist->SetLineColor(kGreen+1);
    spdtrDiffHist->SetLineColor(kCyan+1);
    mcTruth->SetFillColor(kGray);

    mcTruth->Draw("same e3");
    mcDiffHist->Draw("same e1");
    fmdDiffHist->Draw("same e1");
    spdDiffHist->Draw("same e1");
    fmdtrDiffHist->Draw("same e1");
    spdtrDiffHist->Draw("same e1");
 
    TLegend* l = new TLegend(.12,.40,.35,.80);
//    l->SetNColumns(2);
    l->SetFillColor(0);
    l->SetFillStyle(0);
    l->SetBorderSize(0);
    l->SetTextFont(132);
    l->AddEntry(fmdDiffHist, "FMD", "lpe");
    l->AddEntry(spdDiffHist, "SPD", "lpe");
    l->AddEntry(fmdtrDiffHist, "FMD TrackRefs", "lpe");
    l->AddEntry(spdtrDiffHist, "SPD TrackRefs", "lpe");
    l->AddEntry(mcDiffHist, "MC Truth", "lpe");
    l->AddEntry(mcTruth, "cos(2(#varphi-#Psi_{rp}))", "f");
    l->Draw();

    pad = (TPad*)c1->GetPrimitive("p2");
    pad->cd();

    fmdDiff = fmdDiffHist->ProjectionX("fmdDiff", "e");
    mcDiff1 = mcDiffHist->ProjectionX("mcDiff1", "e");
    fmdDiff->Divide(mcDiff1);
    fmdDiff->SetLineColor(kBlue);
    fmdDiff->Draw("same e1");

    spdDiff = spdDiffHist->ProjectionX("spdDiff", "e");
    mcDiff2 = mcDiffHist->ProjectionX("mcDiff2", "e");
    spdDiff->Divide(mcDiff2);
    spdDiff->SetLineColor(kRed);
    spdDiff->Draw("same e1");

    pad = (TPad*)c1->GetPrimitive("p3");
    pad->cd();

    fmdTrDiff = fmdDiffHist->ProjectionX("fmdTrDiff", "e");
    mcDiff3 = fmdtrDiffHist->ProjectionX("mcDiff3", "e");
    fmdTrDiff->Divide(mcDiff3);
    fmdTrDiff->SetLineColor(kBlue);
    fmdTrDiff->Draw("same e1");

    spdTrDiff = spdDiffHist->ProjectionX("spdTrDiff", "e");
    mcDiff4 = spdtrDiffHist->ProjectionX("mcDiff4", "e");
    spdTrDiff->Divide(mcDiff4);
    spdTrDiff->SetLineColor(kRed);
    spdTrDiff->Draw("same e1");

    name.Prepend("Title:");
    cout<<name<<endl;
    c1->Print(pdfName, name);
  
    delete mcDiff1;
    delete mcDiff2;
    delete mcDiff3;
    delete mcDiff4;
    delete fmdDiff;
    delete spdDiff;
    delete fmdTrDiff;
    delete spdTrDiff;
    delete c1;
  } // end of c
}

/** 
 * @todo Document me  
 * 
 * @param f 
 *
 * @ingroup pwglf_forward_scripts_flow
 */
void MakeMonitoringPlots(TFile* f) 
{
  TList* qList = static_cast<TList*>(f->Get("FlowResults/QCumulants"));

  TH1D* cent = (TH1D*)qList->FindObject("Centralities");
  TH2D* vert = (TH2D*)qList->FindObject("CoverageVsVertex");

  TCanvas* c1 = SetupCanvas("Monitoring");
  c1->Divide(1,2);
  c1->cd(1);
  cent->GetXaxis()->SetTitleFont(22);
  cent->GetXaxis()->SetLabelFont(22);
  cent->GetYaxis()->SetTitleFont(22);
  cent->GetYaxis()->SetLabelFont(22);
  cent->SetXTitle("Centrality %");
  cent->SetYTitle("# of events");
  cent->Draw();
  c1->cd(2);
  vert->GetXaxis()->SetTitleFont(22);
  vert->GetXaxis()->SetLabelFont(22);
  vert->GetYaxis()->SetTitleFont(22);
  vert->GetYaxis()->SetLabelFont(22);
  vert->SetXTitle("#eta");
  vert->SetYTitle("Vertex z coordinate [cm]");
  vert->Draw("colz");

  c1->Print(pdfName, "Title:Monitoring Plots");
}


/** 
 * Document me  
 * 
 * @param file 
 *
 * @ingroup pwglf_forward_scripts_flow
 */
void DrawFlowPDF(char* file = "AnalysisResults.root") 
{
  gStyle->SetOptStat(0);
  gStyle->SetOptTitle(0);

  TFile* f = TFile::Open(file, "READ");
  TCanvas* c0 = SetupCanvas("empty");
  c0->SetName("empty");
  c0->Print(Form("%s[", pdfName));
  MakeFmdAndSpdPlots(f);
  Make2ParticlePlots(f);
  Make4ParticlePlots(f);
  MakeMonitoringPlots(f);
  c0->Print(Form("%s]", pdfName));
}
//
// EOF
//
 DrawFlowPDF.C:1
 DrawFlowPDF.C:2
 DrawFlowPDF.C:3
 DrawFlowPDF.C:4
 DrawFlowPDF.C:5
 DrawFlowPDF.C:6
 DrawFlowPDF.C:7
 DrawFlowPDF.C:8
 DrawFlowPDF.C:9
 DrawFlowPDF.C:10
 DrawFlowPDF.C:11
 DrawFlowPDF.C:12
 DrawFlowPDF.C:13
 DrawFlowPDF.C:14
 DrawFlowPDF.C:15
 DrawFlowPDF.C:16
 DrawFlowPDF.C:17
 DrawFlowPDF.C:18
 DrawFlowPDF.C:19
 DrawFlowPDF.C:20
 DrawFlowPDF.C:21
 DrawFlowPDF.C:22
 DrawFlowPDF.C:23
 DrawFlowPDF.C:24
 DrawFlowPDF.C:25
 DrawFlowPDF.C:26
 DrawFlowPDF.C:27
 DrawFlowPDF.C:28
 DrawFlowPDF.C:29
 DrawFlowPDF.C:30
 DrawFlowPDF.C:31
 DrawFlowPDF.C:32
 DrawFlowPDF.C:33
 DrawFlowPDF.C:34
 DrawFlowPDF.C:35
 DrawFlowPDF.C:36
 DrawFlowPDF.C:37
 DrawFlowPDF.C:38
 DrawFlowPDF.C:39
 DrawFlowPDF.C:40
 DrawFlowPDF.C:41
 DrawFlowPDF.C:42
 DrawFlowPDF.C:43
 DrawFlowPDF.C:44
 DrawFlowPDF.C:45
 DrawFlowPDF.C:46
 DrawFlowPDF.C:47
 DrawFlowPDF.C:48
 DrawFlowPDF.C:49
 DrawFlowPDF.C:50
 DrawFlowPDF.C:51
 DrawFlowPDF.C:52
 DrawFlowPDF.C:53
 DrawFlowPDF.C:54
 DrawFlowPDF.C:55
 DrawFlowPDF.C:56
 DrawFlowPDF.C:57
 DrawFlowPDF.C:58
 DrawFlowPDF.C:59
 DrawFlowPDF.C:60
 DrawFlowPDF.C:61
 DrawFlowPDF.C:62
 DrawFlowPDF.C:63
 DrawFlowPDF.C:64
 DrawFlowPDF.C:65
 DrawFlowPDF.C:66
 DrawFlowPDF.C:67
 DrawFlowPDF.C:68
 DrawFlowPDF.C:69
 DrawFlowPDF.C:70
 DrawFlowPDF.C:71
 DrawFlowPDF.C:72
 DrawFlowPDF.C:73
 DrawFlowPDF.C:74
 DrawFlowPDF.C:75
 DrawFlowPDF.C:76
 DrawFlowPDF.C:77
 DrawFlowPDF.C:78
 DrawFlowPDF.C:79
 DrawFlowPDF.C:80
 DrawFlowPDF.C:81
 DrawFlowPDF.C:82
 DrawFlowPDF.C:83
 DrawFlowPDF.C:84
 DrawFlowPDF.C:85
 DrawFlowPDF.C:86
 DrawFlowPDF.C:87
 DrawFlowPDF.C:88
 DrawFlowPDF.C:89
 DrawFlowPDF.C:90
 DrawFlowPDF.C:91
 DrawFlowPDF.C:92
 DrawFlowPDF.C:93
 DrawFlowPDF.C:94
 DrawFlowPDF.C:95
 DrawFlowPDF.C:96
 DrawFlowPDF.C:97
 DrawFlowPDF.C:98
 DrawFlowPDF.C:99
 DrawFlowPDF.C:100
 DrawFlowPDF.C:101
 DrawFlowPDF.C:102
 DrawFlowPDF.C:103
 DrawFlowPDF.C:104
 DrawFlowPDF.C:105
 DrawFlowPDF.C:106
 DrawFlowPDF.C:107
 DrawFlowPDF.C:108
 DrawFlowPDF.C:109
 DrawFlowPDF.C:110
 DrawFlowPDF.C:111
 DrawFlowPDF.C:112
 DrawFlowPDF.C:113
 DrawFlowPDF.C:114
 DrawFlowPDF.C:115
 DrawFlowPDF.C:116
 DrawFlowPDF.C:117
 DrawFlowPDF.C:118
 DrawFlowPDF.C:119
 DrawFlowPDF.C:120
 DrawFlowPDF.C:121
 DrawFlowPDF.C:122
 DrawFlowPDF.C:123
 DrawFlowPDF.C:124
 DrawFlowPDF.C:125
 DrawFlowPDF.C:126
 DrawFlowPDF.C:127
 DrawFlowPDF.C:128
 DrawFlowPDF.C:129
 DrawFlowPDF.C:130
 DrawFlowPDF.C:131
 DrawFlowPDF.C:132
 DrawFlowPDF.C:133
 DrawFlowPDF.C:134
 DrawFlowPDF.C:135
 DrawFlowPDF.C:136
 DrawFlowPDF.C:137
 DrawFlowPDF.C:138
 DrawFlowPDF.C:139
 DrawFlowPDF.C:140
 DrawFlowPDF.C:141
 DrawFlowPDF.C:142
 DrawFlowPDF.C:143
 DrawFlowPDF.C:144
 DrawFlowPDF.C:145
 DrawFlowPDF.C:146
 DrawFlowPDF.C:147
 DrawFlowPDF.C:148
 DrawFlowPDF.C:149
 DrawFlowPDF.C:150
 DrawFlowPDF.C:151
 DrawFlowPDF.C:152
 DrawFlowPDF.C:153
 DrawFlowPDF.C:154
 DrawFlowPDF.C:155
 DrawFlowPDF.C:156
 DrawFlowPDF.C:157
 DrawFlowPDF.C:158
 DrawFlowPDF.C:159
 DrawFlowPDF.C:160
 DrawFlowPDF.C:161
 DrawFlowPDF.C:162
 DrawFlowPDF.C:163
 DrawFlowPDF.C:164
 DrawFlowPDF.C:165
 DrawFlowPDF.C:166
 DrawFlowPDF.C:167
 DrawFlowPDF.C:168
 DrawFlowPDF.C:169
 DrawFlowPDF.C:170
 DrawFlowPDF.C:171
 DrawFlowPDF.C:172
 DrawFlowPDF.C:173
 DrawFlowPDF.C:174
 DrawFlowPDF.C:175
 DrawFlowPDF.C:176
 DrawFlowPDF.C:177
 DrawFlowPDF.C:178
 DrawFlowPDF.C:179
 DrawFlowPDF.C:180
 DrawFlowPDF.C:181
 DrawFlowPDF.C:182
 DrawFlowPDF.C:183
 DrawFlowPDF.C:184
 DrawFlowPDF.C:185
 DrawFlowPDF.C:186
 DrawFlowPDF.C:187
 DrawFlowPDF.C:188
 DrawFlowPDF.C:189
 DrawFlowPDF.C:190
 DrawFlowPDF.C:191
 DrawFlowPDF.C:192
 DrawFlowPDF.C:193
 DrawFlowPDF.C:194
 DrawFlowPDF.C:195
 DrawFlowPDF.C:196
 DrawFlowPDF.C:197
 DrawFlowPDF.C:198
 DrawFlowPDF.C:199
 DrawFlowPDF.C:200
 DrawFlowPDF.C:201
 DrawFlowPDF.C:202
 DrawFlowPDF.C:203
 DrawFlowPDF.C:204
 DrawFlowPDF.C:205
 DrawFlowPDF.C:206
 DrawFlowPDF.C:207
 DrawFlowPDF.C:208
 DrawFlowPDF.C:209
 DrawFlowPDF.C:210
 DrawFlowPDF.C:211
 DrawFlowPDF.C:212
 DrawFlowPDF.C:213
 DrawFlowPDF.C:214
 DrawFlowPDF.C:215
 DrawFlowPDF.C:216
 DrawFlowPDF.C:217
 DrawFlowPDF.C:218
 DrawFlowPDF.C:219
 DrawFlowPDF.C:220
 DrawFlowPDF.C:221
 DrawFlowPDF.C:222
 DrawFlowPDF.C:223
 DrawFlowPDF.C:224
 DrawFlowPDF.C:225
 DrawFlowPDF.C:226
 DrawFlowPDF.C:227
 DrawFlowPDF.C:228
 DrawFlowPDF.C:229
 DrawFlowPDF.C:230
 DrawFlowPDF.C:231
 DrawFlowPDF.C:232
 DrawFlowPDF.C:233
 DrawFlowPDF.C:234
 DrawFlowPDF.C:235
 DrawFlowPDF.C:236
 DrawFlowPDF.C:237
 DrawFlowPDF.C:238
 DrawFlowPDF.C:239
 DrawFlowPDF.C:240
 DrawFlowPDF.C:241
 DrawFlowPDF.C:242
 DrawFlowPDF.C:243
 DrawFlowPDF.C:244
 DrawFlowPDF.C:245
 DrawFlowPDF.C:246
 DrawFlowPDF.C:247
 DrawFlowPDF.C:248
 DrawFlowPDF.C:249
 DrawFlowPDF.C:250
 DrawFlowPDF.C:251
 DrawFlowPDF.C:252
 DrawFlowPDF.C:253
 DrawFlowPDF.C:254
 DrawFlowPDF.C:255
 DrawFlowPDF.C:256
 DrawFlowPDF.C:257
 DrawFlowPDF.C:258
 DrawFlowPDF.C:259
 DrawFlowPDF.C:260
 DrawFlowPDF.C:261
 DrawFlowPDF.C:262
 DrawFlowPDF.C:263
 DrawFlowPDF.C:264
 DrawFlowPDF.C:265
 DrawFlowPDF.C:266
 DrawFlowPDF.C:267
 DrawFlowPDF.C:268
 DrawFlowPDF.C:269
 DrawFlowPDF.C:270
 DrawFlowPDF.C:271
 DrawFlowPDF.C:272
 DrawFlowPDF.C:273
 DrawFlowPDF.C:274
 DrawFlowPDF.C:275
 DrawFlowPDF.C:276
 DrawFlowPDF.C:277
 DrawFlowPDF.C:278
 DrawFlowPDF.C:279
 DrawFlowPDF.C:280
 DrawFlowPDF.C:281
 DrawFlowPDF.C:282
 DrawFlowPDF.C:283
 DrawFlowPDF.C:284
 DrawFlowPDF.C:285
 DrawFlowPDF.C:286
 DrawFlowPDF.C:287
 DrawFlowPDF.C:288
 DrawFlowPDF.C:289
 DrawFlowPDF.C:290
 DrawFlowPDF.C:291
 DrawFlowPDF.C:292
 DrawFlowPDF.C:293
 DrawFlowPDF.C:294
 DrawFlowPDF.C:295
 DrawFlowPDF.C:296
 DrawFlowPDF.C:297
 DrawFlowPDF.C:298
 DrawFlowPDF.C:299
 DrawFlowPDF.C:300
 DrawFlowPDF.C:301
 DrawFlowPDF.C:302
 DrawFlowPDF.C:303
 DrawFlowPDF.C:304
 DrawFlowPDF.C:305
 DrawFlowPDF.C:306
 DrawFlowPDF.C:307
 DrawFlowPDF.C:308
 DrawFlowPDF.C:309
 DrawFlowPDF.C:310
 DrawFlowPDF.C:311
 DrawFlowPDF.C:312
 DrawFlowPDF.C:313
 DrawFlowPDF.C:314
 DrawFlowPDF.C:315
 DrawFlowPDF.C:316
 DrawFlowPDF.C:317
 DrawFlowPDF.C:318
 DrawFlowPDF.C:319
 DrawFlowPDF.C:320
 DrawFlowPDF.C:321
 DrawFlowPDF.C:322
 DrawFlowPDF.C:323
 DrawFlowPDF.C:324
 DrawFlowPDF.C:325
 DrawFlowPDF.C:326
 DrawFlowPDF.C:327
 DrawFlowPDF.C:328
 DrawFlowPDF.C:329
 DrawFlowPDF.C:330
 DrawFlowPDF.C:331
 DrawFlowPDF.C:332
 DrawFlowPDF.C:333
 DrawFlowPDF.C:334
 DrawFlowPDF.C:335
 DrawFlowPDF.C:336
 DrawFlowPDF.C:337
 DrawFlowPDF.C:338
 DrawFlowPDF.C:339
 DrawFlowPDF.C:340
 DrawFlowPDF.C:341
 DrawFlowPDF.C:342
 DrawFlowPDF.C:343
 DrawFlowPDF.C:344
 DrawFlowPDF.C:345
 DrawFlowPDF.C:346
 DrawFlowPDF.C:347
 DrawFlowPDF.C:348
 DrawFlowPDF.C:349
 DrawFlowPDF.C:350
 DrawFlowPDF.C:351
 DrawFlowPDF.C:352
 DrawFlowPDF.C:353
 DrawFlowPDF.C:354
 DrawFlowPDF.C:355
 DrawFlowPDF.C:356
 DrawFlowPDF.C:357
 DrawFlowPDF.C:358
 DrawFlowPDF.C:359
 DrawFlowPDF.C:360
 DrawFlowPDF.C:361
 DrawFlowPDF.C:362
 DrawFlowPDF.C:363
 DrawFlowPDF.C:364
 DrawFlowPDF.C:365
 DrawFlowPDF.C:366
 DrawFlowPDF.C:367
 DrawFlowPDF.C:368
 DrawFlowPDF.C:369
 DrawFlowPDF.C:370
 DrawFlowPDF.C:371
 DrawFlowPDF.C:372
 DrawFlowPDF.C:373
 DrawFlowPDF.C:374
 DrawFlowPDF.C:375
 DrawFlowPDF.C:376
 DrawFlowPDF.C:377
 DrawFlowPDF.C:378
 DrawFlowPDF.C:379
 DrawFlowPDF.C:380
 DrawFlowPDF.C:381
 DrawFlowPDF.C:382
 DrawFlowPDF.C:383
 DrawFlowPDF.C:384
 DrawFlowPDF.C:385
 DrawFlowPDF.C:386
 DrawFlowPDF.C:387
 DrawFlowPDF.C:388
 DrawFlowPDF.C:389
 DrawFlowPDF.C:390
 DrawFlowPDF.C:391
 DrawFlowPDF.C:392
 DrawFlowPDF.C:393
 DrawFlowPDF.C:394
 DrawFlowPDF.C:395
 DrawFlowPDF.C:396
 DrawFlowPDF.C:397
 DrawFlowPDF.C:398
 DrawFlowPDF.C:399
 DrawFlowPDF.C:400
 DrawFlowPDF.C:401
 DrawFlowPDF.C:402
 DrawFlowPDF.C:403
 DrawFlowPDF.C:404
 DrawFlowPDF.C:405
 DrawFlowPDF.C:406
 DrawFlowPDF.C:407
 DrawFlowPDF.C:408
 DrawFlowPDF.C:409
 DrawFlowPDF.C:410
 DrawFlowPDF.C:411
 DrawFlowPDF.C:412
 DrawFlowPDF.C:413
 DrawFlowPDF.C:414
 DrawFlowPDF.C:415
 DrawFlowPDF.C:416
 DrawFlowPDF.C:417
 DrawFlowPDF.C:418
 DrawFlowPDF.C:419
 DrawFlowPDF.C:420
 DrawFlowPDF.C:421
 DrawFlowPDF.C:422
 DrawFlowPDF.C:423
 DrawFlowPDF.C:424
 DrawFlowPDF.C:425
 DrawFlowPDF.C:426
 DrawFlowPDF.C:427
 DrawFlowPDF.C:428
 DrawFlowPDF.C:429
 DrawFlowPDF.C:430
 DrawFlowPDF.C:431
 DrawFlowPDF.C:432
 DrawFlowPDF.C:433
 DrawFlowPDF.C:434
 DrawFlowPDF.C:435
 DrawFlowPDF.C:436
 DrawFlowPDF.C:437
 DrawFlowPDF.C:438
 DrawFlowPDF.C:439
 DrawFlowPDF.C:440
 DrawFlowPDF.C:441
 DrawFlowPDF.C:442
 DrawFlowPDF.C:443
 DrawFlowPDF.C:444
 DrawFlowPDF.C:445
 DrawFlowPDF.C:446
 DrawFlowPDF.C:447
 DrawFlowPDF.C:448
 DrawFlowPDF.C:449
 DrawFlowPDF.C:450
 DrawFlowPDF.C:451
 DrawFlowPDF.C:452
 DrawFlowPDF.C:453
 DrawFlowPDF.C:454
 DrawFlowPDF.C:455
 DrawFlowPDF.C:456
 DrawFlowPDF.C:457
 DrawFlowPDF.C:458
 DrawFlowPDF.C:459
 DrawFlowPDF.C:460
 DrawFlowPDF.C:461
 DrawFlowPDF.C:462
 DrawFlowPDF.C:463
 DrawFlowPDF.C:464
 DrawFlowPDF.C:465
 DrawFlowPDF.C:466
 DrawFlowPDF.C:467
 DrawFlowPDF.C:468
 DrawFlowPDF.C:469
 DrawFlowPDF.C:470
 DrawFlowPDF.C:471
 DrawFlowPDF.C:472
 DrawFlowPDF.C:473
 DrawFlowPDF.C:474
 DrawFlowPDF.C:475
 DrawFlowPDF.C:476
 DrawFlowPDF.C:477
 DrawFlowPDF.C:478
 DrawFlowPDF.C:479
 DrawFlowPDF.C:480
 DrawFlowPDF.C:481
 DrawFlowPDF.C:482
 DrawFlowPDF.C:483
 DrawFlowPDF.C:484
 DrawFlowPDF.C:485
 DrawFlowPDF.C:486
 DrawFlowPDF.C:487
 DrawFlowPDF.C:488
 DrawFlowPDF.C:489
 DrawFlowPDF.C:490
 DrawFlowPDF.C:491
 DrawFlowPDF.C:492
 DrawFlowPDF.C:493
 DrawFlowPDF.C:494
 DrawFlowPDF.C:495
 DrawFlowPDF.C:496
 DrawFlowPDF.C:497
 DrawFlowPDF.C:498
 DrawFlowPDF.C:499
 DrawFlowPDF.C:500
 DrawFlowPDF.C:501
 DrawFlowPDF.C:502
 DrawFlowPDF.C:503
 DrawFlowPDF.C:504
 DrawFlowPDF.C:505
 DrawFlowPDF.C:506
 DrawFlowPDF.C:507
 DrawFlowPDF.C:508
 DrawFlowPDF.C:509
 DrawFlowPDF.C:510
 DrawFlowPDF.C:511
 DrawFlowPDF.C:512
 DrawFlowPDF.C:513
 DrawFlowPDF.C:514
 DrawFlowPDF.C:515
 DrawFlowPDF.C:516
 DrawFlowPDF.C:517
 DrawFlowPDF.C:518
 DrawFlowPDF.C:519
 DrawFlowPDF.C:520
 DrawFlowPDF.C:521
 DrawFlowPDF.C:522
 DrawFlowPDF.C:523
 DrawFlowPDF.C:524
 DrawFlowPDF.C:525
 DrawFlowPDF.C:526
 DrawFlowPDF.C:527
 DrawFlowPDF.C:528
 DrawFlowPDF.C:529
 DrawFlowPDF.C:530
 DrawFlowPDF.C:531
 DrawFlowPDF.C:532
 DrawFlowPDF.C:533
 DrawFlowPDF.C:534
 DrawFlowPDF.C:535
 DrawFlowPDF.C:536
 DrawFlowPDF.C:537
 DrawFlowPDF.C:538
 DrawFlowPDF.C:539
 DrawFlowPDF.C:540
 DrawFlowPDF.C:541
 DrawFlowPDF.C:542
 DrawFlowPDF.C:543
 DrawFlowPDF.C:544
 DrawFlowPDF.C:545
 DrawFlowPDF.C:546
 DrawFlowPDF.C:547
 DrawFlowPDF.C:548
 DrawFlowPDF.C:549
 DrawFlowPDF.C:550
 DrawFlowPDF.C:551
 DrawFlowPDF.C:552
 DrawFlowPDF.C:553
 DrawFlowPDF.C:554
 DrawFlowPDF.C:555
 DrawFlowPDF.C:556
 DrawFlowPDF.C:557
 DrawFlowPDF.C:558
 DrawFlowPDF.C:559
 DrawFlowPDF.C:560
 DrawFlowPDF.C:561
 DrawFlowPDF.C:562
 DrawFlowPDF.C:563
 DrawFlowPDF.C:564
 DrawFlowPDF.C:565
 DrawFlowPDF.C:566
 DrawFlowPDF.C:567
 DrawFlowPDF.C:568
 DrawFlowPDF.C:569
 DrawFlowPDF.C:570
 DrawFlowPDF.C:571
 DrawFlowPDF.C:572
 DrawFlowPDF.C:573
 DrawFlowPDF.C:574
 DrawFlowPDF.C:575
 DrawFlowPDF.C:576
 DrawFlowPDF.C:577
 DrawFlowPDF.C:578
 DrawFlowPDF.C:579
 DrawFlowPDF.C:580
 DrawFlowPDF.C:581
 DrawFlowPDF.C:582
 DrawFlowPDF.C:583
 DrawFlowPDF.C:584
 DrawFlowPDF.C:585
 DrawFlowPDF.C:586
 DrawFlowPDF.C:587
 DrawFlowPDF.C:588
 DrawFlowPDF.C:589
 DrawFlowPDF.C:590
 DrawFlowPDF.C:591
 DrawFlowPDF.C:592
 DrawFlowPDF.C:593
 DrawFlowPDF.C:594
 DrawFlowPDF.C:595
 DrawFlowPDF.C:596
 DrawFlowPDF.C:597
 DrawFlowPDF.C:598
 DrawFlowPDF.C:599
 DrawFlowPDF.C:600
 DrawFlowPDF.C:601
 DrawFlowPDF.C:602
 DrawFlowPDF.C:603
 DrawFlowPDF.C:604
 DrawFlowPDF.C:605
 DrawFlowPDF.C:606
 DrawFlowPDF.C:607
 DrawFlowPDF.C:608
 DrawFlowPDF.C:609
 DrawFlowPDF.C:610
 DrawFlowPDF.C:611
 DrawFlowPDF.C:612
 DrawFlowPDF.C:613
 DrawFlowPDF.C:614
 DrawFlowPDF.C:615
 DrawFlowPDF.C:616
 DrawFlowPDF.C:617
 DrawFlowPDF.C:618
 DrawFlowPDF.C:619
 DrawFlowPDF.C:620
 DrawFlowPDF.C:621
 DrawFlowPDF.C:622
 DrawFlowPDF.C:623
 DrawFlowPDF.C:624
 DrawFlowPDF.C:625
 DrawFlowPDF.C:626
 DrawFlowPDF.C:627
 DrawFlowPDF.C:628
 DrawFlowPDF.C:629
 DrawFlowPDF.C:630
 DrawFlowPDF.C:631
 DrawFlowPDF.C:632
 DrawFlowPDF.C:633
 DrawFlowPDF.C:634
 DrawFlowPDF.C:635
 DrawFlowPDF.C:636
 DrawFlowPDF.C:637
 DrawFlowPDF.C:638
 DrawFlowPDF.C:639
 DrawFlowPDF.C:640
 DrawFlowPDF.C:641
 DrawFlowPDF.C:642
 DrawFlowPDF.C:643
 DrawFlowPDF.C:644
 DrawFlowPDF.C:645
 DrawFlowPDF.C:646
 DrawFlowPDF.C:647
 DrawFlowPDF.C:648
 DrawFlowPDF.C:649
 DrawFlowPDF.C:650
 DrawFlowPDF.C:651
 DrawFlowPDF.C:652
 DrawFlowPDF.C:653
 DrawFlowPDF.C:654
 DrawFlowPDF.C:655
 DrawFlowPDF.C:656
 DrawFlowPDF.C:657
 DrawFlowPDF.C:658
 DrawFlowPDF.C:659
 DrawFlowPDF.C:660
 DrawFlowPDF.C:661
 DrawFlowPDF.C:662
 DrawFlowPDF.C:663