/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Event/RootCnvSvc/RootCnvSvc-02-01-12/src/Dst/ExtTrackCnv.cxx

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

Generated on Tue Nov 29 22:58:39 2016 for BOSS_7.0.2 by  doxygen 1.4.7