00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011 #ifndef RAWDATA_MUCMCHIT_CNV_H
00012 #define RAWDATA_MUCMCHIT_CNV_H
00013
00014
00015 #include "GaudiKernel/Converter.h"
00016 #include "RawDataCnvBase/RawDataBaseCnv.h"
00017 #include "RawDataCnv/ClassID_temp.h"
00018 #include "RawDataCnv/PackedRawDataCnvSvc.h"
00019
00020 #include "RawDataCnv/EventManagement/MucMcHitBuilder.h"
00021 #include "RawDataCnv/EventManagement/McTruthDataStructure.h"
00022
00023
00024 class IOpaqueAddress;
00025 class DataObject;
00026 class StatusCode;
00027 class IRawDataInputSvc;
00028
00029
00030 template <class TYPE> class CnvFactory;
00031
00032 class RawDataMucMcHitCnv : public RawDataBaseCnv
00033 {
00034
00035
00036 friend class CnvFactory<RawDataMucMcHitCnv>;
00037 protected:
00038
00039 RawDataMucMcHitCnv(ISvcLocator* svc);
00040 public:
00041 StatusCode initialize();
00042
00043
00044 static const CLID& classID();
00045
00046 virtual long repSvcType() const {
00047 return PACKEDRAWEVENT_StorageType;
00048 }
00049
00050 static const unsigned char storageType() {
00051 return PACKEDRAWEVENT_StorageType;
00052 }
00053
00054
00055 StatusCode createObj(IOpaqueAddress* pAddr, DataObject*& pObj);
00056
00058 virtual StatusCode updateObj(IOpaqueAddress*, DataObject*);
00059
00060 virtual StatusCode createRep(DataObject* pObj, IOpaqueAddress*& pAddr);
00061
00062 private:
00063
00064 IRawDataInputSvc* m_inputSvc;
00066 PackedRawDataCnvSvc* m_RawDataAccess;
00068 MucMcHitBuilder m_mucMcHitBuilder;
00069
00070 };
00071
00072 #endif // RAWDATA_MUCMCHIT_CNV_H