![]() |
![]() |
00001 #ifndef IOPool_Streamer_StreamerOutputModuleBase_h 00002 #define IOPool_Streamer_StreamerOutputModuleBase_h 00003 00004 #include "FWCore/Framework/interface/OutputModule.h" 00005 #include "IOPool/Streamer/interface/StreamSerializer.h" 00006 #include "IOPool/Streamer/interface/MsgTools.h" 00007 #include "FWCore/Framework/interface/Frameworkfwd.h" 00008 #include <memory> 00009 #include <vector> 00010 00011 class InitMsgBuilder; 00012 class EventMsgBuilder; 00013 namespace edm { 00014 class ParameterSetDescription; 00015 class StreamerOutputModuleBase : public OutputModule { 00016 public: 00017 explicit StreamerOutputModuleBase(ParameterSet const& ps); 00018 virtual ~StreamerOutputModuleBase(); 00019 static void fillDescription(ParameterSetDescription & desc); 00020 00021 private: 00022 virtual void beginRun(RunPrincipal const&); 00023 virtual void endRun(RunPrincipal const&); 00024 virtual void beginJob(); 00025 virtual void endJob(); 00026 virtual void writeRun(RunPrincipal const&); 00027 virtual void writeLuminosityBlock(LuminosityBlockPrincipal const&); 00028 virtual void write(EventPrincipal const& e); 00029 00030 virtual void start() const = 0; 00031 virtual void stop() const = 0; 00032 virtual void doOutputHeader(InitMsgBuilder const& init_message) const = 0; 00033 virtual void doOutputEvent(EventMsgBuilder const& msg) const = 0; 00034 00035 std::auto_ptr<InitMsgBuilder> serializeRegistry(); 00036 std::auto_ptr<EventMsgBuilder> serializeEvent(EventPrincipal const& e); 00037 void setHltMask(EventPrincipal const& e); 00038 void setLumiSection(); 00039 00040 private: 00041 Selections const* selections_; 00042 00043 int maxEventSize_; 00044 bool useCompression_; 00045 int compressionLevel_; 00046 00047 // test luminosity sections 00048 int lumiSectionInterval_; 00049 double timeInSecSinceUTC; 00050 00051 StreamSerializer serializer_; 00052 00053 //Event variables, made class memebers to avoid re instatiation for each event. 00054 unsigned int hltsize_; 00055 uint32 lumi_; 00056 std::vector<bool> l1bit_; 00057 std::vector<unsigned char> hltbits_; 00058 uint32 origSize_; 00059 char host_name_[255]; 00060 00061 Strings hltTriggerSelections_; 00062 uint32 outputModuleId_; 00063 }; //end-of-class-def 00064 } // end of namespace-edm 00065 00066 #endif