Marlin  1.17.1
 All Classes Namespaces Functions Variables Enumerations Friends Pages
LCIOOutputProcessor.h
1 #ifndef LCIOOutputProcessor_h
2 #define LCIOOutputProcessor_h 1
3 
4 #include "Processor.h"
5 #include "lcio.h"
6 #include "IO/LCWriter.h"
7 
8 
9 using namespace lcio ;
10 
11 namespace IMPL{
12  class LCCollectionVec ;
13 }
14 
15 namespace marlin{
16 
48  class LCIOOutputProcessor : public Processor {
49 
50  typedef std::vector< LCCollectionVec* > SubSetVec ;
51 
52 
53  public:
54 
55  virtual Processor* newProcessor() { return new LCIOOutputProcessor ; }
56 
59  LCIOOutputProcessor& operator=(const marlin::LCIOOutputProcessor&) = delete;
60 
62  LCIOOutputProcessor(const std::string& typeName) ;
63 
65  virtual ~LCIOOutputProcessor() ;
66 
69  virtual void init() ;
70 
73  virtual void processRunHeader( LCRunHeader* run) ;
74 
77  virtual void processEvent( LCEvent * evt ) ;
78 
81  virtual void end() ;
82 
86  void dropCollections( LCEvent * evt ) ;
87 
88 
89  protected:
90 
91  std::string _lcioOutputFile="";
92  std::string _lcioWriteMode="";
93 
94  StringVec _dropCollectionNames{};
95  StringVec _dropCollectionTypes{};
96  StringVec _keepCollectionNames{};
97  StringVec _fullSubsetCollections{};
98 
99  int _splitFileSizekB=1992294;
100 
101  SubSetVec _subSets{};
102 
103  LCWriter* _lcWrt=NULL;
104  int _nRun=-1;
105  int _nEvt=-1;
106  int _compressionLevel{6};
107 
108  private:
109 
111  void myConstruct() ;
112 
113  } ;
114 
115 } // end namespace marlin
116 #endif
117 
118 
119 
virtual Processor * newProcessor()
Return a new instance of the processor.
Definition: LCIOOutputProcessor.h:55
Default output processor.
Definition: LCIOOutputProcessor.h:48
Base class for Marlin processors.
Definition: Processor.h:64