MarlinTPC  1.2.0
LinearRegressionProcessor.h
1 #ifndef LINEARREGRESSIONPROCESSOR_H
2 #define LINEARREGRESSIONPROCESSOR 1
3 
4 #include "marlin/Processor.h"
5 //#include "lcio.h"
6 //#include <string>
7 #include <vector>
8 
9 #include <EVENT/TrackerHit.h>
10 
11 namespace AIDA
12 {
13 
14 class IHistogram1D;
15 class IHistogram2D;
16 
17 
18 }
19 
20 
21 namespace marlintpc
22 {
23 
75 class LinearRegressionProcessor : public marlin::Processor
76 {
77 
78  public:
79 
83 
84 
88 
89 
92  Processor * newProcessor();
93 
94 
97  void init();
98 
99 
102  void processRunHeader(lcio::LCRunHeader *run);
103 
104 
107  virtual void processEvent(lcio::LCEvent *evt);
108 
109 
113  virtual void check(lcio::LCEvent *evt);
114 
115 
121  virtual void end();
122 
123  /* Sort function to sort the Hits along the track
124  */
125  static bool compareHit(const std::pair<TrackerHit*, double> & pair1,
126  const std::pair<TrackerHit*, double> & pair2)
127  {
128  return pair1.second < pair2.second;
129  }
130 
131  private:
132 
135  std::string _input_track_candidates_collection_name;
136 
139  std::string _output_seed_tracks_collection_name;
140 
146  int _outputIsTransient; //< if not 0 the hits collection is set transient
147  //(default 0)
148 
149 
150  std::vector<AIDA::IHistogram2D *> HistoLineVec;
151  std::vector<AIDA::IHistogram2D *> HistoTrackVec;
152 };
153 
154 }// namespace marlintoc
155 
156 #endif // TRACKSEEDERPROCESSOR_H
157 
158 
159 
~LinearRegressionProcessor()
Destructor.
Definition: LinearRegressionProcessor.cc:71
virtual void check(lcio::LCEvent *evt)
Called for every event - right after processEvent() has been called for all processors.
Definition: LinearRegressionProcessor.cc:348
Processor * newProcessor()
Return a new instance of this processor.
Definition: LinearRegressionProcessor.cc:341
LinearRegressionProcessor performs a linear regression on the hits in seed tracks.
Definition: LinearRegressionProcessor.h:75
virtual void processEvent(lcio::LCEvent *evt)
Called for every event - the working horse.
Definition: LinearRegressionProcessor.cc:100
void processRunHeader(lcio::LCRunHeader *run)
Called once per run to process the event's header.
Definition: LinearRegressionProcessor.cc:85
LinearRegressionProcessor()
Default constructor.
Definition: LinearRegressionProcessor.cc:46
void init()
Called at the begin of the job before anything is read.
Definition: LinearRegressionProcessor.cc:77
virtual void end()
Called after data processing for clean up in the inverse order of the init() method so that resources...
Definition: LinearRegressionProcessor.cc:494