#include "TF1.h" #include "TCanvas.h" #include "TPad.h" #include "TText.h" #include "TWenuMonModule.hh" //_____________________________________________________________________________ void TWenuMonModule::BookEEHistograms(EEHist_t& Hist, Int_t I) { char name [200]; char title[200]; // book histograms sprintf(name, "ee_mass_%i",I); sprintf(title,"Mass of 2 EM objects, set %i",I); HBook1F(Hist.fMass,name,title,100,0,200); sprintf(name, "ee_charge_%i",I); sprintf(title,"Charge of 2 EM objects, set %i",I); HBook1F(Hist.fCharge,name,title,10,-5,5); sprintf(name, "ee_pt_%i",I); sprintf(title,"Pt of 2 EM objects, set %i",I); HBook1F(Hist.fPt,name,title,100,0,200); } //_____________________________________________________________________________ void TWenuMonModule::BookElectronHistograms(EleHist_t& Hist, const char* Folder){ char name [200]; char title[200]; TAxis* xa; // book histograms HBook1F(Hist.fEt,"et","Em objects Et",200,0,200,Folder); HBook2F(Hist.fEtVsEta,"et_vs_eta","Em objects Et vs Eta", 100,-5,5,200,0,200,Folder); HBook2F(Hist.fWedgeVsDelXPos,"wedge_vs_delx_pos","Wedge Vs DelX(CES) pos", 100,-10,10,50,0,50,Folder); HBook2F(Hist.fWedgeVsDelXNeg,"wedge_vs_delx_neg","Wedge Vs DelX(CES) neg", 100,-10,10,50,0,50,Folder); HBook2F(Hist.fWedgeVsZCes,"wedge_vs_zces","Wedge Vs Z(CES)", 100,0,250,50,0,50,Folder); HBook2F(Hist.fWedgeVsDelZ,"wedge_vs_delz","Wedge Vs DelZ(CES)", 100,-5,5,50,0,50,Folder); HBook2F(Hist.fEmfrVsDelZ,"emfr_vs_delz","EMFR vs DelZ(CES)", 500,-25,25,100,0,1.,Folder); HBook1F(Hist.fPhi,"phi","EM object phi",128 ,0,6.3,Folder); //----------------------------------------------------------------------------- // electron isolation and Mt histograms //----------------------------------------------------------------------------- HBook1F(Hist.fTIso,"tiso","EM object Track Iso",200,0,2,Folder); HBook1F(Hist.fIso,"iso","EM object isolation energy",210,-5,100,Folder); HBook1F(Hist.fIso1,"iso1","EM object Iso/Et",210,-0.1,2,Folder); //----------------------------------------------------------------------------- // CES histograms //----------------------------------------------------------------------------- HBook1F(Hist.fXCes ,"xces","EM object X(CES)",100,-50, 50,Folder); HBook1F(Hist.fZCes ,"zces","EM object Z(CES)", 50, 0,250,Folder); HBook1F(Hist.fLshr ,"lshr","EM object LSHR" ,100, -1, 1,Folder); HBook1F(Hist.fLshr2,"lshr2","EM object LSHR2",100,-1,1,Folder); HBook1F(Hist.fDelX ,"delx","EM object delX",200,-10,10,Folder); HBook1F(Hist.fDelZ ,"delz","EM object del(Z)",250,-25,25,Folder); HBook1F(Hist.fEOverP,"ep","EM object E/P pos",100,0,5,Folder); HBook1F(Hist.fEOverPPos,"ep_pos","EM object E/P pos",100,0,5,Folder); HBook1F(Hist.fEOverPNeg,"ep_neg","EM object E/P neg",100,0,5,Folder); HBook1F(Hist.fHadEm,"hadem","EM object Had/Em",200,0,1,Folder); HBook1F(Hist.fCesStripEnergy,"estrip","EM object CES strip energy", 200,0,200,Folder); HBook1F(Hist.fCesWireEnergy,"ewire","EM object CES wire energy", 200,0,200,Folder); HBook2F(Hist.fCesEStripVsEWire,"estrip_vs_ewire","E(strip) Vs E(wire)", 100,0,200,100,0,200,Folder); for (int i=0; i<2; i++) { sprintf(name, "estrip_vs_eta_%i",i); sprintf(title," E(strip) Vs Eta [%i]",i); HBook2F(Hist.fCesEStripVsEta[i],name, title,100,0,200,200,-2,2,Folder); sprintf(name, "estrip_vs_et_%i",i); sprintf(title," E(strip) Vs Et [%i]",i); HBook2F(Hist.fCesEStripVsEt[i],name, title,100,0,200,200,0,200,Folder); } HBook1F(Hist.fCesStripChi2,"cess_chi2","CES strip chi2",250,0,50,Folder); HBook1F(Hist.fCesWireChi2 ,"cesw_chi2","CES Wire chi2" ,250,0,50,Folder); HBook1F(Hist.fNCesStripClusters,"cess_n","N(CES strip clusters)", 200,0,200,Folder); HBook1F(Hist.fNCesWireClusters,"cesw_n","N(CES wire clusters)", 200,0,200,Folder); HBook1F(Hist.fN10,"n_10"," N EM objects(Et>10)",10,0,10,Folder); HBook1F(Hist.fMass,"mass","mass of 2 em objects (Et>10) (%i)",50,0,250,Folder); //----------------------------------------------------------------------------- // track histograms //----------------------------------------------------------------------------- HBook1F(Hist.fTrackD0,"trk_d0","Ele D0",500,-5,5,Folder); Hist.fTrackD0->GetXaxis()->SetTitle("electron track D0, [cm]"); HBook1F(Hist.fTrackD0Corr,"trk_d0corr","Ele D0corr",500,-2.5,2.5,Folder); xa = Hist.fTrackD0Corr->GetXaxis(); xa->SetTitle("electron track D0 corrected for the beam offset, [cm]"); HBook1F(Hist.fTrackZ0,"z0","Ele Z0",200,-200,200,Folder); HBook1F(Hist.fTrackChi2,"trk_chi2","Ele track chi**2",200,0,10,Folder); HBook1F(Hist.fTrackCotChi2,"trk_cot_chi2","Ele track COT chi**2", 200,0,10,Folder); HBook1F(Hist.fTrackNCotHitsTot,"trk_ncot_hits_tot","N(COT) hits total", 100,0,100,Folder); HBook1F(Hist.fTrackNCotHitsAx ,"trk_ncot_hits_ax" ,"N(COT) hits axial", 100,0,100,Folder); HBook1F(Hist.fTrackNCotHitsSt ,"trk_ncot_hits_st" ,"N(COT) hits stereo", 100,0,100,Folder); HBook1F(Hist.fTrackPt ,"trk_pt" ,"EM obj Track Pt" ,200, 0,100,Folder); HBook1F(Hist.fTrackXCes,"trk_xces","EM obj track XCes",200,-50, 50,Folder); HBook1F(Hist.fTrackZCes,"trk_zces","EM obj track ZCes",200, 0,250,Folder); HBook1F(Hist.fNSvxHits,"n_svx_hits","N(SVX hits total)",50,0,50,Folder); HBook1F(Hist.fNSvxRPhiHits,"n_svx_rphi_hits","N(SVX rphi hits)",50,0,50,Folder); HBook1F(Hist.fNSvxSASHits ,"n_svx_sas_hits","N(SVX SAS hits)",50,0,50,Folder); HBook1F(Hist.fNSvxZHits ,"n_svx_z_hits","N(SVX Z hits)",50,0,50,Folder); HBook1F(Hist.fExtDx,"ext_dx","Extrapolator DX(xw-bob)",100,-5,5,Folder); HBook1F(Hist.fExtDz,"ext_dz","Extrapolator DZ(zs-bob)",100,-5,5,Folder); HBook1F(Hist.fFailedBits,"failed_bits","Failed ID bits",32,0,32,Folder); } //_____________________________________________________________________________ void TWenuMonModule::BookEScaleHistograms(EScaleHist_t& Hist) { // book histograms char name [200]; char title[200]; HBook1F(Hist.fEoverP_inc,"EoverP_inc","Ele E/P All CEM",50,0.8,1.25); HBook1F(Hist.fEoverP_NE,"EoverP_NE","Ele E/P NE Arch",50,0.8,1.25); HBook1F(Hist.fEoverP_SE,"EoverP_SE","Ele E/P SE Arch",50,0.8,1.25); HBook1F(Hist.fEoverP_NW,"EoverP_NW","Ele E/P NW Arch",50,0.8,1.25); HBook1F(Hist.fEoverP_SW,"EoverP_SW","Ele E/P SW Arch",50,0.8,1.25); HBook1F(Hist.fZMass_inc,"ZMass_inc","Z mass- All",50,86,98); HBook1F(Hist.fZMass_CC,"ZMass_CC","Z mass- CC",50,86,98); HBook1F(Hist.fZMass_CP,"ZMass_CP","Z mass- CP",50,86,98); HBook1F(Hist.fZMass_CPW,"ZMass_CPW","Z mass- CPW",50,86,98); HBook1F(Hist.fZMass_CPE,"ZMass_CPE","Z mass- CPE",50,86,98); } //_____________________________________________________________________________ void TWenuMonModule::BookEventHistograms(EventHist_t& Hist,Int_t I) { // book histograms char name [200]; char title[200]; HBook1F(Hist.fMet0,Form("met0_%i",I),Form("MET0 (%i)",I),100,0,100); HBook1F(Hist.fMet1,Form("met1_%i",I),Form("MET1 (%i)",I),100,0,100); HBook2F(Hist.fMet0VsMet1, Form("met0_vs_met1_%i",I), Form("MET0 vs MET1 (%i)",I), 100,0,100,100,0,100); HBook1F(Hist.fNTracks,Form("ntracks_%i",I),Form("NTracks(%i)",I), 200,0,200); sprintf(name,"mt0_%i",I); sprintf(title,"MT0, [%i]",I); HBook1F(Hist.fMt[0],name,title,75,0,150); sprintf(name,"mt1_%i",I); sprintf(title,"MT1, [%i]",I); HBook1F(Hist.fMt[1],name,title,75,0,150); sprintf(name,"n_good_ele_%i",I); sprintf(title,"N(good electrons), set %i",I); HBook1F(Hist.fNGoodEle,name,title,20,0,20); sprintf(name,"n_loose_ele_%i",I); sprintf(title,"N(loose electrons), set %i",I); HBook1F(Hist.fNLooseEle,name,title,20,0,20); sprintf(name,"iso_vs_met_%i",I); sprintf(title,"Et(iso) vs MET, [%i]",I); HBook2F(Hist.fIsoVsMet,name,title,100,0,100,100,0,50); sprintf(name,"iso1_vs_met_%i",I); sprintf(title,"Et(iso) vs MET, [%i]",I); HBook2F(Hist.fIso1VsMet,name,title,100,0,100,100,0,1); sprintf(name,"met_perp0_%i",I); sprintf(title,"MET perp0 (i)",I); HBook1F(Hist.fMetPerp[0],name,title,100,-50,50); sprintf(name,"met_perp1_%i",I); sprintf(title,"MET perp1 (i)",I); HBook1F(Hist.fMetPerp[1],name,title,100,-50,50); } //_____________________________________________________________________________ void TWenuMonModule::BookHistograms() { TFolder* fol; TFolder* hist_folder; char folder_name[200]; //----------------------------------------------------------------------------- // clear the histogram list //----------------------------------------------------------------------------- DeleteHistograms(); hist_folder = (TFolder*) GetFolder()->FindObject("Hist"); //----------------------------------------------------------------------------- // always the histogram for run number //----------------------------------------------------------------------------- HBook1F(fHist.fRunNumber,"run_number","Run Number",1000,100000,200000); HBook1F(fHist.fFilterResult,"filter_result","Filter result",5,0,5); //----------------------------------------------------------------------------- // individual electron histograms //----------------------------------------------------------------------------- for (int i=0; iFindObject(folder_name); if (! fol) fol = hist_folder->AddFolder(folder_name,folder_name); BookElectronHistograms(fHist.fEle[i],Form("Hist/%s",folder_name)); } //----------------------------------------------------------------------------- // Z histograms //----------------------------------------------------------------------------- for (int i=0; i<2; i++) { BookEEHistograms(fHist.fEEHist[i],i); } BookEScaleHistograms(fHist.fEScaleHist); BookEventHistograms(fHist.fEventHist,0); }