5 #include <StEmcUtil/database/StEmcDecoder.h>
7 #include "St2009WMaker.h"
8 #include "St2009pubWanaMaker.h"
23 Int_t St2009pubWanaMaker::Init(){
27 return StMaker::Init();
33 St2009pubWanaMaker::InitRun(
int runNo){
34 int yyyymmdd = this->GetDBTime().GetDate();
35 int hhmmss = this->GetDBTime().GetTime();
46 hA[0]->Fill(
"inp",1.);
50 varyCuts4backgStudy();
58 St2009pubWanaMaker::evalWeleTrackSign(){
63 for(
unsigned int iv=0;iv<wMK->wEve.vertex.size();iv++) {
65 for(
unsigned int it=0;it<V.eleTrack.size();it++) {
67 if(T.isMatch2Cl==
false)
continue;
68 assert(T.cluster.nTower>0);
69 assert(T.nearTotET>0);
72 float ET=T.cluster.ET;
73 const StMuTrack *glTr=T.glMuTrack; assert(glTr);
74 const StMuTrack *prTr=T.prMuTrack; assert(prTr);
76 float g_chrg=glTr->
charge();
77 float p_chrg=prTr->
charge();
80 if( g_chrg<0 ) g_ipn=1;
81 if( p_chrg<0 ) p_ipn=1;
84 if(fabs(T.primP.Eta()) > 1)
continue;
86 float absEta=fabs(T.primP.Eta());
87 if(T.cluster.ET/T.nearTotET_noEEMC>wMK->par_nearTotEtFrac){
88 if(T.sPtBalance_noEEMC>wMK->par_ptBalance){
91 hA[43]->Fill(T.cluster.ET);
93 hA[46]->Fill(T.cluster.ET);
95 if(absEta > 0.6 && absEta < 1)
96 hA[38]->Fill(T.cluster.ET);
97 if(absEta > 0.3 && absEta < 0.6)
98 hA[39]->Fill(T.cluster.ET);
99 if(absEta > 0.0 && absEta < 0.3)
100 hA[40]->Fill(T.cluster.ET);
104 if(T.cluster.ET /T.nearTotET< wMK->par_nearTotEtFrac)
continue;
107 if(T.sPtBalance>wMK->par_ptBalance ){
110 hA[41]->Fill(T.cluster.ET);
112 hA[44]->Fill(T.cluster.ET);
114 if(absEta > 0.6 && absEta < 1)
115 hA[32]->Fill(T.cluster.ET);
116 if(absEta > 0.3 && absEta < 0.6)
117 hA[33]->Fill(T.cluster.ET);
118 if(absEta > 0.0 && absEta < 0.3)
119 hA[34]->Fill(T.cluster.ET);
124 hA[42]->Fill(T.cluster.ET);
126 hA[45]->Fill(T.cluster.ET);
128 if(absEta > 0.6 && absEta < 1)
129 hA[35]->Fill(T.cluster.ET);
130 if(absEta > 0.3 && absEta < 0.6)
131 hA[36]->Fill(T.cluster.ET);
132 if(absEta > 0.0 && absEta < 0.3)
133 hA[37]->Fill(T.cluster.ET);
136 if(T.sPtBalance<wMK->par_ptBalance )
continue;
138 hA[0]->Fill(
"acc",1.);
141 hA[10+g_ipn]->Fill(ET);
142 hA[12+p_ipn]->Fill(ET);
143 if(g_chrg* p_chrg <-0.5) hA[14+p_ipn]->Fill(ET);
144 hA[6]->Fill(ET,g_chrg/PT);
147 float primPT=prTr->
pt();
148 float globPT=glTr->
pt();
149 hA[28]->Fill(primPT,globPT);
150 hA[29]->Fill(globPT-primPT);
151 if(fabs(globPT-primPT)>1) hA[30]->Fill(ET);
152 if(g_chrg* p_chrg <-0.5) hA[31]->Fill(globPT-primPT);
155 hA[7]->Fill(ET,p_chrg/prTr->
pt());
156 if(ET<par_highET)
continue;
158 hA[16+p_ipn]->Fill(prTr->
eta());
169 St2009pubWanaMaker::scanCrateRate(){
174 for(
unsigned int iv=0;iv<wMK->wEve.vertex.size();iv++) {
176 for(
unsigned int it=0;it<V.eleTrack.size();it++) {
179 int softID=T.pointTower.id;
180 if(softID<=0)
continue;
181 if(wMK->wEve.bemc.statTile[kBTow][softID-1])
continue;
187 float adc=wMK->wEve.bemc.adcTile[kBTow][softID-1];
199 St2009pubWanaMaker::varyCuts4backgStudy(){
201 for(
unsigned int iv=0;iv<wMK->wEve.vertex.size();iv++) {
203 for(
unsigned int it=0;it<V.eleTrack.size();it++) {
205 if(T.isMatch2Cl==
false)
continue;
206 assert(T.cluster.nTower>0);
207 assert(T.nearTotET>0);
209 float nearR=T.cluster.ET /T.nearTotET;
210 float awayET=T.awayTotET;
211 float ET= T.cluster.ET;
215 hA[27] -> Fill(ET, awayET);
223 if(nearR >0.8 && nearR <0.9) {
231 if(nearR >0. && nearR <0.8) {
Double_t pt() const
Returns pT at point of dca to primary vertex.
my own maker to do analysis outside of W selection
int GetTowerCrateFromDaqId(int RDO, int &crate, int &sequence) const
Get crate number from Daq Id for towers.
Short_t charge() const
Returns charge.
Double_t eta() const
Returns pseudo rapidity at point of dca to primary vertex.
int GetDaqIdFromTowerId(int softId, int &RDO) const
Get Daq Id from Software Id for towers.