ExtTrackCnv Class Reference

#include <ExtTrackCnv.h>

Inheritance diagram for ExtTrackCnv:

RootEventBaseCnv Converter< Ty1, Ty2 > List of all members.

Public Types

typedef Ty1 source
typedef Ty2 destination

Public Member Functions

virtual ~ExtTrackCnv ()
virtual long repSvcType () const
virtual StatusCode initialize ()
virtual StatusCode finalize ()
void declareObject (const std::string &fullPath, const CLID &clid, const std::string &treename, const std::string &branchname)
 Store TDS path to link a particular converter to an object on the TDS.
virtual StatusCode createObj (IOpaqueAddress *addr, DataObject *&dat)
 Convert the persistent object to transient.
virtual StatusCode createRep (DataObject *pObject, IOpaqueAddress *&refpAddress)
 Convert the transient object to the requested representation.
virtual StatusCode fillRepRefs (IOpaqueAddress *pAddress, DataObject *pObject)
 Resolve the references of the converted object.
virtual StatusCode fillObjRefs (IOpaqueAddress *pAddress, DataObject *pObject)
 Resolve the references of the converted object.
TObject * getReadObject () const
 get the object to be read
destinationoperator (const source &) const

Static Public Member Functions

static const CLID & classID ()
static const unsigned char storageType ()
 Storage type and class ID.

Protected Member Functions

 ExtTrackCnv (ISvcLocator *svc)
virtual StatusCode DataObjectToTObject (DataObject *obj, RootAddress *addr)
 transformation to root
virtual StatusCode TObjectToDataObject (DataObject *&obj)
 transformation from root
virtual destinationconvert (const source &) const =0

Protected Attributes

RootCnvSvcm_cnvSvc
std::vector< RootCnvSvc::Leafm_leaves
RootInterfacem_rootInterface
 pointer to the RootInterface
IDataProviderSvc * m_eds
 pointer to eventdataservice
int m_branchNr
 the branchNr of this converter for writing
int m_branchNrDst
int m_branchNrMc
int m_branchNrRecon
int m_branchNrEvtRec
int m_branchNrEvtHeader
int m_branchNrEvtNavigator
TObject * m_objRead
 the object that was read
CLID CLID_top
 the CLID of the upper converter if any
TArrayS * m_branchNumbers
 array with number of branches for reading
std::string m_rootBranchname
 root branchname (may be concatenated of severals)
std::string m_rootTreename
 each converter knows it's treename
std::string m_currentFileName
std::vector< void * > m_adresses
 each converter knows the corresponding adresses
RootEvtSelectorm_evtsel

Private Attributes

commonData m_common
 relational maps
TObjArray * m_extTrackCol
 root object to be read

Friends

class CnvFactory< ExtTrackCnv >

Detailed Description

Definition at line 15 of file ExtTrackCnv.h.


Member Typedef Documentation

template<class Ty1, class Ty2>
typedef Ty2 Converter< Ty1, Ty2 >::destination [inherited]

Definition at line 19 of file Converter.h.

template<class Ty1, class Ty2>
typedef Ty1 Converter< Ty1, Ty2 >::source [inherited]

Definition at line 18 of file Converter.h.


Constructor & Destructor Documentation

virtual ExtTrackCnv::~ExtTrackCnv (  )  [inline, virtual]

Definition at line 25 of file ExtTrackCnv.h.

00025 { };

ExtTrackCnv::ExtTrackCnv ( ISvcLocator *  svc  )  [protected]

Definition at line 38 of file ExtTrackCnv.cxx.

References RootEventBaseCnv::m_adresses, m_extTrackCol, RootEventBaseCnv::m_rootBranchname, and msgSvc().

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 }


Member Function Documentation

static const CLID& ExtTrackCnv::classID (  )  [inline, static]

Definition at line 20 of file ExtTrackCnv.h.

References CLID_DstExtTrackCol.

Referenced by RootCnvSvc::addConverters().

00021   {
00022        return CLID_DstExtTrackCol; 
00023   }

template<class Ty1, class Ty2>
virtual destination* Converter< Ty1, Ty2 >::convert ( const source  )  const [protected, pure virtual, inherited]

StatusCode RootEventBaseCnv::createObj ( IOpaqueAddress *  addr,
DataObject *&  dat 
) [virtual, inherited]

Convert the persistent object to transient.

Reimplemented in EventCnv.

Definition at line 157 of file RootEventBaseCnv.cxx.

References RootEventBaseCnv::CLID_top, Bes_Common::DEBUG, calibUtil::ERROR, RootInterface::getBranchEntry(), RootAddress::getBranchname(), RootInterface::getCurrentFileName(), RootInterface::getENDFILE(), RootInterface::getEntries(), RootAddress::getEntryNr(), RootAddress::getNrBranches(), RootAddress::getPath(), RootEventBaseCnv::getReadObject(), RootEvtSelector::getRecId(), RootInterface::getSelectFromTag(), RootAddress::getTreename(), Bes_Common::INFO, RootEventBaseCnv::m_adresses, RootEventBaseCnv::m_branchNumbers, RootEventBaseCnv::m_currentFileName, RootEventBaseCnv::m_eds, RootEventBaseCnv::m_evtsel, RootEventBaseCnv::m_objRead, RootEventBaseCnv::m_rootInterface, msgSvc(), RootInterface::setBranchAddress(), RootAddress::setEntryNr(), subSeperate::temp, and RootEventBaseCnv::TObjectToDataObject().

