| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

In This Package:

RecHeaderCnv Class Reference

#include <RecEventCnv.h>

Inheritance diagram for RecHeaderCnv:

[legend]
Collaboration diagram for RecHeaderCnv:
[legend]
List of all members.

Public Types

 INVALID_ADDRESS
 INVALID_OBJECT
 NO_MEMORY
 BAD_STORAGE_TYPE
 NO_SOURCE_OBJECT
 ICONVERSIONSVC_LAST_ERROR
 SUCCESS
 NO_INTERFACE
 VERSMISMATCH
 LAST_ERROR
enum  Status

Public Member Functions

 RecHeaderCnv (ISvcLocator *svc)
virtual ~RecHeaderCnv ()
StatusCode PerToTran (const PerRecHeader &tobj, DayaBay::RecHeader &dobj)
 Copy data from TObject based class of type TType to DataObject based class of type DOType.
StatusCode TranToPer (const DayaBay::RecHeader &dobj, PerRecHeader &tobj)
 Copy data from DataObject based class of type DOType to TObject based class of type TType.
StatusCode fillRepRefs (IOpaqueAddress *addr, DataObject *dobj)
StatusCode fillObjRefs (IOpaqueAddress *addr, DataObject *dobj)
PerRecHeadergetPerInputObject ()
PerRecHeadergetPerOutputObject ()
const RootIOBaseObjectgetBaseInputObject ()
const RootIOBaseObjectgetBaseOutputObject ()
virtual StatusCode TranObjectToPerObject (DataObject &dat, const RootOutputAddress &)
virtual StatusCode PerObjectToTranObject (DataObject *&dat)
virtual RootInputStreammakeInputStream (const RootInputAddress &ria)
virtual RootOutputStreammakeOutputStream (const RootOutputAddress &ria)
virtual long repSvcType () const
virtual StatusCode initialize ()
virtual StatusCode finalize ()
virtual StatusCode createObj (IOpaqueAddress *addr, DataObject *&dat)
virtual StatusCode createRep (DataObject *pObject, IOpaqueAddress *&refpAddress)
int commit (const RootOutputAddress &roa)
RootIOBaseCnvotherConverter (int clID)
virtual StatusCode queryInterface (const InterfaceID &riid, void **ppvInterface)
virtual unsigned long addRef ()
virtual unsigned long release ()
virtual StatusCode setDataProvider (IDataProviderSvc *svc)
virtual IDataProviderSvcdataProvider () const
virtual StatusCode setConversionSvc (IConversionSvc *svc)
virtual IConversionSvcconversionSvc () const
virtual StatusCode setAddressCreator (IAddressCreator *creator)
virtual IAddressCreatoraddressCreator () const
virtual const CLIDobjType () const
virtual long i_repSvcType () const
virtual StatusCode updateObj (IOpaqueAddress *pAddress, DataObject *refpObject)
virtual StatusCode updateObjRefs (IOpaqueAddress *pAddress, DataObject *pObject)
virtual StatusCode updateRep (IOpaqueAddress *pAddress, DataObject *pObject)
virtual StatusCode updateRepRefs (IOpaqueAddress *pAddress, DataObject *pObject)
StatusCode service (const std::string &name, T *&psvc, bool createIf=false) const
StatusCode service (const std::string &type, const std::string &name, T *&psvc) const

Static Public Member Functions

static const CLIDclassID ()
static unsigned char storageType ()
static const InterfaceIDinterfaceID ()
static const InterfaceIDinterfaceID ()

Public Attributes

 INVALID_ADDRESS
 INVALID_OBJECT
 NO_MEMORY
 BAD_STORAGE_TYPE
 NO_SOURCE_OBJECT
 ICONVERSIONSVC_LAST_ERROR

Protected Member Functions

ISvcLocatorserviceLocator () const
IMessageSvcmsgSvc () const
IMessageSvcmessageService () const
IDataManagerSvcdataManager () const

Protected Attributes

std::string m_perclassName
PerRecHeaderm_perInObj
PerRecHeaderm_perOutObj
IRootIOSvcm_rioSvc
IConversionSvcm_cnvSvc
RootInputStreamm_ris

Detailed Description

Definition at line 20 of file RecEventCnv.h.


Constructor & Destructor Documentation

RecHeaderCnv::RecHeaderCnv ( ISvcLocator svc  ) 

Definition at line 8 of file RecEventCnv.cc.

00009     : RootIOTypedCnv<PerRecHeader,RecHeader>("PerRecHeader",
00010                                              classID(),svc)
00011 {
00012 }

RecHeaderCnv::~RecHeaderCnv (  )  [virtual]

Definition at line 14 of file RecEventCnv.cc.

00015 {
00016 }


Member Function Documentation

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

Definition at line 24 of file RecEventCnv.h.

00024                                  {
00025         return DayaBay::CLID_RecHeader;
00026     }

StatusCode RecHeaderCnv::PerToTran ( const PerRecHeader tobj,
DayaBay::RecHeader dobj 
) [virtual]

Copy data from TObject based class of type TType to DataObject based class of type DOType.

Implements RootIOTypedCnv< PerRecHeader, DayaBay::RecHeader >.

Definition at line 19 of file RecEventCnv.cc.

00021 {
00022     MsgStream log(msgSvc(), "RecHeaderCnv::PerToTran");
00023     StatusCode sc = HeaderObjectCnv::toTran(perobj, tranobj);
00024     if(sc.isFailure()) return sc;
00025 
00026     DayaBay::RecTrigger& recTr = tranobj.recTrigger();
00027     recTr.setHeader(&tranobj);
00028     Detector det((Site::Site_t)perobj.site,
00029                  (DetectorId::DetectorId_t)perobj.detector);
00030     recTr.setDetector(det);
00031     recTr.setTriggerType(Trigger::TriggerType_t (perobj.triggerType));
00032     recTr.setTriggerNumber( perobj.triggerNumber );
00033     
00034     timespec value = {perobj.triggerTimeSec, perobj.triggerTimeNanoSec};
00035     TimeStamp tstamp(value);
00036     recTr.setTriggerTime(tstamp);
00037     
00038     recTr.setEnergy( perobj.energy );
00039     recTr.setPosition( CLHEP::HepLorentzVector(perobj.x, perobj.y, 
00040                                                perobj.z, perobj.t) );
00041     recTr.setPosition( CLHEP::HepLorentzVector(perobj.dx, perobj.dy, 
00042                                                perobj.dz, perobj.dt) );
00043     recTr.setEnergyStatus( perobj.energyStatus );
00044     recTr.setPositionStatus( perobj.positionStatus );
00045     recTr.setDirectionStatus( perobj.directionStatus );
00046     recTr.setEnergyQuality( perobj.energyQuality );
00047     recTr.setPositionQuality( perobj.positionQuality );
00048     recTr.setDirectionQuality( perobj.directionQuality );
00049     if(perobj.errorMatrixDim>0){
00050       CLHEP::HepMatrix errMatrix(perobj.errorMatrixDim,
00051                                  perobj.errorMatrixDim,
00052                                  0);
00053       for(int row=1; row<perobj.errorMatrixDim; row++){
00054         for(int col=1; col<perobj.errorMatrixDim; col++){
00055           int rcIndex = (row-1)*perobj.errorMatrixDim + (col-1);
00056           errMatrix(row,col) = perobj.errorMatrix[rcIndex];
00057         }
00058       }
00059       recTr.setErrorMatrix( errMatrix );
00060     }else{
00061       recTr.setErrorMatrix( CLHEP::HepMatrix() );
00062     }
00063     return StatusCode::SUCCESS;
00064 }

StatusCode RecHeaderCnv::TranToPer ( const DayaBay::RecHeader dobj,
PerRecHeader tobj 
) [virtual]

Copy data from DataObject based class of type DOType to TObject based class of type TType.

Implements RootIOTypedCnv< PerRecHeader, DayaBay::RecHeader >.

Definition at line 66 of file RecEventCnv.cc.

00068 {
00069     MsgStream log(msgSvc(), "RecHeaderCnv::TranToPer");
00070     StatusCode sc = HeaderObjectCnv::toPer(tranobj,perobj);
00071     if (sc.isFailure()) return sc;
00072     const DayaBay::RecTrigger& recTr = tranobj.recTrigger();
00073 
00074     perobj.site = (recTr.detector()).site();
00075     perobj.detector = (recTr.detector()).detectorId();
00076     perobj.triggerType = recTr.triggerType();
00077     perobj.triggerNumber = recTr.triggerNumber();
00078     perobj.triggerTimeSec = recTr.triggerTime().GetSec();
00079     perobj.triggerTimeNanoSec = recTr.triggerTime().GetNanoSec();
00080     
00081     perobj.energy = recTr.energy();
00082     perobj.x = recTr.position().x();
00083     perobj.y = recTr.position().y();
00084     perobj.z = recTr.position().z();
00085     perobj.t = recTr.position().t();
00086     perobj.dx = recTr.position().x();
00087     perobj.dy = recTr.position().y();
00088     perobj.dz = recTr.position().z();
00089     perobj.dt = recTr.position().t();
00090     perobj.energyStatus = recTr.energyStatus();
00091     perobj.positionStatus = recTr.positionStatus();
00092     perobj.directionStatus = recTr.directionStatus();
00093     perobj.energyQuality = recTr.energyQuality();
00094     perobj.positionQuality = recTr.positionQuality();
00095     perobj.directionQuality = recTr.directionQuality();
00096     perobj.errorMatrixDim = recTr.errorMatrix().num_row();
00097     perobj.errorMatrix.resize(perobj.errorMatrixDim*perobj.errorMatrixDim);
00098     if(perobj.errorMatrixDim>0){
00099       for(int row=1; row<perobj.errorMatrixDim; row++){
00100         for(int col=1; col<perobj.errorMatrixDim; col++){
00101           int rcIndex = (row-1)*perobj.errorMatrixDim + (col-1);
00102           perobj.errorMatrix[rcIndex] = recTr.errorMatrix()(row,col);
00103         }
00104       }
00105     }
00106 
00107     return StatusCode::SUCCESS;
00108 }

