ROOT logo
// --- Switches and settings ---
bool saveOutput = 1;
bool resave = 0;  // Sometimes pdf gets corrupted...retry then quit.
const char* tag = "-Dec2"; // identifier appended to filenames
const char* outputDir = "../analysis-output";
const char* inputHistFile = "$MYDATA/gsi07_etamin08-withmeanpt.root";
TString grFile   = Form("%s/root-objects/graphs%s.root",
			outputDir, tag);
TString canvFile = Form("%s/root-objects/canvases%s.root",
			outputDir, tag);
TString pdfFile  = Form("%s/plots/all-figs%s",
			outputDir, tag);

// --- Globals ---
TFile* pwg2File   = new TFile("comparisons/PWG2points.root");
TFile* alexv2File = new TFile("comparisons/v2_Eta04_pass2.root");
TFile* alexv3File = new TFile("comparisons/v3_EP_eta04.root");
TLatex ltx;
TObjArray* cList = new TObjArray();

// --- Functions ---
void PlotCollection(int k, int i, int j, TString opt);
void SaveCanvases(TObjArray* canvases, const char* fileName);
TObjArray* GetObjectsFromFile(TFile& file, TString clname, TString dir = "");
void SaveCanvasesFromFile(const char* rootFile, const char* targetDir, const char* fileType);
TGraphErrors* PWG2v(int n, double cen1, double cen2, double etaGap=1.);

