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

In This Package:

RawReadoutHeaderCnv.h

Go to the documentation of this file.
00001 #ifndef RawReadoutHeaderCnv_H
00002 #define RawReadoutHeaderCnv_H
00003 
00004 #include "GaudiKernel/Converter.h"
00005 #include "GaudiKernel/ISvcLocator.h"
00006 #include "GaudiKernel/MsgStream.h"
00007 
00008 #include "Event/ReadoutHeader.h"
00009 #include "Conventions/Site.h"
00010 #include "Conventions/DetectorId.h"
00011 #include "Conventions/Electronics.h"
00012 #include "Conventions/Trigger.h"
00013 
00015 class IRawDataInputSvc;
00016 class RawDataEvent;
00017 namespace DayaBay {
00018   class RawEvent;
00019   class LocalTriggerData;
00020   class RawDataReader;
00021   class Detector;
00022   class ReadoutPmtCrate;
00023 }
00024 
00025 extern const long int RAWDATA_StorageType;
00026 
00027 class RawReadoutHeaderCnv : public Converter
00028 {
00029 public:
00030    RawReadoutHeaderCnv(long storageType, const CLID& clid, ISvcLocator* svc);
00031    RawReadoutHeaderCnv(ISvcLocator*&);
00032 
00033    virtual ~RawReadoutHeaderCnv();
00034 
00035    // Methods about StorageType and clid.
00036    virtual long repSvcType() const {
00037       return RAWDATA_StorageType;
00038    }
00039 
00040    static const long storageType() {
00041       return RAWDATA_StorageType;
00042    }
00043 
00044    static const CLID& classID()    {
00045       return DayaBay::CLID_ReadoutHeader;
00046    }
00047 
00048 
00049    virtual StatusCode initialize();
00050    virtual StatusCode finalize();
00051 
00052    // Store TDS path to link a particular converter to an object on the TDS
00053    void declareObject(const std::string& fullPath, const CLID& clid, const std::string& bank, long par = 0);
00054 
00055 
00056    // Convert the transient object to the requested representation.
00057    virtual StatusCode createRep(DataObject* pObject, IOpaqueAddress*& refpAddr);
00058    virtual StatusCode updateObj(IOpaqueAddress*, DataObject*);
00059    virtual StatusCode createObj(IOpaqueAddress*, DataObject*&);
00060 
00061    virtual StatusCode fillRepRefs(IOpaqueAddress* /* pAddr*/ , DataObject* /* pObject*/) {
00062       return StatusCode::SUCCESS;
00063    }
00064    virtual StatusCode updateRep(IOpaqueAddress* /* pAddress */ , DataObject* /* pObject*/) {
00065       return StatusCode::SUCCESS;
00066    }
00067    virtual StatusCode updateRepRefs(IOpaqueAddress* /* pAddress */ , DataObject* /* pObject*/) {
00068       return StatusCode::SUCCESS;
00069    }
00070 
00071 private:
00072    mutable MsgStream m_log;
00073 
00074    IRawDataInputSvc*  m_inputSvc;
00075 
00076 
00077 private:
00078    StatusCode findTriggerTime(DayaBay::RawEvent* event,
00079        TimeStamp& triggerTime);
00080    Site::Site_t convertSite(unsigned int daqSiteId);
00081    DetectorId::DetectorId_t convertDetector(unsigned int daqDetectorId);
00082    int convertConnector(unsigned int daqChannelId);
00083    int convertBoard(unsigned int daqSlotId);
00084    DayaBay::Trigger::TriggerType_t convertTriggerType(
00085        DayaBay::LocalTriggerData* ltbData,
00086        const DayaBay::Detector* detector);
00087    TimeStamp convertTriggerTime(DayaBay::LocalTriggerData* ltbData);
00088    DayaBay::FeeGain::FeeGain_t convertAdcRange(unsigned int daqAdcRange);
00089    StatusCode unpackEvent(DayaBay::RawEvent* event,
00090        DayaBay::Readout* readout);
00091    StatusCode unpackLtbModule(DayaBay::RawModule* module,
00092        DayaBay::Readout* readout);
00093    StatusCode unpackFeeModule(DayaBay::RawModule* module,
00094        DayaBay::ReadoutPmtCrate* readout);
00095 };
00096 
00097 #endif
| Classes | Job Modules | Data Objects | Services | Algorithms | Tools | Packages | Directories | Tracs |

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