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

In This Package:

RawEventHeaderCnv.h

Go to the documentation of this file.
00001 #ifndef RawEventHeaderCnv_H
00002 #define RawEventHeaderCnv_H
00003 
00004 #include <string>
00005 #include "GaudiKernel/ClassID.h"
00006 #include "GaudiKernel/Converter.h"
00007 #include "GaudiKernel/ISvcLocator.h"
00008 #include "GaudiKernel/DataObject.h"
00009 #include "GaudiKernel/MsgStream.h"
00010 
00011 #include "Event/RawRomFee.h"
00012 #include "Event/RawPmtChannel.h"
00013 #include "Event/RawRomLtb.h"
00014 #include "Event/RawLtbFrame.h"
00015 #include "Event/RawLtbFrameUTC.h"
00016 #include "Event/RawLtbFrameUnix.h"
00017 #include "RawDataEvent.h"
00018 
00019 using namespace std;
00020 
00021 class IRawDataInputSvc;
00022 namespace DayaBay {
00023   class RawEvent;
00024   class LocalTriggerData;
00025   class RawDataReader;
00026   class Detector;
00027   class ReadoutPmtCrate;
00028 }
00029 
00030 extern const long int RAWDATA_StorageType;
00031 
00032 class RawEventHeaderCnv : public Converter
00033 {
00034 
00035 public:
00036    RawEventHeaderCnv(ISvcLocator*&);
00037    RawEventHeaderCnv(unsigned char storageType, const CLID& clid, ISvcLocator* svc);
00038 
00039    virtual ~RawEventHeaderCnv() {}
00040 
00041    // Methods about StorageType and clid.
00042    virtual long repSvcType() const {
00043       return RAWDATA_StorageType;
00044    }
00045    static const long storageType() {
00046       return RAWDATA_StorageType;
00047    }
00048 
00049    static const CLID& classID()    {
00050       return DayaBay::CLID_RawEventHeader;
00051    }
00052 
00053 
00054    virtual StatusCode initialize();
00055    virtual StatusCode finalize();
00056 
00057    void declareObject(const string& fullPath, const CLID& clid, const string& bank, long par = 0);
00058 
00059    virtual StatusCode createRep(DataObject* pObject, IOpaqueAddress*& refpAddr);
00060    virtual StatusCode updateObj(IOpaqueAddress*, DataObject*);
00061    virtual StatusCode createObj(IOpaqueAddress*, DataObject*&);
00062 
00063    virtual StatusCode fillRepRefs(IOpaqueAddress* /* pAddr*/ , DataObject* /* pObject*/) {
00064       return StatusCode::SUCCESS;
00065    }
00066    virtual StatusCode updateRep(IOpaqueAddress* /* pAddress */ , DataObject* /* pObject*/) {
00067       return StatusCode::SUCCESS;
00068    }
00069    virtual StatusCode updateRepRefs(IOpaqueAddress* /* pAddress */ , DataObject* /* pObject*/) {
00070       return StatusCode::SUCCESS;
00071    }
00072 
00073 public:
00074    DayaBay::RawRom* convertRomFee(const RawDataEvent::RomFee* romFee);
00075    DayaBay::RawPmtChannel* convertPmtChannel(const RawDataEvent::PmtChannel& pmtChannel);
00076 
00077    DayaBay::RawRom* convertRomLtb(const RawDataEvent::RomLtb* romLtb);
00078    DayaBay::RawLtbFrameUTC* convertLtbFrameUTC(const RawDataEvent::LtbFrameUTC *ltbFrame);
00079    DayaBay::RawLtbFrameUnix* convertLtbFrameUnix(const RawDataEvent::LtbFrameUnix *ltbFrame);
00080 
00081    //   StatusCode RawEventHeaderCnv::unpackEvent(DayaBay::RawEvent* event,
00082    StatusCode unpackEvent(DayaBay::RawEvent* event,
00083        DayaBay::RawEventHeader* rawEventHeader);
00084    DayaBay::RawRom* unpackLtbModule(DayaBay::RawModule* module);
00085    DayaBay::RawRom* unpackFeeModule(DayaBay::RawModule* module);
00086 
00087 private:
00088    mutable MsgStream m_log;
00089    IRawDataInputSvc*  m_inputSvc;
00090 };
00091 
00092 #endif
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

Generated on Mon Apr 11 20:27:03 2011 for RawDataIO by doxygen 1.4.7