123 {
124
125 MsgStream log(
msgSvc(),
"EmcTrackCnv" );
126 log << MSG::DEBUG << "EmcTrackCnv::DataObjectToTObject" << endmsg;
127 StatusCode sc = StatusCode::SUCCESS;
128
130 if ( !emcTrackColTds )
131 {
132 log << MSG::ERROR << "Could not downcast to EmcTrackCol" << endmsg;
133 return StatusCode::FAILURE;
134 }
135
136 DataObject* evt;
138 if ( evt == NULL )
139 {
140 log << MSG::ERROR << "Could not get DstEvent in TDS " << endmsg;
141 return StatusCode::FAILURE;
142 }
143 DstEvent* devtTds = dynamic_cast<DstEvent*>( evt );
144 if ( !devtTds )
145 { log << MSG::ERROR << "EmcTrackCnv:Could not downcast to TDS DstEvent" << endmsg; }
146 IOpaqueAddress* addr;
147
148 m_cnvSvc->getDstCnv()->createRep( evt, addr );
149 TDstEvent* recEvt =
m_cnvSvc->getDstCnv()->getWriteObject();
150
152 if ( !m_emcTrackCol ) return sc;
154
155 DstEmcShowerCol::const_iterator emcTrackTds;
156
157 for ( emcTrackTds = emcTrackColTds->begin(); emcTrackTds != emcTrackColTds->end();
158 emcTrackTds++ )
159 {
160 Int_t trackId = ( *emcTrackTds )->trackId();
161 Int_t numHits = ( *emcTrackTds )->numHits();
162 Int_t status = ( *emcTrackTds )->status();
163 Int_t cellId = ( *emcTrackTds )->cellId();
164 Int_t module = ( *emcTrackTds )->module();
165 Double_t
x = ( *emcTrackTds )->x();
166 Double_t y = ( *emcTrackTds )->y();
167 Double_t z = ( *emcTrackTds )->z();
168 Double_t dtheta = ( *emcTrackTds )->dtheta();
169 Double_t dphi = ( *emcTrackTds )->dphi();
170 Double_t
energy = ( *emcTrackTds )->energy();
171 Double_t dE = ( *emcTrackTds )->dE();
172 Double_t eSeed = ( *emcTrackTds )->eSeed();
173 Double_t e3x3 = ( *emcTrackTds )->e3x3();
174 Double_t e5x5 = ( *emcTrackTds )->e5x5();
175 Double_t
time = ( *emcTrackTds )->time();
176 Double_t secondMoment = ( *emcTrackTds )->secondMoment();
177 Double_t latMoment = ( *emcTrackTds )->latMoment();
178 Double_t a20Moment = ( *emcTrackTds )->a20Moment();
179 Double_t a42Moment = ( *emcTrackTds )->a42Moment();
180
181 HepSymMatrix matrix = ( *emcTrackTds )->errorMatrix();
182 Double_t err[6];
183 err[0] = matrix[0][0];
184 err[1] = matrix[1][1];
185 err[2] = matrix[2][2];
186 err[3] = matrix[0][1];
187 err[4] = matrix[0][2];
188 err[5] = matrix[1][2];
189
190 TEmcTrack* emcTrackRoot = new TEmcTrack();
191
192
193
194
200 emcTrackRoot->
setX(
x );
201 emcTrackRoot->
setY( y );
202 emcTrackRoot->
setZ( z );
204 emcTrackRoot->
setDE( dE );
215 emcTrackRoot->
setErr( err );
216
218 }
219
220 return StatusCode::SUCCESS;
221}
ObjectVector< DstEmcShower > DstEmcShowerCol
************Class m_ypar INTEGER m_KeyWgt INTEGER m_KeyIHVP INTEGER m_KeyGPS INTEGER m_IsBeamPolarized INTEGER m_EvtGenInterface DOUBLE PRECISION m_Emin DOUBLE PRECISION m_sphot DOUBLE PRECISION m_Xenph DOUBLE PRECISION m_q2 DOUBLE PRECISION m_PolBeam2 DOUBLE PRECISION m_xErrPb *COMMON c_KK2f $ !CMS energy average $ !Spin Polarization vector first beam $ !Spin Polarization vector second beam $ !Beam energy spread[GeV] $ !minimum hadronization energy[GeV] $ !input READ never touch them !$ !debug facility $ !maximum weight $ !inverse alfaQED $ !minimum real photon energy
IDataProviderSvc * m_eds
pointer to eventdataservice
void addEmcTrack(TEmcTrack *Track)
Add a TkrTrack into the Emc data collection.
const TObjArray * getEmcTrackCol() const
retrieve the whole TObjArray of EmcTrack Data
void clearEmcTrackCol()
clear the whole array (necessary because of the consts-s)
void setTrackId(const Int_t trackId)
void setA20Moment(const Double_t a20Moment)
void setEnergy(const Double_t e)
void setESeed(const Double_t eSeed)
void setNumHits(const Int_t hit)
void setDtheta(const Double_t dt)
void setX(const Double_t x)
void setErr(const Double_t err[6])
void setModule(const Int_t mod)
void setSecondMoment(const Double_t secondMoment)
void setDE(const Double_t de)
void setY(const Double_t y)
void setA42Moment(const Double_t a42Moment)
void setZ(const Double_t z)
void setTime(const Double_t time)
void setCellId(const Int_t id)
void setE3x3(const Double_t e3x3)
void setE5x5(const Double_t e5x5)
void setStatus(const Int_t st)
void setLatMoment(const Double_t latMoment)
void setDphi(const Double_t dpi)
_EXTERN_ std::string Event