49 MsgStream log(
msgSvc(),
"RecEmcClusterCnv" );
50 log << MSG::DEBUG <<
"RecEmcClusterCnv::TObjectToDataObject" << endmsg;
52 StatusCode sc = StatusCode::SUCCESS;
54 IDataProviderSvc* eventSvc;
55 Gaudi::svcLocator()->service(
"EventDataSvc", eventSvc );
58 if ( !emcRecHitCol ) log << MSG::INFO <<
"can't retrieve RecEmcHitCol" << endmsg;
62 refpObject = emcClusterTdsCol;
65 if ( !m_recEmcClusterCol )
return sc;
66 TIter emcClusterIter( m_recEmcClusterCol );
68 while ( ( emcClusterRoot = (
TRecEmcCluster*)emcClusterIter.Next() ) )
73 m_common.m_rootRecEmcClusterMap[emcClusterRoot] = emcClusterTds;
77 vector<int> vecShowers = emcClusterRoot->
vecShowers();
78 vector<int>::iterator iVecShower;
79 vector<RecEmcID> vecShowerId;
80 for ( iVecShower = vecShowers.begin(); iVecShower != vecShowers.end(); iVecShower++ )
83 vecShowerId.push_back(
id );
89 vector<Int_t> vecHits = emcClusterRoot->
vecHits();
90 vector<Int_t> vecSeeds = emcClusterRoot->
vecSeeds();
91 vector<Int_t>::iterator iVecHit;
94 for ( iVecHit = vecHits.begin(); iVecHit != vecHits.end(); iVecHit++ )
99 RecEmcHitCol::iterator iHit;
100 for ( iHit = emcRecHitCol->begin(); iHit != emcRecHitCol->end(); iHit++ )
103 RecEmcID idHit( ( *iHit )->getCellId() );
109 emcClusterTds->
Insert( *( *iHit ) );
116 for ( iVecHit = vecSeeds.begin(); iVecHit != vecSeeds.end(); iVecHit++ )
121 RecEmcHitCol::iterator iHit;
122 for ( iHit = emcRecHitCol->begin(); iHit != emcRecHitCol->end(); iHit++ )
125 RecEmcID idHit( ( *iHit )->getCellId() );
138 emcClusterTdsCol->push_back( emcClusterTds );
141 return StatusCode::SUCCESS;
146 MsgStream log(
msgSvc(),
"RecEmcClusterCnv" );
147 log << MSG::DEBUG <<
"RecEmcClusterCnv::DataObjectToTObject" << endmsg;
149 StatusCode sc = StatusCode::SUCCESS;
152 if ( !emcClusterColTds )
154 log << MSG::ERROR <<
"Could not downcast to RecEmcClusterCol" << endmsg;
155 return StatusCode::FAILURE;
162 log << MSG::ERROR <<
"Could not get RecEvent in TDS " << endmsg;
163 return StatusCode::FAILURE;
167 { log << MSG::ERROR <<
"RecEmcClusterCnv:Could not downcast to TDS DstEvent" << endmsg; }
168 IOpaqueAddress* addr;
170 m_cnvSvc->getRecTrackCnv()->createRep( evt, addr );
174 if ( !m_emcClusterCol )
return sc;
179 RecEmcClusterCol::const_iterator emcClusterTds;
181 for ( emcClusterTds = emcClusterColTds->begin(); emcClusterTds != emcClusterColTds->end();
184 Int_t clusterId = ( *emcClusterTds )->getClusterId();
186 vector<Int_t> vecHits;
187 RecEmcHitMap::const_iterator iHitMap;
188 for ( iHitMap = ( *emcClusterTds )->Begin(); iHitMap != ( *emcClusterTds )->End();
190 { vecHits.push_back( iHitMap->first ); }
192 vector<Int_t> vecSeeds;
193 RecEmcHitMap::const_iterator iSeedMap;
194 for ( iSeedMap = ( *emcClusterTds )->BeginSeed();
195 iSeedMap != ( *emcClusterTds )->EndSeed(); iSeedMap++ )
196 { vecSeeds.push_back( iSeedMap->first ); }
198 vector<RecEmcID> vecShowerId = ( *emcClusterTds )->getShowerIdVec();
199 vector<RecEmcID>::iterator iShowerId;
200 vector<Int_t> vecShowers;
201 for ( iShowerId = vecShowerId.begin(); iShowerId != vecShowerId.end(); iShowerId++ )
202 { vecShowers.push_back( *iShowerId ); }
217 return StatusCode::SUCCESS;