Skip to content
Snippets Groups Projects
pl_cmp_1D.C 2.34 KiB
void pl_cmp_1D(
  Int_t iOpt      = 1,
  TString fNameMC = "/home/nh/KRONOS/mc/mcbm/"
                    "mcbm_beam_2019_03.agau.1.58gev.mbias.reco_hst.root",
  TString fNameData = "./hst/"
                      "159.50.5.1.0_050_010020500_000_002012_022_0.9_2.5_"
                      "trk001_Cal159.50.5.1.0_Ana.hst.root",
  TString hname = "hTrklVelHMul") {
  //plot initialisation
  TCanvas* can = new TCanvas("can", "can", 50, 50, 686, 686);
  can->Divide(1, 1, 0.01, 0.01);
  gPad->SetFillColor(0);
  gStyle->SetPalette(1);
  gStyle->SetOptStat(kTRUE);
  gStyle->SetOptStat(" ");
  gStyle->SetOptStat(10);
  //cout << "gStyle label size: "<<  gStyle->GetLabelSize() << endl;

  // file opening

  TFile* f1 = new TFile(fNameMC.Data());
  TH2* h21  = (TH2*) f1->Get(hname.Data())->Clone();

  TFile* f2 = new TFile(fNameData.Data());
  TH2* h22  = (TH2*) f2->Get(hname.Data())->Clone();
  //  f2->Close();
  gDirectory->cd();
  //  cout << Form("h21 %p, h22 %p",h21,h22)<<endl;

  TH1* h1;
  TH1* h2;

  switch (iOpt) {
    case 0:  // x-projection
      ;
      break;

    case 10:
    case 1:  // y- projections
      h1 = (TH1*) h21->ProjectionY("_py1");
      h2 = (TH1*) h22->ProjectionY("_py2");
      //    cout << Form("h21 %p, h22 %p",h21,h22)<<endl;
      //    cout << Form("h1 %p, h2 %p",h1,h2)<<endl;

      break;

    case 2:  // x-projection with box fit
      ;
      break;

    default: cout << "Option " << iOpt << " not available " << endl; return;
  }

  can->cd(1);

  h1->Draw("");
  h1->SetLineColor(kRed);
  h2->SetLineColor(kBlue);
  Double_t N1 = h1->GetEntries();
  Double_t N2 = h2->GetEntries();
  TH1* h1s    = (TH1*) h1->Clone();
  h1s->Scale(N2 / N1);
  h2->SetMaximum(TMath::Max(h1s->GetMaximum(), h2->GetMaximum()) * 1.1);
  h2->Draw("");
  h1s->Draw("sameHIST");

  TLegend* leg = new TLegend(0.25, 0.7, 0.5, 0.85);
  leg->SetTextSize(0.03);
  leg->AddEntry(h1s, "MC", "l");
  leg->AddEntry(h2, "data", "l");
  leg->Draw();
  /*
  gPad->SetLogz();
  Float_t newx1=0.2; // left side of stat window 
  Float_t newx2=0.4; // right side of stat window
  Float_t newy1=0.84; // bottom side of stat window 
  Float_t newy2=0.9; // top side of stat window
  TPaveStats *st = (TPaveStats*)h1->GetListOfFunctions()->FindObject("stats");
  if(NULL !=st){
    st->SetX1NDC(newx1);
    st->SetX2NDC(newx2);
    st->SetY1NDC(newy1);
    st->SetY2NDC(newy2);
  }
  */
}