RootEventBaseCnv Class Reference

Base class for all Root Converters. More...

#include <RootEventBaseCnv.h>

Inheritance diagram for RootEventBaseCnv:

Converter< Ty1, Ty2 > DigiCnv DstCnv DstHltInfCnv EmcDigiCnv EmcMcHitCnv EmcTrackCnv EventCnv EvtHeaderCnv EvtNavigatorCnv EvtRecCnv EvtRecDTagCnv EvtRecEtaToGGCnv EvtRecEventCnv EvtRecPi0Cnv EvtRecPrimaryVertexCnv EvtRecTrackCnv EvtRecVeeVertexCnv ExtTrackCnv HltCnv HltInfCnv HltRawCnv LumiDigiCnv McCnv McParticleCnv MdcDedxCnv MdcDigiCnv MdcKalTrackCnv MdcMcHitCnv MdcTrackCnv MucDigiCnv MucMcHitCnv MucTrackCnv RecBTofCalHitCnv RecEmcClusterCnv RecEmcHitCnv RecEmcShowerCnv RecETofCalHitCnv RecEvTimeCnv RecExtTrackCnv RecMdcDedxCnv RecMdcDedxHitCnv RecMdcHitCnv RecMdcKalHelixSegCnv RecMdcKalTrackCnv RecMdcTrackCnv RecMucRecHitCnv RecMucTrackCnv RecTofTrackCnv RecTrackCnv RecZddChannelCnv TofDigiCnv TofMcHitCnv TofTrackCnv TrigCnv TrigDataCnv List of all members.

Public Types

typedef Ty1 source
typedef Ty2 destination

Public Member Functions

 RootEventBaseCnv (const CLID &clid, ISvcLocator *svc)
virtual ~RootEventBaseCnv ()
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.
virtual StatusCode DataObjectToTObject (DataObject *dat, RootAddress *addr)=0
 Do the concrete conversion from TDS to ROOT.
virtual StatusCode TObjectToDataObject (DataObject *&dat)=0
 Do the concrete conversion from ROOT to TDS.
TObject * getReadObject () const
 get the object to be read
destinationoperator (const source &) const

Static Public Member Functions

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

Protected Member Functions

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

Detailed Description

Base class for all Root Converters.

Based on SICb's SicbBaseCnv all specific converters inherit from this base class. The basic functions they have to implement are the pure conversions to and from DataObjects/Root Objects. In case there is more to do ( calling of upper converters, creation of branches for writing, reading of subbranches) they may also override the methods createObj/createRep. Based on the RootEventBaseCnv of Glast.

Definition at line 36 of file RootEventBaseCnv.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

RootEventBaseCnv::RootEventBaseCnv ( const CLID &  clid,
ISvcLocator *  svc 
)

Definition at line 29 of file RootEventBaseCnv.cxx.

References CLID_top, calibUtil::ERROR, IID_IRootEvtSelector(), RootInterface::Instance(), m_branchNr, m_branchNrDst, m_branchNrEvtHeader, m_branchNrEvtNavigator, m_branchNrEvtRec, m_branchNrMc, m_branchNrRecon, m_branchNumbers, m_eds, m_evtsel, m_objRead, m_rootInterface, msgSvc(), ROOT_StorageType, and Bes_Common::WARNING.

00030 : Converter(ROOT_StorageType, clid, svc) ,m_cnvSvc(0),m_rootBranchname(""),m_rootTreename("Event"), m_evtsel(0)
00031 {
00032     
00033     StatusCode sc;
00034     MsgStream log(msgSvc(), "RootEventBaseCnv");
00035 
00036     // Get DataSvc
00037     IService* isvc = 0;
00038     sc = serviceLocator()->getService("EventDataSvc", isvc, true);
00039     if(sc.isSuccess() ) {
00040         sc = isvc->queryInterface(IDataProviderSvc::interfaceID(), (void**)&m_eds);
00041     }
00042     if(sc.isFailure()){
00043         log << MSG::ERROR << "Unable start EventData service within RootEventBaseCnv" << endreq;
00044     } 
00045 
00046    m_rootInterface=RootInterface::Instance(log);
00047    if (!m_rootInterface)      log << MSG::ERROR << "Unable to start Root interface within RootCnvSvc" << endreq;
00048 
00053    
00054    sc = serviceLocator()->getService ("RootEvtSelector", isvc, false);
00055    if (!sc.isSuccess())  sc = serviceLocator()->getService ("EventSelector", isvc, false);
00056    if (sc.isSuccess()) {
00057      sc = isvc->queryInterface(IID_IRootEvtSelector, (void**)&m_evtsel);
00058    }
00059    if(sc.isFailure()) {
00060      log << MSG::WARNING << "Unable to start event selector service within RootCnvSvc" << endreq;
00061    }
00063 
00064    
00065     m_branchNr=-1;
00066     m_branchNrDst=-1;
00067     m_branchNrMc=-1;
00068     m_branchNrRecon=-1;
00069     m_branchNrEvtRec=-1;
00070     m_branchNrEvtHeader=-1;
00071     m_branchNrEvtNavigator=-1;
00072     m_objRead=0;
00073     CLID_top=0;
00074     m_branchNumbers= new TArrayS(0);
00075 }

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

Definition at line 81 of file RootEventBaseCnv.h.

00081 { };


Member Function Documentation

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]

Convert the persistent object to transient.

Reimplemented in EventCnv.

Definition at line 157 of file RootEventBaseCnv.cxx.

