ROOT logo
// --- Global Switches and settings ---
bool saveOutput = 1;
bool resave = 0;  // Sometimes pdf gets corrupted...retry then quit.
const char* tag = "-pp-nov28-etamin12"; // identifier appended to filenames
const char* outputDir = "../test";
const char* inputHistFile = "$MYDATA/lhc11a_etamin12.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);
int NCENT = 1;
TLatex ltx;
TObjArray* cList = new TObjArray();
bool isBatch = gROOT->IsBatch();

void PlotCollection(int k, int i, int j, TString opt);

int Setup()
{
  ltx.SetNDC();
  gROOT->LoadMacro("~/Dropbox/ALICE/common/Utils.C+");
  gROOT->LoadMacro("~/Dropbox/ALICE/common/IOUtilFns.C");
  gROOT->LoadMacro("FourierPlus.C+g");
  initialize(inputHistFile);
  SetProtonProtonFlag(1);
  SetMinRidgeDEta(1.2);
  return 0;
}

void ProtonProtonAna()
{
  Setup();
  cout << IsProtonProton() << endl;
  if (resave) {
    SaveCanvasesFromFile(canvFile.Data(), Form("%s/plots", outputDir), tag, "pdf");
    return;
  }

  int nt = 5, na = 6;
  int t1[] = {PtBin(1., 1.5), PtBin(2., 2.5), PtBin(4,5), PtBin(6,8), PtBin(8,15)};
  int a1[] = {PtBin(0.25., 0.5), PtBin(0.5., 0.75), PtBin(1., 1.5), PtBin(2., 2.5), 
	      PtBin(3, 4), PtBin(6, 8)};

  //    cList->Add( DrawQ(0, 1, Form("ptabin%dto%d_%s",PtBin(0.25,0.5),PtBin(4,5), "ptcons")));

    if (1) {
      for (int n=1; n<=5; n++) {
	cList->Add( DrawQ(0, n, Form("ptabin%dto%d_%s",PtBin(0.25,0.5),PtBin(8,15), "RIDGE")));
      }
      for (int n=1; n<=5; n++) {
	cList->Add( DrawQ(0, n, Form("ptabin%dto%d_%s",PtBin(0.25, 0.5),PtBin(1,1.5), "RIDGE")));
      }
    }
    
  int ppcb[] = {CentBin(0,0)};
  cList->Add(Drawv1to5(1, ppcb, PtBin(0.25, 0.5), PtBin(1., 1.5), "ptcons" ));

  if (1) {
    for (int i=0; i<nt; i++) {
      for (int j=0; j<na; j++) {
	int ti = t1[i], aj = a1[j];
	if (ti >= aj)
	  cList->Add(PlotCollection(ti, aj, "2D"));
      }
    }
  }
  

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

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

  return;
}

void PlotCollection(int i, int j, TString opt)
{
  //  cList->Add(SingleDraw(0, i, j, ""));
  if (opt.Contains("2D")) {
    cList->Add(SingleDraw2D(0, i, j, "pl"));
  }
  cList->Add(SingleDrawPlain(0, i, j, "harmonics_sum"));
  return;
}
 ProtonProtonAna.C:1
 ProtonProtonAna.C:2
 ProtonProtonAna.C:3
 ProtonProtonAna.C:4
 ProtonProtonAna.C:5
 ProtonProtonAna.C:6
 ProtonProtonAna.C:7
 ProtonProtonAna.C:8
 ProtonProtonAna.C:9
 ProtonProtonAna.C:10
 ProtonProtonAna.C:11
 ProtonProtonAna.C:12
 ProtonProtonAna.C:13
 ProtonProtonAna.C:14
 ProtonProtonAna.C:15
 ProtonProtonAna.C:16
 ProtonProtonAna.C:17
 ProtonProtonAna.C:18
 ProtonProtonAna.C:19
 ProtonProtonAna.C:20
 ProtonProtonAna.C:21
 ProtonProtonAna.C:22
 ProtonProtonAna.C:23
 ProtonProtonAna.C:24
 ProtonProtonAna.C:25
 ProtonProtonAna.C:26
 ProtonProtonAna.C:27
 ProtonProtonAna.C:28
 ProtonProtonAna.C:29
 ProtonProtonAna.C:30
 ProtonProtonAna.C:31
 ProtonProtonAna.C:32
 ProtonProtonAna.C:33
 ProtonProtonAna.C:34
 ProtonProtonAna.C:35
 ProtonProtonAna.C:36
 ProtonProtonAna.C:37
 ProtonProtonAna.C:38
 ProtonProtonAna.C:39
 ProtonProtonAna.C:40
 ProtonProtonAna.C:41
 ProtonProtonAna.C:42
 ProtonProtonAna.C:43
 ProtonProtonAna.C:44
 ProtonProtonAna.C:45
 ProtonProtonAna.C:46
 ProtonProtonAna.C:47
 ProtonProtonAna.C:48
 ProtonProtonAna.C:49
 ProtonProtonAna.C:50
 ProtonProtonAna.C:51
 ProtonProtonAna.C:52
 ProtonProtonAna.C:53
 ProtonProtonAna.C:54
 ProtonProtonAna.C:55
 ProtonProtonAna.C:56
 ProtonProtonAna.C:57
 ProtonProtonAna.C:58
 ProtonProtonAna.C:59
 ProtonProtonAna.C:60
 ProtonProtonAna.C:61
 ProtonProtonAna.C:62
 ProtonProtonAna.C:63
 ProtonProtonAna.C:64
 ProtonProtonAna.C:65
 ProtonProtonAna.C:66
 ProtonProtonAna.C:67
 ProtonProtonAna.C:68
 ProtonProtonAna.C:69
 ProtonProtonAna.C:70
 ProtonProtonAna.C:71
 ProtonProtonAna.C:72
 ProtonProtonAna.C:73
 ProtonProtonAna.C:74
 ProtonProtonAna.C:75
 ProtonProtonAna.C:76
 ProtonProtonAna.C:77
 ProtonProtonAna.C:78
 ProtonProtonAna.C:79
 ProtonProtonAna.C:80
 ProtonProtonAna.C:81
 ProtonProtonAna.C:82
 ProtonProtonAna.C:83
 ProtonProtonAna.C:84
 ProtonProtonAna.C:85
 ProtonProtonAna.C:86
 ProtonProtonAna.C:87
 ProtonProtonAna.C:88
 ProtonProtonAna.C:89
 ProtonProtonAna.C:90
 ProtonProtonAna.C:91
 ProtonProtonAna.C:92
 ProtonProtonAna.C:93