TCanvas* pMenu(std::string what) { TCanvas* c = new TCanvas(("cMenu"+what).c_str(),("cMenu"+what).c_str(),1500,400); c->SetBottomMargin(0.6); c->SetLeftMargin(0.04); c->SetRightMargin(0.01); TH1D* h = (TH1D*)gROOT->FindObject(("hMenuAlgos"+what).c_str()); h->SetLineColor(4); h->SetFillColor(4); h->SetFillStyle(3003); h->LabelsOption("v"); h->GetYaxis()->SetLabelOffset(0.005); // h->GetXaxis()->SetRange(550,680); h->DrawCopy(); return c; }
void plotInfoByRun(){ setTDRStyle(); gROOT->ForceStyle(); TFile *data = TFile::Open("test.root"); TTree *tree=(TTree*) data->Get("tree"); int nrunsmax=100; int nruns; int runnumberTMP[nrunsmax]; double lumiTMP[nrunsmax]; int NumOfJetsTMP[nrunsmax]; double SumJetPtTMP[nrunsmax]; int SelectedEvtsTMP[nrunsmax]; int NumOfJets_dijetsTMP[nrunsmax]; double SumJetPt_dijetsTMP[nrunsmax]; int SelectedEvts_dijetsTMP[nrunsmax]; tree->SetBranchAddress("nruns",&nruns); tree->SetBranchAddress("runnumber",&runnumberTMP); tree->SetBranchAddress("lumi",&lumiTMP); tree->SetBranchAddress("SumJetPt",&SumJetPtTMP); tree->SetBranchAddress("NumOfJets",&NumOfJetsTMP); tree->SetBranchAddress("SelectedEvts",&SelectedEvtsTMP); tree->SetBranchAddress("SumJetPt_dijets",&SumJetPt_dijetsTMP); tree->SetBranchAddress("NumOfJets_dijets",&NumOfJets_dijetsTMP); tree->SetBranchAddress("SelectedEvts_dijets",&SelectedEvts_dijetsTMP); tree->GetEntry(0); for(int i=0; i<nruns; i++){ cout<<"runnumberTMP["<< i<<"]= "<<runnumberTMP[i] << endl; } int runnum[nruns]; double lumi[nruns]; int selEv[nruns]; int Njets[nruns]; double JetSumPt[nruns]; int selEv_dj[nruns]; int Njets_dj[nruns]; double JetSumPt_dj[nruns]; //reorder the runnnumbers int NewI=0; int minRN; int minRNfix=3*runnumberTMP[0]; while(NewI<nruns){ cout<< " runnumberTMP[0] "<< runnumberTMP[0] << endl; int MinI=999; minRN=minRNfix; for(int i=0; i<nruns; i++) { if(runnumberTMP[i]<minRN && runnumberTMP[i]!=-1){ minRN=runnumberTMP[i]; MinI=i; } } runnum[NewI]=runnumberTMP[MinI]; lumi[NewI]=lumiTMP[MinI]; selEv[NewI]=SelectedEvtsTMP[MinI]; Njets[NewI]=NumOfJetsTMP[MinI]; JetSumPt[NewI]=SumJetPtTMP[MinI]; selEv_dj[NewI]=SelectedEvts_dijetsTMP[MinI]; Njets_dj[NewI]=NumOfJets_dijetsTMP[MinI]; JetSumPt_dj[NewI]=SumJetPt_dijetsTMP[MinI]; cout<< "NewI " <<NewI << " runnum[NewI] "<<runnum[NewI] <<" lumi[NewI] " << lumi[NewI]<< endl; NewI++; runnumberTMP[MinI]=-1; } TString names[nrunsmax]; char arg[100]; for(int n=0; n<nruns; n++){ cout<< "runnum "<< runnum[n] << endl; sprintf(arg,"%d",runnum[n]); names[n]=(TString)arg; } //define histos with right number of bins int nbins=nruns; TH1D *SelectedEvts = new TH1D("SelectedEvts","SelectedEvts",nbins,0.,nbins-1); TH1D *AvJetPt = new TH1D("AvJetPt","AvJetPt",nbins,0.,nbins-1); TH1D *SelectedEvts_dijets = new TH1D("SelectedEvts_dijets","SelectedEvts_dijets",nbins,0.,nbins-1); TH1D *AvJetPt_dijets = new TH1D("AvJetPt_dijets","AvJetPt_dijets",nbins,0.,nbins-1); for(int h=0; h<nbins;h++){ cout<<"name "<< names[h] << " value "<< selEv[h]<<"/"<<lumi[h] << endl; if(lumi[h]<=0.) continue; SelectedEvts->GetXaxis()->SetBinLabel(h+1,names[h]); SelectedEvts->SetBinContent(h+1,selEv[h]/lumi[h]); // if(selEv[h]>0) SelectedEvts->SetBinError(h+1,sqrt(selEv[h])/lumi[h]); // SelectedEvts_dijets->GetXaxis()->SetBinLabel(h+1,names[h]); SelectedEvts_dijets->SetBinContent(h+1,selEv_dj[h]/lumi[h]); // AvJetPt->GetXaxis()->SetBinLabel(h+1,names[h]); if(Njets[h]>0) AvJetPt->SetBinContent(h+1,JetSumPt[h]/Njets[h]); // AvJetPt_dijets->GetXaxis()->SetBinLabel(h+1,names[h]); if(Njets_dj[h]>0) AvJetPt_dijets->SetBinContent(h+1,JetSumPt_dj[h]/Njets_dj[h]); } //style SelectedEvts->SetYTitle("Events/lumi [nb]"); SelectedEvts->LabelsOption("v","X"); SelectedEvts->SetMaximum(1.5*SelectedEvts->GetMaximum()); // SelectedEvts_dijets->SetYTitle("Events/lumi [nb]"); SelectedEvts_dijets->LabelsOption("v","X"); SelectedEvts_dijets->SetMaximum(1.5*SelectedEvts_dijets->GetMaximum()); // AvJetPt->SetYTitle("Average Jet p_{T} [GeV]"); AvJetPt->LabelsOption("v","X"); AvJetPt->SetMaximum(1.5*AvJetPt->GetMaximum()); // AvJetPt_dijets->SetYTitle("Average Jet p_{T}[GeV]"); AvJetPt_dijets->LabelsOption("v","X"); AvJetPt_dijets->SetMaximum(1.5*AvJetPt_dijets->GetMaximum()); TCanvas *c = new TCanvas("c","",600,600); TPaveText *title = new TPaveText(0.5,0.75,0.9,0.9,"blNDC"); title->SetFillStyle(4000); title->SetFillColor(kWhite); title->SetBorderSize(0.1); title->SetTextFont(42); title->AddText("JPT jets"); title->AddText("p_{T}>25 GeV , | #eta|<2.6"); // TPaveText *titledj = new TPaveText(0.5,0.75,0.9,0.9,"blNDC"); titledj->SetFillStyle(4000); titledj->SetFillColor(kWhite); titledj->SetBorderSize(0.1); titledj->SetTextFont(42); titledj->AddText("JPT dijets"); titledj->AddText("p_{T}>25 GeV , | #eta|<3 , #Delta#phi>2.1"); // SelectedEvts->Draw(); title->Draw(); c->SaveAs("SelectedEvts.gif"); AvJetPt->Draw(); title->Draw(); c->SaveAs("AvJetPt.gif"); title->Draw(); SelectedEvts_dijets->Draw(); titledj->Draw(); c->SaveAs("SelectedEvts_dijets.gif"); AvJetPt_dijets->Draw(); titledj->Draw(); c->SaveAs("AvJetPt_dijets.gif"); c->Close(); }