MarlinTPC  1.2.0
CutApplicationProcessor.h
1 #ifndef CutApplicationProcessor_h
2 #define CutApplicationProcessor_h 1
3 
4 // C++
5 #include <string>
6 #include <iostream>
7 #include <cmath>
8 #include <algorithm>
9 
10 //CLHEP
11 #include <CLHEP/Vector/ThreeVector.h>
12 
13 // LCIO
14 #include "lcio.h"
15 #include <EVENT/TrackerHit.h>
16 #include <EVENT/TrackerPulse.h>
17 #include <EVENT/LCCollection.h>
18 #include <EVENT/Track.h>
19 #include <EVENT/TrackerData.h>
20 #include <IMPL/LCCollectionVec.h>
21 #include <IMPL/TrackImpl.h>
22 #include <IMPL/LCFlagImpl.h>
23 #include "TrackFitterBase.h"
24 
25 // Marlin
26 #include "marlin/Processor.h"
27 
28 namespace AIDA{
29  class IHistogram1D;
30  class IHistogram2D;
31 }
32 
33 namespace marlintpc{
34 
93  class CutApplicationProcessor : public marlin::Processor {
94 
95  public:
96 
97  /* This method will be called by the marlin package
98  * It returns a processor of the currend type (here CutApplicationProcessor)
99  */
100  virtual Processor* newProcessor() { return new CutApplicationProcessor ; }
101 
103 
104  virtual void init() ;
105 
106  virtual void processRunHeader( lcio::LCRunHeader* run ) ;
107 
108  virtual void processEvent( lcio::LCEvent * evt ) ;
109 
110  static bool compareHit(const std::pair<TrackerHit*, double> & pair1,
111  const std::pair<TrackerHit*, double> & pair2)
112  {
113  return pair1.second < pair2.second;
114  }
115 
116  protected:
117 
118  std::string _inputColName ;
119  std::string _outputColName ;
120  double _chipHeight;
121  double _chipLength;
122 
127 
128  // event specific cuts
131 
132  // track specific cuts
137  float _lowcutPhi;
138  float _highcutPhi;
141  float _lowcutdEdx;
142  float _highcutdEdx;
143  float _lowcutOmega;
145  float _lowcutD0;
146  float _highcutD0;
147  float _lowcutZ0;
148  float _highcutZ0;
150 
151  // hit specific cuts
154  double _lowcutX;
155  double _highcutX;
156  double _lowcutY;
157  double _highcutY;
158  double _lowcutZ;
159  double _highcutZ;
162  double _lowCutXTrack;
163  double _highCutXTrack;
164  double _lowCutYTrack;
165  double _highCutYTrack;
166 //private:
167 
168  } ;
169 
170 }
171 
172 #endif
int _highcutNHitsPerRowOnTrack
Definition: CutApplicationProcessor.h:136
float _highcutPhi
Definition: CutApplicationProcessor.h:138
float _lowcutZ0
Definition: CutApplicationProcessor.h:147
float _lowcutdEdx
Definition: CutApplicationProcessor.h:141
float _lowcutTanLambda
Definition: CutApplicationProcessor.h:139
double _lowcutZ
Definition: CutApplicationProcessor.h:158
int _lowcutNTracks
Definition: CutApplicationProcessor.h:129
float _highcutTanLambda
Definition: CutApplicationProcessor.h:140
double _highCutYTrack
Definition: CutApplicationProcessor.h:165
float _lowcutCharge
Definition: CutApplicationProcessor.h:152
int _highcutNTracks
Definition: CutApplicationProcessor.h:130
double _highcutZ
Definition: CutApplicationProcessor.h:159
double _chipHeight
Definition: CutApplicationProcessor.h:120
double _chipLength
Definition: CutApplicationProcessor.h:121
Applies cuts on all relevant track and hit parameters.
Definition: CutApplicationProcessor.h:93
double _highCutXTrack
Definition: CutApplicationProcessor.h:163
double _lowCutTrackLength
Definition: CutApplicationProcessor.h:160
std::string _inputColName
Definition: CutApplicationProcessor.h:118
double _lowcutX
Definition: CutApplicationProcessor.h:154
double _highcutY
Definition: CutApplicationProcessor.h:157
int _outputIsTransient
give the status which is set to the transient flag of the output collection it is an int instead of a...
Definition: CutApplicationProcessor.h:126
float _lowcutPhi
Definition: CutApplicationProcessor.h:137
double _lowCutYTrack
Definition: CutApplicationProcessor.h:164
float _highcutCharge
Definition: CutApplicationProcessor.h:153
float _highcutdEdx
Definition: CutApplicationProcessor.h:142
int _lowcutNHitsPerRowOnTrack
Definition: CutApplicationProcessor.h:135
int _highcutNHitsOnTrack
Definition: CutApplicationProcessor.h:134
bool _cutIfFitFailed
cut if fit failed for a track
Definition: CutApplicationProcessor.h:149
float _highcutOmega
Definition: CutApplicationProcessor.h:144
std::string _outputColName
Definition: CutApplicationProcessor.h:119
float _lowcutD0
Definition: CutApplicationProcessor.h:145
double _highCutTrackLength
Definition: CutApplicationProcessor.h:161
float _lowcutOmega
Definition: CutApplicationProcessor.h:143
float _highcutZ0
Definition: CutApplicationProcessor.h:148
int _lowcutNHitsOnTrack
Definition: CutApplicationProcessor.h:133
float _highcutD0
Definition: CutApplicationProcessor.h:146
double _lowCutXTrack
Definition: CutApplicationProcessor.h:162
double _highcutX
Definition: CutApplicationProcessor.h:155
double _lowcutY
Definition: CutApplicationProcessor.h:156