00158                                                            {
00159   // transform ROOT object to TDS object
00160   MsgStream log(msgSvc(), "RootEventBaseCnv");
00161   log << MSG::DEBUG << "RootEventBaseCnv::createObj with clid " <<addr->clID()<< endreq;
00162   StatusCode sc;
00163 
00164   // add 2005-11-29
00165   // log<<MSG::INFO<<"######### RootEventBaseCnv ::createObj begin of createObj:  m_branchNumbers "<<m_branchNumbers->GetSize()<<"###############"<<endreq;
00166 
00167   RootAddress *raddr=dynamic_cast<RootAddress *>(addr);
00168   if (!raddr) {
00169     log << MSG::ERROR << "Could not downcast to Root address" << endreq;
00170     return StatusCode::FAILURE;
00171   }
00172  
00173   static int temp =0;   //control the begin of each files 2005-12-01
00174   static int entryN =0; //control the event number of each files 2005-21-01
00175   static int brN =0; //control munber of branch of the tree;
00176   int lastBrn = brN;
00177   //lastBrn = brN; 
00178   static int branchN=0;
00179   static bool isSet=true;
00180 
00181   static int entryBefore = 0;
00182   static bool addEntryEachFile = true;
00183  
00184  
00185    if(m_rootInterface->getENDFILE() || (temp >0 && temp < branchN)){ // if the file has get the end:y the go to next file to create a new tree
00186     
00187     if(m_rootInterface->getENDFILE() ) {
00188       entryN = 0;
00189     }
00190     
00191     temp++;
00192     
00193     delete m_branchNumbers;
00194     m_branchNumbers = new TArrayS(0);
00195    
00196     if(temp == branchN) {
00197       temp =0;
00198     }
00199    }
00200 
00201    if(m_rootInterface->getENDFILE()) addEntryEachFile = true;
00202    // the 2nd method 
00203    if(m_evtsel->getRecId() - entryBefore == 0) { // first event in this file
00204      delete m_branchNumbers;
00205      m_branchNumbers = new TArrayS(0);
00206    }
00207 
00208    //new method to initialize the branchNumber 
00209    if(m_currentFileName=="") m_currentFileName = m_rootInterface->getCurrentFileName();
00210    if(!(m_currentFileName == m_rootInterface->getCurrentFileName())){ 
00211            m_currentFileName = m_rootInterface->getCurrentFileName();
00212            delete m_branchNumbers;
00213            m_branchNumbers = new TArrayS(0);
00214    }   
00215    //---------------------------------------- 
00216    
00217   if (m_branchNumbers->GetSize()<=0) {
00218     if(isSet) brN++;
00219     int branchNumber;
00220     for (int nb=0;nb<raddr->getNrBranches();nb++) {
00221       sc=m_rootInterface->setBranchAddress(raddr->getTreename().c_str(),raddr->getBranchname(nb).c_str(),m_adresses[nb],branchNumber);
00222       if (!sc.isSuccess()) 
00223       {
00224         if(isSet) brN--;    //liangyt: if fail to retrieve this branch, this will be not a effective branch.
00225         //entryN++;   //liangyt: this is the second method
00226         if(temp>0) temp--;  //temp > 0 means recording effective branch number.
00227         return sc;
00228       }
00229       m_branchNumbers->Set(nb+1);
00230       m_branchNumbers->AddAt(branchNumber,nb);
00231      
00232     }
00233   }
00234 
00236   if(addEntryEachFile&&(m_evtsel->getRecId()>entryBefore)){   // for a new file, add entry for ONLY one time.
00237     entryBefore += m_rootInterface->getEntries();
00238     addEntryEachFile = false;
00239   }
00240 
00241   if(lastBrn == brN && isSet ){
00242     branchN = brN;
00243     isSet=false;    
00244   }
00245 
00246   if(isSet==false) log << MSG::INFO <<" 1st method set event as : "<<int(entryN/branchN)<<endreq;
00247   if(isSet==false) raddr->setEntryNr(int(entryN/branchN));//former method, keep it to be backup.
00248   if(m_evtsel) log << MSG::INFO <<" event id = "<<m_evtsel->getRecId()<<endreq;
00249 
00250 
00251   int eventID = 0;
00252   if(entryBefore > m_evtsel->getRecId())
00253     eventID = m_evtsel->getRecId() + m_rootInterface->getEntries() - entryBefore;
00254   else if(entryBefore == m_evtsel->getRecId()) eventID = 0;
00255   else log << MSG::ERROR <<"eventId error!!!"<<endreq;
00256   
00257   log << MSG::INFO <<" 2nd  method set event as : "<<eventID<<endreq;
00258   
00259   if(m_evtsel) raddr->setEntryNr(eventID);
00260 
00261   //add dengzy
00262   if(m_rootInterface->getSelectFromTag()!=0)
00263   {
00264     if(m_evtsel)
00265       raddr->setEntryNr( m_evtsel->getRecId() );
00266   }//end of add by dengzy
00267 
00268   // read branch
00269   
00270   if (m_branchNumbers->GetSize()>0) {
00271     int nbtot=0,nb;
00272     for (int ib=0;ib<m_branchNumbers->GetSize();ib++) {
00273       //sc=m_rootInterface->getBranchEntry(m_branchNumbers->At(ib),raddr->getEntryNr(),nb);
00274       //change to get branch entry with addr(set address for each entry) liangyt
00275       sc=m_rootInterface->getBranchEntry(m_branchNumbers->At(ib),raddr->getEntryNr(),m_adresses[ib],nb);      
00276       if (sc.isFailure()) {
00277         log << MSG::ERROR << "Could not read branch " << raddr->getBranchname(nb) << endreq;
00278         return sc;
00279       }
00280       nbtot+=nb;
00281     }
00282   }
00283      
00284   else {   // get ROOT object
00285     if (CLID_top) {
00286       IConverter *p=conversionSvc()->converter(CLID_top);
00287       RootEventBaseCnv *cnv=dynamic_cast<RootEventBaseCnv *>(p);
00288       if (!cnv) {
00289         log << MSG::ERROR << "Could not downcast to RootEventBaseCnv "  << endreq;
00290         return StatusCode::FAILURE;
00291       }
00292       m_objRead=cnv->getReadObject();
00293     }
00294   }
00295 
00296   //do concrete transformation in derived converter
00297   sc = TObjectToDataObject(refpObject);
00298   if (sc.isFailure()) {
00299     log << MSG::ERROR << "Could not transform object" << endreq;
00300     return sc;
00301   }
00302 
00303   // verify if we have to register
00304   IRegistry* ent = addr->registry();
00305   if ( ent == 0)   {
00306        sc=m_eds->registerObject(raddr->getPath(),refpObject);
00307        if (sc.isFailure()) {
00308          log << MSG::ERROR << "Could not register object " << raddr->getPath()<<" status "<<sc.getCode()<<endreq;
00309        }
00310        //    }
00311   }
00312 
00313   entryN++;
00314   return StatusCode::SUCCESS;
00315 }

