CMS 3D CMS Logo

StreamerOutputModuleBase.h

Go to the documentation of this file.
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 StreamerOutputModuleBase : public OutputModule {
00015   public:
00016     explicit StreamerOutputModuleBase(ParameterSet const& ps);  
00017     virtual ~StreamerOutputModuleBase();
00018 
00019   private:
00020     virtual void beginRun(RunPrincipal const&);
00021     virtual void endRun(RunPrincipal const&);
00022     virtual void beginJob(EventSetup const&);
00023     virtual void endJob();
00024     virtual void writeRun(RunPrincipal const&);
00025     virtual void writeLuminosityBlock(LuminosityBlockPrincipal const&);
00026     virtual void write(EventPrincipal const& e);
00027 
00028     virtual void start() const = 0;
00029     virtual void stop() const = 0;
00030     virtual void doOutputHeader(InitMsgBuilder const& init_message) const = 0;
00031     virtual void doOutputEvent(EventMsgBuilder const& msg) const = 0;
00032 
00033     std::auto_ptr<InitMsgBuilder> serializeRegistry();
00034     std::auto_ptr<EventMsgBuilder> serializeEvent(EventPrincipal const& e); 
00035     void setHltMask(EventPrincipal const& e);
00036     void setLumiSection();
00037 
00038   private:
00039     Selections const* selections_;
00040 
00041     int maxEventSize_;
00042     bool useCompression_;
00043     int compressionLevel_;
00044 
00045     // test luminosity sections
00046     int lumiSectionInterval_;  
00047     double timeInSecSinceUTC;
00048 
00049     StreamSerializer serializer_;
00050 
00051     //Event variables, made class memebers to avoid re instatiation for each event.
00052     unsigned int hltsize_;
00053     uint32 lumi_;
00054     std::vector<bool> l1bit_;
00055     std::vector<unsigned char> hltbits_;
00056     uint32 origSize_;
00057 
00058     Strings hltTriggerSelections_;
00059     uint32 outputModuleId_;
00060   }; //end-of-class-def
00061 } // end of namespace-edm
00062 
00063 #endif

Generated on Tue Jun 9 17:39:18 2009 for CMSSW by  doxygen 1.5.4