void CreatePaperFigs()
{
  ltx.SetNDC();
  int NCENT = 8;
  bool isBatch = gROOT->IsBatch();
  gROOT->LoadMacro("./common/Utils.C+");
  PlotUtils utils;
  gROOT->LoadMacro("FourierPlus.C+g");
  initialize(inputHistFile);

  if (resave) {
    SaveCanvasesFromFile(canvFile.Data(), Form("%s/plots", outputDir), "pdf");
    return;
  }

  int ncb_set = 6;
  int centbins_set[] = { CentBin(0,2), 
			 CentBin(2,10), 
			 CentBin(10,20), 
			 CentBin(20,30), 
			 CentBin(30,40), 
			 CentBin(40,50) };
  
  // SingleDraw2D(CentBin(0,10), PtBin(2, 2.5), PtBin(1.5, 2));
  // SingleDraw2D(CentBin(0,10), PtBin(3, 4), PtBin(2, 2.5));
  // //  cList->Add(SingleDraw2D(CentBin(0,2), PtBin(2, 2.5), PtBin(1.5, 2)));
  // SingleDraw(CentBin(0,2), PtBin(6, 8), PtBin(1., 1.5), "color");
  // SingleDraw(CentBin(0,10), PtBin(6, 8), PtBin(1., 1.5), "color");

    // cList->Add(Drawv2to5(ncb_set, centbins_set, 0, 999, "") );
  //  DrawAgreement(CentBin(0, 10), "contour");
  //DrawChi2(CentBin(0, 10), "");

  int t1[] = {PtBin(2., 2.5)};
  int a1[] = {PtBin(1.5, 2.)};
  int t2[] = {PtBin(8,15)};
  int a2[] = {PtBin(6, 8)};
  int c2[] = {CentBin(40,50), CentBin(0,20)};
  int c3[] = {CentBin(0,2)};
  
  int ncb = 5;
  int centbins[] = { CentBin(40,50), 
		     CentBin(20,30), 
		     CentBin(10,20), 
		     CentBin(2,10), 
		     CentBin(0,2) };

  // int cbin05[] = { CentBin(0,5) };
  // int cbin010[] = { CentBin(0,10) };
  
  // cList->Add(DrawVnDeltaVsN(1,  t1, 1, a1, 1,cbin05, "05_nobars_ext"));
  // cList->Add(DrawVnDeltaVsN(1,  t1, 1, a1, 1,cbin010, "010_nobars_ext"));
  
  // cList->Add(DrawVnDeltaVsN(1,  t1, 1, a1, ncb, centbins, "nobars_ext")); // all centralities
  // cList->Add(DrawVnDeltaVsN(1,  t1, 1, a1, 1,   c3, "cent02_nobars_ext")); // just 0-2%

  // cList->Add(DrawVnDeltaVsN(1,  t1, 1, a1, ncb, centbins,
  // 			    "sine_ext")); // for sys errors.
  // cList->Add(DrawVnDeltaVsN(1,  t2, 1, a2, 2, c2, "sine_ext"));
  // cList->Add(DrawVnDeltaVsN(1, t2, 1, a2, 2, c2, "nobars_ext"));
  
  // DrawQ(CentBin(0,10), 2);
  // DrawQ(CentBin(0,10), 3);
  //  return;

  // For CERN courier article
  cList->Add(SingleDrawPlain(CentBin(0,2), PtBin(2, 2.5), PtBin(1.5, 2), 
			     "harmonics_sum") );

  int aa1[1] = {PtBin(0.5, 0.75)};
  int aa2[3] = {PtBin(0.5, 0.75), PtBin(1.5, 2), PtBin(2.5, 3)};
  int cc1[1] = {CentBin(0,20)};
  int cc2[5] = {CentBin(0,2), CentBin(2,10), CentBin(10,20),
  CentBin(20,30), CentBin(30,40) };

  //  cList->Add( DrawChi2vsPtTrig(1, aa2, 1, cc1, "") );

  if (1) { // Draw Correlation functions

    if (0) {// Draw 3 CFs overlaid together
      int ptt = PtBin(2., 2.5);
      int pta = PtBin(1.5, 2.);
      TLegend* ml = new TLegend(0.5, 0.58, 0.98, 0.8, "Pb-Pb 2.76 TeV");
      ml->SetFillColor(kNone);
      ml->SetBorderSize(0);
      int col[] = {18, kAzure-9, kBlack, kYellow, kOrange, kRed };
      cList->Add(SingleDrawPlain(CentBin(3,5), ptt, pta, "ALL"));
      TH1* h0 = (TH1*)(gPad->GetListOfPrimitives())->FindObject("h");
      utils.set_hist_props(h0, kNone, kNone, kNone, kOpenCircle, 1.4);
      TH1* hUltCnt[3];
      int cntBins[] = {CentBin(3,5), CentBin(2,3), CentBin(0,1)};
      for (int n=0; n<3; n++) {
	hUltCnt[n] = Hist("ALL", "cA", ptt, pta, cntBins[n], Form("_%d", n));
	utils.set_hist_props(hUltCnt[n], kBlack, col[n], col[n], kFullCircle, 1.4);
	hUltCnt[n]->SetLineWidth(2); 
	hUltCnt[n]->Draw("same");
	TH1* hc = (TH1*)hUltCnt[n]->Clone();
	utils.set_hist_props(hc, kBlack, kBlack, kBlack, kOpenCircle, 1.4);
	hc->Draw("same");
      }
      for (int n=2; n>=0; n--) {
	ml->AddEntry(hUltCnt[n], centLabel(cntBins[n]), "epl");
      }
      ml->Draw();
    }
    if (0) { // "plain" CFs (no lower ratio panel)
      int centEvol[] = { CentBin(0,5), 
			 CentBin(0,1), 
			 CentBin(1,2), 
			 CentBin(2,3), 
			 CentBin(3,4), 
			 CentBin(4,5)};
      for (int k=0;k<6;k++) {
	int i = PtBin(2., 2.5), j = PtBin(1.5, 2);
	int kk = centEvol[k]; 
	
	cList->Add(SingleDrawPlain(kk,i,j, "ALL"));
	TH1* h0 = (TH1*)(gPad->GetListOfPrimitives())->FindObject("h");
	h0->GetYaxis()->SetRangeUser(0.98, 1.03);
	
	cList->Add(SingleDrawPlain(kk,i,j, "harmonics_ALL"));
	TH1* h0 = (TH1*)(gPad->GetListOfPrimitives())->FindObject("h");
	h0->GetYaxis()->SetRangeUser(0.98, 1.03);
      }
    }

    // New: High ptt, low pta...
    PlotCollection(CentBin(0,2), PtBin(6, 8), PtBin(1., 1.5), "2D");
    PlotCollection(CentBin(0,10), PtBin(6, 8), PtBin(1., 1.5), "2D");
  
    PlotCollection(CentBin(0,1),  PtBin(2., 2.5), PtBin(1.5,2.), "");
    PlotCollection(CentBin(0,2),  PtBin(2., 2.5), PtBin(1.5,2.), "");
    PlotCollection(CentBin(0,10), PtBin(2, 2.5),  PtBin(1.5, 2), "2D");
    PlotCollection(CentBin(0,10), PtBin(3.0, 4.), PtBin(2.,2.5), "2D");
    PlotCollection(CentBin(0,20), PtBin(8., 15.), PtBin(6.,8), "2D");
    PlotCollection(CentBin(30,40),PtBin(6., 8.),  PtBin(1,1.5), "");
    cList->Add(SingleDraw2D(CentBin(0,20),PtBin(8, 15), PtBin(6, 8), "zoom"));
    ltx.DrawLatex(0.4, 0.7, "#splitline{zoomed to }{0 < C(#Delta#phi) < 5}");
  }
  //  return;

  if (1) { // v_n{GF} for v1 to v5
    cList->Add(Drawv1to5(ncb_set, centbins_set, 0, PtBin(2.0, 2.5), "fitbelow2.5") );
    cList->Add(Drawv1to5(ncb_set, centbins_set, 0, 999, "") );
    cList->Add(Drawv2to5(ncb_set, centbins_set, 0, 999, "") );
    cout << "Drawv1to5() ok" << endl;
  }

  if (1) { // Global fit plots
    DrawQ(CentBin(0,10), 6); // bug somewhere...w/o this, the next canvas is messed up
    for (int n=1; n<=5; n++) {
      cList->Add( DrawQ(CentBin(0,10), n) );
    }
    for (int cb=0; cb<ncb_set; cb++) {
      for (int n=1; n<=5; n++) {
	int k = centbins_set[cb];
	cout << Form("DrawQ() %s, n = %d / 5", centLabel(k), n) << endl;
	cList->Add( DrawQ(k, n) );
      }
    }
  }
  
  if (1) { // "Power spectrum" plots
    int t1[] = {PtBin(2., 2.5)};
    int t2[] = {PtBin(8,15)};
    int t3[] = {PtBin(6,8)};
    int a1[] = {PtBin(1.5, 2.)};
    int a2[] = {PtBin(6, 8)};
    int a3[] = {PtBin(1., 1.5)};

    int c2[] = {CentBin(40,50), CentBin(0,20)};
    int c3[] = {CentBin(0,2)};

    int ncb = 5;
    int centbins[] = { CentBin(40,50), 
		       CentBin(20,30), 
		       CentBin(10,20), 
		       CentBin(2,10), 
		       CentBin(0,2) };

    int ncb2 = 4;
    int centbins2[] = { CentBin(40,50), 
		       CentBin(20,30), 
		       CentBin(10,20), 
		       CentBin(0,10)};

    
    // VnDelta vs n...
    if (0) {
    // Fig 2,3 with color bars
    cList->Add(DrawVnDeltaVsN(1,t1, 1, a1, ncb, centbins, "")); // all
    cList->Add(DrawVnDeltaVsN(1,t1, 1, a1, 1,   c3, "cent02")); // just 0-2%
    cList->Add(DrawVnDeltaVsN(1,t2, 1, a2, 2, c2, "ext"));
    }
    // And without
    cList->Add(DrawVnDeltaVsN(1,t1, 1, a1, ncb, centbins, "nobars"));
    cList->Add(DrawVnDeltaVsN(1,t1, 1, a1, 1,   c3, "cent02_nobars"));
    cList->Add(DrawVnDeltaVsN(1,t2, 1, a2, 2, c2, "ext_nobars"));

    // up to n=12
    cList->Add(DrawVnDeltaVsN(1,t1, 1, a1, ncb, centbins,"sine_ext")); // sys err.
    cList->Add(DrawVnDeltaVsN(1,t2, 1, a2, 2, c2, "sine_ext"));


    // High ptt x low pta
    cList->Add(DrawVnDeltaVsN(1,a2, 1, a1, ncb2, centbins2, ""));
    cList->Add(DrawVnDeltaVsN(1,t3, 1, a3, ncb2, centbins2, "nobars"));
    cList->Add(DrawVnDeltaVsN(1,t2, 1, a3, ncb2, centbins2, "nobars"));

    // Additional
    cList->Add(DrawVnDeltaVsN(1,t1, 1, a1, ncb2, centbins2, "sine"));


    // vn{GF} vs n...
    cList->Add(DrawGlobalvnVsN(1, t1, ncb, centbins, ""));
    cList->Add(DrawGlobalvnVsN(1, a1, ncb, centbins, ""));
    //    cList->Add(DrawVnDeltaVsN(1, t1, 1, a1, ncb_set, centbins_set, "zoom"));

  }

  if (1) { // VnDelta vs. trigger pt -- 1 canvas/centrality bin
    int cbins[] = { CentBin(0,10) , CentBin(10,20), CentBin(20,30), 
		    CentBin(30,40), CentBin(40,50) };
    int ptabins02[] = {PtBin(0.25, 0.5), PtBin(1.0, 1.5)};
    int ptabins10[] = {PtBin(0.25, 0.5), PtBin(1.0, 1.5), PtBin(2.0, 2.5)};

    // cList->Add(DrawVnVsPtTrig(CentBin(0,2), PtBin(0.25, 0.5),
    // PtBin(1.0, 1.5)));
    cList->Add(DrawVnVsPtTrig(CentBin(0,2), 2, ptabins02, ""));

    for (int i=0; i<5; i++) {

      // cList->Add(DrawVnVsPtTrig(cbins[i], PtBin(0.25, 0.5), PtBin(2.5,
      // 3.0)));
      cList->Add(DrawVnVsPtTrig(cbins[i], 3, ptabins10, ""));
    }
  }

 if (1) { // individual v_n{GF} canvases
    // v1 comparison with Luzum
    int ncbv1 = 2;
    int centbinsv1[] = {CentBin(0,10), CentBin(40,50)};

    //    Just our points
    for (int n=1; n<=5; n++) {
      cList->Add(DrawVnFromGlobalFit(n,0, 999, ncb_set,centbins_set,""));
      cList->Add(DrawVnFromGlobalFit(n,0, PtBin(2.0, 2.5), ncb_set,centbins_set,""));
    }
    int ncb = 2;
    int centbins[] = {CentBin(0,2), CentBin(30, 40)};
    for (int n=2; n<=5; n++) {
      TCanvas* c = DrawVnFromGlobalFit(n,0,999,ncb,centbins,"_pwg2");
      TGraphErrors* g0002 = PWG2v(n, 0,  2 );
      TGraphErrors* g3040 = PWG2v(n, 30, 40);
      utils.set_tgraph_props(g0002, kBlack, kBlack, kOpenSquare, 1.5);
      utils.set_tgraph_props(g3040, kRed,   kRed,   kFullSquare, 0.8);
      g0002->Draw("epsame");
      g3040->Draw("epsame");
      if (0)
	if(n==2 || n==3)
	  Alexv(n, 30, 40)->Draw("epsame"); // Great agmt, but I need <pt>
      // ltx.SetTextSize(0.04);
      // ltx.DrawLatex(0.17, 0.95, Form("Global fit"));
      // ltx.DrawLatex(0.45, 0.95, Form("S.P. (CERN-PH-EP-2011-073)"));
      // ltx.SetTextSize(0.05);
      // ltx.DrawLatex(0.45, 0.88, Form("1.0 < |#Delta#eta| < 1.6", n));
      TObject* obj = c->GetListOfPrimitives()->FindObject("lv");
      TLegend* leg = obj;
      leg->AddEntry(g0002, Form("SP 0-2%%", n), "epl");
      leg->AddEntry(g3040, Form("SP 30-40%%", n), "epl");
      cList->Add(c);
    }
  }

  if (saveOutput) { 
    SaveGraphs(grFile.Data());
    SaveCanvases(cList, canvFile.Data()); 

    if (1) // individual pdfs + multipage pdf
      SaveCanvasesFromFile(canvFile.Data(), Form("%s/plots", outputDir), "pdf");
    if (0) // individual plot macros
      SaveCanvasesFromFile(canvFile.Data(), Form("%s/plots", outputDir), "C");

  }
  
  return; // end CreatePaperFigs()
}