StatusCode RootEventBaseCnv::createRep ( DataObject *  pObject,
IOpaqueAddress *&  refpAddress 
) [virtual, inherited]

Convert the transient object to the requested representation.

Definition at line 78 of file RootEventBaseCnv.cxx.

References RootCnvSvc::createAddress(), RootEventBaseCnv::DataObjectToTObject(), calibUtil::ERROR, RootEventBaseCnv::m_cnvSvc, and msgSvc().

Referenced by TrigDataCnv::DataObjectToTObject(), RecZddChannelCnv::DataObjectToTObject(), RecTofTrackCnv::DataObjectToTObject(), RecMucTrackCnv::DataObjectToTObject(), RecMdcTrackCnv::DataObjectToTObject(), RecMdcKalTrackCnv::DataObjectToTObject(), RecMdcKalHelixSegCnv::DataObjectToTObject(), RecMdcHitCnv::DataObjectToTObject(), RecMdcDedxHitCnv::DataObjectToTObject(), RecMdcDedxCnv::DataObjectToTObject(), RecExtTrackCnv::DataObjectToTObject(), RecEvTimeCnv::DataObjectToTObject(), RecEmcShowerCnv::DataObjectToTObject(), RecEmcHitCnv::DataObjectToTObject(), RecEmcClusterCnv::DataObjectToTObject(), TofMcHitCnv::DataObjectToTObject(), MucMcHitCnv::DataObjectToTObject(), MdcMcHitCnv::DataObjectToTObject(), McParticleCnv::DataObjectToTObject(), EmcMcHitCnv::DataObjectToTObject(), HltRawCnv::DataObjectToTObject(), HltInfCnv::DataObjectToTObject(), DstHltInfCnv::DataObjectToTObject(), EvtRecVeeVertexCnv::DataObjectToTObject(), EvtRecTrackCnv::DataObjectToTObject(), EvtRecPrimaryVertexCnv::DataObjectToTObject(), EvtRecPi0Cnv::DataObjectToTObject(), EvtRecEventCnv::DataObjectToTObject(), EvtRecEtaToGGCnv::DataObjectToTObject(), EvtRecDTagCnv::DataObjectToTObject(), TofTrackCnv::DataObjectToTObject(), MucTrackCnv::DataObjectToTObject(), MdcTrackCnv::DataObjectToTObject(), MdcKalTrackCnv::DataObjectToTObject(), MdcDedxCnv::DataObjectToTObject(), DataObjectToTObject(), EmcTrackCnv::DataObjectToTObject(), TofDigiCnv::DataObjectToTObject(), MucDigiCnv::DataObjectToTObject(), MdcDigiCnv::DataObjectToTObject(), LumiDigiCnv::DataObjectToTObject(), and EmcDigiCnv::DataObjectToTObject().

00079                                                            {
00080   // Purpose and Method: Convert the transient object to ROOT
00081 
00082   MsgStream log(msgSvc(), "RootEventBaseCnv");
00083  
00084   StatusCode sc= StatusCode::SUCCESS;
00085   // get the corresponding address 
00086   RootAddress *rootaddr;
00087   sc=m_cnvSvc->createAddress(obj,addr);
00088 
00089   rootaddr = dynamic_cast<RootAddress *>(addr);
00090 
00091   if (sc.isFailure() || !rootaddr  ) { 
00092     log << MSG::ERROR << "Could not create address for clid " <<obj->clID()<<", objname "<<obj->name()<<endreq;
00093     return StatusCode::FAILURE;
00094   }
00095 
00096   //  do the real conversion in the derived converter
00097   sc = DataObjectToTObject(obj,rootaddr);
00098 
00099   delete addr;
00100   addr = NULL;
00101 
00102   if (sc.isFailure()) {
00103     log << MSG::ERROR << "Could not transform object" << endreq;
00104     return sc;
00105   }
00106 
00107   return StatusCode::SUCCESS;
00108 }

StatusCode ExtTrackCnv::DataObjectToTObject ( DataObject *  obj,
RootAddress addr 
) [protected, virtual]

transformation to root

Implements RootEventBaseCnv.

Definition at line 218 of file ExtTrackCnv.cxx.

