BOSS 7.0.6
BESIII Offline Software System
Loading...
Searching...
No Matches
DQA_EMC.cxx
Go to the documentation of this file.
1#include <vector>
2
3#include "GaudiKernel/MsgStream.h"
4#include "GaudiKernel/SmartDataPtr.h"
5#include "GaudiKernel/PropertyMgr.h"
6#include "GaudiKernel/Bootstrap.h"
7
8#include "GaudiKernel/INTupleSvc.h"
9#include "GaudiKernel/NTuple.h"
10#include "GaudiKernel/ITHistSvc.h"
11
12#include "CLHEP/Vector/ThreeVector.h"
13#include "CLHEP/Vector/LorentzVector.h"
14
16#include "EventModel/Event.h"
17
22
23//#include "VertexFit/VertexDbSvc.h"
25//
26#include "DQAEvent/DQAEvent.h"
27#include "DQA_EMC/DQA_EMC.h"
28
29#ifndef ENABLE_BACKWARDS_COMPATIBILITY
31#endif
32using CLHEP::HepLorentzVector;
33
34
35/////////////////////////////////////////////////////////////////////////////
36
37DQA_EMC::DQA_EMC(const std::string& name, ISvcLocator* pSvcLocator) :
38 Algorithm(name, pSvcLocator) {
39
40 //Declare the properties
41 declareProperty("NtupleOutput", m_NtupleOutput=0);
42
43}
44
45// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
47 MsgStream log(msgSvc(), name());
48
49 log << MSG::INFO << "in initialize()" << endmsg;
50 StatusCode status;
51
52 // DQA
53 // The first directory specifier must be "DQAFILE"
54 // The second is the sub-system name: MDC, DEDX, TOF, EMC, MUC, TRG
55 // user can define more directory, such as DAQFILE/MDC/Bhabha.
56 NTuplePtr nt(ntupleSvc(), "DQAFILE/EMC");
57 if ( nt ) m_tuple = nt;
58 else {
59 m_tuple = ntupleSvc()->book("DQAFILE/EMC", CLID_ColumnWiseTuple, "EMC ntuple");
60 if( m_tuple ) {
61 status = m_tuple->addItem("ixtal", m_ixtal);
62 status = m_tuple->addItem("npart", m_npart);
63 status = m_tuple->addItem("ntheta",m_ntheta);
64 status = m_tuple->addItem("nphi", m_nphi);
65 status = m_tuple->addItem("theta", m_theta);
66 status = m_tuple->addItem("phi", m_phi);
67 status = m_tuple->addItem("emcX", m_emcX);
68 status = m_tuple->addItem("emcY", m_emcY);
69 status = m_tuple->addItem("eSeed", m_eSeed);
70 status = m_tuple->addItem("e5x5", m_e5x5);
71 status = m_tuple->addItem("energy",m_energy);
72 status = m_tuple->addItem("time", m_time);
73
74 } else {
75 log << MSG::ERROR << "Can not book N-tuple:" << long(m_tuple) << endreq;
76 }
77 }
78
79 if(service("THistSvc", m_thistsvc).isFailure()) {
80 log << MSG::ERROR << "Couldn't get THistSvc" << endreq;
81 return StatusCode::FAILURE;
82 }
83
84 char name[60];
85 char title[60];
86
87 std::string HistName0, HistName;
88 HistName0="/DQAHist/EMC/";
89
90 sprintf( name, "EMC_Bhabha_ShowerEneBarrelVsEvent");
91 sprintf( title, "EMC Bhabha ShowerEneBarrel vs event");
92
93 m_HistEnergyB =new TH1F(name,title,200,0.,2.0);
94 m_HistEnergyB->GetXaxis()->SetTitle("shower energy(GeV)");
95 m_HistEnergyB->GetXaxis()->CenterTitle();
96 m_HistEnergyB->GetYaxis()->SetTitle("Number of event");
97 m_HistEnergyB->GetYaxis()->CenterTitle();
98
99 HistName=HistName0+name;
100 if(m_thistsvc->regHist(HistName, m_HistEnergyB).isFailure()){
101 log << MSG::ERROR << "Couldn't register " <<name<< endreq;
102 }
103
104 sprintf( name, "EMC_Bhabha_ShowerEneEastVsEvent");
105 sprintf( title, "EMC Bhabha ShowerEneEast vs event");
106 m_HistEnergyEast =new TH1F(name,title,200,0.,2.0);
107 m_HistEnergyEast->GetXaxis()->SetTitle("shower energy(GeV)");
108 m_HistEnergyEast->GetXaxis()->CenterTitle();
109 m_HistEnergyEast->GetYaxis()->SetTitle("Number of event");
110 m_HistEnergyEast->GetYaxis()->CenterTitle();
111
112 HistName=HistName0+name;
113 if(m_thistsvc->regHist(HistName, m_HistEnergyEast).isFailure()){
114 log << MSG::ERROR << "Couldn't register "<<name << endreq;
115 }
116
117
118 sprintf( name, "EMC_Bhabha_ShowerEneWestVsEvent");
119 sprintf( title, "EMC Bhabha ShowerEneWest vs event");
120 m_HistEnergyWest =new TH1F(name,title,200,0.,2.0);
121 m_HistEnergyWest->GetXaxis()->SetTitle("shower energy(GeV)");
122 m_HistEnergyWest->GetXaxis()->CenterTitle();
123 m_HistEnergyWest->GetYaxis()->SetTitle("Number of event");
124 m_HistEnergyWest->GetYaxis()->CenterTitle();
125
126
127 HistName=HistName0+name;
128 if( m_thistsvc->regHist(HistName, m_HistEnergyWest).isFailure()){
129 log << MSG::ERROR << "Couldn't register "<<name << endreq;
130 }
131
132
133 sprintf( name, "EMC_Bhabha_ShowerThetaVsvent");
134 sprintf( title, "EMC Bhabha ShowerTheta vs event");
135 m_HistTheta =new TH1F(name,title,56, 0, 56);
136 m_HistTheta->GetXaxis()->SetTitle("shower ID(theta)");
137 m_HistTheta->GetXaxis()->CenterTitle();
138 m_HistTheta->GetYaxis()->SetTitle("Number of event");
139 m_HistTheta->GetYaxis()->CenterTitle();
140
141 HistName=HistName0+name;
142 if( m_thistsvc->regHist(HistName, m_HistTheta).isFailure()){
143 log << MSG::ERROR << "Couldn't register" <<name<< endreq;
144 }
145
146 sprintf(name,"EMC_Bhabha_ShowerCosTheta");
147 sprintf(title,"Emc Bhabha Costheta");
148 m_HistCosTheta =new TH1F(name,title,200, -1.0, 1.0);
149 m_HistCosTheta->GetXaxis()->SetTitle("shower cos(theta)");
150 m_HistCosTheta->GetXaxis()->CenterTitle();
151 m_HistCosTheta->GetYaxis()->SetTitle("Number of event");
152 m_HistCosTheta->GetYaxis()->CenterTitle();
153
154 HistName=HistName0+name;
155 if(m_thistsvc->regHist(HistName, m_HistCosTheta).isFailure()){
156 log << MSG::ERROR << "Couldn't register "<<name << endreq;
157 }
158
159
160 sprintf( name, "EMC_Bhabha_ShowerPhiBarrelVsEvent");
161 sprintf( title, "EMC Bhabha ShowerPhiBarrel vs event");
162 m_HistPhiB =new TH1F(name,title,120, 0, 120);
163 m_HistPhiB->GetXaxis()->SetTitle("shower ID(phi)");
164 m_HistPhiB->GetXaxis()->CenterTitle();
165 m_HistPhiB->GetYaxis()->SetTitle("Number of event");
166 m_HistPhiB->GetYaxis()->CenterTitle();
167
168
169 HistName=HistName0+name;
170 if( m_thistsvc->regHist(HistName, m_HistPhiB).isFailure()){
171 log << MSG::ERROR << "Couldn't register "<<name << endreq;
172 }
173
174 sprintf( name, "EMC_Bhabha_ShowerPhiEastVsEvent");
175 sprintf( title, "EMC Bhabha ShowerPhiEast vs event");
176 m_HistPhiEast =new TH1F(name,title,256, -3.14, 3.14);
177 m_HistPhiEast->GetXaxis()->SetTitle("shower phi(radian)");
178 m_HistPhiEast->GetXaxis()->CenterTitle();
179 m_HistPhiEast->GetYaxis()->SetTitle("Number of event");
180 m_HistPhiEast->GetYaxis()->CenterTitle();
181
182 HistName=HistName0+name;
183 if(m_thistsvc->regHist(HistName, m_HistPhiEast).isFailure()){
184 log << MSG::ERROR << "Couldn't register"<<name << endreq;
185 }
186
187 sprintf( name, "EMC_Bhabha_ShowerPhiWestVsEvent");
188 sprintf( title, "EMC Bhabha ShowerPhiWest vs event");
189 m_HistPhiWest =new TH1F(name,title,256, -3.14, 3.14);
190 m_HistPhiWest->GetXaxis()->SetTitle("shower phi(radian)");
191 m_HistPhiWest->GetXaxis()->CenterTitle();
192 m_HistPhiWest->GetYaxis()->SetTitle("Number of event");
193 m_HistPhiWest->GetYaxis()->CenterTitle();
194
195 HistName=HistName0+name;
196 if(m_thistsvc->regHist(HistName, m_HistPhiWest).isFailure()){
197 log << MSG::ERROR << "Couldn't register" <<name<<endreq;
198 }
199
200 sprintf( name, "EMC_Bhabha_ShowerThetaPhi");
201 sprintf( title, "EMC Bhabha ShowerThetaPhi");
202 m_ThetaPhi =new TH2F(name,"Theta versus Phi",
203 2000, -3.15, 3.15, 2000, 0.1, 3.0);
204 m_ThetaPhi->GetXaxis()->SetTitle("shower phi(radian)");
205 m_ThetaPhi->GetXaxis()->CenterTitle();
206 m_ThetaPhi->GetYaxis()->SetTitle("shower theta(radian)");
207 m_ThetaPhi->GetYaxis()->CenterTitle();
208
209 HistName=HistName0+name;
210 if(m_thistsvc->regHist(HistName, m_ThetaPhi).isFailure()){
211 log << MSG::ERROR << "Couldn't register" <<name<< endreq;
212 }
213
214
215 /////////////////////////////
216 sprintf( name, "EMC_Bhabha_Time-T0");
217 sprintf( title, "EMC Bhabha Time-T0 distribution");
218 m_HistTime =new TH1F(name,title,100, -40, 60);
219 m_HistTime->GetXaxis()->SetTitle("EmcTime-T0 (50ns)");
220 m_HistTime->GetXaxis()->CenterTitle();
221 m_HistTime->GetYaxis()->SetTitle("Number of event");
222 m_HistTime->GetYaxis()->CenterTitle();
223
224 HistName=HistName0+name;
225 if(m_thistsvc->regHist(HistName, m_HistTime).isFailure()){
226 log << MSG::ERROR << "Couldn't register" <<name<<endreq;
227 }
228
229 sprintf( name, "EMC_Bhabha_ixtal");
230 sprintf( title, "EMC Bhabha ixtal distribution");
231 m_HistHitMap =new TH1F(name,title,6240, 0, 6240);
232 m_HistHitMap->GetXaxis()->SetTitle("ixtalNumber");
233 m_HistHitMap->GetXaxis()->CenterTitle();
234 m_HistHitMap->GetYaxis()->SetTitle("Number of event");
235 m_HistHitMap->GetYaxis()->CenterTitle();
236
237 HistName=HistName0+name;
238 if(m_thistsvc->regHist(HistName, m_HistHitMap).isFailure()){
239 log << MSG::ERROR << "Couldn't register" <<name<<endreq;
240 }
241
242 sprintf( name, "EMC_Bhabha_eSeedvsIxtal ");
243 sprintf( title, "EMC Bhabha eSeed vs ixtal");
244 m_eSeedIxtal =new TH2F(name,"eSeed:Ixtal",
245 6240, 0, 6240, 2000, 0, 1.8);
246 m_eSeedIxtal->GetXaxis()->SetTitle("Ixtal)");
247 m_eSeedIxtal->GetXaxis()->CenterTitle();
248 m_eSeedIxtal->GetYaxis()->SetTitle("eSeed(GeV)");
249 m_eSeedIxtal->GetYaxis()->CenterTitle();
250
251 HistName=HistName0+name;
252 if(m_thistsvc->regHist(HistName, m_eSeedIxtal).isFailure()){
253 log << MSG::ERROR << "Couldn't register" <<name<< endreq;
254 }
255
256 sprintf( name, "EMC_Bhabha_emcX:emcYeast ");
257 sprintf( title, "EMC Bhabha emcX vs emcY of east endcap");
258 m_XYeast =new TH2F(name,"emcX:emcY",
259 2000, -100, 100, 2000, -100, 100);
260 m_XYeast->GetXaxis()->SetTitle("emcX");
261 m_XYeast->GetXaxis()->CenterTitle();
262 m_XYeast->GetYaxis()->SetTitle("emcY");
263 m_XYeast->GetYaxis()->CenterTitle();
264
265 HistName=HistName0+name;
266 if(m_thistsvc->regHist(HistName, m_XYeast).isFailure()){
267 log << MSG::ERROR << "Couldn't register" <<name<< endreq;
268 }
269
270 sprintf( name, "EMC_Bhabha_emcX:emcYwest ");
271 sprintf( title, "EMC Bhabha emcX vs emcY of west endcap");
272 m_XYwest =new TH2F(name,"emcX:emcY",
273 2000, -100, 100, 2000, -100, 100);
274 m_XYwest->GetXaxis()->SetTitle("emcX");
275 m_XYwest->GetXaxis()->CenterTitle();
276 m_XYwest->GetYaxis()->SetTitle("emcY");
277 m_XYwest->GetYaxis()->CenterTitle();
278
279 HistName=HistName0+name;
280 if(m_thistsvc->regHist(HistName, m_XYwest).isFailure()){
281 log << MSG::ERROR << "Couldn't register" <<name<< endreq;
282 }
283
284 // use EmcCalibConstSvc
285 StatusCode scCalib;
286 scCalib = Gaudi::svcLocator() -> service("EmcCalibConstSvc", m_emcCalibConstSvc);
287 if( scCalib != StatusCode::SUCCESS){
288 log << MSG::ERROR << "can not use EmcCalibConstSvc" << endreq;
289 }
290
291
292 log << MSG::INFO << "successfully return from initialize()" <<endmsg;
293 return StatusCode::SUCCESS;
294
295
296}
297
298// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
299StatusCode DQA_EMC::execute() {
300
301 MsgStream log(msgSvc(), name());
302 log << MSG::INFO << "in execute()" << endreq;
303
304 SmartDataPtr<Event::EventHeader> eventHeader(eventSvc(),"/Event/EventHeader");
305 m_runNo=eventHeader->runNumber();
306 m_event=eventHeader->eventNumber();
307 log << MSG::DEBUG <<"run, evtnum = "
308 << m_runNo << " , "
309 << m_event <<endreq;
310
311
312 SmartDataPtr<EvtRecEvent> evtRecEvent(eventSvc(), EventModel::EvtRec::EvtRecEvent);
313
314 SmartDataPtr<DQAEvent::DQAEvent> dqaevt(eventSvc(), "/Event/DQATag");
315 if ( dqaevt ) {
316 log << MSG::INFO << "success get DQAEvent" << endreq;
317 } else {
318 log << MSG::ERROR << "Error accessing DQAEvent" << endreq;
319 return StatusCode::FAILURE;
320 }
321
322 log << MSG::DEBUG << "event tag = " << dqaevt->EventTag() << endreq;
323
324 // get the required control sample with DQA tag
325 if ( dqaevt->Bhabha() ) {
326 log << MSG::INFO << "Bhabha event" << endreq;
327 SmartDataPtr<EvtRecTrackCol> evtRecTrkCol(eventSvc(), EventModel::EvtRec::EvtRecTrackCol);
328
329
330 double eneShower,theta,phi,costheta;
331 RecEmcID showerId;
332 unsigned int npart;
333 int ntheta,nphi;
334 char Name[60];
335 std::string HistName;
336
337 for(int i = 0; i < evtRecEvent->totalCharged(); i++){
338 EvtRecTrackIterator itTrk=evtRecTrkCol->begin() + i;
339
340 log << MSG::DEBUG << i << " " << (*itTrk)->partId() << " "
341 << (*itTrk)->quality() << endreq;
342 // get the required particle through the track's PID
343 // Pid: 1 - electron, 2 - muon, 3 - pion, 4 - kaon, 5 - proton
344// if ( (*itTrk)->partId() != 1 ) continue; // only e+, e-
345 if ( ! (*itTrk)->isElectron() ) continue;
346 // if you want to do dE/dx or TOF study, select track with no bias
347 // Quality: defined by whether dE/dx or TOF is used to identify particle
348 // 0 - no dE/dx, no TOF (can be used for dE/dx and TOF calibration)
349 // 1 - only dE/dx (can be used for TOF calibration)
350 // 2 - only TOF (can be used for dE/dx calibration)
351 // 3 - Both dE/dx and TOF
352 // int qual = (*itTrk)->quality();
353 // if ( qual != 0 && qual != 2) continue; // no dE/dx PID is used in selection
354// if ( qual != 0 && qual != 1) continue; // no TOF PID is used in the selection
355
356 RecMdcTrack *mdcTrk = (*itTrk)->mdcTrack();
357 if ( mdcTrk->charge() > 0 ) {
358 log << MSG::DEBUG << "is electron" << endreq;
359 } else {
360 log << MSG::DEBUG << "is positron" << endreq;
361 }
362
363 if((*itTrk)->isEmcShowerValid()) {
364
365 RecEmcShower *theShower = (*itTrk)->emcShower();
366 eneShower=theShower->energy(); //corrected energy unit GeV
367 theta = theShower->theta();
368 phi= theShower->phi();
369 costheta=cos(theta);
370 // showerId = theShower->getShowerId(); // only in the rec data file
371 showerId = RecEmcID(theShower->cellId());
372
373 npart = EmcID::barrel_ec(showerId);
374
375 //The theta number is defined by Endcap_east(0-5),Barrel(0-43),Endcap_west(0-5)
376 //module is defined by Endcap_east(0),Barrel(1),Endcap_west(2)
377
378 ntheta=EmcID::theta_module(showerId);
379
380 nphi=EmcID::phi_module(showerId);
381 log << MSG::DEBUG << "test program " << npart << " " << ntheta << " " << nphi << endmsg;
382
383 m_npart = npart;
384 m_ntheta = ntheta;
385 m_nphi = nphi;
386 m_ixtal=m_emcCalibConstSvc->getIndex(npart,ntheta,nphi);
387 m_theta = theta;
388 m_phi = phi;
389 m_emcX = theShower->x();
390 m_emcY = theShower->y();
391 m_eSeed = theShower->eSeed();
392 m_e5x5 = theShower->e5x5();
393 m_energy = theShower->energy();
394 m_time = theShower->time();
395
396
397 TH1 *hmom(0);
398
399
400
401 sprintf( Name, "/DQAHist/EMC/EMC_Bhabha_Time-T0");
402 HistName=Name;
403 if (m_thistsvc->getHist(HistName, hmom).isSuccess()) {
404 hmom->Fill(m_time);
405 } else {
406 log << MSG::ERROR << "Couldn't retrieve" <<HistName<< endreq;
407 }
408
409 sprintf( Name, "/DQAHist/EMC/EMC_Bhabha_ixtal");
410 HistName=Name;
411 if (m_thistsvc->getHist(HistName, hmom).isSuccess()) {
412 hmom->Fill(m_ixtal);
413 } else {
414 log << MSG::ERROR << "Couldn't retrieve" <<HistName<< endreq;
415 }
416
417
418 m_eSeedIxtal->Fill(m_ixtal,m_eSeed);
419
420
421
422
423 if (npart==1){
424
425 sprintf( Name, "/DQAHist/EMC/EMC_Bhabha_ShowerEneBarrelVsEvent");
426 HistName=Name;
427 if (m_thistsvc->getHist(HistName, hmom).isSuccess()) {
428 hmom->Fill(eneShower);
429 } else {
430 log << MSG::ERROR << "Couldn't retrieve" <<HistName<< endreq;
431 }
432
433 sprintf( Name, "/DQAHist/EMC/EMC_Bhabha_ShowerPhiBarrelVsEvent");
434 HistName=Name;
435 if (m_thistsvc->getHist(HistName, hmom ).isSuccess()) {
436 hmom->Fill(nphi);
437 } else {
438 log << MSG::ERROR << "Couldn't retrieve" <<HistName<< endreq;
439 }
440
441 }
442
443 if (npart==0){
444
445 sprintf( Name, "/DQAHist/EMC/EMC_Bhabha_ShowerEneEastVsEvent");
446 HistName=Name;
447 if (m_thistsvc->getHist(HistName, hmom ).isSuccess()) {
448 hmom->Fill( eneShower);
449 } else {
450 log << MSG::ERROR << "Couldn't retrieve" <<HistName<< endreq;
451 }
452
453 sprintf( Name, "/DQAHist/EMC/EMC_Bhabha_ShowerPhiEastVsEvent");
454 HistName=Name;
455 if (m_thistsvc->getHist(HistName, hmom ).isSuccess()) {
456 hmom->Fill(phi);
457 } else {
458 log << MSG::ERROR << "Couldn't retrieve" <<HistName<< endreq;
459 }
460
461 m_XYeast->Fill(m_emcX,m_emcY);
462
463 }
464 if (npart==2){
465
466 sprintf( Name, "/DQAHist/EMC/EMC_Bhabha_ShowerEneWestVsEvent");
467 HistName=Name;
468 if (m_thistsvc->getHist(HistName, hmom ).isSuccess()) {
469 hmom->Fill( eneShower);
470 } else {
471 log << MSG::ERROR << "Couldn't retrieve" <<HistName<< endreq;
472 }
473
474 sprintf( Name, "/DQAHist/EMC/EMC_Bhabha_ShowerPhiWestVsEvent");
475 HistName=Name;
476 if (m_thistsvc->getHist(HistName, hmom ).isSuccess()) {
477 hmom->Fill(phi);
478 } else {
479 log << MSG::ERROR << "Couldn't retrieve" <<HistName<< endreq;
480 }
481
482 m_XYwest->Fill(m_emcX,m_emcY);
483
484 }
485
486 int m_nthe=-9;
487 if (npart==0){
488 m_nthe = ntheta;
489 }
490 if (npart==2){
491 m_nthe = 55-ntheta;
492 }
493 if (npart==1){
494 m_nthe = ntheta+6;
495 }
496
497 sprintf( Name, "/DQAHist/EMC/EMC_Bhabha_ShowerThetaVsvent");
498 HistName=Name;
499 if (m_thistsvc->getHist(HistName, hmom ).isSuccess()) {
500 hmom->Fill(m_nthe);
501 } else {
502 log << MSG::ERROR << "Couldn't retrieve" <<HistName<< endreq;
503 }
504
505 sprintf( Name,"/DQAHist/EMC/EMC_Bhabha_ShowerCosTheta");
506 HistName=Name;
507 if (m_thistsvc->getHist(HistName, hmom ).isSuccess()) {
508 hmom->Fill(costheta);
509 } else {
510 log << MSG::ERROR << "Couldn't retrieve" <<HistName<< endreq;
511 }
512
513// TH2 *hmom2(0);
514// sprintf( Name, "/DQAHist/EMC/EMC_Bhabha_ShowerThetaPhi");
515// HistName=Name;
516// if (m_thistsvc->getHist(HistName, hmom2 ).isSuccess()) {
517// hmom2->Fill(phi,theta);
518// } else {
519// log << MSG::ERROR << "Couldn't retrieve" <<HistName<< endreq;
520// }
521 m_ThetaPhi->Fill(phi, theta);
522
523 if(m_NtupleOutput==1) m_tuple->write();
524
525 }
526 }
527 }
528
529 return StatusCode::SUCCESS;
530
531}
532
533// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
534StatusCode DQA_EMC::finalize() {
535
536 MsgStream log(msgSvc(), name());
537 log << MSG::INFO << "in finalize()" << endmsg;
538 return StatusCode::SUCCESS;
539}
540
541
double cos(const BesAngle a)
Definition: BesAngle.h:213
HepGeom::Point3D< double > HepPoint3D
Definition: DQA_EMC.cxx:30
titledef title[20]
EvtRecTrackCol::iterator EvtRecTrackIterator
Definition: EvtRecTrack.h:111
std::ostringstream Name
Definition: PartProduce.cc:22
Identifier RecEmcID
INTupleSvc * ntupleSvc()
IMessageSvc * msgSvc()
StatusCode initialize()
Definition: DQA_EMC.cxx:46
StatusCode finalize()
Definition: DQA_EMC.cxx:534
StatusCode execute()
Definition: DQA_EMC.cxx:299
DQA_EMC(const std::string &name, ISvcLocator *pSvcLocator)
Definition: DQA_EMC.cxx:37
int cellId() const
Definition: DstEmcShower.h:32
double eSeed() const
Definition: DstEmcShower.h:47
double theta() const
Definition: DstEmcShower.h:38
double phi() const
Definition: DstEmcShower.h:39
double x() const
Definition: DstEmcShower.h:35
double e5x5() const
Definition: DstEmcShower.h:49
double time() const
Definition: DstEmcShower.h:50
double energy() const
Definition: DstEmcShower.h:45
double y() const
Definition: DstEmcShower.h:36
const int charge() const
Definition: DstMdcTrack.h:53
static unsigned int barrel_ec(const Identifier &id)
Values of different levels (failure returns 0)
Definition: EmcID.cxx:38
static unsigned int theta_module(const Identifier &id)
Definition: EmcID.cxx:43
static unsigned int phi_module(const Identifier &id)
Definition: EmcID.cxx:48
virtual int getIndex(unsigned int PartId, unsigned int ThetaIndex, unsigned int PhiIndex) const =0
sprintf(cut,"kal_costheta0_em>-0.93&&kal_costheta0_em<0.93&&kal_pxy0_em>=0.05+%d*0.1&&kal_pxy0_em<0.15+%d*0.1&&NGch>=2", j, j)
_EXTERN_ std::string EvtRecEvent
Definition: EventModel.h:116
_EXTERN_ std::string EvtRecTrackCol
Definition: EventModel.h:117
float costheta