BOSS 7.1.2
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/////////////////////////////////////////////////////////////////////////////
36DECLARE_COMPONENT(DQA_EMC)
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
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)
HepGeom::Point3D< double > HepPoint3D
Definition DQA_EMC.cxx:30
titledef title[20]
EvtRecTrackCol::iterator EvtRecTrackIterator
std::ostringstream Name
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
int cellId() const
double eSeed() const
double theta() const
double phi() const
double x() const
double e5x5() const
double time() const
double energy() const
double y() const
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
_EXTERN_ std::string EvtRecEvent
Definition EventModel.h:116
_EXTERN_ std::string EvtRecTrackCol
Definition EventModel.h:117
float costheta