StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
St2011pubMc_histo.cxx
1 // $Id: St2011pubMc_histo.cxx,v 1.1 2011/02/10 20:33:25 balewski Exp $
2 //
3 //*-- Author : Justin Stevens, IUCF
4 
5 #include <TH2.h>
6 #include <TList.h>
7 #include <TLine.h>
8 #include <TMath.h>
9 
10 #include "St2011pubMcMaker.h"
11 
12 //________________________________________________
13 //________________________________________________
14 void
15 St2011pubMcMaker::initHistos(){
16  //const float PI=TMath::Pi();
17  TString core="MC"; // prefix added to every histo name, to allow for multipl maker saving histos in the same root file
18 
19  //...... data histograms
20  memset(hA,0,sizeof(hA));
21  TH1 *h; //TH2 *h2;
22  //TList *Lx; TLine *ln;
23  const float PI=TMath::Pi();
24 
25 
26  //Quantities from geant and correlations w/ reconstructed values
27 
28  hA[1]=h=new TH1F(core+"Wpt","W pt from Geant; W pt",50,0,50);
29  hA[2]=h=new TH1F(core+"WpL","W pL from Geant; W pL",100,-100,100);
30  hA[3]=h=new TH1F(core+"WminusHadRecoilpt","W pt (from Geant) - Hadronic Recoil pt ; W - hadronic recoil pt",100,-20,20);
31  hA[4]=h=new TH2F(core+"hadRec_Wpt","Hadronic Recoil pt vs W pt from Geant; W pT; hadronic recoil pt",100,0,20,100,0,20);
32  hA[5]=h=new TH1F(core+"hadRecoilPt","Hadronic recoil pt; Hadronic recoil pt",50,0,50);
33  hA[6]=h=new TH2F(core+"delPhi_Wpt","#Delta #phi (W + hadronic recoil) vs W pT from Geant; W pT; #Delta #phi",50,0,50,100,-4,4);
34  hA[7]=h=new TH2F(core+"WptminusHad_Wpt","W pt (from Geant) - Hadronic Recoil pt vs W pt; W pt; W - hadronic recoil pt",50,0,50,100,-20,20);
35  hA[8]=h=new TH2F(core+"delPhi_Recoilpt","#Delta #phi (W + hadronic recoil) vs Hadronic Recoil pt; Hadronic Recoil pT; #Delta #phi",50,0,50,100,-4,4);
36 
37  //electron plots
38  hA[9]=h=new TH1F(core+"electronGeantPt","Electron pt from Geant; Geant electron pt",60,0,60);
39  hA[10]=h=new TH1F(core+"electronRecoPt","Electron Reco pt ; 2x2 cluster ET",60,0,60);
40  hA[11]=h=new TH2F(core+"electronRecovsGeant","Electron Reco pt vs Geant pt; Geant electron pt; 2x2 cluster Et",60,0,60,60,0,60);
41  hA[12]=h=new TH2F(core+"diffElectronPtvsGeantpt","Electron pt (Geant - Reco) vs Geant; Geant Electron pT; Geant - Reco Electron pT",60,0,60,100,-20,20);
42 
43  //neutrino plots
44  hA[13]=h=new TH1F(core+"neutrinoRecoPt","Neutrino pt (ie -(had. recoil - ele) pT); Reco Neutrino pT",60,0,60);
45  hA[14]=h=new TH1F(core+"neutrinoGeantPt","Neutrino pt from Geant; Geant neutrino pT",60,0,60);
46  hA[15]=h=new TH2F(core+"neutrinoRecovsGeant","Neutrino Reco pt vs Geant pt; Geant neutrino pt; Reco neutrino Et",60,0,60,60,0,60);
47  hA[16]=h=new TH1F(core+"diffNeutrinoPt","Neutrino pt (Geant - Reco); Geant - Reco Neutrino pT",100,-20,20);
48  hA[17]=h=new TH2F(core+"eleG_neutrinoG","Electron Geant pt vs Neutrino Geant pt; Geant Neutrino pt; Geant Electron pt",60,0,60,60,0,60);
49 
50  //Transvers Mass Reco
51  hA[18]=h=new TH2F(core+"delPhiGeant_Reco","Reco #phi_{e,#nu} vs Geant #phi_{e,#nu}; #phi_{e,#nu} Reco ; #phi_{e,#nu} Geant",50,-6,6,50,-6,6);
52  hA[19]=h=new TH1F(core+"delPhiGeantminusReco","Reco cos(#phi_{e,#nu}) minus Geant cos(#phi_{e,#nu}); Geant-Reco ",50,-.2,.2);
53  hA[20]=h=new TH1F(core+"mT","Reco Transverse Mass; Reco m_{T}",100,0,100);
54  hA[21]=h=new TH1F(core+"gMT","Geant Transverse Mass; Geant m_{T}",100,0,100);
55  hA[22]=h=new TH2F(core+"mTvsEleEt","Reco Electron ET vs Reco Transverse Mass; m_{T} GeV;2x2 Cluster ET GeV",100,0,100,60,0,60);
56  hA[23]=h=new TH1F(core+"GmTminusmT","Geant - Reco Transverse Mass; Geant - Reco mT (GeV)",100,-20,20);
57 
58  //Hadronic Recoil Eta
59  hA[24]=h=new TH1F(core+"Weta","W #eta from Geant; W #eta from Geant",100,-4,4);
60  hA[25]=h=new TH1F(core+"RecoilEta_all","Hadronic Recoil #eta (for all W #eta); Hadronic Recoil #eta",50,-4,4);
61  hA[26]=h=new TH2F(core+"RecoilEtaAll_Wpt","Hadronic Recoil #eta (for all W #eta) vs W pt (from Geant); W pt; Hadronic Recoil #eta",50,0,50,50,-4,4);
62  hA[27]=h=new TH1F(core+"RecoilEta_WetaPos","Hadronic Recoil #eta (for W #eta > 0); Hadronic Recoil #eta",50,-4,4);
63  hA[28]=h=new TH1F(core+"RecoilEta_WetaNeg","Hadronic Recoil #eta (for W #eta < 0); Hadronic Recoil #eta",50,-4,4);
64 
65 
66  //Reconstructing W pL
67  hA[29]=h=new TH1F(core+"RecoPlusWpL","Reco W pL; RecoPlus W pL",100,-200,200);
68  hA[30]=h=new TH1F(core+"GeantMinusRecoPlusWpL","Geant W pL - Reco W pL; Geant - RecoPlus W pL",100,-200,200);
69  hA[31]=h=new TH2F(core+"RecoPlusvsGeantWpL","RecoPlus W pL vs Geant W pL ; Geant W pL;Reco W pL",100,-200,200,200,-200,200);
70  hA[32]=h=new TH1F(core+"RecoMinusWpL","RecoMinus W pL; RecoMinus W pL",100,-200,200);
71  hA[33]=h=new TH1F(core+"GeantMinusRecoMinusWpL","Geant W pL - RecoMinus W pL; Geant - RecoMinus W pL",100,-200,200);
72  hA[34]=h=new TH2F(core+"RecoMinusvsGeantWpL","RecoMinus W pL vs Geant W pL ; Geant W pL;RecoMinus W pL",100,-200,200,100,-200,200);
73 
74  hA[35]=h=new TH2F(core+"RecoMinusvsGeantWpL_neg","RecoMinus W pL vs Geant W pL (for ele #eta < -0.8); Geant W pL;RecoMinus W pL",100,-200,200,100,-200,200);
75  hA[36]=h=new TH2F(core+"RecoMinusvsGeantWpL_pos","RecoMinus W pL vs Geant W pL (for ele #eta > 0.8); Geant W pL;RecoMinus W pL",100,-200,200,100,-200,200);
76  hA[37]=h=new TH2F(core+"RecoPlusvsGeantWpL_neg","RecoPlus W pL vs Geant W pL (for ele #eta < -0.8); Geant W pL;RecoPlus W pL",100,-200,200,100,-200,200);
77  hA[38]=h=new TH2F(core+"RecoPlusvsGeantWpL_pos","RecoPlus W pL vs Geant W pL (for ele #eta > 0.8); Geant W pL;RecoPlus W pL",100,-200,200,100,-200,200);
78 
79  //ele E vs W pL for different thetas
80  hA[39]=h=new TH2F(core+"ElectronEvsWpL_neg","Electron E vs W pL (from Geant) for #eta < -0.8; W pL from Geant; Reco Electron E",100,-100,100,100,0,100);
81  hA[40]=h=new TH2F(core+"ElectronEvsWpL_pos","Electron E vs W pL (from Geant) for #eta > 0.8; W pL from Geant; Reco Electron E",100,-100,100,100,0,100);
82  hA[41]=h=new TH2F(core+"ElectronEvsWpL_zero","Electron E vs W pL (from Geant) for -0.1 < #eta < 0.1; W pL from Geant; Reco Electron E",100,-100,100,100,0,100);
83  hA[42]=h=new TH1F(core+"ElectronE_neg","Electron E for #eta < -0.8; Reco Electron E",100,0,100);
84  hA[43]=h=new TH1F(core+"ElectronE_pos","Electron E for #eta > 0.8; Reco Electron E",100,0,100);
85  hA[44]=h=new TH1F(core+"ElectronE_zero","Electron E for -0.1 < #eta < 0.1; Reco Electron E",100,0,100);
86 
87  //free 45-49
88 
89  //efficiency histos
90  hA[50]=h=new TH1F(core+"eleETall","pt of all leptons ; lepton pt (from Geant)",100,0,100);
91  hA[51]=h=new TH1F(core+"eleETtrig","pt of leptons that satisfy trigger ; lepton pt (from Geant)",100,0,100);
92  hA[52]=h=new TH1F(core+"eleETvert","pt of leptons that w/ good vertex ; lepton pt (from Geant)",100,0,100);
93  hA[53]=h=new TH1F(core+"eleETreco","pt of leptons that pass W cuts ; lepton pt (from Geant)",100,0,100);
94  hA[54]=h=new TH1F(core+"eleEtaAll","#eta of all leptons ; lepton #eta (from Geant)",100,-1.1,1.1);
95  hA[55]=h=new TH1F(core+"eleEtaTrig","#eta of leptons that satisfy trigger ; lepton #eta (from Geant)",100,-1.1,1.1);
96  hA[56]=h=new TH1F(core+"eleEtaVert","#eta of leptons that w/ good vertex ; lepton #eta (from Geant)",100,-1.1,1.1);
97  hA[57]=h=new TH1F(core+"eleEtaReco","#eta of leptons that pass W cuts ; lepton #eta (from Geant)",100,-1.1,1.1);
98  hA[58]=h=new TH1F(core+"eleZvertAll","zVertex of all events ; zVertex (from Geant)",100,-100,100);
99  hA[59]=h=new TH1F(core+"eleZvertTrig","zVertex of events that satisfy trigger ; zVertex (from Geant)",100,-100,100);
100  hA[60]=h=new TH1F(core+"eleZvertVert","zVertex of events that w/ good vertex ; zVertex (from Geant)",100,-100,100);
101  hA[61]=h=new TH1F(core+"eleZvertReco","zVertex of events that pass W cuts ; zVertex (from Geant)",100,-100,100);
102  hA[62]=h=new TH1F(core+"elePhiAll","#phi of all leptons; lepton #phi (from Geant)",64,-PI,PI);
103  hA[63]=h=new TH1F(core+"elePhiTrig","#phi of leptons that satisfy trigger ; lepton #phi (from Geant)",64,-PI,PI);
104  hA[64]=h=new TH1F(core+"elePhiVert","#phi of leptons that w/ good vertex ; lepton #phi (from Geant)",64,-PI,PI);
105  hA[65]=h=new TH1F(core+"elePhiReco","#phi of leptons that pass W cuts ; lepton #phi (from Geant)",64,-PI,PI);
106 
107  //different binning for ET histograms
108  hA[68]=h=new TH1F(core+"eleETallJoe","pt of all leptons ; lepton pt (from Geant)",100,1,101);
109  hA[69]=h=new TH1F(core+"eleETtrigJoe","pt of leptons with good trigger; lepton pt (from Geant)",100,1,101);
110  hA[70]=h=new TH1F(core+"eleETvertJoe","pt of leptons with good vertex; lepton pt (from Geant)",100,1,101);
111  hA[71]=h=new TH1F(core+"eleETrecoJoe","pt of reconstructed leptons; lepton pt (from Geant)",100,1,101);
112 
113  //plot for Scott to look at trigger effic W+ vs W-
114  hA[66]=h=new TH2F(core+"eleEta_ptPreTrig","Reconstructed lepton pt vs lepton detector #eta from Geant (before trig); lepton detector #eta; lepton pt (from Geant)",100,-1.1,1.1,100,0,100);
115  hA[67]=h=new TH2F(core+"eleEta_ptPostTrig","Reconstructed lepton pt vs lepton detector #eta from Geant (after trig); lepton detector #eta; lepton pt (from Geant)",100,-1.1,1.1,100,0,100);
116 
117  //x1 and x2 distributions
118  hA[72]=h=new TH1F(core+"wRapid","Rapidity of W; W rapidity",100,-2,2);
119  hA[73]=h=new TH1F(core+"x1","x1 distribution; x1",100,0,1);
120  hA[74]=h=new TH1F(core+"x2","x2 distribution; x2",100,0,1);
121  hA[75]=h=new TH2F(core+"x2_x1","x2 vs x1 ; x1; x2",100,0,1,100,0,1);
122  hA[76]=h=new TH1F(core+"x1minusx2","x1 - x2; x1-x2",100,-1,1);
123  // add histos to the list (if provided)
124  for(int i=0;i<mxHA;i++) {
125  if( hA[i]==0) continue;
126  HList->Add( hA[i]);
127  }
128  // HList->ls();
129  LOG_INFO<<Form("%s::initHistos done",GetName())<<endm;
130 
131 }
132 
133 // $Log: St2011pubMc_histo.cxx,v $
134 // Revision 1.1 2011/02/10 20:33:25 balewski
135 // start
136 //
virtual const char * GetName() const
special overload
Definition: StMaker.cxx:237