TGraphErrors* Alexv(int n, double cen1, double cen2)
{
  // 0-5% -> 0, 5-10% ->1, 10-20%->2
  int bin = -1;
  if (cen1==0  && cen2==5)   bin = 0;
  else if (cen1==5  && cen2==10)  bin = 1;
  else if (cen1==10  && cen2==20) bin = 2;
  else if (cen1==20  && cen2==30) bin = 3;
  else if (cen1==30  && cen2==40) bin = 4;
  else if (cen1==40  && cen2==50) bin = 5;
  else if (cen1==50  && cen2==60) bin = 6;
  else if (cen1==60  && cen2==70) bin = 7;
  else if (cen1==70  && cen2==80) bin = 8;

  if (bin<0)
    return 0;

  TFile* f = 0;
  if (n==2)
    f = alexv2File;
  else if (n==3)
    f = alexv3File;
  else
    return 0;

  const char* xtra = cen1==30 ? "ALICE" : "";
  TGraphErrors* g = 0;
  const char* name = "";

  if (n==2)
    name = Form("v2_all_Eta04_hist_%d", bin);
  if (n==3)
    name = Form("v3_eta04_%d", bin);

   if (0) cout << name << endl;

  g = (TGraphErrors*)f->Get(name);
  if (!g)
    Error("Alexv()", "%s not found");

  return g;
}