References TDstEvent::addExtTrack(), TDstEvent::clearExtTrackCol(), RootEventBaseCnv::createRep(), Bes_Common::DEBUG, calibUtil::ERROR, EventModel::Dst::Event, RootCnvSvc::getDstCnv(), TDstEvent::getExtTrackCol(), DstCnv::getWriteObject(), genRecEmupikp::i, ganga-rec::j, RootEventBaseCnv::m_cnvSvc, RootEventBaseCnv::m_eds, m_extTrackCol, msgSvc(), TExtTrack::SetEmcErrorMatrix(), TExtTrack::SetEmcMomentumX(), TExtTrack::SetEmcMomentumY(), TExtTrack::SetEmcMomentumZ(), TExtTrack::SetEmcPath(), TExtTrack::SetEmcPositionX(), TExtTrack::SetEmcPositionY(), TExtTrack::SetEmcPositionZ(), TExtTrack::SetEmcPosSigmaAlongPhi(), TExtTrack::SetEmcPosSigmaAlongTheta(), TExtTrack::SetEmcVolumeName(), TExtTrack::SetEmcVolumeNumber(), TExtTrack::SetMucErrorMatrix(), TExtTrack::SetMucMomentumX(), TExtTrack::SetMucMomentumY(), TExtTrack::SetMucMomentumZ(), TExtTrack::SetMucPositionX(), TExtTrack::SetMucPositionY(), TExtTrack::SetMucPositionZ(), TExtTrack::SetMucPosSigmaAlongT(), TExtTrack::SetMucPosSigmaAlongX(), TExtTrack::SetMucPosSigmaAlongY(), TExtTrack::SetMucPosSigmaAlongZ(), TExtTrack::SetMucVolumeName(), TExtTrack::SetMucVolumeNumber(), TExtTrack::SetTof1(), TExtTrack::SetTof1ErrorMatrix(), TExtTrack::SetTof1MomentumX(), TExtTrack::SetTof1MomentumY(), TExtTrack::SetTof1MomentumZ(), TExtTrack::SetTof1Path(), TExtTrack::SetTof1PositionX(), TExtTrack::SetTof1PositionY(), TExtTrack::SetTof1PositionZ(), TExtTrack::SetTof1PosSigmaAlongT(), TExtTrack::SetTof1PosSigmaAlongX(), TExtTrack::SetTof1PosSigmaAlongY(), TExtTrack::SetTof1PosSigmaAlongZ(), TExtTrack::SetTof1VolumeName(), TExtTrack::SetTof1VolumeNumber(), TExtTrack::SetTof2(), TExtTrack::SetTof2ErrorMatrix(), TExtTrack::SetTof2MomentumX(), TExtTrack::SetTof2MomentumY(), TExtTrack::SetTof2MomentumZ(), TExtTrack::SetTof2Path(), TExtTrack::SetTof2PositionX(), TExtTrack::SetTof2PositionY(), TExtTrack::SetTof2PositionZ(), TExtTrack::SetTof2PosSigmaAlongT(), TExtTrack::SetTof2PosSigmaAlongX(), TExtTrack::SetTof2PosSigmaAlongY(), TExtTrack::SetTof2PosSigmaAlongZ(), TExtTrack::SetTof2VolumeName(), TExtTrack::SetTof2VolumeNumber(), and TExtTrack::SetTrackId().

