MarlinTPC  1.2.0
PhotoelectricPulseExtractionProcessor.h
1 #ifndef PHOTOELECTRICPULSEEXTRACTIONPROCESSOR_H
2 #define PHOTOELECTRICPULSEEXTRACTIONPROCESSOR_H 1
3 
4 #include "PhotoelectricXMLHelper.h"
5 
6 // Marlin
7 #include <marlin/Processor.h>
8 
9 // Gear
10 #include <gearimpl/GlobalPadIndex.h>
11 
12 // LCIO
13 #include <lcio.h>
14 #include <EVENT/TrackerPulse.h>
15 
16 //ROOT
17 #include "TH2D.h"
18 #include "TH1D.h"
19 
20 //AIDA
21 namespace AIDA
22 {
23 
24 class ITuple;
25 }
26 
27 // stl
28 #include <string>
29 #include <set>
30 
36 typedef std::map<int, std::set<EVENT::TrackerPulse*> > photodotCluster;
37 
38 namespace marlintpc
39 {
40 
44 class PhotoelectricPulseExtractionProcessor : public marlin::Processor
45 {
46 
47  public:
48 
50 
51  virtual void init() ;
52 
53  virtual Processor* newProcessor()
54  {
56  }
57 
58  virtual void processRunHeader(lcio::LCRunHeader* run);
59 
60  virtual void processEvent(lcio::LCEvent * evt);
61 
62  virtual void check(lcio::LCEvent * evt);
63 
64  virtual void end();
65 
66  private:
67 
70  std::string _input_tracker_pulses_collection_name;
71 
74  std::string _output_photoelectric_tracker_pulses_collection_name_dots;
75 
78  std::string _output_photoelectric_tracker_pulses_collection_name_lines;
79 
82  float _arrival_time_width;
83 
86  bool _output_is_transient;
87 
90  std::string _projected_photogeometry_file_name;
91 
94  float _photopulse_interval_start;
95 
98  float _photopulse_interval_end;
99 
102  std::set< gear::GlobalPadIndex > _global_pad_indices_dots;
103 
106  std::set< gear::GlobalPadIndex > _global_pad_indices_lines;
107 
111  PhotoelectricXMLFile* _photodotFile;
112 
114  /* @{ */
118  std::string _distortion_file_name;
119 
123  photodotCluster _photodot_pulse_sets;
124 
129  std::map<gear::GlobalPadIndex, int > _photodot_pulse_set_by_global_index;
130 
131  int _runNumber;
132 
133  std::string _detectorName;
134 
135  std::vector<std::vector<marlintpc::Photodot>::const_iterator> _dots;
136 
137  double _sigma;
138 
139  bool _fitSigma;
140 
141  TH2D * _numberOfPadsWithPulsesPerCluster;
142  TH2D * _numberOfPulsesPerCluster;
143  AIDA::ITuple *_pulse_tuple;
144  AIDA::ITuple *_cluster_tuple;
145  /* @} */
146 };
147 
148 }
149 
150 #endif // PHOTOELECTRICPULSEEXTRACTIONPROCESSOR_H
PhotoelectricPulseExtractionProcessor: takes the input pulse collection, finds the ones which are mos...
Definition: PhotoelectricPulseExtractionProcessor.h:44
This provides some tools on handling the xml file used to store information on the Photoelectric anal...
Definition: PhotoelectricXMLHelper.h:54