126 {
128 Gaudi::svcLocator()->service(
"MessageSvc",
msgSvc );
129 MsgStream log(
msgSvc,
"MdcCalEvent" );
130 log << MSG::INFO << "MdcCalEvent::setKalEvent" << endmsg;
131
132 IDataProviderSvc* eventSvc = NULL;
133 Gaudi::svcLocator()->service( "EventDataSvc", eventSvc );
134
135
136 SmartDataPtr<MdcDigiCol> mdcDigiCol( eventSvc, "/Event/Digi/MdcDigiCol" );
137 if ( !mdcDigiCol ) { log << MSG::FATAL << "Could not find event" << endmsg; }
138
139 MdcDigiCol::iterator
iter = mdcDigiCol->begin();
140 m_nhitTQ = 0;
141 for ( ;
iter != mdcDigiCol->end();
iter++ )
142 {
143 MdcDigi* aDigi = ( *iter );
144 unsigned fgOverFlow = ( aDigi )->getOverflow();
145 if ( ( ( fgOverFlow & 3 ) != 0 ) || ( ( fgOverFlow & 12 ) != 0 ) ||
148 continue;
149 m_nhitTQ++;
150 }
151
152
153 SmartDataPtr<RecEsTimeCol> aevtimeCol( eventSvc, "/Event/Recon/RecEsTimeCol" );
154 if ( ( !aevtimeCol ) || ( aevtimeCol->size() == 0 ) )
155 {
156 m_tes = -9999.0;
157 m_esFlag = -1;
158 }
159 else
160 {
161 RecEsTimeCol::iterator iter_evt = aevtimeCol->begin();
162 for ( ; iter_evt != aevtimeCol->end(); iter_evt++ )
163 {
164 m_tes = ( *iter_evt )->getTest();
165 m_esFlag = ( *iter_evt )->getStat();
166 }
167 }
168 m_esCutFg = false;
169 m_nEsCutFg = -1;
170 bool flagTes = false;
171 for ( int iEs = 0; iEs < m_param.nEsFlag; iEs++ )
172 {
173 if ( m_esFlag == m_param.esFlag[iEs] )
174 {
175 flagTes = true;
176 m_nEsCutFg = iEs;
177 break;
178 }
179 }
180 if ( flagTes && ( m_tes > m_param.tesMin ) && ( m_tes < m_param.tesMax ) ) m_esCutFg = true;
181
182 SmartDataPtr<RecMdcKalTrackCol> kaltrkCol( eventSvc, "/Event/Recon/RecMdcKalTrackCol" );
183 if ( !kaltrkCol )
184 {
185 log << MSG::FATAL << "Could not find RecMdcKalTrackCol" << endmsg;
186 return StatusCode::FAILURE;
187 }
188
189 int i = 0;
190 MdcCalRecTrk* rectrk;
191 RecMdcKalTrackCol::iterator iter_trk = kaltrkCol->begin();
192 for ( ; iter_trk != kaltrkCol->end(); iter_trk++ )
193 {
194 rectrk = new MdcCalRecTrk( m_param.particle );
198 m_rectrk.push_back( rectrk );
199
200 i++;
201 }
202 log << MSG::INFO << "KalTrack ntrk = " << i << endmsg;
203
204 return StatusCode::SUCCESS;
205}
void setGeomSvc(IMdcGeomSvc *mdcGeomSvc)
void setUtilSvc(IMdcUtilitySvc *mdcUtilitySvc)
void setKalTrk(RecMdcKalTrackCol::iterator it_trk)
unsigned int getChargeChannel() const
unsigned int getTimeChannel() const