6 #include "St2009WMaker.h"
8 #include "St2009ZMaker.h"
13 St2009ZMaker::initHistos(){
14 const float PI=TMath::Pi();
19 memset(hA,0,
sizeof(hA));
21 TH1 *h;
float yMax=1e3;
22 char txt[1000], txt0[100];;
25 hA[0]=h=
new TH1F(core+
"EventType",core+
" event type",nCase,0,nCase);
26 h->GetXaxis()->SetTitleOffset(0.4); h->GetXaxis()->SetLabelSize(0.06); h->GetXaxis()->SetTitleSize(0.05); h->SetMinimum(0.8);
27 h->SetLineColor(kBlue);h->SetLineWidth(2);
28 const char *key[]={
"inp",
"vert",
"TT",
"tr1",
"et1",
"con1",
"tr2",
"et2",
"con2",
"phi12",
"m2",
"QQ",
"Zlow",
"Zhigh"};
29 for(
int i=0;i<14;i++) h->Fill(key[i],0.);
34 hA[1]=h=
new TH1F(core+
"Zmass",
" Final Z selection; Invariant Mass (GeV)", 100,0,200);
35 sprintf(txt,
"Reconstructed Charge of each track in candidate ;First Charge;Second Charge");
36 hA[2]=h=
new TH2F(core+
"charge_v_charge", txt,3,-1.5,1.5,3,-1.5,1.5);
37 sprintf(txt,
"Product of Reconstructed Charges of each track in candidate");
38 hA[3]=h=
new TH1F(core+
"charge_product", txt,3,-1.5,1.5);
39 hA[4]=h=
new TH2F(core+
"phi1_v_phi2",
"Comparison of azimuthal position of first and second track;Phi 1;Phi 2",100,-PI,PI,100,-PI,PI);
40 sprintf(txt,
"Relative phi between two tracks in Z candidate");
41 hA[5]=h=
new TH1F(core+
"relative_phi", txt,100,0,PI*2.02);
42 hA[6]=h=
new TH2F(core+
"track_mom_v_mass",
"Q1/pT1*Q2/pT2 versus Invariant Mass;Mass (GeV);Q1/pT1*Q2/pT2",100,0,200,200,-0.1,0.1);
43 sprintf(txt,
"Product of Electron Charges vs Reconstructed Mass;mass (GeV);Q1*Q2");
44 hA[7]=h=
new TH2F(core+
"charge_product_v_mass",txt,50,0,200,3,-1.5,1.5);
45 hA[8]=h=
new TH1F(core+
"et1",
"ET of first cluster (after cuts)",100,0,100);
46 hA[9]=h=
new TH2F(core+
"positron_pos",
"Location of e+ from Z;eta;phi",10,-1,1,10,-PI,PI);
47 hA[10]=h=
new TH2F(core+
"electron_pos",
"Location of e- from Z;eta;phi",10,-1,1,10,-PI,PI);
48 hA[11]=h=
new TH2F(core+
"fmax_v_fmax",
"Final Z Selection, Fmax v Fmax;fmax1;fmax2",100,0,1,100,0,1);
49 hA[12]=h=
new TH2F(core+
"et_v_et",
"Transverse Energies of the two Clusters;Et1;Et2",100,0,100,100,0,100);
50 hA[13]=h=
new TH2F(core+
"rel_phi_v_mass",
"Relative Phi vs Invariant Mass;mass;phi",50,0,200,100,0,PI*2.02);
51 hA[14]=h=
new TH1F(core+
"ZmassLike",
" Final Z selection with Like Charges on both tracks; Invariant Mass (GeV)", 100,0,200);
54 hA[15]=h=
new TH1F(core+
"ZmassUnlike",
" Final Zs, Unlike Charge pairs; Invariant Mass (GeV)", 100,0,200); h->SetFillColor(kYellow);
56 Lx=h->GetListOfFunctions();
57 ln=
new TLine(par_minMassZ,0,par_minMassZ,yMax); ln->SetLineColor(kMagenta); Lx->Add(ln);
58 ln=
new TLine(par_maxMassZ,0,par_maxMassZ,yMax); ln->SetLineColor(kMagenta); Lx->Add(ln);
59 ln=
new TLine(91.2,-.2,91.2,10.); ln->SetLineColor(kGreen); ln->SetLineWidth(3); ln->SetLineStyle(1); Lx->Add(ln);
61 hA[21]=h=
new TH2F(core+
"fmax_v_fmaxbefore",
"Final Z Selection, Fmax v Fmax;fmax1;fmax2",100,0,1,100,0,1);
62 hA[22]=h=
new TH2F(core+
"et_v_etbefore",
"Transverse Energies of the two Clusters;Et1;Et2",100,0,100,100,0,100);
65 hA[23]=h=
new TH1F(core+
"et1val",
"Track-1 ET before cuts; 2x2ET (GeV)",100,0,100);
66 Lx=h->GetListOfFunctions();
67 ln=
new TLine(par_clusterEtZ,0,par_clusterEtZ,yMax); ln->SetLineColor(kMagenta); Lx->Add(ln);
69 hA[24]=h=
new TH1F(core+
"et1frac",
"Track-1 cone ET fraction; 2x2ET/nearET",105,0,1.05);
70 Lx=h->GetListOfFunctions();
71 ln=
new TLine(par_nearTotEtFracZ,0,par_nearTotEtFracZ,yMax); ln->SetLineColor(kMagenta); Lx->Add(ln);
73 hA[25]=h=
new TH1F(core+
"et2val",
"Track-2 ET before cuts; 2x2ET (GeV)",100,0,100);
74 Lx=h->GetListOfFunctions();
75 ln=
new TLine(par_clusterEtZ,0,par_clusterEtZ,yMax); ln->SetLineColor(kMagenta); Lx->Add(ln);
77 hA[26]=h=
new TH1F(core+
"et2frac",
"Track-2 cone ET fraction; 2x2ET/nearET",105,0,1.05);
78 Lx=h->GetListOfFunctions();
79 ln=
new TLine(par_nearTotEtFracZ,0,par_nearTotEtFracZ,yMax); ln->SetLineColor(kMagenta); Lx->Add(ln);
81 hA[27]=h=
new TH1F(core+
"phi12",
"delta phi tr1-tr2; delPhi12(rad)", 100 ,-PI+1.,PI+1.);
82 h->SetFillColor(kBlue);
83 Lx=h->GetListOfFunctions();
84 ln=
new TLine(par_delPhi12,0,par_delPhi12,yMax); ln->SetLineColor(kMagenta); Lx->Add(ln);
85 ln=
new TLine(-par_delPhi12,0,-par_delPhi12,yMax); ln->SetLineColor(kMagenta); Lx->Add(ln);
88 hA[29]=h=
new TH1F(core+
"et1iso",
"Track-1 4x4 ET fract; 2x2ET / 4x4 ET",105,0,1.05);
89 Lx=h->GetListOfFunctions();
90 ln=
new TLine(wMK->par_clustFrac24,0,wMK->par_clustFrac24,yMax); ln->SetLineColor(kMagenta); ln->SetLineStyle(2); Lx->Add(ln);
92 hA[30]=h=
new TH1F(core+
"et2iso",
"Track-2 4x4 ET fract; 2x2ET / 4x4 ET",105,0,1.05);
93 Lx=h->GetListOfFunctions();
94 ln=
new TLine(wMK->par_clustFrac24,0,wMK->par_clustFrac24,yMax); ln->SetLineColor(kMagenta); ln->SetLineStyle(2); Lx->Add(ln);
98 hA[31]=h=
new TH1F(core+
"nVertices",
"Number of vertices per event",10,0,10);
99 hA[32]=h=
new TH1F(core+
"nTracks",
"Number of tracks per vertex",20,0,20);
101 hA[33]=h=
new TH2F(core+
"chRecPNp",
"TPC PRIM Q/PT , black=pairs of unlike charges; 2x2 cluster ET (GeV); Q/PT",100,0.,100.,100,-0.1,0.1);
102 Lx=h->GetListOfFunctions();
103 ln=
new TLine(0,0,100,0); ln->SetLineColor(kMagenta); Lx->Add(ln);
105 hA[34]=h=
new TH2F(core+
"Ene_Deta",
"final Z: cluster energy vs. detector eta; barrel eta bin; 2x2 Energy (GeV)",40,0,40,50,0,100);
108 char tt2[][200]={
"max 2x2",
"track matched",
"2x2 / 4x4",
"no near ET",
"no away ET"};
109 for(
int i=0;i<5;i++){
111 sprintf(txt,
"Unlike Charge pairs, cut=%s; Invariant Mass (GeV/c^2)",tt2[i]);
112 sprintf(txt0,
"%sZmassUnlike%d",core.Data(),i);
113 hA[40+i]=h=
new TH1F(txt0,txt, 100,0,200); h->SetFillColor(kYellow);
115 sprintf(txt,
"Like Charge pairs, cut=%s; Invariant Mass (GeV/c^{2})",tt2[i]);
116 sprintf(txt0,
"%sZmassLike%d",core.Data(),i);
117 hA[50+i]=h=
new TH1F(txt0,txt, 100,0,200); h->SetFillColor(kYellow);
120 hA[60]=h=
new TH2F(core+
"ZmassUnlike_zdc",
"Unlike Charge pairs vs ZDC coinc. rate; ZDC coincidence rate; Invariant Mass (GeV/c^2)",100,0,200000,100,0,200);
121 hA[61]=h=
new TH2F(core+
"ZmassLike_zdc",
"Like Charge pairs vs ZDC coinc. rate; ZDC coincidence rate; Invariant Mass (GeV/c^2)",100,0,200000,100,0,200);
124 for(
int i=0;i<mxHA;i++) {
125 if( hA[i]==0)
continue;
129 LOG_INFO<<Form(
"%s::initHistos done1",
GetName())<<endm;
virtual const char * GetName() const
special overload