MarlinTPC  1.2.0
PhotoelectricPulseProcessor.h
1 #ifndef PHOTOELECTRICPULSEPROCESSOR_H
2 #define PHOTOELECTRICPULSEPROCESSOR_H 1
3 
4 #include <string>
5 #include <vector>
6 
7 #include "marlin/Processor.h"
8 #include "PhotoelectricXMLHelper.h"
9 
10 namespace EVENT {
11 
12  class LCRunHeader;
13  class LCEvent;
14 }
15 
16 namespace marlintpc {
17 
22  class PhotoelectricPulseProcessor : public marlin::Processor {
23 
24 public:
29 
33 
36  virtual Processor* newProcessor() { return new PhotoelectricPulseProcessor() ; }
37 
41  virtual void init() ;
42 
45  virtual void processRunHeader(lcio::LCRunHeader* run ) ;
46 
49  virtual void processEvent(lcio::LCEvent * evt ) ;
50 
53  virtual void check(lcio::LCEvent * evt ) ;
54 
57  virtual void end() ;
58 
59 
60 private:
61 
64  std::string _photogeometry_filename;
65 
68  std::string _output_collection_name;
69 
72  std::string _output_simtrackerhit_collection_name;
73 
76  double _mean_electrons_per_photodot;
77 
80  double _initial_z_position;
81 
84  std::vector<std::vector<Photodot>::const_iterator> _photodots;
85 
88  std::vector<std::vector<Photoline>::const_iterator> _photolines;
89 
92  PhotoelectricXMLFile* _xmlFile;
93 
102  int _module;
103  int _transient;
104  bool _doPhotoLines;
105  bool _doPhotoDots;
106  bool _disableSmearing;
107 };
108 
109 } // namespace marlintpc
110 
111 #endif // PHOTOELECTRICPULSEPROCESSOR_H
virtual void processRunHeader(lcio::LCRunHeader *run)
Called for every run.
Definition: PhotoelectricPulseProcessor.cc:114
PhotoelectricPulseProcessor()
constructor
Definition: PhotoelectricPulseProcessor.cc:44
virtual Processor * newProcessor()
used by Marlin to create a new processor
Definition: PhotoelectricPulseProcessor.h:36
virtual void processEvent(lcio::LCEvent *evt)
Called for every event - the working horse.
Definition: PhotoelectricPulseProcessor.cc:127
virtual void check(lcio::LCEvent *evt)
Called after the event has been processed.
Definition: PhotoelectricPulseProcessor.cc:299
virtual void end()
Called after data processing for clean up.
Definition: PhotoelectricPulseProcessor.cc:304
virtual void init()
Called at the begin of the job before anything is read.
Definition: PhotoelectricPulseProcessor.cc:282
PhotoelectricPulseProcessor : This processor takes a file containing positions of photosensitive dots...
Definition: PhotoelectricPulseProcessor.h:22
virtual ~PhotoelectricPulseProcessor()
destructor
Definition: PhotoelectricPulseProcessor.cc:111
This provides some tools on handling the xml file used to store information on the Photoelectric anal...
Definition: PhotoelectricXMLHelper.h:54