Marlin  1.10.0
 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 
57 
59 
61  LCIOOutputProcessor(const std::string& typeName) ;
62 
64  virtual ~LCIOOutputProcessor() ;
65 
68  virtual void init() ;
69 
72  virtual void processRunHeader( LCRunHeader* run) ;
73 
76  virtual void processEvent( LCEvent * evt ) ;
77 
80  virtual void end() ;
81 
85  void dropCollections( LCEvent * evt ) ;
86 
87 
88  protected:
89 
90  std::string _lcioOutputFile ;
91  std::string _lcioWriteMode ;
92 
93  StringVec _dropCollectionNames ;
94  StringVec _dropCollectionTypes ;
95  StringVec _keepCollectionNames ;
96  StringVec _fullSubsetCollections ;
97 
98  int _splitFileSizekB ;
99 
100  SubSetVec _subSets ;
101 
102  LCWriter* _lcWrt ;
103  int _nRun ;
104  int _nEvt ;
105 
106  private:
107 
109  void myConstruct() ;
110 
111  } ;
112 
113 } // end namespace marlin
114 #endif
115 
116 
117 
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:63