BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
RawDataMdcMcHitCnv Class Reference

#include <RawDataMdcMcHitCnv.hpp>

Inheritance diagram for RawDataMdcMcHitCnv:

Public Member Functions

 RawDataMdcMcHitCnv (ISvcLocator *svc)
StatusCode createObj (IOpaqueAddress *pAddr, DataObject *&pObj)
StatusCode createRep (DataObject *pObj, IOpaqueAddress *&pAddr)
Public Member Functions inherited from RawDataBaseCnv
StatusCode initialize ()
long repSvcType () const
const long storageType ()
Public Member Functions inherited from Converter< Ty1, Ty2 >
destinationoperator (const source &) const
destinationoperator (const source &) const
destinationoperator (const source &) const

Static Public Member Functions

static const CLID & classID ()

Additional Inherited Members

Public Types inherited from Converter< Ty1, Ty2 >
typedef Ty1 source
typedef Ty2 destination
typedef Ty1 source
typedef Ty2 destination
typedef Ty1 source
typedef Ty2 destination
Protected Member Functions inherited from RawDataBaseCnv
 RawDataBaseCnv (long storageType, const CLID &clid, ISvcLocator *svc)
 RawDataBaseCnv (ISvcLocator *svc, const CLID &clid)
Protected Member Functions inherited from Converter< Ty1, Ty2 >
virtual destinationconvert (const source &) const =0
virtual destinationconvert (const source &) const =0
virtual destinationconvert (const source &) const =0
Protected Attributes inherited from RawDataBaseCnv
std::vector< IRawDataCnvSvc::Leafm_leaves
IRawDataCnvSvcm_cnvSvc
IRawDataInputSvcm_inputSvc

Detailed Description

Definition at line 12 of file RawDataMdcMcHitCnv.hpp.

Constructor & Destructor Documentation

◆ RawDataMdcMcHitCnv()

RawDataMdcMcHitCnv::RawDataMdcMcHitCnv ( ISvcLocator * svc)
inline

Definition at line 18 of file RawDataMdcMcHitCnv.hpp.

18: RawDataBaseCnv( svc, classID() ) {}
RawDataBaseCnv(long storageType, const CLID &clid, ISvcLocator *svc)
static const CLID & classID()

Member Function Documentation

◆ classID()

const CLID & RawDataMdcMcHitCnv::classID ( )
inlinestatic

Definition at line 20 of file RawDataMdcMcHitCnv.hpp.

20{ return CLID_MdcMcHitCol; }
const CLID & CLID_MdcMcHitCol

Referenced by RawDataCnvSvc::addConverters(), RawDataCnvSvc::createConverter(), and RawDataMdcMcHitCnv().

◆ createObj()

StatusCode RawDataMdcMcHitCnv::createObj ( IOpaqueAddress * pAddr,
DataObject *& pObj )
inline

construct the MdcMcHit

Definition at line 22 of file RawDataMdcMcHitCnv.hpp.

22 {
23 // MsgStream log(msgSvc(), "RawDataMdcMcHitCnv");
24
25 // This converter will create an empty MdcMcHitCol on the TDS
26 MdcMcHitCol* mdcMcHitCol = new MdcMcHitCol;
27 pObj = mdcMcHitCol;
28
29 RAWEVENT* evt = m_inputSvc->currentEvent();
30 if ( evt == NULL )
31 {
32 // log << MSG::ERROR << "RawDataCnv has no event!" << endmsg;
33 return StatusCode::FAILURE;
34 }
35
36 assert( ( evt->getMdcTruth().size() ) % 6 == 0 );
37
38 MdcTruth_t m_MdcTruth;
39 MdcMcHit* mdcMcHit;
40
41 std::vector<uint32_t>::const_iterator iter = evt->getMdcTruth().begin();
42 std::vector<uint32_t>::const_iterator eiter = evt->getMdcTruth().end();
43
44 for ( int mdcMcHitId = 0; iter != eiter; mdcMcHitId++ )
45 {
46 // retrieve the MdcTruth data
47 m_mdcMcHitBuilder.unPack( iter, eiter, m_MdcTruth );
48 // construct the identifier
49 const Identifier ident = MdcID::wire_id( m_MdcTruth.layerId, m_MdcTruth.cellId );
50 /// construct the MdcMcHit
51 mdcMcHit = new MdcMcHit(
52 ident, m_MdcTruth.trackIndex, m_MdcTruth.x / ( m_mdcMcHitBuilder.m_xCoeff * 1.0 ),
53 m_MdcTruth.y / ( m_mdcMcHitBuilder.m_yCoeff * 1.0 ),
54 m_MdcTruth.z / ( m_mdcMcHitBuilder.m_zCoeff * 1.0 ),
55 m_MdcTruth.driftD / ( m_mdcMcHitBuilder.m_driftDCoeff * 1.0 ),
56 m_MdcTruth.edep / ( m_mdcMcHitBuilder.m_edepCoeff * 1.0 ), m_MdcTruth.posFlag );
57 // And add the stuff to the container
58 mdcMcHitCol->push_back( mdcMcHit );
59 }
60
61 return StatusCode::SUCCESS;
62 }
ObjectVector< MdcMcHit > MdcMcHitCol
EvtStreamInputIterator< typename Generator::result_type > iter(Generator gen, int N=0)
static Identifier wire_id(int wireType, int layer, int wire)
For a single wire.
Definition MdcID.cxx:69
IRawDataInputSvc * m_inputSvc

◆ createRep()

StatusCode RawDataMdcMcHitCnv::createRep ( DataObject * pObj,
IOpaqueAddress *& pAddr )
inline

Definition at line 64 of file RawDataMdcMcHitCnv.hpp.

64 {
65 // convert PixelRaw in the container into ByteStream
66 // MsgStream log(msgSvc(), "RawDataMdcMcHitCnv");
67
68 WriteRawEvent*& re = m_cnvSvc->getRawEvent();
69
70 if ( re == 0 )
71 {
72 // log << " get RawEvent failed !" << endmsg;
73 return StatusCode::FAILURE;
74 }
75
76 SmartDataPtr<MdcMcHitCol> mdcHitCol( dataProvider(), EventModel::MC::MdcMcHitCol );
77
78 if ( mdcHitCol == 0 )
79 {
80 // log << "no MdcMcHitCol found" << endmsg;
81 return StatusCode::FAILURE;
82 }
83
84 StatusCode sc = m_mdcMcHitBuilder.pack( mdcHitCol, re );
85
86 return sc;
87 }
eformat::write::FullEventFragment WriteRawEvent
IRawDataCnvSvc * m_cnvSvc

The documentation for this class was generated from the following file: