MarlinTPC  1.2.0
ElectronCloudFinderProcessor.h
1 #ifndef ELECTRON_CLOUD_FINDER_PROCESSOR_H
2 #define ELECTRON_CLOUD_FINDER_PROCESSOR_H 1
3 
4 #include "NeighbouringPadHandler.h"
5 
6 #include <string>
7 
8 #include "lcio.h"
9 #include <EVENT/TrackerPulse.h>
10 
11 #include "marlin/Processor.h"
12 
13 
14 
15 namespace marlintpc
16 {
17 
67  class ElectronCloudFinderProcessor : public marlin::Processor
68  {
69 
70  public:
71 
72  virtual Processor* newProcessor()
73  {
75  }
76 
77 
79 
82  virtual void init();
83 
85  virtual void processRunHeader(EVENT::LCRunHeader* run);
86 
88  virtual void processEvent(EVENT::LCEvent * evt);
89 
90 
91  virtual void check(EVENT::LCEvent * evt);
92 
94  virtual void end();
95 
96  protected:
97 
100 
103 
107 
108  float _vDrift;
109  float _maxTimeSpread;
110  int _minHitSize;
111  int _maxHitSize;
112  bool _negativeZDirection;
113 
114  float _maxDriftDistance;
115 
118 
119 
121  static bool comparePulses(std::pair<lcio::TrackerPulse*, bool> firstSortingPair,
122  std::pair<lcio::TrackerPulse*, bool> secondSortingPair);
123  };
124 }//namespace marlintpc
125 #endif // Ends definition of ELECTRON_CLOUD_FINDER_PROCESSOR_H.
Definition: NeighbouringPadHandler.h:63
NeighbouringPadHandler * myNeighbouringPadHandler
Create an object which holds the information about the neighbourship of all pads. ...
Definition: ElectronCloudFinderProcessor.h:117
virtual void init()
Called at the begin of the job before anything is read.
Definition: ElectronCloudFinderProcessor.cc:98
bool _outputHitsTransient
Give the status which is set to the transient flag of the output collection.
Definition: ElectronCloudFinderProcessor.h:106
The ElectronCloudFinderProcessor searches for hits and groups contiguous areas to track candidates...
Definition: ElectronCloudFinderProcessor.h:67
virtual void processEvent(EVENT::LCEvent *evt)
Called for every event - the working horse.
Definition: ElectronCloudFinderProcessor.cc:124
std::string _outputTrackerHitsCollectionName
the name of the collection the output hits will be stored under
Definition: ElectronCloudFinderProcessor.h:102
static bool comparePulses(std::pair< lcio::TrackerPulse *, bool > firstSortingPair, std::pair< lcio::TrackerPulse *, bool > secondSortingPair)
A special function for the STL list::sort algorithm comparing pairs of TDC TrackerPulses (and bools) ...
Definition: ElectronCloudFinderProcessor.cc:490
virtual void processRunHeader(EVENT::LCRunHeader *run)
Called for every run.
Definition: ElectronCloudFinderProcessor.cc:109
std::string _inputTrackerPulsesCollectionName
the name of the collection the input pulses will be stored under
Definition: ElectronCloudFinderProcessor.h:99
ElectronCloudFinderProcessor()
Definition: ElectronCloudFinderProcessor.cc:41
virtual void end()
Called after data processing for clean up.
Definition: ElectronCloudFinderProcessor.cc:483