// // 2D histograms // void Make2DPlots(TString HistName, char* Region, int NMergeBins=1, bool doRatio=false) { TFile* HistFile = TFile::Open("HistFiles/Hist.root"); char *Xvar, *Yvar, *Zvar; if(HistName=="mjvsmj") { Xvar=(char*)"mj [GeV]"; Yvar=(char*)"mj [GeV]"; Zvar=(char*)"Events/bin"; } if(HistName=="mjvsFatjetPt") { Xvar=(char*)"mj [GeV]"; Yvar=(char*)"pT(fatjet) [GeV]"; Zvar=(char*)"Events/bin"; } TH2F *h2_DATA[7], *h2_T[7], *h2_TT_sl[7], *h2_TT_ll[7], *h2_TT[7], *h2_WJets[7], *h2_DY[7]; TH2F *h2_Ratio[7], *h2_MC[7]; TH2F *h2_f1500_100[7], *h2_f1200_800[7]; TCanvas *c_TT_sl = new TCanvas("c_TT_sl","c_TT_sl",1600,360); TCanvas *c_TT_ll = new TCanvas("c_TT_ll","c_TT_ll",1600,360); TCanvas *c_Ratio = new TCanvas("c_Ratio","c_Ratio",1600,360); c_TT_sl->Divide(5,1); c_TT_ll->Divide(5,1); c_Ratio->Divide(5,1); for(int i=2; i<7; i++) { if(HistName=="mjvsmj" && i!=2) continue; h2_DATA[i] = (TH2F*)HistFile->Get(Form("h2_DATA_%s_%ifatjet", HistName.Data(), i)); h2_T[i] = (TH2F*)HistFile->Get(Form("h2_T_%s_%ifatjet", HistName.Data(), i)); h2_TT_sl[i] = (TH2F*)HistFile->Get(Form("h2_TT_sl_%s_%ifatjet", HistName.Data(), i)); h2_TT_ll[i] = (TH2F*)HistFile->Get(Form("h2_TT_ll_%s_%ifatjet", HistName.Data(), i)); h2_WJets[i] = (TH2F*)HistFile->Get(Form("h2_WJets_%s_%ifatjet", HistName.Data(), i)); // h2_DY[i] = (TH2F*)HistFile->Get(Form("h2_DY_%s_%ifatjet", HistName.Data(), i)); h2_f1500_100[i] = (TH2F*)HistFile->Get(Form("h2_T1tttt_f1500_100_%s_%ifatjet", HistName.Data(), i)); h2_f1200_800[i] = (TH2F*)HistFile->Get(Form("h2_T1tttt_f1200_800_%s_%ifatjet", HistName.Data(), i)); h2cosmetic(h2_DATA[i], Form("DATA %ifatjet", i), Xvar, Yvar, Zvar); h2cosmetic(h2_TT_sl[i], Form("TT(l) %ifatjet", i), Xvar, Yvar, Zvar); h2cosmetic(h2_TT_ll[i], Form("TT(ll) %ifatjet", i), Xvar, Yvar, Zvar); h2cosmetic(h2_T[i], Form("T %ifatjet", i), Xvar, Yvar, Zvar); h2cosmetic(h2_WJets[i], Form("WJets %ifatjet", i), Xvar, Yvar, Zvar); h2cosmetic(h2_f1500_100[i], Form("T1tttt(1200,25) %ifatjet", i), Xvar, Yvar, Zvar); h2cosmetic(h2_f1200_800[i], Form("T1tttt(1200,1000) %ifatjet", i), Xvar, Yvar, Zvar); } // Drawing for(int i=2; i<7; i++) { if(HistName=="mjvsmj" && i!=2) continue; c_TT_sl->cd(i-1); h2_TT_sl[i]->Draw("colz"); c_TT_ll->cd(i-1); h2_TT_ll[i]->Draw("colz"); c_TT_sl->Print( Form("Figures/%s/2D_TT_sl_%s%s.pdf", Region, HistName.Data(), DoLog?"_log":"") ); c_TT_ll->Print( Form("Figures/%s/2D_TT_ll_%s%s.pdf", Region, HistName.Data(), DoLog?"_log":"") ); } if(doRatio) { for(int i=2; i<7; i++) { h2_Ratio[i] = (TH2F*) h2_DATA[i]->Clone(); h2_MC[i] = (TH2F*) h2_TT_sl[i]->Clone(); h2_MC[i]->Add(h2_TT_ll[i]); h2_MC[i]->Add(h2_T[i]); h2_MC[i]->Add(h2_WJets[i]); h2_Ratio[i]->Divide(h2_MC[i]); c_Ratio->cd(i-1); h2_Ratio[i]->SetMinimum(0.5); h2_Ratio[i]->SetMaximum(1.5); h2_Ratio[i]->Draw("colz"); c_Ratio->Print( Form("Figures/%s/2D_Ratio_%s%s.pdf", Region, HistName.Data(), DoLog?"_log":"") ); } } // HistFile->Close(); delete c_TT_sl; delete c_TT_ll; delete c_Ratio; }
void HCALPedestalTableAnalysis(TString PedTable="PedestalTable_results.txt") { // [HB HE HO HF][cap 0 1 2 3] TH1D *h1_mean[4][4]; TH1D *h1_width[4][4]; TH2D *h2_mean[4][4]; TH2D *h2_width[4][4]; for(int depth=0; depth<4; depth++) { TString subdet="HB"; if(depth==1) subdet="HE"; if(depth==2) subdet="HO"; if(depth==3) subdet="HF"; for(int cap=0; cap<4; cap++) { float Max=4; float Min=2; if(depth==3) { Max=11; Min=7; } h1_mean[depth][cap] = new TH1D(Form("h1_mean_%s_cap%i",subdet.Data(),cap), Form("h1_mean_%s_cap%i",subdet.Data(),cap), 50,0,16); h1_width[depth][cap] = new TH1D(Form("h1_width_%s_cap%i",subdet.Data(),cap), Form("h1_width_%s_cap%i",subdet.Data(),cap), 50,0,2); h2_mean[depth][cap] = new TH2D(Form("h2_mean_depth%i_cap%i",(depth+1),cap), Form("h2_mean_depth%i_cap%i",(depth+1),cap), 83,-41.5,41.5,72,0.5,72.5); h2_width[depth][cap] = new TH2D(Form("h2_width_depth%i_cap%i",(depth+1),cap), Form("h2_width_depth%i_cap%i",(depth+1),cap), 83,-41.5,41.5,72,0.5,72.5); h2cosmetic(h2_mean[depth][cap],Form("Mean of pedestal in depth=%i and capid=%i",(depth+1),cap),"ieta", "iphi", "mean ADC", Max, Min); h2cosmetic(h2_width[depth][cap],Form("Width of pedestal in depth=%i and capid=%i",(depth+1),cap),"ieta", "iphi", "width ADC", 2, 0); } } string line; int ieta, iphi, depth; double cap0, cap1, cap2, cap3, widthcap0, widthcap1, widthcap2, widthcap3; string det; ifstream fin(PedTable.Data()); if(fin.is_open()) { while(fin.good()){ // get a line from fin getline(fin, line); if( line.find("#")!=string::npos ) continue; // Store each element in the line to the defined variables stringstream stream(line); stream >> ieta >> iphi >> depth >> det >> cap0 >> cap1 >> cap2 >> cap3 >> widthcap0 >> widthcap1 >> widthcap2 >> widthcap3; if( !fin.good() ) continue; if(det=="HB") { h1_mean[0][0]->Fill(cap0); h1_mean[0][1]->Fill(cap1); h1_mean[0][2]->Fill(cap2); h1_mean[0][3]->Fill(cap3);} if(det=="HE") { h1_mean[1][0]->Fill(cap0); h1_mean[1][1]->Fill(cap1); h1_mean[1][2]->Fill(cap2); h1_mean[1][3]->Fill(cap3);} if(det=="HO") { h1_mean[2][0]->Fill(cap0); h1_mean[2][1]->Fill(cap1); h1_mean[2][2]->Fill(cap2); h1_mean[2][3]->Fill(cap3);} if(det=="HF") { h1_mean[3][0]->Fill(cap0); h1_mean[3][1]->Fill(cap1); h1_mean[3][2]->Fill(cap2); h1_mean[3][3]->Fill(cap3);} if(det=="HB") { h1_width[0][0]->Fill(widthcap0); h1_width[0][1]->Fill(widthcap1); h1_width[0][2]->Fill(widthcap2); h1_width[0][3]->Fill(widthcap3);} if(det=="HE") { h1_width[1][0]->Fill(widthcap0); h1_width[1][1]->Fill(widthcap1); h1_width[1][2]->Fill(widthcap2); h1_width[1][3]->Fill(widthcap3);} if(det=="HO") { h1_width[2][0]->Fill(widthcap0); h1_width[2][1]->Fill(widthcap1); h1_width[2][2]->Fill(widthcap2); h1_width[2][3]->Fill(widthcap3);} if(det=="HF") { h1_width[3][0]->Fill(widthcap0); h1_width[3][1]->Fill(widthcap1); h1_width[3][2]->Fill(widthcap2); h1_width[3][3]->Fill(widthcap3);} h2_mean[depth-1][0]->SetBinContent(ieta+42,iphi,cap0); h2_mean[depth-1][1]->SetBinContent(ieta+42,iphi,cap1); h2_mean[depth-1][2]->SetBinContent(ieta+42,iphi,cap2); h2_mean[depth-1][3]->SetBinContent(ieta+42,iphi,cap3); h2_width[depth-1][0]->SetBinContent(ieta+42,iphi,widthcap0); h2_width[depth-1][1]->SetBinContent(ieta+42,iphi,widthcap1); h2_width[depth-1][2]->SetBinContent(ieta+42,iphi,widthcap2); h2_width[depth-1][3]->SetBinContent(ieta+42,iphi,widthcap3); } } TCanvas *c_mean_2d[4], *c_width_2d[4], *c_mean_1d[4], *c_width_1d[4]; for(int depth=0; depth<4; depth++) { // 2d c_mean_2d[depth] = new TCanvas(Form("c_mean_2d_depth%i", depth+1), Form("c_mean_2d_depth%i", depth+1), 800,600); c_mean_2d[depth]->Divide(2,2); c_mean_2d[depth]->cd(1); h2_mean[depth][0]->Draw("colz"); c_mean_2d[depth]->cd(2); h2_mean[depth][1]->Draw("colz"); c_mean_2d[depth]->cd(3); h2_mean[depth][2]->Draw("colz"); c_mean_2d[depth]->cd(4); h2_mean[depth][3]->Draw("colz"); c_mean_2d[depth]->Print(Form("Fig/c_mean_2d_depth%i.pdf", depth+1)); c_width_2d[depth] = new TCanvas(Form("c_width_2d_depth%i", depth+1), Form("c_width_2d_depth%i", depth+1), 800,600); c_width_2d[depth]->Divide(2,2); c_width_2d[depth]->cd(1); h2_width[depth][0]->Draw("colz"); c_width_2d[depth]->cd(2); h2_width[depth][1]->Draw("colz"); c_width_2d[depth]->cd(3); h2_width[depth][2]->Draw("colz"); c_width_2d[depth]->cd(4); h2_width[depth][3]->Draw("colz"); c_width_2d[depth]->Print(Form("Fig/c_width_2d_depth%i.pdf", depth+1)); // 1d TString subdet="HB"; if(depth==1) subdet="HE"; if(depth==2) subdet="HO"; if(depth==3) subdet="HF"; c_mean_1d[depth] = new TCanvas(Form("c_mean_1d_%s", subdet.Data()), Form("c_mean_1d_%s", subdet.Data()), 800,600); c_mean_1d[depth]->Divide(2,2); c_mean_1d[depth]->cd(1); c_mean_1d[depth]->cd(1)->SetLogy(1); h1_mean[depth][0]->Draw("hist"); c_mean_1d[depth]->cd(2); c_mean_1d[depth]->cd(2)->SetLogy(1); h1_mean[depth][1]->Draw("hist"); c_mean_1d[depth]->cd(3); c_mean_1d[depth]->cd(3)->SetLogy(1); h1_mean[depth][2]->Draw("hist"); c_mean_1d[depth]->cd(4); c_mean_1d[depth]->cd(4)->SetLogy(1); h1_mean[depth][3]->Draw("hist"); c_mean_1d[depth]->Print(Form("Fig/c_mean_1d_%s.pdf", subdet.Data())); c_width_1d[depth] = new TCanvas(Form("c_width_1d_%s", subdet.Data()), Form("c_width_1d_%s", subdet.Data()), 800,600); c_width_1d[depth]->Divide(2,2); c_width_1d[depth]->cd(1); c_width_1d[depth]->cd(1)->SetLogy(1); h1_width[depth][0]->Draw("hist"); c_width_1d[depth]->cd(2); c_width_1d[depth]->cd(2)->SetLogy(1); h1_width[depth][1]->Draw("hist"); c_width_1d[depth]->cd(3); c_width_1d[depth]->cd(3)->SetLogy(1); h1_width[depth][2]->Draw("hist"); c_width_1d[depth]->cd(4); c_width_1d[depth]->cd(4)->SetLogy(1); h1_width[depth][3]->Draw("hist"); c_width_1d[depth]->Print(Form("Fig/c_width_1d_%s.pdf", subdet.Data())); } fin.close(); }