43 MsgStream log(
msgSvc(),
"RecMdcDedxHitCnv" );
44 log << MSG::DEBUG <<
"RecMdcDedxHitCnv::TObjectToDataObject" << endmsg;
45 StatusCode sc = StatusCode::SUCCESS;
48 refpObject = recMdcDedxHitCol;
51 IDataProviderSvc* dataSvc = 0;
52 sc = serviceLocator()->getService(
"EventDataSvc", IDataProviderSvc::interfaceID(),
53 (IInterface*&)dataSvc );
56 log << MSG::FATAL <<
"Could not get EventDataSvc in RecMdcDedxHitCnv" << endmsg;
62 if ( !mdcHitCol ) { log << MSG::INFO <<
"Could not find RecMdcHitCol" << endmsg; }
65 SmartDataPtr<RecMdcKalHelixSegCol> mdcKalHelixSegCol(
67 if ( !mdcKalHelixSegCol )
68 { log << MSG::INFO <<
"Could not find RecMdcKalHelixSegCol" << endmsg; }
72 if ( !m_recMdcDedxHitCol )
return sc;
73 TIter dedxIter( m_recMdcDedxHitCol );
77 int trackId = recMdcDedxHitRoot->
trkId();
79 int flagLR = recMdcDedxHitRoot->
flagLR();
81 long int mdcId( recMdcDedxHitRoot->
mdcId() );
83 double pathlength = recMdcDedxHitRoot->
pathLength();
85 double dedx = recMdcDedxHitRoot->
getDedx();
88 log << MSG::DEBUG <<
"TObjectToDataObject: check Reconstrunction of dE/dx Hit root::"
89 <<
" trackId: " << trackId <<
" flagLR: " << flagLR <<
" pathlength: " << pathlength
90 <<
" dedx: " << dedx << endmsg;
92 m_common.m_rootRecMdcDedxHitMap[recMdcDedxHitRoot] = recMdcDedxHit;
101 int mdcHitId = recMdcDedxHitRoot->
mdcHitId();
107 dynamic_cast<RecMdcHit*
>( mdcHitCol->containedObject( mdcHitId ) ) );
112 if ( mdcKalHelixSegId >= 0 )
115 mdcKalHelixSegCol->containedObject( mdcKalHelixSegId ) ) );
118 recMdcDedxHitCol->push_back( recMdcDedxHit );
123 delete m_recMdcDedxHitCol;
124 m_recMdcDedxHitCol = 0;
126 return StatusCode::SUCCESS;
130 MsgStream log(
msgSvc(),
"RecMdcDedxHitCnv" );
131 log << MSG::DEBUG <<
"RecMdcDedxHitCnv::DataObjectToTObject" << endmsg;
132 StatusCode sc = StatusCode::SUCCESS;
135 if ( !recMdcDedxHitCol )
137 log << MSG::ERROR <<
"Could not downcast to RecMdcDedxHitCol" << endmsg;
138 return StatusCode::FAILURE;
145 log << MSG::ERROR <<
"Could not get RecEvent in TDS " << endmsg;
146 return StatusCode::FAILURE;
150 { log << MSG::ERROR <<
"RecMdcDedxHitCnv:Could not downcast to TDS RecEvent" << endmsg; }
151 IOpaqueAddress* addr;
152 m_cnvSvc->getRecTrackCnv()->createRep( evt, addr );
155 if ( !m_recMdcDedxHitCol )
return sc;
161 RecMdcHitCol::iterator recMdcHitColbegin, recMdcHitColend;
162 RecMdcKalHelixSegCol::iterator recMdcKalHelixSegColbegin, recMdcKalHelixSegColend;
164 IDataProviderSvc* dataSvc = 0;
165 sc = serviceLocator()->getService(
"EventDataSvc", IDataProviderSvc::interfaceID(),
166 (IInterface*&)dataSvc );
167 if ( sc.isFailure() )
169 log << MSG::FATAL <<
"Could not get EventDataSvc in RecMdcDedxHitCnv" << endmsg;
177 log << MSG::ERROR <<
"Could not downcast to RecMdcHitCol" << endmsg;
178 return StatusCode::FAILURE;
182 recMdcHitColbegin = recMdcHitCol->begin();
183 recMdcHitColend = recMdcHitCol->end();
186 SmartDataPtr<RecMdcKalHelixSegCol> recMdcKalHelixSegCol(
188 if ( !recMdcKalHelixSegCol )
190 log << MSG::ERROR <<
"Could not downcast to RecMdcKalHelixSegCol" << endmsg;
191 return StatusCode::FAILURE;
195 recMdcKalHelixSegColbegin = recMdcKalHelixSegCol->begin();
196 recMdcKalHelixSegColend = recMdcKalHelixSegCol->end();
200 RecMdcDedxHitCol::const_iterator recMdcDedxHit;
201 for ( recMdcDedxHit = recMdcDedxHitCol->begin(); recMdcDedxHit != recMdcDedxHitCol->end();
204 int trackId = ( *recMdcDedxHit )->getTrkId();
205 int flagLR = ( *recMdcDedxHit )->getFlagLR();
206 UInt_t mdcId = ( *recMdcDedxHit )->getMdcId().get_value();
207 double pathlength = ( *recMdcDedxHit )->getPathLength();
208 double dedx = ( *recMdcDedxHit )->getDedx();
210 log << MSG::DEBUG <<
"DataObjectToTObject: check Reconstrunction of dE/dx Hit::"
211 <<
" trackId: " << trackId <<
" flagLR: " << flagLR <<
" pathlength: " << pathlength
212 <<
" dedx: " << dedx << endmsg;
215 recMdcDedxHitRoot->
setTrkId( trackId );
217 recMdcDedxHitRoot->
setMdcId( mdcId );
219 recMdcDedxHitRoot->
setDedx( dedx );
232 if ( ( *recMdcDedxHit )->isMdcHitValid() )
234 RecMdcHitCol::iterator it =
235 find( recMdcHitColbegin, recMdcHitColend, ( *recMdcDedxHit )->getMdcHit() );
236 recMdcDedxHitRoot->
setMdcHitId( it - recMdcHitColbegin );
240 if ( ( *recMdcDedxHit )->isMdcKalHelixSegValid() )
242 RecMdcKalHelixSegCol::iterator it =
243 find( recMdcKalHelixSegColbegin, recMdcKalHelixSegColend,
244 ( *recMdcDedxHit )->getMdcKalHelixSeg() );
254 return StatusCode::SUCCESS;