35 MsgStream log(
msgSvc(), name() );
37 log << MSG::INFO <<
"in initialize()" << endmsg;
41 if ( service(
"THistSvc", m_thsvc ).isFailure() )
43 log << MSG::ERROR <<
"Couldn't get THistSvc" << endmsg;
44 return StatusCode::FAILURE;
48 m_hresAllIncBb =
new TH1F(
"HResAllIncBb",
"", 200, -1.0, 1.0 );
49 if ( m_thsvc->regHist(
"/DQAHist/MDC/hresAllIncBb", m_hresAllIncBb ).isFailure() )
50 { log << MSG::ERROR <<
"Couldn't register HResAllIncBb" << endmsg; }
52 m_hresAllExcBb =
new TH1F(
"HResAllExcBb",
"", 200, -1.0, 1.0 );
53 if ( m_thsvc->regHist(
"/DQAHist/MDC/hresAllExcBb", m_hresAllExcBb ).isFailure() )
54 { log << MSG::ERROR <<
"Couldn't register HResAllExcBb" << endmsg; }
56 m_hresAllEvaBb =
new TH1F(
"HResAllEvaBb",
"", 200, -1.0, 1.0 );
57 if ( m_thsvc->regHist(
"/DQAHist/MDC/hresAllEvaBb", m_hresAllEvaBb ).isFailure() )
58 { log << MSG::ERROR <<
"Couldn't register HResAllEvaBb" << endmsg; }
60 m_ppLabBb =
new TH1F(
"PpLabBb",
"", 800, 0, 3 );
61 if ( m_thsvc->regHist(
"/DQAHist/MDC/hppLabBb", m_ppLabBb ).isFailure() )
62 { log << MSG::ERROR <<
"Couldn't register PpLabBb" << endmsg; }
63 m_pmLabBb =
new TH1F(
"PmLabBb",
"", 800, 0, 3 );
64 if ( m_thsvc->regHist(
"/DQAHist/MDC/hpmLabBb", m_pmLabBb ).isFailure() )
65 { log << MSG::ERROR <<
"Couldn't register PmLabBb" << endmsg; }
67 m_ppCmsBb =
new TH1F(
"PpCmsBb",
"", 800, 0, 3 );
68 if ( m_thsvc->regHist(
"/DQAHist/MDC/hppCmsBb", m_ppCmsBb ).isFailure() )
69 { log << MSG::ERROR <<
"Couldn't register PpCmsBb" << endmsg; }
70 m_pmCmsBb =
new TH1F(
"PmCmsBb",
"", 800, 0, 3 );
71 if ( m_thsvc->regHist(
"/DQAHist/MDC/hpmCmsBb", m_pmCmsBb ).isFailure() )
72 { log << MSG::ERROR <<
"Couldn't register PmCmsBb" << endmsg; }
74 m_pTotLabBb =
new TH1F(
"PTotLabBb",
"", 800, 0, 3 );
75 if ( m_thsvc->regHist(
"/DQAHist/MDC/hpTotLabBb", m_pTotLabBb ).isFailure() )
76 { log << MSG::ERROR <<
"Couldn't register PTotLabBb" << endmsg; }
77 m_pTotCmsBb =
new TH1F(
"PTotCmsBb",
"", 800, 0, 3 );
78 if ( m_thsvc->regHist(
"/DQAHist/MDC/hpTotCmsBb", m_pTotCmsBb ).isFailure() )
79 { log << MSG::ERROR <<
"Couldn't register PTotCmsBb" << endmsg; }
81 m_hresAllIncDimu =
new TH1F(
"HResAllIncDimu",
"", 200, -1.0, 1.0 );
82 if ( m_thsvc->regHist(
"/DQAHist/MDC/hresAllIncDimu", m_hresAllIncDimu ).isFailure() )
83 { log << MSG::ERROR <<
"Couldn't register HResAllIncDimu" << endmsg; }
85 m_hresAllExcDimu =
new TH1F(
"HResAllExcDimu",
"", 200, -1.0, 1.0 );
86 if ( m_thsvc->regHist(
"/DQAHist/MDC/hresAllExcDimu", m_hresAllExcDimu ).isFailure() )
87 { log << MSG::ERROR <<
"Couldn't register HResAllExcDimu" << endmsg; }
89 m_hresAllEvaDimu =
new TH1F(
"HResAllEvaDimu",
"", 200, -1.0, 1.0 );
90 if ( m_thsvc->regHist(
"/DQAHist/MDC/hresAllEvaDimu", m_hresAllEvaDimu ).isFailure() )
91 { log << MSG::ERROR <<
"Couldn't register HResAllEvaDimu" << endmsg; }
93 m_ppLabDimu =
new TH1F(
"PpLabDimu",
"", 800, 0, 3 );
94 if ( m_thsvc->regHist(
"/DQAHist/MDC/hppLabDimu", m_ppLabDimu ).isFailure() )
95 { log << MSG::ERROR <<
"Couldn't register PpLabDimu" << endmsg; }
96 m_pmLabDimu =
new TH1F(
"PmLabDimu",
"", 800, 0, 3 );
97 if ( m_thsvc->regHist(
"/DQAHist/MDC/hpmLabDimu", m_pmLabDimu ).isFailure() )
98 { log << MSG::ERROR <<
"Couldn't register PmLabDimu" << endmsg; }
100 m_ppCmsDimu =
new TH1F(
"PpCmsDimu",
"", 800, 0, 3 );
101 if ( m_thsvc->regHist(
"/DQAHist/MDC/hppCmsDimu", m_ppCmsDimu ).isFailure() )
102 { log << MSG::ERROR <<
"Couldn't register PpCmsDimu" << endmsg; }
103 m_pmCmsDimu =
new TH1F(
"PmCmsDimu",
"", 800, 0, 3 );
104 if ( m_thsvc->regHist(
"/DQAHist/MDC/hpmCmsDimu", m_pmCmsDimu ).isFailure() )
105 { log << MSG::ERROR <<
"Couldn't register PmCmsDimu" << endmsg; }
107 m_pTotLabDimu =
new TH1F(
"PTotLabDimu",
"", 800, 0, 3 );
108 if ( m_thsvc->regHist(
"/DQAHist/MDC/hpTotLabDimu", m_pTotLabDimu ).isFailure() )
109 { log << MSG::ERROR <<
"Couldn't register PTotLabDimu" << endmsg; }
110 m_pTotCmsDimu =
new TH1F(
"PTotCmsDimu",
"", 800, 0, 3 );
111 if ( m_thsvc->regHist(
"/DQAHist/MDC/hpTotCmsDimu", m_pTotCmsDimu ).isFailure() )
112 { log << MSG::ERROR <<
"Couldn't register PTotCmsDimu" << endmsg; }
114 log << MSG::INFO <<
"Initialize done!" << endmsg;
115 return StatusCode::SUCCESS;
121 MsgStream log(
msgSvc(), name() );
122 log << MSG::INFO <<
"in execute()" << endmsg;
124 SmartDataPtr<Event::EventHeader> eventHeader( eventSvc(),
"/Event/EventHeader" );
125 m_run = eventHeader->runNumber();
126 m_event = eventHeader->eventNumber();
127 log << MSG::DEBUG <<
"Run " << m_run <<
"\tEvent " << m_event << endmsg;
129 SmartDataPtr<DQAEvent::DQAEvent> dqaevt( eventSvc(),
"/Event/DQATag" );
130 if ( dqaevt ) { log << MSG::INFO <<
"success get DQAEvent" << endmsg; }
133 log << MSG::ERROR <<
"Error accessing DQAEvent" << endmsg;
134 return StatusCode::FAILURE;
136 log << MSG::DEBUG <<
"DQA event tag = " << dqaevt->EventTag() << endmsg;
141 if ( dqaevt->Dimu() ) isDimu =
true;
142 log << MSG::INFO <<
"DQADimuTag:\t" << dqaevt->Dimu() << endmsg;
146 if ( dqaevt->Bhabha() ) isBb =
true;
147 log << MSG::INFO <<
"DQABbTag:\t" << dqaevt->Bhabha() << endmsg;
150 SmartDataPtr<RecMdcKalTrackCol> kaltrkCol( eventSvc(),
"/Event/Recon/RecMdcKalTrackCol" );
153 log << MSG::FATAL <<
"Could not find RecMdcKalTrackCol" << endmsg;
154 return StatusCode::FAILURE;
156 RecMdcKalTrackCol::iterator iter_trk = kaltrkCol->begin();
157 for ( ; iter_trk != kaltrkCol->end(); iter_trk++ )
163 double dr = ( *iter_trk )->dr();
164 double phi0 = ( *iter_trk )->fi0();
165 double kappa = ( *iter_trk )->kappa();
166 double dz = ( *iter_trk )->dz();
167 double tanl = ( *iter_trk )->tanl();
168 double pt = 1.0 / kappa;
170 p4.setPx( -
sin( phi0 ) / fabs( kappa ) );
171 p4.setPy(
cos( phi0 ) / fabs( kappa ) );
172 p4.setPz( tanl / fabs( kappa ) );
174 double p3 = p4.mag();
176 if ( isBb )
mass = 0.000511;
177 else if ( isDimu )
mass = 0.105658;
179 p4.setE( sqrt( p3 * p3 +
mass *
mass ) );
182 double ecm = 3.68632;
183 HepLorentzVector psip( 0.011 * ecm, 0, 0.0075, ecm );
184 Hep3Vector boostv = psip.boostVector();
190 if ( m_thsvc->getHist(
"/DQAHist/MDC/hpTotLabBb", hmom ).isSuccess() )
192 else { log << MSG::ERROR <<
"Couldn't retrieve hpTotLabBb" << endmsg; }
193 if ( m_thsvc->getHist(
"/DQAHist/MDC/hpTotCmsBb", hmom ).isSuccess() )
194 { hmom->Fill(
p_cms ); }
195 else { log << MSG::ERROR <<
"Couldn't retrieve hpTotCmsBb" << endmsg; }
198 if ( m_thsvc->getHist(
"/DQAHist/MDC/hppLabBb", hmom ).isSuccess() )
200 else { log << MSG::ERROR <<
"Couldn't retrieve hppLabBb" << endmsg; }
201 if ( m_thsvc->getHist(
"/DQAHist/MDC/hppCmsBb", hmom ).isSuccess() )
203 else { log << MSG::ERROR <<
"Couldn't retrieve hppCmsBb" << endmsg; }
207 if ( m_thsvc->getHist(
"/DQAHist/MDC/hpmLabBb", hmom ).isSuccess() )
209 else { log << MSG::ERROR <<
"Couldn't retrieve hpmLabBb" << endmsg; }
210 if ( m_thsvc->getHist(
"/DQAHist/MDC/hpmCmsBb", hmom ).isSuccess() )
212 else { log << MSG::ERROR <<
"Couldn't retrieve hpmCmsBb" << endmsg; }
217 if ( m_thsvc->getHist(
"/DQAHist/MDC/hpTotLabDimu", hmom ).isSuccess() )
219 else { log << MSG::ERROR <<
"Couldn't retrieve hpTotLabDimu" << endmsg; }
220 if ( m_thsvc->getHist(
"/DQAHist/MDC/hpTotCmsDimu", hmom ).isSuccess() )
221 { hmom->Fill(
p_cms ); }
222 else { log << MSG::ERROR <<
"Couldn't retrieve hpTotCmsDimu" << endmsg; }
225 if ( m_thsvc->getHist(
"/DQAHist/MDC/hppLabDimu", hmom ).isSuccess() )
227 else { log << MSG::ERROR <<
"Couldn't retrieve hppLabDimu" << endmsg; }
228 if ( m_thsvc->getHist(
"/DQAHist/MDC/hppCmsDimu", hmom ).isSuccess() )
230 else { log << MSG::ERROR <<
"Couldn't retrieve hppCmsDimu" << endmsg; }
234 if ( m_thsvc->getHist(
"/DQAHist/MDC/hpmLabDimu", hmom ).isSuccess() )
236 else { log << MSG::ERROR <<
"Couldn't retrieve hpmLabDimu" << endmsg; }
237 if ( m_thsvc->getHist(
"/DQAHist/MDC/hpmCmsDimu", hmom ).isSuccess() )
239 else { log << MSG::ERROR <<
"Couldn't retrieve hpmCmsDimu" << endmsg; }
244 SmartDataPtr<RecMdcTrackCol> newtrkCol( eventSvc(),
"/Event/Recon/RecMdcTrackCol" );
247 log << MSG::ERROR <<
"Could not find RecMdcTrackCol" << endmsg;
248 return ( StatusCode::FAILURE );
251 RecMdcTrackCol::iterator it_trk = newtrkCol->begin();
252 for ( ; it_trk != newtrkCol->end(); it_trk++ )
254 HitRefVec gothits = ( *it_trk )->getVecHits();
255 HitRefVec::iterator it_hit = gothits.begin();
256 for ( ; it_hit != gothits.end(); it_hit++ )
261 double lr = ( *it_hit )->getFlagLR();
262 if ( -1 == lr ) lr = 0;
266 double docaInc = ( *it_hit )->getDoca();
267 double docaExc = docaInc;
272 if ( 0 == lr ) { dmeas = ( *it_hit )->getDriftDistLeft(); }
273 else { dmeas = ( *it_hit )->getDriftDistRight(); }
279 double resiInc = fabs( dmeas ) - fabs( docaInc );
280 if ( 0 == lr ) resilrInc = -1.0 * resiInc;
281 else resilrInc = resiInc;
283 double resiExc = fabs( dmeas ) - fabs( docaExc );
284 if ( 0 == lr ) resilrExc = -1.0 * resiExc;
285 else resilrExc = resiExc;
287 double resilrEva = 0.5 * ( resilrInc + resilrExc );
293 if ( m_thsvc->getHist(
"/DQAHist/MDC/hresAllIncBb", htmp ).isSuccess() )
294 { htmp->Fill( resilrInc ); }
295 else { log << MSG::ERROR <<
"Couldn't retrieve hresAllIncBb" << endmsg; }
296 if ( m_thsvc->getHist(
"/DQAHist/MDC/hresAllExcBb", htmp ).isSuccess() )
297 { htmp->Fill( resilrExc ); }
298 else { log << MSG::ERROR <<
"Couldn't retrieve hresAllExcBb" << endmsg; }
299 if ( m_thsvc->getHist(
"/DQAHist/MDC/hresAllEvaBb", htmp ).isSuccess() )
300 { htmp->Fill( resilrEva ); }
301 else { log << MSG::ERROR <<
"Couldn't retrieve hresAllEvaBb" << endmsg; }
305 if ( m_thsvc->getHist(
"/DQAHist/MDC/hresAllIncDimu", htmp ).isSuccess() )
306 { htmp->Fill( resilrInc ); }
307 else { log << MSG::ERROR <<
"Couldn't retrieve hresAllIncDimu" << endmsg; }
308 if ( m_thsvc->getHist(
"/DQAHist/MDC/hresAllExcDimu", htmp ).isSuccess() )
309 { htmp->Fill( resilrExc ); }
310 else { log << MSG::ERROR <<
"Couldn't retrieve hresAllExcDimu" << endmsg; }
311 if ( m_thsvc->getHist(
"/DQAHist/MDC/hresAllEvaDimu", htmp ).isSuccess() )
312 { htmp->Fill( resilrEva ); }
313 else { log << MSG::ERROR <<
"Couldn't retrieve hresAllEvaDimu" << endmsg; }
318 return StatusCode::SUCCESS;