File indexing completed on 2023-10-25 10:06:37
0001 #include <TROOT.h>
0002 #include <TChain.h>
0003 #include <TFile.h>
0004 #include <TH1D.h>
0005 #include <TH2D.h>
0006 #include <TProfile.h>
0007 #include <TProfile2D.h>
0008 #include <TFitResult.h>
0009 #include <TFitResultPtr.h>
0010 #include <TStyle.h>
0011 #include <TCanvas.h>
0012 #include <TLegend.h>
0013 #include <TPaveStats.h>
0014 #include <TPaveText.h>
0015 #include <vector>
0016 #include <string>
0017 #include <iomanip>
0018 #include <iostream>
0019 #include <fstream>
0020
0021
0022 void makePlotsCalib(std::string fname="RelValDoubleEle200PU.root",
0023 std::string tag="All",
0024 std::string text="Double Electron",
0025 std::string dirnm="hgcalHitCalibration",
0026 bool save=false) {
0027 std::string names[4] = {"h_EoP_CPene_100_calib_fraction_",
0028 "h_EoP_CPene_200_calib_fraction_",
0029 "h_EoP_CPene_300_calib_fraction_",
0030 "h_LayerOccupancy_"};
0031 std::string xname[4] = {"in 100#mum Silicon", "in 200#mum Silicon",
0032 "in 300#mum Silicon", "Occupancy"};
0033 std::string xtitl[4] = {"E/E_{True}", "E/E_{True}", "E/E_{True}", "Layer #"};
0034 std::string ytitl[4] = {"Clusters", "Clusters", "Clusters", "Clusters"};
0035 int type1[4] = {0,0,0,0};
0036 int type2[4] = {5,5,5,1};
0037
0038 gStyle->SetCanvasBorderMode(0); gStyle->SetCanvasColor(kWhite);
0039 gStyle->SetPadColor(kWhite); gStyle->SetFillColor(kWhite);
0040 gStyle->SetOptStat(111110);
0041 TFile *file = new TFile(fname.c_str());
0042 if (file) {
0043 TDirectory *dir = (TDirectory*)file->FindObjectAny(dirnm.c_str());
0044 if (dir) {
0045 char name[100];
0046 for (int k=0; k<4; ++k) {
0047 sprintf (name, "%s%s", names[k].c_str(), tag.c_str());
0048 TH1D* hist = (TH1D*)dir->FindObjectAny(name);
0049 std::cout << name << " read out at " << hist << std::endl;
0050 if (hist != 0) {
0051 TCanvas *pad = new TCanvas(name,name,500,500);
0052 pad->SetRightMargin(0.10); pad->SetTopMargin(0.10);
0053 hist->GetYaxis()->SetTitle(ytitl[k].c_str());
0054 hist->GetXaxis()->SetTitle(xtitl[k].c_str());
0055 hist->SetTitle(""); hist->Rebin(type2[k]);
0056 hist->GetYaxis()->SetTitleOffset(1.5);
0057 if (type1[k] == 1) pad->SetLogy();
0058 hist->Draw();
0059 pad->Update();
0060 TPaveStats* st1 = (TPaveStats*)hist->GetListOfFunctions()->FindObject("stats");
0061 if (st1 != NULL) {
0062 st1->SetY1NDC(0.70); st1->SetY2NDC(0.90);
0063 st1->SetX1NDC(0.65); st1->SetX2NDC(0.90);
0064 }
0065 TPaveText *txt1 = new TPaveText(0.11,0.84,0.64,0.89,"blNDC");
0066 txt1->SetFillColor(0);
0067 char txt[200];
0068 sprintf (txt, "%s %s (%s)",tag.c_str(),xname[k].c_str(),text.c_str());
0069 txt1->AddText(txt);
0070 txt1->Draw("same");
0071 pad->Modified();
0072 pad->Update();
0073 if (save) {
0074 sprintf (name, "c_%s%s.gif", names[k].c_str(), tag.c_str());
0075 pad->Print(name);
0076 }
0077 }
0078 }
0079 }
0080 }
0081 }