StatusCode RecHeaderCnv::fillRepRefs ( IOpaqueAddress addr,
DataObject dobj 
) [virtual]

Reimplemented from RootIOTypedCnv< PerRecHeader, DayaBay::RecHeader >.

Definition at line 110 of file RecEventCnv.cc.

00110                                                                       {
00111   
00112   MsgStream log(msgSvc(), "RecHeaderCnv::fillRepRefs");
00113   //MsgStream log(msgSvc(), "fillRepRefs");
00114   RecHeader* rh = dynamic_cast<RecHeader*>(dobj);
00115 
00116   log << MSG::DEBUG
00117       << "Saving links to " << rh->inputHeaders().size() 
00118       << " input headers" << endreq;
00119   
00120   StatusCode sc = HeaderObjectCnv::fillPer(m_rioSvc,*rh,*m_perOutObj);
00121 
00122   if (sc.isFailure()) {
00123     log << MSG::ERROR << "Failed to fill HeaderObject part" << endreq;
00124     return sc;
00125   }
00126   
00127   // ... fill RecHeader part...
00128   return sc;
00129 }

StatusCode RecHeaderCnv::fillObjRefs ( IOpaqueAddress addr,
DataObject dobj 
) [virtual]

Reimplemented from RootIOTypedCnv< PerRecHeader, DayaBay::RecHeader >.

Definition at line 131 of file RecEventCnv.cc.

00131                                                                       {
00132   //MsgStream log(msgSvc(), "RecHeaderCnv::fillObjRefs");
00133   MsgStream log(msgSvc(), "fillObjRefs");
00134   HeaderObject* hobj = dynamic_cast<HeaderObject*>(dobj);
00135 
00136   StatusCode sc = HeaderObjectCnv::fillTran(m_rioSvc,*m_perInObj,*hobj);
00137   if (sc.isFailure()) {
00138     log << MSG::ERROR << "Failed to fill HeaderObject part" << endreq;
00139     return sc;
00140   }
00141   
00142   log << MSG::DEBUG
00143       << "Restored links to " << hobj->inputHeaders().size() 
00144       << " input headers" << endreq;
00145   
00146   // ... fill RecHeader part...
00147   return sc;
00148 }

PerRecHeader & RootIOTypedCnv< PerRecHeader , DayaBay::RecHeader >::getPerInputObject (  )  [inherited]

PerRecHeader & RootIOTypedCnv< PerRecHeader , DayaBay::RecHeader >::getPerOutputObject (  )  [inherited]

const RootIOBaseObject * RootIOTypedCnv< PerRecHeader , DayaBay::RecHeader >::getBaseInputObject (  )  [virtual, inherited]

Implements RootIOBaseCnv.

const RootIOBaseObject * RootIOTypedCnv< PerRecHeader , DayaBay::RecHeader >::getBaseOutputObject (  )  [virtual, inherited]

Implements RootIOBaseCnv.

virtual StatusCode RootIOTypedCnv< PerRecHeader , DayaBay::RecHeader >::TranObjectToPerObject ( DataObject dat,
const RootOutputAddress  
) [virtual, inherited]

Implements RootIOBaseCnv.

virtual StatusCode RootIOTypedCnv< PerRecHeader , DayaBay::RecHeader >::PerObjectToTranObject ( DataObject *&  dat  )  [virtual, inherited]

Implements RootIOBaseCnv.

virtual RootInputStream * RootIOTypedCnv< PerRecHeader , DayaBay::RecHeader >::makeInputStream ( const RootInputAddress ria  )  [virtual, inherited]

Implements RootIOBaseCnv.

virtual RootOutputStream * RootIOTypedCnv< PerRecHeader , DayaBay::RecHeader >::makeOutputStream ( const RootOutputAddress ria  )  [virtual, inherited]

Implements RootIOBaseCnv.

virtual long RootIOTypedCnv< PerRecHeader , DayaBay::RecHeader >::repSvcType (  )  const [virtual, inherited]

Reimplemented from RootIOBaseCnv.

virtual StatusCode RootIOTypedCnv< PerRecHeader , DayaBay::RecHeader >::initialize (  )  [virtual, inherited]

Reimplemented from RootIOBaseCnv.

virtual StatusCode RootIOTypedCnv< PerRecHeader , DayaBay::RecHeader >::finalize (  )  [virtual, inherited]

Reimplemented from RootIOBaseCnv.

virtual StatusCode RootIOTypedCnv< PerRecHeader , DayaBay::RecHeader >::createObj ( IOpaqueAddress addr,
DataObject *&  dat 
) [virtual, inherited]

Reimplemented from RootIOBaseCnv.

virtual StatusCode RootIOTypedCnv< PerRecHeader , DayaBay::RecHeader >::createRep ( DataObject pObject,
IOpaqueAddress *&  refpAddress 
) [virtual, inherited]

Reimplemented from RootIOBaseCnv.

int RootIOTypedCnv< PerRecHeader , DayaBay::RecHeader >::commit ( const RootOutputAddress roa  )  [inherited]

Reimplemented from RootIOBaseCnv.

RootIOBaseCnv * RootIOTypedCnv< PerRecHeader , DayaBay::RecHeader >::otherConverter ( int  clID  )  [inherited]

Reimplemented from RootIOBaseCnv.

virtual StatusCode RootIOTypedCnv< PerRecHeader , DayaBay::RecHeader >::queryInterface ( const InterfaceID riid,
void **  ppvInterface 
) [virtual, inherited]

Reimplemented from RootIOBaseCnv.

virtual unsigned long RootIOTypedCnv< PerRecHeader , DayaBay::RecHeader >::addRef (  )  [virtual, inherited]

Reimplemented from RootIOBaseCnv.

virtual unsigned long RootIOTypedCnv< PerRecHeader , DayaBay::RecHeader >::release (  )  [virtual, inherited]

Reimplemented from RootIOBaseCnv.

virtual StatusCode RootIOTypedCnv< PerRecHeader , DayaBay::RecHeader >::setDataProvider ( IDataProviderSvc svc  )  [virtual, inherited]

Reimplemented from RootIOBaseCnv.

virtual IDataProviderSvc * RootIOTypedCnv< PerRecHeader , DayaBay::RecHeader >::dataProvider (  )  const [virtual, inherited]

Reimplemented from RootIOBaseCnv.

virtual StatusCode RootIOTypedCnv< PerRecHeader , DayaBay::RecHeader >::setConversionSvc ( IConversionSvc svc  )  [virtual, inherited]

Reimplemented from RootIOBaseCnv.

virtual IConversionSvc * RootIOTypedCnv< PerRecHeader , DayaBay::RecHeader >::conversionSvc (  )  const [virtual, inherited]

Reimplemented from RootIOBaseCnv.

virtual StatusCode RootIOTypedCnv< PerRecHeader , DayaBay::RecHeader >::setAddressCreator ( IAddressCreator creator  )  [virtual, inherited]

Reimplemented from RootIOBaseCnv.

virtual IAddressCreator * RootIOTypedCnv< PerRecHeader , DayaBay::RecHeader >::addressCreator (  )  const [virtual, inherited]

Reimplemented from RootIOBaseCnv.

virtual const CLID & RootIOTypedCnv< PerRecHeader , DayaBay::RecHeader >::objType (  )  const [virtual, inherited]

Reimplemented from RootIOBaseCnv.

virtual long RootIOTypedCnv< PerRecHeader , DayaBay::RecHeader >::i_repSvcType (  )  const [virtual, inherited]

Reimplemented from RootIOBaseCnv.

virtual StatusCode RootIOTypedCnv< PerRecHeader , DayaBay::RecHeader >::updateObj ( IOpaqueAddress pAddress,
DataObject refpObject 
) [virtual, inherited]

Reimplemented from RootIOBaseCnv.

virtual StatusCode RootIOTypedCnv< PerRecHeader , DayaBay::RecHeader >::updateObjRefs ( IOpaqueAddress pAddress,
DataObject pObject 
) [virtual, inherited]

