00001 #ifndef RecExtTrackCnv_CXX
00002 #define RecExtTrackCnv_CXX 1
00003
00004 #include "GaudiKernel/MsgStream.h"
00005 #include "GaudiKernel/DataObject.h"
00006 #include "GaudiKernel/ObjectVector.h"
00007
00008 #include "TClonesArray.h"
00009
00010 #include "EventModel/EventModel.h"
00011
00012 #include "ReconEvent/ReconEvent.h"
00013
00014 #include "ExtEvent/RecExtTrack.h"
00015
00016 #include "RootEventData/TRecMucTrack.h"
00017
00018 #include "RootEventData/TRecTrackEvent.h"
00019
00020 #include "RootCnvSvc/Rec/RecTrackCnv.h"
00021 #include "RootCnvSvc/Rec/RecExtTrackCnv.h"
00022 #include "RootCnvSvc/RootAddress.h"
00023
00024 #include <vector>
00025
00026 using namespace std;
00027
00028
00029
00030
00031
00032
00033 RecExtTrackCnv::RecExtTrackCnv(ISvcLocator* svc)
00034 : RootEventBaseCnv(classID(), svc)
00035 {
00036
00037
00038 MsgStream log(msgSvc(), "RecExtTrackCnv");
00039
00040
00041
00042 m_rootBranchname ="m_extTrackCol";
00043
00044 m_adresses.push_back(&m_extTrackCol);
00045 m_extTrackCol=0;
00046 }
00047
00048 StatusCode RecExtTrackCnv::TObjectToDataObject(DataObject*& refpObject) {
00049
00050 MsgStream log(msgSvc(), "RecExtTrackCnv");
00051 log << MSG::DEBUG << "RecExtTrackCnv::TObjectToDataObject" << endreq;
00052 StatusCode sc=StatusCode::SUCCESS;
00053
00054
00055 RecExtTrackCol* extTrackTdsCol = new RecExtTrackCol;
00056 refpObject=extTrackTdsCol;
00057
00058
00059
00060 if (!m_extTrackCol) return sc;
00061 TIter extTrackIter(m_extTrackCol);
00062 TRecExtTrack *extTrackRoot = 0;
00063 while ((extTrackRoot = (TRecExtTrack*)extTrackIter.Next())) {
00064
00065 RecExtTrack *extTrackTds = new RecExtTrack();
00066 m_common.m_rootExtTrackMap[extTrackRoot] = extTrackTds;
00067 int trackId = extTrackRoot->GetTrackId();
00068 extTrackTds->SetTrackId(trackId);
00069 for(int iPart=0; iPart<5; iPart++) {
00070 extTrackTds->SetParType(iPart);
00071
00072 double p1x = extTrackRoot->GetTof1PositionX(iPart);
00073 double p1y = extTrackRoot->GetTof1PositionY(iPart);
00074 double p1z = extTrackRoot->GetTof1PositionZ(iPart);
00075 double m1x = extTrackRoot->GetTof1MomentumX(iPart);
00076 double m1y = extTrackRoot->GetTof1MomentumY(iPart);
00077 double m1z = extTrackRoot->GetTof1MomentumZ(iPart);
00078 Hep3Vector tof1p(p1x,p1y,p1z);
00079 Hep3Vector tof1m(m1x,m1y,m1z);
00080
00081
00082 string v1s = extTrackRoot->GetTof1VolumeName(iPart).Data();
00083 int v1n = extTrackRoot->GetTof1VolumeNumber(iPart) ;
00084 double tof1= extTrackRoot->GetTof1(iPart);
00085 double tof1path= extTrackRoot->GetTof1Path(iPart);
00086 double z1 = extTrackRoot->GetTof1PosSigmaAlongZ(iPart);
00087 double t1 = extTrackRoot->GetTof1PosSigmaAlongT(iPart);
00088 double x1 = extTrackRoot->GetTof1PosSigmaAlongX(iPart);
00089 double y1 = extTrackRoot->GetTof1PosSigmaAlongY(iPart);
00090 HepSymMatrix e1m(6) ;
00091 for (int i = 0;i<6 ;i++ )
00092 for (int j= 0;j<6 ;j++ )
00093 e1m[i][j]= extTrackRoot->GetTof1ErrorMatrix(i , j, iPart) ;
00094
00095
00096 double p2x = extTrackRoot->GetTof2PositionX(iPart) ;
00097 double p2y = extTrackRoot->GetTof2PositionY(iPart) ;
00098 double p2z = extTrackRoot->GetTof2PositionZ(iPart) ;
00099 double m2x = extTrackRoot->GetTof2MomentumX(iPart) ;
00100 double m2y = extTrackRoot->GetTof2MomentumY(iPart) ;
00101 double m2z = extTrackRoot->GetTof2MomentumZ(iPart);
00102 Hep3Vector tof2p(p2x,p2y,p2z);
00103 Hep3Vector tof2m(m2x,m2y,m2z);
00104
00105 string v2s = extTrackRoot->GetTof2VolumeName(iPart).Data();
00106 int v2n = extTrackRoot->GetTof2VolumeNumber(iPart) ;
00107 double tof2= extTrackRoot->GetTof2(iPart);
00108 double tof2path = extTrackRoot->GetTof2Path(iPart);
00109 double z2 = extTrackRoot->GetTof2PosSigmaAlongZ(iPart) ;
00110 double t2 = extTrackRoot->GetTof2PosSigmaAlongT(iPart);
00111 double x2 = extTrackRoot->GetTof2PosSigmaAlongX(iPart);
00112 double y2 = extTrackRoot->GetTof2PosSigmaAlongY(iPart);
00113 HepSymMatrix e2m(6) ;
00114 for (int i = 0;i<6 ;i++ )
00115 for (int j= 0;j<6 ;j++ )
00116 e2m[i][j]= extTrackRoot->GetTof2ErrorMatrix(i,j,iPart) ;
00117
00118
00119 double pEx = extTrackRoot->GetEmcPositionX(iPart);
00120 double pEy = extTrackRoot->GetEmcPositionY(iPart);
00121 double pEz = extTrackRoot->GetEmcPositionZ(iPart);
00122 double mEx = extTrackRoot->GetEmcMomentumX(iPart);
00123 double mEy = extTrackRoot->GetEmcMomentumY(iPart);
00124 double mEz = extTrackRoot->GetEmcMomentumZ(iPart);
00125 Hep3Vector Ep(pEx,pEy,pEz);
00126 Hep3Vector Em(mEx,mEy,mEz);
00127
00128 string vEs = extTrackRoot->GetEmcVolumeName(iPart).Data();
00129 int vEn = extTrackRoot->GetEmcVolumeNumber(iPart);
00130 double theta = extTrackRoot->GetEmcPosSigmaAlongTheta(iPart);
00131 double phi = extTrackRoot->GetEmcPosSigmaAlongPhi(iPart);
00132 HepSymMatrix eEm(6) ;
00133 for(int i=0;i<6 ;i++ )
00134 for(int j= 0;j<6 ;j++ )
00135 eEm[i][j]= extTrackRoot->GetEmcErrorMatrix(i,j,iPart);
00136 double emcPath=extTrackRoot->emcPath(iPart);
00137
00138
00139 double pMx = extTrackRoot->GetMucPositionX(iPart) ;
00140 double pMy = extTrackRoot->GetMucPositionY(iPart) ;
00141 double pMz = extTrackRoot->GetMucPositionZ(iPart) ;
00142 double mMx = extTrackRoot->GetMucMomentumX(iPart) ;
00143 double mMy = extTrackRoot->GetMucMomentumY(iPart) ;
00144 double mMz = extTrackRoot->GetMucMomentumZ(iPart);
00145 Hep3Vector Mp(pMx,pMy,pMz);
00146 Hep3Vector Mm(mMx,mMy,mMz);
00147
00148 string vMs = extTrackRoot->GetMucVolumeName(iPart).Data();
00149 int vMn = extTrackRoot->GetMucVolumeNumber(iPart) ;
00150
00151 double zM = extTrackRoot->GetMucPosSigmaAlongZ(iPart) ;
00152 double tM = extTrackRoot->GetMucPosSigmaAlongT(iPart);
00153 double xM = extTrackRoot->GetMucPosSigmaAlongX(iPart);
00154 double yM = extTrackRoot->GetMucPosSigmaAlongY(iPart);
00155 HepSymMatrix eMm(6) ;
00156 for (int i = 0;i<6 ;i++ )
00157 for (int j= 0;j<6 ;j++ )
00158 eMm[i][j]= extTrackRoot->GetMucErrorMatrix(i,j,iPart) ;
00159
00160
00161
00162 int size = extTrackRoot->GetSize(iPart);
00163 ExtMucHit aExtMucHit;
00164
00165
00166 string vs;
00167 int vn;
00168 double z;
00169 double t;
00170 double x;
00171 double y;
00172 HepSymMatrix matrix(6);
00173
00174 for(int i =0;i<size;i++){
00175 double px = extTrackRoot->GetPositionX(i,iPart) ;
00176 double py = extTrackRoot->GetPositionY(i,iPart) ;
00177 double pz = extTrackRoot->GetPositionZ(i,iPart) ;
00178 Hep3Vector p(px,py,pz);
00179 double mx = extTrackRoot->GetMomentumX(i,iPart) ;
00180 double my = extTrackRoot->GetMomentumY(i,iPart) ;
00181 double mz = extTrackRoot->GetMomentumZ(i,iPart);
00182 Hep3Vector m(mx,my,mz);
00183 vs = extTrackRoot->GetVolumeName(i,iPart).Data();
00184 vn = extTrackRoot->GetVolumeNumber(i,iPart) ;
00185 z = extTrackRoot->GetPosSigmaAlongZ(i,iPart) ;
00186 t = extTrackRoot->GetPosSigmaAlongT(i,iPart);
00187 x = extTrackRoot->GetPosSigmaAlongX(i,iPart);
00188 y = extTrackRoot->GetPosSigmaAlongY(i,iPart);
00189 std::vector<double> vecError = extTrackRoot->GetErrorMatrix(i,iPart);
00190 for(int k =0;k<6;k++){
00191 for(int j =0; j<6;j++){
00192 matrix[k][j] = vecError[k*6+j];
00193 }
00194 }
00195 aExtMucHit.SetExtMucHit(p,m,vs,vn,matrix,z,t,x,y);
00196 extTrackTds->AddExtMucHit(aExtMucHit);
00197 }
00198
00199
00200 extTrackTds->SetTof1Data( tof1p, tof1m, v1s, v1n , tof1, tof1path, e1m, z1, t1, x1, y1 );
00201 extTrackTds->SetTof2Data( tof2p, tof2m, v2s, v2n , tof2, tof2path, e2m, z2, t2, x2, y2 );
00202 extTrackTds->SetEmcData( Ep, Em, vEs, vEn , theta, phi , eEm);
00203 extTrackTds->SetEmcPath(emcPath);
00204 extTrackTds->SetMucData( Mp, Mm, vMs, vMn , eMm, zM, tM, xM, yM );
00205
00206 extTrackTdsCol->push_back(extTrackTds);
00207
00208
00209
00210
00211 }
00212 extTrackTds->SetParType(2);
00213 }
00214
00215 delete m_extTrackCol;
00216 m_extTrackCol = 0;
00217
00218
00219 return StatusCode::SUCCESS;
00220 }
00221
00222 StatusCode RecExtTrackCnv::DataObjectToTObject(DataObject* obj,RootAddress* rootaddr) {
00223
00224
00225
00226 MsgStream log(msgSvc(), "RecExtTrackCnv");
00227 log << MSG::DEBUG << "RecExtTrackCnv::DataObjectToTObject" << endreq;
00228 StatusCode sc=StatusCode::SUCCESS;
00229
00230 RecExtTrackCol * extTrackColTds=dynamic_cast<RecExtTrackCol *> (obj);
00231 if (!extTrackColTds) {
00232 log << MSG::ERROR << "Could not downcast to RecExtTrackCol" << endreq;
00233 return StatusCode::FAILURE;
00234 }
00235
00236 DataObject *evt;
00237 m_eds->findObject(EventModel::Recon::Event,evt);
00238 if (evt==NULL) {
00239 log << MSG::ERROR << "Could not get ReconEvent in TDS " << endreq;
00240 return StatusCode::FAILURE;
00241 }
00242
00243 ReconEvent * devtTds=dynamic_cast<ReconEvent *> (evt);
00244 if (!devtTds) {
00245 log << MSG::ERROR << "RecExtTrackCnv:Could not downcast to TDS Rec Event" << endreq;
00246 }
00247 IOpaqueAddress *addr;
00248
00249 m_cnvSvc->getRecTrackCnv()->createRep(evt,addr);
00250 TRecTrackEvent *recEvt=m_cnvSvc->getRecTrackCnv()->getWriteObject();
00251
00252 const TObjArray *m_extTrackCol = recEvt->getExtTrackCol();
00253
00254 if (!m_extTrackCol) return sc;
00255
00256 recEvt->clearExtTrackCol();
00257 RecExtTrackCol::const_iterator extTrackTds;
00258
00259 for (extTrackTds = extTrackColTds->begin(); extTrackTds != extTrackColTds->end(); extTrackTds++) {
00260
00261 Int_t trackId = (*extTrackTds)->GetTrackId();
00262 TRecExtTrack *extTrackRoot = new TRecExtTrack;
00263
00264 extTrackRoot->SetTrackId(trackId);
00265 for(int iPart=0; iPart<5; iPart++) {
00266
00267 Double_t p1x = (*extTrackTds)->tof1Position(iPart).x();
00268 Double_t p1y = (*extTrackTds)->tof1Position(iPart).y();
00269 Double_t p1z = (*extTrackTds)->tof1Position(iPart).z();
00270 Double_t m1x = (*extTrackTds)->tof1Momentum(iPart).x();
00271 Double_t m1y = (*extTrackTds)->tof1Momentum(iPart).y();
00272 Double_t m1z = (*extTrackTds)->tof1Momentum(iPart).z();
00273
00274 TString v1s = (*extTrackTds)->tof1VolumeName(iPart) ;
00275 Int_t v1n = (*extTrackTds)->tof1VolumeNumber(iPart) ;
00276 Double_t tof1= (*extTrackTds)->tof1(iPart);
00277 Double_t tof1p = (*extTrackTds)->tof1Path(iPart);
00278 Double_t z1 = (*extTrackTds)->tof1PosSigmaAlongZ(iPart);
00279 Double_t t1 = (*extTrackTds)->tof1PosSigmaAlongT(iPart);
00280 Double_t x1 = (*extTrackTds)->tof1PosSigmaAlongX(iPart);
00281 Double_t y1 = (*extTrackTds)->tof1PosSigmaAlongY(iPart);
00282 Double_t e1m[6][6];
00283 HepSymMatrix e1mTds = (*extTrackTds)->tof1ErrorMatrix(iPart);
00284 for (int i = 0;i<6 ;i++ )
00285 for (int j= 0;j<6 ;j++ )
00286 e1m[i][j] = e1mTds[i][j];
00287
00288
00289 Double_t p2x = (*extTrackTds)->tof2Position(iPart).x();
00290 Double_t p2y = (*extTrackTds)->tof2Position(iPart).y();
00291 Double_t p2z = (*extTrackTds)->tof2Position(iPart).z();
00292 Double_t m2x = (*extTrackTds)->tof2Momentum(iPart).x();
00293 Double_t m2y = (*extTrackTds)->tof2Momentum(iPart).y();
00294 Double_t m2z = (*extTrackTds)->tof2Momentum(iPart).z();
00295
00296 TString v2s = (*extTrackTds)->tof2VolumeName(iPart) ;
00297 Int_t v2n = (*extTrackTds)->tof2VolumeNumber(iPart) ;
00298 Double_t tof2= (*extTrackTds)->tof2(iPart);
00299 Double_t tof2p = (*extTrackTds)->tof2Path(iPart);
00300 Double_t z2 = (*extTrackTds)->tof2PosSigmaAlongZ(iPart);
00301 Double_t t2 = (*extTrackTds)->tof2PosSigmaAlongT(iPart);
00302 Double_t x2 = (*extTrackTds)->tof2PosSigmaAlongX(iPart);
00303 Double_t y2 = (*extTrackTds)->tof2PosSigmaAlongY(iPart);
00304 Double_t e2m[6][6];
00305 HepSymMatrix e2mTds = (*extTrackTds)->tof2ErrorMatrix(iPart);
00306 for (int i = 0;i<6 ;i++ )
00307 for (int j= 0;j<6 ;j++ )
00308 e2m[i][j] = e2mTds[i][j];
00309
00310 Double_t pEx = (*extTrackTds)->emcPosition(iPart).x();
00311 Double_t pEy = (*extTrackTds)->emcPosition(iPart).y();
00312 Double_t pEz = (*extTrackTds)->emcPosition(iPart).z();
00313 Double_t mEx = (*extTrackTds)->emcMomentum(iPart).x();
00314 Double_t mEy = (*extTrackTds)->emcMomentum(iPart).y();
00315 Double_t mEz = (*extTrackTds)->emcMomentum(iPart).z();
00316
00317 TString vEs = (*extTrackTds)->emcVolumeName(iPart) ;
00318 Int_t vEn = (*extTrackTds)->emcVolumeNumber(iPart) ;
00319
00320 Double_t theta = (*extTrackTds)->emcPosSigmaAlongTheta(iPart);
00321 Double_t phi = (*extTrackTds)->emcPosSigmaAlongPhi(iPart);
00322
00323 Double_t eEm[6][6];
00324 HepSymMatrix eEmTds = (*extTrackTds)->emcErrorMatrix(iPart);
00325 for (int i = 0;i<6 ;i++ )
00326 for (int j= 0;j<6 ;j++ )
00327 eEm[i][j] = eEmTds[i][j];
00328 Double_t emcPath=(*extTrackTds)->emcPath(iPart);
00329
00330
00331 Double_t pMx = (*extTrackTds)->mucPosition(iPart).x();
00332 Double_t pMy = (*extTrackTds)->mucPosition(iPart).y();
00333 Double_t pMz = (*extTrackTds)->mucPosition(iPart).z();
00334 Double_t mMx = (*extTrackTds)->mucMomentum(iPart).x();
00335 Double_t mMy = (*extTrackTds)->mucMomentum(iPart).y();
00336 Double_t mMz = (*extTrackTds)->mucMomentum(iPart).z();
00337
00338 TString vMs = (*extTrackTds)->mucVolumeName(iPart) ;
00339 Int_t vMn = (*extTrackTds)->mucVolumeNumber(iPart) ;
00340
00341 Double_t zM = (*extTrackTds)->mucPosSigmaAlongZ(iPart);
00342 Double_t tM = (*extTrackTds)->mucPosSigmaAlongT(iPart);
00343 Double_t xM = (*extTrackTds)->mucPosSigmaAlongX(iPart);
00344 Double_t yM = (*extTrackTds)->mucPosSigmaAlongY(iPart);
00345
00346 Double_t eMm[6][6];
00347 HepSymMatrix eMmTds = (*extTrackTds)->mucErrorMatrix(iPart);
00348 for (int i = 0;i<6 ;i++ )
00349 for (int j= 0;j<6 ;j++ )
00350 eMm[i][j]= eMmTds[i][j];
00351
00352
00353 ExtMucHitVec vecHit = (*extTrackTds)->GetExtMucHitVec(iPart);
00354 Int_t size = vecHit.size();
00355
00356
00357
00358
00359
00360
00361 extTrackRoot->SetSize(size,iPart);
00362 for(int i=0;i<size;i++){
00363 Double_t px = vecHit[i].GetPosition().x();
00364 Double_t py = vecHit[i].GetPosition().y();
00365 Double_t pz = vecHit[i].GetPosition().z();
00366 Double_t mx = vecHit[i].GetMomentum().x();
00367 Double_t my = vecHit[i].GetMomentum().y();
00368 Double_t mz = vecHit[i].GetMomentum().z();
00369 TString vs = vecHit[i].GetVolumeName();
00370 Int_t vn = vecHit[i].GetVolumeNumber();
00371 Double_t z = vecHit[i].GetPosSigmaAlongZ();
00372 Double_t t = vecHit[i].GetPosSigmaAlongT();
00373 Double_t x = vecHit[i].GetPosSigmaAlongX();
00374 Double_t y = vecHit[i].GetPosSigmaAlongY();
00375 Double_t m[6][6];
00376 HepSymMatrix mTds = vecHit[i].GetErrorMatrix();
00377 for (int j = 0;j<6;j++)
00378 for(int k=0;k<6;k++)
00379 m[j][k] = mTds[j][k];
00380
00381 extTrackRoot->SetExtMucHit(px,py,pz,mx,my,mz,vs,vn,z,t,x,y,m,iPart);
00382 }
00383
00384
00385 extTrackRoot->SetTof1PositionX(p1x,iPart);
00386 extTrackRoot->SetTof1PositionY(p1y,iPart);
00387 extTrackRoot->SetTof1PositionZ(p1z,iPart);
00388 extTrackRoot->SetTof1MomentumX(m1x,iPart);
00389 extTrackRoot->SetTof1MomentumY(m1y,iPart);
00390 extTrackRoot->SetTof1MomentumZ(m1z,iPart);
00391
00392 extTrackRoot->SetTof1VolumeName(v1s,iPart);
00393 extTrackRoot->SetTof1VolumeNumber(v1n,iPart);
00394
00395 extTrackRoot->SetTof1(tof1,iPart);
00396 extTrackRoot->SetTof1Path(tof1p,iPart);
00397
00398 extTrackRoot->SetTof1PosSigmaAlongZ(z1,iPart);
00399 extTrackRoot->SetTof1PosSigmaAlongT(t1,iPart);
00400 extTrackRoot->SetTof1PosSigmaAlongX(x1,iPart);
00401 extTrackRoot->SetTof1PosSigmaAlongY(y1,iPart);
00402
00403 extTrackRoot->SetTof1ErrorMatrix(e1m,iPart);
00404
00405 extTrackRoot->SetTof2PositionX(p2x,iPart);
00406 extTrackRoot->SetTof2PositionY(p2y,iPart);
00407 extTrackRoot->SetTof2PositionZ(p2z,iPart);
00408 extTrackRoot->SetTof2MomentumX(m2x,iPart);
00409 extTrackRoot->SetTof2MomentumY(m2y,iPart);
00410 extTrackRoot->SetTof2MomentumZ(m2z,iPart);
00411
00412 extTrackRoot->SetTof2VolumeName(v2s,iPart);
00413 extTrackRoot->SetTof2VolumeNumber(v2n,iPart);
00414
00415 extTrackRoot->SetTof2(tof2,iPart);
00416 extTrackRoot->SetTof2Path(tof2p,iPart);
00417
00418 extTrackRoot->SetTof2PosSigmaAlongZ(z2,iPart);
00419 extTrackRoot->SetTof2PosSigmaAlongT(t2,iPart);
00420 extTrackRoot->SetTof2PosSigmaAlongX(x2,iPart);
00421 extTrackRoot->SetTof2PosSigmaAlongY(y2,iPart);
00422
00423 extTrackRoot->SetTof2ErrorMatrix(e2m,iPart);
00424
00425 extTrackRoot->SetEmcPositionX(pEx,iPart);
00426 extTrackRoot->SetEmcPositionY(pEy,iPart);
00427 extTrackRoot->SetEmcPositionZ(pEz,iPart);
00428 extTrackRoot->SetEmcMomentumX(mEx,iPart);
00429 extTrackRoot->SetEmcMomentumY(mEy,iPart);
00430 extTrackRoot->SetEmcMomentumZ(mEz,iPart);
00431
00432 extTrackRoot->SetEmcVolumeName(vEs,iPart);
00433 extTrackRoot->SetEmcVolumeNumber(vEn,iPart);
00434
00435 extTrackRoot->SetEmcPosSigmaAlongTheta(theta,iPart);
00436 extTrackRoot->SetEmcPosSigmaAlongPhi(phi,iPart);
00437
00438 extTrackRoot->SetEmcErrorMatrix(eEm,iPart);
00439 extTrackRoot->SetEmcPath(emcPath,iPart);
00440
00441 extTrackRoot->SetMucPositionX(pMx,iPart);
00442 extTrackRoot->SetMucPositionY(pMy,iPart);
00443 extTrackRoot->SetMucPositionZ(pMz,iPart);
00444 extTrackRoot->SetMucMomentumX(mMx,iPart);
00445 extTrackRoot->SetMucMomentumY(mMy,iPart);
00446 extTrackRoot->SetMucMomentumZ(mMz,iPart);
00447
00448 extTrackRoot->SetMucVolumeName(vMs,iPart);
00449 extTrackRoot->SetMucVolumeNumber(vMn,iPart);
00450
00451 extTrackRoot->SetMucPosSigmaAlongZ(zM,iPart);
00452 extTrackRoot->SetMucPosSigmaAlongT(tM,iPart);
00453 extTrackRoot->SetMucPosSigmaAlongX(xM,iPart);
00454 extTrackRoot->SetMucPosSigmaAlongY(yM,iPart);
00455
00456 extTrackRoot->SetMucErrorMatrix(eMm,iPart);
00457
00458 }
00459 recEvt->addExtTrack(extTrackRoot);
00460 }
00461
00462 return StatusCode::SUCCESS;
00463 }
00464 #endif