00001 00015 #ifndef ELECHEADERCNV_H 00016 #define ELECHEADERCNV_H 00017 00018 #include "RootIOSvc/RootIOTypedCnv.h" 00019 00020 #include "PerElecEvent/PerElecHeader.h" 00021 #include "PerElecEvent/PerElecCrate.h" 00022 #include "PerElecEvent/PerElecFeeChannel.h" 00023 #include "PerElecEvent/PerElecFecCrate.h" 00024 #include "PerElecEvent/PerElecFeeCrate.h" 00025 00026 #include "Event/ElecHeader.h" 00027 #include "Event/ElecCrateHeader.h" 00028 #include "Event/ElecPulseHeader.h" 00029 #include "Event/ElecPulse.h" 00030 #include "Event/ElecPmtPulse.h" 00031 #include "Event/ElecRpcPulse.h" 00032 #include "Event/ElecCrate.h" 00033 #include "Event/ElecFecCrate.h" 00034 #include "Event/ElecFeeCrate.h" 00035 #include "Event/ElecFeeChannel.h" 00036 00037 class ElecHeaderCnv : public RootIOTypedCnv<PerElecHeader, 00038 DayaBay::ElecHeader> 00039 { 00040 public: 00041 static const CLID& classID() { 00042 return DayaBay::CLID_ElecHeader; 00043 } 00044 00045 ElecHeaderCnv(ISvcLocator* svc); 00046 virtual ~ElecHeaderCnv(); 00047 00048 00051 StatusCode PerToTran(const PerElecHeader& tobj, 00052 DayaBay::ElecHeader& dobj); 00053 00056 StatusCode TranToPer(const DayaBay::ElecHeader& dobj, 00057 PerElecHeader& tobj); 00058 00059 StatusCode fillRepRefs(IOpaqueAddress* addr, DataObject* dobj); 00060 StatusCode fillObjRefs(IOpaqueAddress* addr, DataObject* dobj); 00061 00062 PerElecCrateHeader* convert(const DayaBay::ElecCrateHeader& transCH); 00063 PerElecPulseHeader* convert(const DayaBay::ElecPulseHeader& transPH); 00064 PerElecCrate* convert(const DayaBay::ElecCrate& transCrate); 00065 PerElecFeeChannel* convert(const DayaBay::ElecFeeChannel& in_ch); 00066 PerElecFecCrate* convert(const DayaBay::ElecFecCrate& transFecCrate); 00067 PerElecFeeCrate* convert(const DayaBay::ElecFeeCrate& transFeeCrate); 00068 PerElecPulseCollection* convert(const DayaBay::ElecPulseCollection& transPCol); 00069 PerElecPulse* convert(const DayaBay::ElecPulse& transPulse); 00070 00071 DayaBay::ElecCrateHeader* convert(const PerElecCrateHeader& perCH); 00072 DayaBay::ElecPulseHeader* convert(const PerElecPulseHeader& perPH); 00073 DayaBay::ElecCrate* convert(const PerElecCrate& perCrate); 00074 DayaBay::ElecFeeChannel* convert(const PerElecFeeChannel& perChannel); 00075 DayaBay::ElecFecCrate* convert(const PerElecFecCrate& perFecCrate); 00076 DayaBay::ElecFeeCrate* convert(const PerElecFeeCrate& perFeeCrate); 00077 DayaBay::ElecPulseCollection* convert(const PerElecPulseCollection& perEPC); 00078 DayaBay::ElecPulse* convert(const PerElecPulse& perEP); 00079 00080 private: 00081 // Save pulse-level simulation data in output 00082 bool m_savePulseData; 00083 // Property: SaveChannelData 00084 // Save channel-level simulation data in output 00085 bool m_saveChannelData; 00086 // Property: SaveBoardData 00087 // Save board-level simulation data in output 00088 bool m_saveBoardData; 00089 00090 // Save Crate level ESum data in output 00091 bool m_saveEsumData; 00092 00093 }; 00094 00095 #endif // ELECHEADERCNV_H