#include <RawDataEmcMcHitCnv.h>
Inheritance diagram for RawDataEmcMcHitCnv:
Public Types | |
typedef Ty2 | destination |
typedef Ty2 | destination |
typedef Ty1 | source |
typedef Ty1 | source |
Public Member Functions | |
StatusCode | createObj (IOpaqueAddress *pAddr, DataObject *&pObj) |
StatusCode | createObj (IOpaqueAddress *pAddr, DataObject *&pObj) |
virtual StatusCode | createRep (DataObject *pObj, IOpaqueAddress *&pAddr) |
Convert the transient object to the requested representation. | |
virtual StatusCode | createRep (DataObject *pObj, IOpaqueAddress *&pAddr) |
Convert the transient object to the requested representation. | |
void | declareObject (const std::string &fullPath, const CLID &clid, const std::string &bank, long par=0) |
Store TDS path to link a particular converter to an object on the TDS. | |
void | declareObject (const std::string &fullPath, const CLID &clid, const std::string &bank, long par=0) |
Store TDS path to link a particular converter to an object on the TDS. | |
virtual StatusCode | fillRepRefs (IOpaqueAddress *pAddress, DataObject *pObject) |
Resolve the references of the converted object. | |
virtual StatusCode | fillRepRefs (IOpaqueAddress *pAddress, DataObject *pObject) |
Resolve the references of the converted object. | |
virtual StatusCode | finalize () |
virtual StatusCode | finalize () |
StatusCode | initialize () |
StatusCode | initialize () |
destination * | operator (const source &) const |
destination * | operator (const source &) const |
virtual long | repSvcType () const |
virtual long | repSvcType () const |
virtual StatusCode | updateObj (IOpaqueAddress *, DataObject *) |
override the RawDataBaseCnv version | |
virtual StatusCode | updateObj (IOpaqueAddress *, DataObject *) |
override the RawDataBaseCnv version | |
virtual StatusCode | updateRep (IOpaqueAddress *pAddress, DataObject *pObject) |
Update the converted representation of a transient object. | |
virtual StatusCode | updateRep (IOpaqueAddress *pAddress, DataObject *pObject) |
Update the converted representation of a transient object. | |
virtual StatusCode | updateRepRefs (IOpaqueAddress *pAddress, DataObject *pObject) |
Update the references of an already converted object. | |
virtual StatusCode | updateRepRefs (IOpaqueAddress *pAddress, DataObject *pObject) |
Update the references of an already converted object. | |
Static Public Member Functions | |
const CLID & | classID () |
const CLID & | classID () |
const unsigned char | storageType () |
const unsigned char | storageType () |
Protected Member Functions | |
virtual destination * | convert (const source &) const =0 |
virtual destination * | convert (const source &) const =0 |
RawDataEmcMcHitCnv (ISvcLocator *svc) | |
RawDataEmcMcHitCnv (ISvcLocator *svc) | |
Protected Attributes | |
IRawDataCnvSvc * | m_CnvSvc |
Pointer to event conversion service interface. | |
IRawDataCnvSvc * | m_CnvSvc |
Pointer to event conversion service interface. | |
std::vector< IRawDataCnvSvc::Leaf > | m_leaves |
Leaf objects giving the locations of the objects in the data store. | |
std::vector< IRawDataCnvSvc::Leaf > | m_leaves |
Leaf objects giving the locations of the objects in the data store. | |
Private Attributes | |
EmcMcHitBuilder | m_emcMcHitBuilder |
EmcMcHitBuilder for packing or unpacking data. | |
IRawDataInputSvc * | m_inputSvc |
IRawDataInputSvc * | m_inputSvc |
PackedRawDataCnvSvc * | m_RawDataAccess |
Define the interface to raw data cnv. | |
PackedRawDataCnvSvc * | m_RawDataAccess |
Define the interface to raw data cnv. | |
Friends | |
class | CnvFactory<RawDataEmcMcHitCnv> |
|
|
|
|
|
|
|
|
|
00034 : 00035 RawDataBaseCnv(PACKEDRAWEVENT_StorageType, classID(), svc) 00036 { 00037 //init(); 00038 }
|
|
|
|
Reimplemented from RawDataBaseCnv. |
|
Reimplemented from RawDataBaseCnv. 00043 {
00044 return CLID_EmcMcHitCol;
00045 }
|
|
|
|
|
|
|
|
00111 { 00112 00113 //This converter will create an empty EmcMcHitCol on the TDS 00114 EmcMcHitCol *emcMcHitCol = new EmcMcHitCol; 00115 pObj = emcMcHitCol; 00116 00117 RAWEVENT *evt = m_inputSvc->currentEvent(); 00118 if (evt == NULL) { 00119 //MsgStream log(msgSvc(), "RawDataEmcMcHitCnv"); 00120 //log << MSG::ERROR << "RawDataCnv has no event!" << endreq; 00121 return StatusCode::FAILURE; 00122 } 00123 00124 EmcMcHit* emcMcHit; 00125 EmcTruth_t m_EmcTruth; 00126 00127 assert((evt->getEmcTruth().size()%8) == 0); 00128 00129 std::vector<uint32_t>::const_iterator iter = evt->getEmcTruth().begin(); 00130 std::vector<uint32_t>::const_iterator eiter = evt->getEmcTruth().end(); 00131 00132 for (int emcMcHitId = 0; iter != eiter; emcMcHitId++) { 00133 // retrieve the McTruth data 00134 m_emcMcHitBuilder.unPack(iter, eiter, m_EmcTruth); 00135 // construct the identifier 00136 Identifier ident = EmcID::crystal_id(m_EmcTruth.partId, m_EmcTruth.numTheta, m_EmcTruth.numPhi); 00137 // construct the EmcMcHit 00138 emcMcHit = new EmcMcHit(ident, m_EmcTruth.trackIndex, 00139 m_EmcTruth.x/(m_emcMcHitBuilder.m_xCoeff*1.0), 00140 m_EmcTruth.y/(m_emcMcHitBuilder.m_yCoeff*1.0), 00141 m_EmcTruth.z/(m_emcMcHitBuilder.m_zCoeff*1.0), 00142 m_EmcTruth.px/(m_emcMcHitBuilder.m_pxCoeff*1.0), 00143 m_EmcTruth.py/(m_emcMcHitBuilder.m_pyCoeff*1.0), 00144 m_EmcTruth.pz/(m_emcMcHitBuilder.m_pzCoeff*1.0), 00145 m_EmcTruth.totalEdep/(m_emcMcHitBuilder.m_totalEdepCoeff*1.0) ); 00146 // And add the stuff to the container 00147 emcMcHitCol->push_back(emcMcHit); 00148 } 00149 00150 return StatusCode::SUCCESS; 00151 00152 }
|
|
Convert the transient object to the requested representation.
Reimplemented from RawDataBaseCnv. |
|
Convert the transient object to the requested representation.
Reimplemented from RawDataBaseCnv. 00155 { 00156 // convert PixelRaw in the container into ByteStream 00157 //MsgStream log(messageService(), "RawDataEmcMcHitCnv"); 00158 00159 WriteRawEvent*& re = m_RawDataAccess->getRawEvent(); 00160 00161 if (re == 0) { 00162 //log << " get RawEvent failed !" << endreq; 00163 return StatusCode::FAILURE; 00164 } 00165 00166 SmartDataPtr<EmcMcHitCol> mcHitCol(dataProvider(), EventModel::MC::EmcMcHitCol); 00167 00168 if (mcHitCol == 0) { 00169 //log << "no EmcMcHitCol found" << endreq; 00170 return StatusCode::FAILURE; 00171 } 00172 00173 StatusCode sc = m_emcMcHitBuilder.pack(mcHitCol, re); 00174 00175 return sc; 00176 00177 }
|
|
Store TDS path to link a particular converter to an object on the TDS.
|
|
Store TDS path to link a particular converter to an object on the TDS.
00082 { 00083 // Purpose and Method: Save the path on the TDS, in the m_leaves vector, 00084 // corresponding to the DataObject that the converter handles. 00085 // m_leaves.push_back(IRawDataCnvSvc::Leaf(path, cl, bank, par)); 00086 }
|
|
Resolve the references of the converted object.
|
|
Resolve the references of the converted object.
00030 { 00031 // Purpose and Method: Resolve the references of the converted object. 00032 // It is expected that derived classes will override this method. 00033 return StatusCode::SUCCESS; 00034 }
|
|
|
|
00073 { 00074 if ( m_CnvSvc ) { 00075 m_CnvSvc->release(); 00076 m_CnvSvc = 0; 00077 } 00078 return Converter::finalize(); 00079 }
|
|
Reimplemented from RawDataBaseCnv. |
|
Reimplemented from RawDataBaseCnv. 00048 { 00049 std::string PackedRawDataCnvSvc_Name("PackedRawDataCnvSvc"); 00050 std::string RawDataInputSvc_Name("RawDataInputSvc"); 00051 std::string RawDataEmcMcHitCnv_Name("RawDataEmcMcHitCnv"); 00052 00053 // for Mutil-thread by tianhl 00054 ConversionSvc* pCnvSvc = 0; 00055 if (pCnvSvc = dynamic_cast<ConversionSvc*>(conversionSvc())){ 00056 if (isGaudiThreaded(pCnvSvc->name())){ 00057 PackedRawDataCnvSvc_Name += getGaudiThreadIDfromName(pCnvSvc->name()); 00058 RawDataInputSvc_Name += getGaudiThreadIDfromName(pCnvSvc->name()); 00059 RawDataEmcMcHitCnv_Name += getGaudiThreadIDfromName(pCnvSvc->name()); 00060 } 00061 } 00062 00063 MsgStream log(messageService(), RawDataEmcMcHitCnv_Name.c_str()); 00064 00065 StatusCode sc = RawDataBaseCnv::initialize(); 00066 if (StatusCode::SUCCESS != sc) { 00067 log << MSG::ERROR << "RawDataBaseCnv: Cant initialize PackedRawDataCnvSvc" << endreq; 00068 return sc; 00069 } 00070 00071 // Check RawDataCnvSvc 00072 IService* isvc = 0; 00073 sc = serviceLocator()->service(PackedRawDataCnvSvc_Name.c_str(), isvc, true); 00074 if (sc != StatusCode::SUCCESS) { 00075 log << MSG::ERROR << "Cant get PackedRawDataCnvSvc" << endreq; 00076 } 00077 00078 m_RawDataAccess = dynamic_cast<PackedRawDataCnvSvc*> (isvc); 00079 if (m_RawDataAccess == 0 ) { 00080 log << MSG::ERROR << "RawDataEmcCnv: Cant cast to RawDataCnvSvc " << endreq; 00081 return StatusCode::FAILURE; 00082 } 00083 00084 sc = serviceLocator()->getService(RawDataInputSvc_Name.c_str(), isvc); 00085 if (sc != StatusCode::SUCCESS ) { 00086 log << MSG::WARNING << "Cant get RawDataInputSvc " << endreq; 00087 return sc ; 00088 } 00089 00090 m_inputSvc = dynamic_cast<RawDataInputSvc*> (isvc); 00091 if (m_inputSvc == 0 ) { 00092 log << MSG::WARNING << "Cant cast to RawDataInputSvc " << endreq; 00093 return StatusCode::FAILURE ; 00094 } 00095 00096 return StatusCode::SUCCESS; 00097 }
|
|
|
|
|
|
Reimplemented from RawDataBaseCnv. 00046 {
00047 return PACKEDRAWEVENT_StorageType;
00048 }
|
|
Reimplemented from RawDataBaseCnv. 00046 {
00047 return PACKEDRAWEVENT_StorageType;
00048 }
|
|
Reimplemented from RawDataBaseCnv. 00050 {
00051 return PACKEDRAWEVENT_StorageType;
00052 }
|
|
Reimplemented from RawDataBaseCnv. 00050 {
00051 return PACKEDRAWEVENT_StorageType;
00052 }
|
|
override the RawDataBaseCnv version
|
|
override the RawDataBaseCnv version
00100 { 00101 // Purpose and Method: This method does nothing other than announce it has 00102 // been called. 00103 00104 //MsgStream log(msgSvc(), "RawDataEmcMcHitCnv"); 00105 //log << MSG::DEBUG << "RawDataEmcMcHitCnv::updateObj" << endreq; 00106 return Converter::updateObj(pAddr, pObj); 00107 }
|
|
Update the converted representation of a transient object.
|
|
Update the converted representation of a transient object.
00037 { 00038 // Purpose and Method: Update the converted representation of a transient 00039 // object. It is expected that derived classes will override this. 00040 return StatusCode::SUCCESS; 00041 }
|
|
Update the references of an already converted object.
|
|
Update the references of an already converted object.
00044 { 00045 // Purpose and Method: Update the references of an already converted object. 00046 // It is expected that derived classes will override this method. 00047 return StatusCode::SUCCESS; 00048 }
|
|
|
|
Pointer to event conversion service interface.
|
|
Pointer to event conversion service interface.
|
|
EmcMcHitBuilder for packing or unpacking data.
|
|
|
|
|
|
Leaf objects giving the locations of the objects in the data store.
|
|
Leaf objects giving the locations of the objects in the data store.
|
|
Define the interface to raw data cnv.
|
|
Define the interface to raw data cnv.
|