TGraphErrors* PWG2v(int n, double cen1, double cen2, double etaGap)
{
  const char* xtra = cen1==30 ? "ALICE" : "";
  TGraphErrors* g = 0;
   const char* name = Form("GrSP_%02d%02d%s_v%d_etaGap%.0f", 
			   (int)cen1, (int)cen2, xtra, n, 10*etaGap);

   if (0) cout << name << endl;

  g = (TGraphErrors*)pwg2File->Get(name);
  if (!g)
    Error("PWG2v()", "%s not found");
  
  return g;
}

void SaveCanvases(TObjArray* canvases, const char* fileName)
{
  TFile* f = new TFile(fileName, "recreate");

  for (int n=0; n<canvases->GetEntries(); n++) {
    TCanvas* c = (TCanvas*)canvases->At(n);
    c->Write(c->GetTitle());
  }
  f->Close();
  return;
}

void PlotCollection(int k, int i, int j, TString opt)
{
  // cList->Add(SingleDrawPlain(k, i, j, "pl"));
  cList->Add(SingleDrawPlain(k, i, j, "harmonics"));
  cList->Add(SingleDraw(k, i, j, "color"));
  //  cList->Add(SingleDraw(k, i, j, "gray"));
  //cList->Add(SingleDraw(k, i, j, "gray_upto10"));
  cList->Add(SingleDraw(k, i, j, "global"));
  if (opt.Contains("2D")) {
    cList->Add(SingleDraw2D(k, i, j, "pl"));
  }
  return;
}

void SaveCanvasesFromFile(const char* rootFile, const char* targetDir, const char* fileType)
{
  // Get a list of canvases from rootFile into array, then save each
  // to its own file in targetDir/. fileType = "eps", "pdf", "C",
  // "png", etc. Not all formats have been tested.
  gStyle->SetOptTitle(0);
  gStyle->SetOptStat(0);
  TString name = "";
  TString base(targetDir);
  TFile *cFile = new TFile(rootFile, "read");
  cout << cFile->GetName() << endl;
  TObjArray* cList = GetObjectsFromFile(*cFile, "TCanvas");

  for (int n=0; n<cList->GetEntries(); n++) {
    TCanvas* c = (TCanvas*)cList->At(n);
    if (c) {
      name = "";
      name = base;
      name += TString("/");
      name += TString(fileType);
      name += TString("/");
      name += TString(c->GetTitle());
      name += TString(".");
      name += TString(fileType);
      cout<<name.Data()<<endl;

      c->Draw();
      c->Modified();
      c->Update();
      c->SaveAs(name.Data());
    }
    else
      Error("SaveCanvasesFromFile()", "!c");
  }

  if (1) {
    utils.print_pdf(cList, Form("%s/all-figs%s", base.Data(), tag), "pdf");
  }
  
  return;
}

TObjArray* GetObjectsFromFile(TFile& file, TString clname, TString dir)
{
  file.cd(dir.Data());

  TObjArray* objList = new TObjArray();
  TIter next(gDirectory->GetListOfKeys());
  TKey *key;
  
  while ((key=(TKey*)next())) {
    TString className(key->GetClassName());
    TString keyName(key->GetName());
    if (1) 
      printf("%10s %20s\n", className.Data(), keyName.Data());
    
    if (className.Contains(clname)) {
      objList->Add(gDirectory->Get(keyName.Data()));
    }
  }

  cout << objList->GetEntries() << " objects retrieved from "
       << file.GetName()  << "/" << gDirectory->GetName() 
       << endl;

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