#define Analyzer_cxx #include "Analyzer.h" #include #include #include #include #include #include #include "TList.h" #include void Analyzer::Loop(TString Folder) { if (fChain == 0) return; double weight = 1; double _k_factor = 1; double _lumi = 35.8; TFile *f = (TFile *)gROOT->GetListOfFiles()->FindObject("Moriond_2017/" + Folder + "/ZZ4lAnalysis.root"); hCounters = (TH1F *)f->Get("ZZTree/Counters"); double gen_sum_weights = (Long64_t)hCounters->GetBinContent(40); Long64_t nentries = fChain->GetEntriesFast(); Long64_t nbytes = 0, nb = 0; for (Long64_t jentry = 0; jentry < nentries; jentry++) { //Loop po eventovima Long64_t ientry = LoadTree(jentry); if (ientry < 0) break; nb = fChain->GetEntry(jentry); nbytes += nb; // Ovdje analiziramo event i punimo ga u histograme // cout << "Event broj: " << EventNumber << "\n ZZMass = " << ZZMass << endl; if (Folder == "ZZTo4l") { _k_factor = KFactor_EW_qqZZ * KFactor_QCD_qqZZ_M; } else if (Folder == "ggTo2e2mu") { _k_factor = KFactor_QCD_ggZZ_Nominal; } else if (Folder == "ggTo2e2tau") { _k_factor = KFactor_QCD_ggZZ_Nominal; } else if (Folder == "ggTo2mu2tau") { _k_factor = KFactor_QCD_ggZZ_Nominal; } else if (Folder == "ggTo4e") { _k_factor = KFactor_QCD_ggZZ_Nominal; } else if (Folder == "ggTo4mu") { _k_factor = KFactor_QCD_ggZZ_Nominal; } else if (Folder == "ggTo4tau") { _k_factor = KFactor_QCD_ggZZ_Nominal; } // cout << _k_factor << endl; if (Folder == "Data") { weight = 1; } else { weight = (_lumi * 1000 * xsec * _k_factor * overallEventWeight) / gen_sum_weights; } if (Folder == "ZZTo4l") { h1->Fill(ZZMass, weight); } else if (Folder == "ggTo4e") { h2->Fill(ZZMass, weight); } else if (Folder == "ggTo2mu2tau") { h3->Fill(ZZMass, weight); } else if (Folder == "VBFH125") { h4->Fill(ZZMass, weight); } else if (Folder == "ggH125") { h5->Fill(ZZMass, weight); } else if (Folder == "WminusH125") { h6->Fill(ZZMass, weight); } else if (Folder == "ggTo2e2mu") { h7->Fill(ZZMass, weight); } else if (Folder == "ggTo4mu") { h8->Fill(ZZMass, weight); } else if (Folder == "WplusH125") { h9->Fill(ZZMass, weight); } else if (Folder == "ggTo2e2tau") { h10->Fill(ZZMass, weight); } else if (Folder == "ggTo4tau") { h11->Fill(ZZMass, weight); } else if (Folder == "ttH125") { h12->Fill(ZZMass, weight); } else if (Folder == "ZH125") { h13->Fill(ZZMass, weight); } else if(Folder == "Data"){ DataHist->Fill(ZZMass,weight); // H_Mass->Fill(ZZMass,weight); } // Kraj loop-a po eventovima } void Analyzer::InitializeHistos(TString /* Folder */) { { hs = ((THStack *)(gROOT->FindObjectAny("hs"))); if (hs) { // "hs" already exists hs->Modified(); // invalidate old sum of histograms TList *l = hs->GetHists(); if (l) { // just a precaution h1 = ((TH1F *)(l->At(0))); h2 = ((TH1F *)(l->At(1))); h3 = ((TH1F *)(l->At(2))); h4 = ((TH1F *)(l->At(3))); h5 = ((TH1F *)(l->At(4))); h6 = ((TH1F *)(l->At(5))); h7 = ((TH1F *)(l->At(6))); h8 = ((TH1F *)(l->At(7))); h9 = ((TH1F *)(l->At(8))); h10 = ((TH1F *)(l->At(9))); h11 = ((TH1F *)(l->At(10))); h12 = ((TH1F *)(l->At(11))); h13 = ((TH1F *)(l->At(12))); DataHist = ((TH1F *)(l->At(13))); return; // we are done } } else hs = new THStack("hs", ""); h1 = new TH1F("h1", "Histogram usporedbe", 75, 70, 370); h1->SetDirectory(gROOT); h1->SetFillColor(kCyan); h2 = new TH1F("h2", "Histogram usporedbe", 75, 70, 370); h2->SetDirectory(gROOT); h2->SetFillColor(kBlue); h3 = new TH1F("h3", "Histogram usporedbe", 75, 70, 370); h3->SetDirectory(gROOT); h3->SetFillColor(kBlue); h4 = new TH1F("h4", "Histogram usporedbe", 75, 70, 370); h4->SetDirectory(gROOT); h4->SetFillColor(kRed); h5 = new TH1F("h5", "Histogram usporedbe", 75, 70, 370); h5->SetDirectory(gROOT); h5->SetFillColor(kRed); h6 = new TH1F("h6", "Histogram usporedbe", 75, 70, 370); h6->SetDirectory(gROOT); h6->SetFillColor(kRed); h7 = new TH1F("h7", "Histogram usporedbe", 75, 70, 370); h7->SetDirectory(gROOT); h7->SetFillColor(kBlue); h8 = new TH1F("h8", "Histogram usporedbe", 75, 70, 370); h8->SetDirectory(gROOT); h8->SetFillColor(kBlue); h9 = new TH1F("h9", "Histogram usporedbe", 75, 70, 370); h9->SetDirectory(gROOT); h9->SetFillColor(kRed); h10 = new TH1F("h10", "Histogram usporedbe", 75, 70, 370); h10->SetDirectory(gROOT); h10->SetFillColor(kBlue); h11 = new TH1F("h11", "Histogram usporedbe", 75, 70, 370); h11->SetDirectory(gROOT); h11->SetFillColor(kBlue); h12 = new TH1F("h12", "Histogram usporedbe", 75, 70, 370); h12->SetDirectory(gROOT); h12->SetFillColor(kRed); h13 = new TH1F("h13", "Histogram usporedbe", 75, 70, 370); h13->SetDirectory(gROOT); h13->SetFillColor(kRed); DataHist = new TH1F("Data", "Histogram usporedbe", 75, 70,370); DataHist->SetDirectory(gROOT); DataHist->SetBinErrorOption(TH1::kPoisson); //adding ggTo** hs->Add(h2); hs->Add(h3); hs->Add(h7); hs->Add(h8); hs->Add(h10); hs->Add(h11); //adding ZZTo4l hs->Add(h1); //adding 125* hs->Add(h4); hs->Add(h5); hs->Add(h6); hs->Add(h9); hs->Add(h12); hs->Add(h13); } } void Analyzer::DrawHistos(TString Folder) { { // if(Folder=="ZZTo4l"){ // TCanvas *c1 = new TCanvas("c1","Canvas za masu",900,600); // hs->Draw(); // c1->SaveAs("Histogram1.pdf"); //} // else if(Folder=="ggTo4e"){ // TCanvas *c2 = new TCanvas("c2","Canvas za masu",900,600); // hs->Draw(); // c2->SaveAs("Histogram2.pdf");} // else if(Folder=="ggTo2mu2tau"){ // TCanvas *c3 = new TCanvas("c3","Canvas za masu",900,600); // hs->Draw(); // c3->SaveAs("Histogram3.pdf");} // else if(Folder=="VBFH125"){ // TCanvas *c4 = new TCanvas("c4","Canvas za masu",900,600); // c4->cd(); // hs->Draw(); // c4->SaveAs("Histogram4.pdf");} // else if(Folder=="ggH125"){ // TCanvas *c5 = new TCanvas("c5","Canvas za masu",900,600); // c5->cd(); // hs->Draw(); // c5->SaveAs("Histogram5.pdf");} // else if(Folder=="WminusH125"){ // TCanvas *c6 = new TCanvas("c6","Canvas za masu",900,600); // c6->cd(); // hs->Draw(); // c6->SaveAs("Histogram6.pdf");} // else if(Folder=="ggTo2e2mu"){ // TCanvas *c7 = new TCanvas("c7","Canvas za masu",900,600); // c7->cd(); // hs->Draw(); // c7->SaveAs("Histogram7.pdf");} // else if(Folder=="ggTo4mu"){ // TCanvas *c8 = new TCanvas("c8","Canvas za masu",900,600); // c8->cd(); // hs->Draw(); // c8->SaveAs("Histogram8.pdf");} // else if(Folder=="WplusH125"){ // TCanvas *c9 = new TCanvas("c9","Canvas za masu",900,600); // c9->cd(); // hs->Draw(); // c9->SaveAs("Histogram9.pdf");} // else if(Folder=="ggTo2e2tau"){ // TCanvas *c10 = new TCanvas("c10","Canvas za masu",900,600); // c10->cd(); // hs->Draw(); // c10->SaveAs("Histogram10.pdf");} // else if(Folder=="ggTo4tau"){ // TCanvas *c11 = new TCanvas("c11","Canvas za masu",900,600); // c11->cd(); // hs->Draw(); // c11->SaveAs("Histogram11.pdf");} // else if(Folder=="ttH125"){ // TCanvas *c12 = new TCanvas("c12","Canvas za masu",900,600); // c12->cd(); // hs->Draw(); // c12->SaveAs("Histogram12.pdf");} // else if(Folder=="ZH125"){ // TCanvas *c13 = new TCanvas("c13","Canvas za masu",900,600); // c13->cd(); // hs->Draw(); // c13->SaveAs("Histogram13.pdf");} TCanvas *canv = new TCanvas("canv","Canvas za masu",900,600); TLegend *legend = new TLegend(0.9,0.7,0.48,0.9); legend->AddEntry(h1,"ZZTo4l","f"); legend->AddEntry(h2,"ggTo**","f"); legend->AddEntry(h4,"H(125)","f"); canv->cd(); hs->Draw(); legend->Draw(); DataHist->Draw("SAME p E1 X0”); hs->GetXaxis()->SetTitle("M_{4l} [GeV]"); hs->GetYaxis()->SetTitle("Events/4 GeV"); canv->SaveAs("Histo_usporedbe.pdf"); }}