References CLID_top, Bes_Common::DEBUG, calibUtil::ERROR, RootInterface::getBranchEntry(), RootAddress::getBranchname(), RootInterface::getCurrentFileName(), RootInterface::getENDFILE(), RootInterface::getEntries(), RootAddress::getEntryNr(), RootAddress::getNrBranches(), RootAddress::getPath(), getReadObject(), RootEvtSelector::getRecId(), RootInterface::getSelectFromTag(), RootAddress::getTreename(), Bes_Common::INFO, m_adresses, m_branchNumbers, m_currentFileName, m_eds, m_evtsel, m_objRead, m_rootInterface, msgSvc(), RootInterface::setBranchAddress(), RootAddress::setEntryNr(), subSeperate::temp, and 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]

Convert the transient object to the requested representation.

Definition at line 78 of file RootEventBaseCnv.cxx.

References RootCnvSvc::createAddress(), DataObjectToTObject(), calibUtil::ERROR, 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(), ExtTrackCnv::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 }

virtual StatusCode RootEventBaseCnv::DataObjectToTObject ( DataObject *  dat,
RootAddress addr 
) [pure virtual]

Do the concrete conversion from TDS to ROOT.

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

Referenced by createRep().

void RootEventBaseCnv::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.

Definition at line 150 of file RootEventBaseCnv.cxx.

References 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]

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]

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]

Definition at line 142 of file RootEventBaseCnv.cxx.

References 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]

get the object to be read

Definition at line 125 of file RootEventBaseCnv.h.

References m_objRead.

Referenced by createObj().

00125 { return m_objRead;} 

StatusCode RootEventBaseCnv::initialize (  )  [virtual]

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

Definition at line 126 of file RootEventBaseCnv.cxx.

References IID_IRootCnvSvc, and 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]

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]

Storage type and class ID.

Definition at line 84 of file RootEventBaseCnv.h.

References ROOT_StorageType.

00084                                                   {
00085       return ROOT_StorageType;
00086     }

virtual StatusCode RootEventBaseCnv::TObjectToDataObject ( DataObject *&  dat  )  [pure virtual]

Do the concrete conversion from ROOT to TDS.

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

Referenced by createObj().


Member Data Documentation

CLID RootEventBaseCnv::CLID_top [protected]

the CLID of the upper converter if any

Definition at line 61 of file RootEventBaseCnv.h.

Referenced by createObj(), and RootEventBaseCnv().

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

each converter knows the corresponding adresses

Definition at line 73 of file RootEventBaseCnv.h.

Referenced by 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::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]

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().

int RootEventBaseCnv::m_branchNrDst [protected]

Definition at line 50 of file RootEventBaseCnv.h.

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

int RootEventBaseCnv::m_branchNrEvtHeader [protected]

Definition at line 54 of file RootEventBaseCnv.h.

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

int RootEventBaseCnv::m_branchNrEvtNavigator [protected]

Definition at line 55 of file RootEventBaseCnv.h.

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

int RootEventBaseCnv::m_branchNrEvtRec [protected]

Definition at line 53 of file RootEventBaseCnv.h.

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

int RootEventBaseCnv::m_branchNrMc [protected]

Definition at line 51 of file RootEventBaseCnv.h.

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

int RootEventBaseCnv::m_branchNrRecon [protected]

Definition at line 52 of file RootEventBaseCnv.h.

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

TArrayS* RootEventBaseCnv::m_branchNumbers [protected]

array with number of branches for reading

Definition at line 64 of file RootEventBaseCnv.h.

Referenced by createObj(), and RootEventBaseCnv().

RootCnvSvc* RootEventBaseCnv::m_cnvSvc [protected]

Definition at line 39 of file RootEventBaseCnv.h.

Referenced by 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(), ExtTrackCnv::DataObjectToTObject(), EmcTrackCnv::DataObjectToTObject(), TofDigiCnv::DataObjectToTObject(), MucDigiCnv::DataObjectToTObject(), MdcDigiCnv::DataObjectToTObject(), LumiDigiCnv::DataObjectToTObject(), EmcDigiCnv::DataObjectToTObject(), finalize(), TrigCnv::initialize(), initialize(), RecTrackCnv::initialize(), McCnv::initialize(), HltCnv::initialize(), EvtRecCnv::initialize(), EvtNavigatorCnv::initialize(), EvtHeaderCnv::initialize(), DstCnv::initialize(), and DigiCnv::initialize().

std::string RootEventBaseCnv::m_currentFileName [protected]

Definition at line 71 of file RootEventBaseCnv.h.

Referenced by createObj().

IDataProviderSvc* RootEventBaseCnv::m_eds [protected]

pointer to eventdataservice

Definition at line 46 of file RootEventBaseCnv.h.

Referenced by 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(), ExtTrackCnv::DataObjectToTObject(), EmcTrackCnv::DataObjectToTObject(), TofDigiCnv::DataObjectToTObject(), MucDigiCnv::DataObjectToTObject(), MdcDigiCnv::DataObjectToTObject(), LumiDigiCnv::DataObjectToTObject(), EmcDigiCnv::DataObjectToTObject(), RootEventBaseCnv(), and McCnv::TObjectToDataObject().

RootEvtSelector* RootEventBaseCnv::m_evtsel [protected]

Definition at line 75 of file RootEventBaseCnv.h.

Referenced by createObj(), and RootEventBaseCnv().

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

Definition at line 40 of file RootEventBaseCnv.h.

Referenced by declareObject().

TObject* RootEventBaseCnv::m_objRead [protected]

the object that was read

Definition at line 58 of file RootEventBaseCnv.h.

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

std::string RootEventBaseCnv::m_rootBranchname [protected]

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::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]

pointer to the RootInterface

Definition at line 43 of file RootEventBaseCnv.h.

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

std::string RootEventBaseCnv::m_rootTreename [protected]

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:35:52 2016 for BOSS_7.0.2 by  doxygen 1.4.7