Reimplemented from RootIOBaseCnv.

virtual StatusCode RootIOTypedCnv< PerRecHeader , DayaBay::RecHeader >::updateRep ( IOpaqueAddress pAddress,
DataObject pObject 
) [virtual, inherited]

Reimplemented from RootIOBaseCnv.

virtual StatusCode RootIOTypedCnv< PerRecHeader , DayaBay::RecHeader >::updateRepRefs ( IOpaqueAddress pAddress,
DataObject pObject 
) [virtual, inherited]

Reimplemented from RootIOBaseCnv.

StatusCode RootIOTypedCnv< PerRecHeader , DayaBay::RecHeader >::service ( const std::string &  name,
T *&  psvc,
bool  createIf = false 
) const [inherited]

Reimplemented from RootIOBaseCnv.

StatusCode RootIOTypedCnv< PerRecHeader , DayaBay::RecHeader >::service ( const std::string &  type,
const std::string &  name,
T *&  psvc 
) const [inherited]

Reimplemented from RootIOBaseCnv.

static unsigned char RootIOTypedCnv< PerRecHeader , DayaBay::RecHeader >::storageType (  )  [static, inherited]

Reimplemented from RootIOBaseCnv.

static const InterfaceID & RootIOTypedCnv< PerRecHeader , DayaBay::RecHeader >::interfaceID (  )  [static, inherited]

Reimplemented from RootIOBaseCnv.

static const InterfaceID & RootIOTypedCnv< PerRecHeader , DayaBay::RecHeader >::interfaceID (  )  [static, inherited]

Reimplemented from RootIOBaseCnv.

ISvcLocator * RootIOTypedCnv< PerRecHeader , DayaBay::RecHeader >::serviceLocator (  )  const [protected, inherited]

Reimplemented from RootIOBaseCnv.

IMessageSvc * RootIOTypedCnv< PerRecHeader , DayaBay::RecHeader >::msgSvc (  )  const [protected, inherited]

Reimplemented from RootIOBaseCnv.

IMessageSvc * RootIOTypedCnv< PerRecHeader , DayaBay::RecHeader >::messageService (  )  const [protected, inherited]

Reimplemented from RootIOBaseCnv.

IDataManagerSvc * RootIOTypedCnv< PerRecHeader , DayaBay::RecHeader >::dataManager (  )  const [protected, inherited]

Reimplemented from RootIOBaseCnv.


Member Data Documentation

RootIOTypedCnv< PerRecHeader , DayaBay::RecHeader >::INVALID_ADDRESS [inherited]

Reimplemented from RootIOBaseCnv.

RootIOTypedCnv< PerRecHeader , DayaBay::RecHeader >::INVALID_OBJECT [inherited]

Reimplemented from RootIOBaseCnv.

RootIOTypedCnv< PerRecHeader , DayaBay::RecHeader >::NO_MEMORY [inherited]

Reimplemented from RootIOBaseCnv.

RootIOTypedCnv< PerRecHeader , DayaBay::RecHeader >::BAD_STORAGE_TYPE [inherited]

Reimplemented from RootIOBaseCnv.

RootIOTypedCnv< PerRecHeader , DayaBay::RecHeader >::NO_SOURCE_OBJECT [inherited]

Reimplemented from RootIOBaseCnv.

RootIOTypedCnv< PerRecHeader , DayaBay::RecHeader >::ICONVERSIONSVC_LAST_ERROR [inherited]

Reimplemented from RootIOBaseCnv.

std::string RootIOTypedCnv< PerRecHeader , DayaBay::RecHeader >::m_perclassName [protected, inherited]

PerRecHeader * RootIOTypedCnv< PerRecHeader , DayaBay::RecHeader >::m_perInObj [protected, inherited]

PerRecHeader * RootIOTypedCnv< PerRecHeader , DayaBay::RecHeader >::m_perOutObj [protected, inherited]

IRootIOSvc * RootIOTypedCnv< PerRecHeader , DayaBay::RecHeader >::m_rioSvc [protected, inherited]

Reimplemented from RootIOBaseCnv.

IConversionSvc * RootIOTypedCnv< PerRecHeader , DayaBay::RecHeader >::m_cnvSvc [protected, inherited]

Reimplemented from RootIOBaseCnv.

RootInputStream * RootIOTypedCnv< PerRecHeader , DayaBay::RecHeader >::m_ris [protected, inherited]

Reimplemented from RootIOBaseCnv.


The documentation for this class was generated from the following files:
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Mon Apr 11 20:23:13 2011 for PerRecEvent by doxygen 1.4.7