00218                                                                                  {
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

void RootEventBaseCnv::declareObject ( const std::string fullPath,
const CLID &  clid,
const std::string treename,
const std::string branchname 
) [inherited]

Store TDS path to link a particular converter to an object on the TDS.

Definition at line 150 of file RootEventBaseCnv.cxx.

References RootEventBaseCnv::m_leaves.

Referenced by RecMucRecHitCnv::RecMucRecHitCnv().

00151                                                                                       {
00152     // Purpose and Method:  Save the path on the TDS, treename, pathname in the m_leaves vector, 
00153     //   corresponding to the DataObject that the converter handles.
00154    m_leaves.push_back(RootCnvSvc::Leaf(path, cl,treename,branchname));
00155 }

StatusCode RootEventBaseCnv::fillObjRefs ( IOpaqueAddress *  pAddress,
DataObject *  pObject 
) [virtual, inherited]

Resolve the references of the converted object.

Definition at line 117 of file RootEventBaseCnv.cxx.

References msgSvc().

00118                                                  {
00119     // Purpose and Method:  Resolve the references of the converted object.
00120     //     It is expected that derived classes will override this method.
00121     MsgStream log(msgSvc(), "RootEventBaseCnv");
00122     return StatusCode::SUCCESS;
00123 }

StatusCode RootEventBaseCnv::fillRepRefs ( IOpaqueAddress *  pAddress,
DataObject *  pObject 
) [virtual, inherited]

Resolve the references of the converted object.

Definition at line 109 of file RootEventBaseCnv.cxx.

References msgSvc().

00110                                                  {
00111     // Purpose and Method:  Resolve the references of the converted object.
00112     //     It is expected that derived classes will override this method.
00113     MsgStream log(msgSvc(), "RootEventBaseCnv");
00114     return StatusCode::SUCCESS;
00115 }

StatusCode RootEventBaseCnv::finalize (  )  [virtual, inherited]

Definition at line 142 of file RootEventBaseCnv.cxx.

References RootEventBaseCnv::m_cnvSvc.

00142                                         {
00143     if ( m_cnvSvc )     {
00144         m_cnvSvc->release();
00145         m_cnvSvc=0;
00146     }
00147     return Converter::finalize();
00148 }

TObject* RootEventBaseCnv::getReadObject (  )  const [inline, inherited]

get the object to be read

Definition at line 125 of file RootEventBaseCnv.h.

References RootEventBaseCnv::m_objRead.

Referenced by RootEventBaseCnv::createObj().

00125 { return m_objRead;} 

StatusCode RootEventBaseCnv::initialize (  )  [virtual, inherited]

Reimplemented in DigiCnv, DstCnv, EvtHeaderCnv, EvtNavigatorCnv, EvtRecCnv, HltCnv, McCnv, RecTrackCnv, and TrigCnv.

Definition at line 126 of file RootEventBaseCnv.cxx.

References IID_IRootCnvSvc, and RootEventBaseCnv::m_cnvSvc.

Referenced by TrigCnv::initialize(), RecTrackCnv::initialize(), McCnv::initialize(), HltCnv::initialize(), EvtRecCnv::initialize(), EvtNavigatorCnv::initialize(), EvtHeaderCnv::initialize(), DstCnv::initialize(), and DigiCnv::initialize().

00126                                           {
00127  
00128   StatusCode status = Converter::initialize();
00129 
00130   if ( status.isSuccess() )   {
00131     IService* isvc = 0;
00132     status = serviceLocator()->service("RootCnvSvc", isvc, false);
00133     if ( !status.isSuccess() )   status = serviceLocator()->service("EventCnvSvc", isvc, true);
00134     if ( status.isSuccess() )   {
00135       status = isvc->queryInterface(IID_IRootCnvSvc, (void**)&m_cnvSvc);
00136     }
00137   }
00138   
00139   return status;
00140 }

template<class Ty1, class Ty2>
destination* Converter< Ty1, Ty2 >::operator ( const source  )  const [inline, inherited]

virtual long RootEventBaseCnv::repSvcType (  )  const [inline, virtual, inherited]

Definition at line 88 of file RootEventBaseCnv.h.

References ROOT_StorageType.

00088                                     { 
00089       return ROOT_StorageType; 
00090     } 

static const unsigned char RootEventBaseCnv::storageType (  )  [inline, static, inherited]

Storage type and class ID.

Definition at line 84 of file RootEventBaseCnv.h.

References ROOT_StorageType.

00084                                                   {
00085       return ROOT_StorageType;
00086     }

StatusCode ExtTrackCnv::TObjectToDataObject ( DataObject *&  obj  )  [protected, virtual]

transformation from root

Implements RootEventBaseCnv.

Definition at line 50 of file ExtTrackCnv.cxx.

References Bes_Common::DEBUG, TExtTrack::emcPath(), TExtTrack::GetEmcErrorMatrix(), TExtTrack::GetEmcMomentumX(), TExtTrack::GetEmcMomentumY(), TExtTrack::GetEmcMomentumZ(), TExtTrack::GetEmcPositionX(), TExtTrack::GetEmcPositionY(), TExtTrack::GetEmcPositionZ(), TExtTrack::GetEmcPosSigmaAlongPhi(), TExtTrack::GetEmcPosSigmaAlongTheta(), TExtTrack::GetEmcVolumeName(), TExtTrack::GetEmcVolumeNumber(), TExtTrack::GetMucErrorMatrix(), TExtTrack::GetMucMomentumX(), TExtTrack::GetMucMomentumY(), TExtTrack::GetMucMomentumZ(), TExtTrack::GetMucPositionX(), TExtTrack::GetMucPositionY(), TExtTrack::GetMucPositionZ(), TExtTrack::GetMucPosSigmaAlongT(), TExtTrack::GetMucPosSigmaAlongX(), TExtTrack::GetMucPosSigmaAlongY(), TExtTrack::GetMucPosSigmaAlongZ(), TExtTrack::GetMucVolumeName(), TExtTrack::GetMucVolumeNumber(), TExtTrack::GetTof1(), TExtTrack::GetTof1ErrorMatrix(), TExtTrack::GetTof1MomentumX(), TExtTrack::GetTof1MomentumY(), TExtTrack::GetTof1MomentumZ(), TExtTrack::GetTof1Path(), TExtTrack::GetTof1PositionX(), TExtTrack::GetTof1PositionY(), TExtTrack::GetTof1PositionZ(), TExtTrack::GetTof1PosSigmaAlongT(), TExtTrack::GetTof1PosSigmaAlongX(), TExtTrack::GetTof1PosSigmaAlongY(), TExtTrack::GetTof1PosSigmaAlongZ(), TExtTrack::GetTof1VolumeName(), TExtTrack::GetTof1VolumeNumber(), TExtTrack::GetTof2(), TExtTrack::GetTof2ErrorMatrix(), TExtTrack::GetTof2MomentumX(), TExtTrack::GetTof2MomentumY(), TExtTrack::GetTof2MomentumZ(), TExtTrack::GetTof2Path(), TExtTrack::GetTof2PositionX(), TExtTrack::GetTof2PositionY(), TExtTrack::GetTof2PositionZ(), TExtTrack::GetTof2PosSigmaAlongT(), TExtTrack::GetTof2PosSigmaAlongX(), TExtTrack::GetTof2PosSigmaAlongY(), TExtTrack::GetTof2PosSigmaAlongZ(), TExtTrack::GetTof2VolumeName(), TExtTrack::GetTof2VolumeNumber(), TExtTrack::GetTrackId(), genRecEmupikp::i, ganga-rec::j, m_common, m_extTrackCol, commonData::m_rootExtTrackMap, msgSvc(), DstExtTrack::SetEmcData(), DstExtTrack::SetEmcPath(), DstExtTrack::SetMucData(), DstExtTrack::SetTof1Data(), DstExtTrack::SetTof2Data(), DstExtTrack::SetTrackId(), and deljobs::string.

00050                                                                    {
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 }


Friends And Related Function Documentation

friend class CnvFactory< ExtTrackCnv > [friend]

Definition at line 17 of file ExtTrackCnv.h.


Member Data Documentation

CLID RootEventBaseCnv::CLID_top [protected, inherited]

the CLID of the upper converter if any

Definition at line 61 of file RootEventBaseCnv.h.

Referenced by RootEventBaseCnv::createObj(), and RootEventBaseCnv::RootEventBaseCnv().

std::vector<void *> RootEventBaseCnv::m_adresses [protected, inherited]

each converter knows the corresponding adresses

Definition at line 73 of file RootEventBaseCnv.h.

Referenced by RootEventBaseCnv::createObj(), DigiCnv::DigiCnv(), DstHltInfCnv::DstHltInfCnv(), EmcDigiCnv::EmcDigiCnv(), EmcMcHitCnv::EmcMcHitCnv(), EmcTrackCnv::EmcTrackCnv(), EvtHeaderCnv::EvtHeaderCnv(), EvtNavigatorCnv::EvtNavigatorCnv(), EvtRecDTagCnv::EvtRecDTagCnv(), EvtRecEtaToGGCnv::EvtRecEtaToGGCnv(), EvtRecEventCnv::EvtRecEventCnv(), EvtRecPi0Cnv::EvtRecPi0Cnv(), EvtRecPrimaryVertexCnv::EvtRecPrimaryVertexCnv(), EvtRecTrackCnv::EvtRecTrackCnv(), EvtRecVeeVertexCnv::EvtRecVeeVertexCnv(), ExtTrackCnv(), HltInfCnv::HltInfCnv(), HltRawCnv::HltRawCnv(), LumiDigiCnv::LumiDigiCnv(), McParticleCnv::McParticleCnv(), MdcDedxCnv::MdcDedxCnv(), MdcDigiCnv::MdcDigiCnv(), MdcKalTrackCnv::MdcKalTrackCnv(), MdcMcHitCnv::MdcMcHitCnv(), MdcTrackCnv::MdcTrackCnv(), MucDigiCnv::MucDigiCnv(), MucMcHitCnv::MucMcHitCnv(), MucTrackCnv::MucTrackCnv(), RecBTofCalHitCnv::RecBTofCalHitCnv(), RecEmcClusterCnv::RecEmcClusterCnv(), RecEmcHitCnv::RecEmcHitCnv(), RecEmcShowerCnv::RecEmcShowerCnv(), RecETofCalHitCnv::RecETofCalHitCnv(), RecEvTimeCnv::RecEvTimeCnv(), RecExtTrackCnv::RecExtTrackCnv(), RecMdcDedxCnv::RecMdcDedxCnv(), RecMdcDedxHitCnv::RecMdcDedxHitCnv(), RecMdcHitCnv::RecMdcHitCnv(), RecMdcKalHelixSegCnv::RecMdcKalHelixSegCnv(), RecMdcKalTrackCnv::RecMdcKalTrackCnv(), RecMdcTrackCnv::RecMdcTrackCnv(), RecMucRecHitCnv::RecMucRecHitCnv(), RecMucTrackCnv::RecMucTrackCnv(), RecTofTrackCnv::RecTofTrackCnv(), RecZddChannelCnv::RecZddChannelCnv(), TofDigiCnv::TofDigiCnv(), TofMcHitCnv::TofMcHitCnv(), TofTrackCnv::TofTrackCnv(), and TrigDataCnv::TrigDataCnv().

int RootEventBaseCnv::m_branchNr [protected, inherited]

the branchNr of this converter for writing

Definition at line 49 of file RootEventBaseCnv.h.

Referenced by TrigCnv::DataObjectToTObject(), HltCnv::DataObjectToTObject(), DigiCnv::DataObjectToTObject(), and RootEventBaseCnv::RootEventBaseCnv().

int RootEventBaseCnv::m_branchNrDst [protected, inherited]

Definition at line 50 of file RootEventBaseCnv.h.

Referenced by DstCnv::DataObjectToTObject(), and RootEventBaseCnv::RootEventBaseCnv().

int RootEventBaseCnv::m_branchNrEvtHeader [protected, inherited]

Definition at line 54 of file RootEventBaseCnv.h.

Referenced by EvtHeaderCnv::DataObjectToTObject(), and RootEventBaseCnv::RootEventBaseCnv().

int RootEventBaseCnv::m_branchNrEvtNavigator [protected, inherited]

Definition at line 55 of file RootEventBaseCnv.h.

Referenced by EvtNavigatorCnv::DataObjectToTObject(), and RootEventBaseCnv::RootEventBaseCnv().

int RootEventBaseCnv::m_branchNrEvtRec [protected, inherited]

Definition at line 53 of file RootEventBaseCnv.h.

Referenced by EvtRecCnv::DataObjectToTObject(), and RootEventBaseCnv::RootEventBaseCnv().

int RootEventBaseCnv::m_branchNrMc [protected, inherited]

Definition at line 51 of file RootEventBaseCnv.h.

Referenced by McCnv::DataObjectToTObject(), and RootEventBaseCnv::RootEventBaseCnv().

int RootEventBaseCnv::m_branchNrRecon [protected, inherited]

Definition at line 52 of file RootEventBaseCnv.h.

Referenced by RecTrackCnv::DataObjectToTObject(), and RootEventBaseCnv::RootEventBaseCnv().

TArrayS* RootEventBaseCnv::m_branchNumbers [protected, inherited]

array with number of branches for reading

Definition at line 64 of file RootEventBaseCnv.h.

Referenced by RootEventBaseCnv::createObj(), and RootEventBaseCnv::RootEventBaseCnv().

RootCnvSvc* RootEventBaseCnv::m_cnvSvc [protected, inherited]

Definition at line 39 of file RootEventBaseCnv.h.

Referenced by RootEventBaseCnv::createRep(), TrigDataCnv::DataObjectToTObject(), RecZddChannelCnv::DataObjectToTObject(), RecTofTrackCnv::DataObjectToTObject(), RecMucTrackCnv::DataObjectToTObject(), RecMdcTrackCnv::DataObjectToTObject(), RecMdcKalTrackCnv::DataObjectToTObject(), RecMdcKalHelixSegCnv::DataObjectToTObject(), RecMdcHitCnv::DataObjectToTObject(), RecMdcDedxHitCnv::DataObjectToTObject(), RecMdcDedxCnv::DataObjectToTObject(), RecExtTrackCnv::DataObjectToTObject(), RecEvTimeCnv::DataObjectToTObject(), RecEmcShowerCnv::DataObjectToTObject(), RecEmcHitCnv::DataObjectToTObject(), RecEmcClusterCnv::DataObjectToTObject(), TofMcHitCnv::DataObjectToTObject(), MucMcHitCnv::DataObjectToTObject(), MdcMcHitCnv::DataObjectToTObject(), McParticleCnv::DataObjectToTObject(), EmcMcHitCnv::DataObjectToTObject(), HltRawCnv::DataObjectToTObject(), HltInfCnv::DataObjectToTObject(), DstHltInfCnv::DataObjectToTObject(), EvtRecVeeVertexCnv::DataObjectToTObject(), EvtRecTrackCnv::DataObjectToTObject(), EvtRecPrimaryVertexCnv::DataObjectToTObject(), EvtRecPi0Cnv::DataObjectToTObject(), EvtRecEventCnv::DataObjectToTObject(), EvtRecEtaToGGCnv::DataObjectToTObject(), EvtRecDTagCnv::DataObjectToTObject(), TofTrackCnv::DataObjectToTObject(), MucTrackCnv::DataObjectToTObject(), MdcTrackCnv::DataObjectToTObject(), MdcKalTrackCnv::DataObjectToTObject(), MdcDedxCnv::DataObjectToTObject(), DataObjectToTObject(), EmcTrackCnv::DataObjectToTObject(), TofDigiCnv::DataObjectToTObject(), MucDigiCnv::DataObjectToTObject(), MdcDigiCnv::DataObjectToTObject(), LumiDigiCnv::DataObjectToTObject(), EmcDigiCnv::DataObjectToTObject(), RootEventBaseCnv::finalize(), TrigCnv::initialize(), RootEventBaseCnv::initialize(), RecTrackCnv::initialize(), McCnv::initialize(), HltCnv::initialize(), EvtRecCnv::initialize(), EvtNavigatorCnv::initialize(), EvtHeaderCnv::initialize(), DstCnv::initialize(), and DigiCnv::initialize().

commonData ExtTrackCnv::m_common [private]

relational maps

Definition at line 38 of file ExtTrackCnv.h.

Referenced by TObjectToDataObject().

std::string RootEventBaseCnv::m_currentFileName [protected, inherited]

Definition at line 71 of file RootEventBaseCnv.h.

Referenced by RootEventBaseCnv::createObj().

IDataProviderSvc* RootEventBaseCnv::m_eds [protected, inherited]

pointer to eventdataservice

Definition at line 46 of file RootEventBaseCnv.h.

Referenced by RootEventBaseCnv::createObj(), TrigDataCnv::DataObjectToTObject(), RecZddChannelCnv::DataObjectToTObject(), RecTofTrackCnv::DataObjectToTObject(), RecMucTrackCnv::DataObjectToTObject(), RecMdcTrackCnv::DataObjectToTObject(), RecMdcKalTrackCnv::DataObjectToTObject(), RecMdcKalHelixSegCnv::DataObjectToTObject(), RecMdcHitCnv::DataObjectToTObject(), RecMdcDedxHitCnv::DataObjectToTObject(), RecMdcDedxCnv::DataObjectToTObject(), RecExtTrackCnv::DataObjectToTObject(), RecEvTimeCnv::DataObjectToTObject(), RecEmcShowerCnv::DataObjectToTObject(), RecEmcHitCnv::DataObjectToTObject(), RecEmcClusterCnv::DataObjectToTObject(), TofMcHitCnv::DataObjectToTObject(), MucMcHitCnv::DataObjectToTObject(), MdcMcHitCnv::DataObjectToTObject(), McParticleCnv::DataObjectToTObject(), EmcMcHitCnv::DataObjectToTObject(), HltRawCnv::DataObjectToTObject(), HltInfCnv::DataObjectToTObject(), DstHltInfCnv::DataObjectToTObject(), EvtRecVeeVertexCnv::DataObjectToTObject(), EvtRecTrackCnv::DataObjectToTObject(), EvtRecPrimaryVertexCnv::DataObjectToTObject(), EvtRecPi0Cnv::DataObjectToTObject(), EvtRecEventCnv::DataObjectToTObject(), EvtRecEtaToGGCnv::DataObjectToTObject(), EvtRecDTagCnv::DataObjectToTObject(), TofTrackCnv::DataObjectToTObject(), MucTrackCnv::DataObjectToTObject(), MdcTrackCnv::DataObjectToTObject(), MdcKalTrackCnv::DataObjectToTObject(), MdcDedxCnv::DataObjectToTObject(), DataObjectToTObject(), EmcTrackCnv::DataObjectToTObject(), TofDigiCnv::DataObjectToTObject(), MucDigiCnv::DataObjectToTObject(), MdcDigiCnv::DataObjectToTObject(), LumiDigiCnv::DataObjectToTObject(), EmcDigiCnv::DataObjectToTObject(), RootEventBaseCnv::RootEventBaseCnv(), and McCnv::TObjectToDataObject().

RootEvtSelector* RootEventBaseCnv::m_evtsel [protected, inherited]

Definition at line 75 of file RootEventBaseCnv.h.

Referenced by RootEventBaseCnv::createObj(), and RootEventBaseCnv::RootEventBaseCnv().

TObjArray* ExtTrackCnv::m_extTrackCol [private]

root object to be read

Definition at line 41 of file ExtTrackCnv.h.

Referenced by DataObjectToTObject(), ExtTrackCnv(), and TObjectToDataObject().

std::vector<RootCnvSvc::Leaf> RootEventBaseCnv::m_leaves [protected, inherited]

Definition at line 40 of file RootEventBaseCnv.h.

Referenced by RootEventBaseCnv::declareObject().

TObject* RootEventBaseCnv::m_objRead [protected, inherited]

the object that was read

Definition at line 58 of file RootEventBaseCnv.h.

Referenced by RootEventBaseCnv::createObj(), RootEventBaseCnv::getReadObject(), and RootEventBaseCnv::RootEventBaseCnv().

std::string RootEventBaseCnv::m_rootBranchname [protected, inherited]

root branchname (may be concatenated of severals)

Definition at line 67 of file RootEventBaseCnv.h.

Referenced by DigiCnv::DigiCnv(), DstCnv::DstCnv(), DstHltInfCnv::DstHltInfCnv(), EmcDigiCnv::EmcDigiCnv(), EmcMcHitCnv::EmcMcHitCnv(), EmcTrackCnv::EmcTrackCnv(), EvtHeaderCnv::EvtHeaderCnv(), EvtNavigatorCnv::EvtNavigatorCnv(), EvtRecCnv::EvtRecCnv(), EvtRecDTagCnv::EvtRecDTagCnv(), EvtRecEtaToGGCnv::EvtRecEtaToGGCnv(), EvtRecEventCnv::EvtRecEventCnv(), EvtRecPi0Cnv::EvtRecPi0Cnv(), EvtRecPrimaryVertexCnv::EvtRecPrimaryVertexCnv(), EvtRecTrackCnv::EvtRecTrackCnv(), EvtRecVeeVertexCnv::EvtRecVeeVertexCnv(), ExtTrackCnv(), HltInfCnv::HltInfCnv(), HltRawCnv::HltRawCnv(), LumiDigiCnv::LumiDigiCnv(), McParticleCnv::McParticleCnv(), MdcDedxCnv::MdcDedxCnv(), MdcDigiCnv::MdcDigiCnv(), MdcKalTrackCnv::MdcKalTrackCnv(), MdcMcHitCnv::MdcMcHitCnv(), MdcTrackCnv::MdcTrackCnv(), MucDigiCnv::MucDigiCnv(), MucMcHitCnv::MucMcHitCnv(), MucTrackCnv::MucTrackCnv(), RecBTofCalHitCnv::RecBTofCalHitCnv(), RecEmcClusterCnv::RecEmcClusterCnv(), RecEmcHitCnv::RecEmcHitCnv(), RecEmcShowerCnv::RecEmcShowerCnv(), RecETofCalHitCnv::RecETofCalHitCnv(), RecEvTimeCnv::RecEvTimeCnv(), RecExtTrackCnv::RecExtTrackCnv(), RecMdcDedxCnv::RecMdcDedxCnv(), RecMdcDedxHitCnv::RecMdcDedxHitCnv(), RecMdcHitCnv::RecMdcHitCnv(), RecMdcKalHelixSegCnv::RecMdcKalHelixSegCnv(), RecMdcKalTrackCnv::RecMdcKalTrackCnv(), RecMdcTrackCnv::RecMdcTrackCnv(), RecMucRecHitCnv::RecMucRecHitCnv(), RecMucTrackCnv::RecMucTrackCnv(), RecTrackCnv::RecTrackCnv(), RecZddChannelCnv::RecZddChannelCnv(), TofDigiCnv::TofDigiCnv(), TofMcHitCnv::TofMcHitCnv(), TofTrackCnv::TofTrackCnv(), and TrigDataCnv::TrigDataCnv().

RootInterface* RootEventBaseCnv::m_rootInterface [protected, inherited]

pointer to the RootInterface

Definition at line 43 of file RootEventBaseCnv.h.

Referenced by RootEventBaseCnv::createObj(), TrigCnv::DataObjectToTObject(), RecTrackCnv::DataObjectToTObject(), McCnv::DataObjectToTObject(), HltCnv::DataObjectToTObject(), EvtRecCnv::DataObjectToTObject(), EvtNavigatorCnv::DataObjectToTObject(), EvtHeaderCnv::DataObjectToTObject(), DstCnv::DataObjectToTObject(), DigiCnv::DataObjectToTObject(), and RootEventBaseCnv::RootEventBaseCnv().

std::string RootEventBaseCnv::m_rootTreename [protected, inherited]

each converter knows it's treename

Definition at line 69 of file RootEventBaseCnv.h.

Referenced by EmcTrackCnv::EmcTrackCnv(), RecEmcHitCnv::RecEmcHitCnv(), and RecMucRecHitCnv::RecMucRecHitCnv().


Generated on Tue Nov 29 23:19:34 2016 for BOSS_7.0.2 by  doxygen 1.4.7