MarlinTPC  1.2.0
AnalysisCutSelectorProcessor.h
1 #ifndef ANALYSISCUTSELECTORPROCESSOR_H
2 #define ANALYSISCUTSELECTORPROCESSOR_H
3 
4 // C++
5 #include <string>
6 
7 // LCIO
8 #include "lcio.h"
9 #include <EVENT/TrackerHit.h>
10 #include <EVENT/LCCollection.h>
11 #include <EVENT/Track.h>
12 #include <IMPL/LCCollectionVec.h>
13 #include <IMPL/TrackImpl.h>
14 #include <IMPL/LCFlagImpl.h>
15 
16 // Marlin
17 #include "marlin/Processor.h"
18 #include "gear/TPCParameters.h"
19 //ROOT
20 #include "TH1F.h"
21 #include "TNtuple.h"
22 
23 // Aida
24 #ifdef MARLIN_USE_AIDA
25 //AIDA
26 #include <marlin/AIDAProcessor.h>
27 #endif
28 
29 namespace marlintpc{
30 
73  class AnalysisCutSelectorProcessor : public marlin::Processor {
74 
75  public:
76 
77  /* This method will be called by the marlin package
78  * It returns a processor of the current type (here AnalysisCutSelectorProcessor)
79  */
80  virtual Processor* newProcessor() { return new AnalysisCutSelectorProcessor ; }
81 
83 
84  virtual void init() ;
85 
86  virtual void processRunHeader( lcio::LCRunHeader* run ) ;
87 
88  virtual void processEvent( lcio::LCEvent * evt ) ;
89 
90  virtual void end();
91 
92  protected:
93 
94  std::string _inputColName ;
95  std::string _outputColName ;
96 
101 
102  // event specific cuts
105 
106  // track specific cuts
109  float _lowcutPhi;
110  float _highcutPhi;
111  float _lowcutChiSq;
115  float _lowcutdEdx;
116  float _highcutdEdx;
117  float _lowcutOmega;
119  float _lowcutD0;
120  float _highcutD0;
121  float _lowcutZ0;
122  float _highcutZ0;
123  double _runZOverride;
127  int _bestRow;
128 
130 
131  private:
132  TH1F * _cutFlowEvents;
133  TH1F * _cutFlowTracks;
134  TH1F * _hitZPosition;
135  TH1F * _hitTime;
136  TNtuple* _runZPosTuple;
137  TNtuple* _runHitTimeTuple;
138  // angle between the hit and the track
139  TH1F * _hitPhi;
140  TNtuple* _runHitPhiTuple;
141  TH1F * _hitPhiBestRow;
142  TNtuple* _runHitPhiBestRowTuple;
143 
144  const gear::TPCParameters* _gearParameters;
145 
146  } ;
147 
148 
149 }
150 
151 #endif // ANALYSISCUTSELECTORPROCESSOR_H
152 
bool _cutIfFitFailed
cut if fit failed for a track
Definition: AnalysisCutSelectorProcessor.h:125
int _highcutNHitsOnTrack
Definition: AnalysisCutSelectorProcessor.h:108
float _lowcutOmega
Definition: AnalysisCutSelectorProcessor.h:117
float _highcutTanLambda
Definition: AnalysisCutSelectorProcessor.h:114
float _lowcutChiSq
Definition: AnalysisCutSelectorProcessor.h:111
int _highcutNTracks
Definition: AnalysisCutSelectorProcessor.h:104
double _runZErrorOverride
Definition: AnalysisCutSelectorProcessor.h:124
float _highcutChiSq
Definition: AnalysisCutSelectorProcessor.h:112
int _outputIsTransient
give the status which is set to the transient flag of the output collection it is an int instead of a...
Definition: AnalysisCutSelectorProcessor.h:100
float _highcutPhi
Definition: AnalysisCutSelectorProcessor.h:110
float _highcutdEdx
Definition: AnalysisCutSelectorProcessor.h:116
float _highcutOmega
Definition: AnalysisCutSelectorProcessor.h:118
float _highcutZ0
Definition: AnalysisCutSelectorProcessor.h:122
Applies cuts on all relevant track parameters.
Definition: AnalysisCutSelectorProcessor.h:73
std::string _inputColName
Definition: AnalysisCutSelectorProcessor.h:94
std::string _outputColName
Definition: AnalysisCutSelectorProcessor.h:95
int _lowcutNTracks
Definition: AnalysisCutSelectorProcessor.h:103
float _lowcutdEdx
Definition: AnalysisCutSelectorProcessor.h:115
float _lowcutZ0
Definition: AnalysisCutSelectorProcessor.h:121
int _bestRow
Row with the best resolution.
Definition: AnalysisCutSelectorProcessor.h:127
float _zPosHistogramMax
optional parameter: maximum for z-position histogram range (in case the drift range is larger than th...
Definition: AnalysisCutSelectorProcessor.h:129
float _highcutD0
Definition: AnalysisCutSelectorProcessor.h:120
float _lowcutTanLambda
Definition: AnalysisCutSelectorProcessor.h:113
double _runZOverride
Definition: AnalysisCutSelectorProcessor.h:123
float _lowcutPhi
Definition: AnalysisCutSelectorProcessor.h:109
float _lowcutD0
Definition: AnalysisCutSelectorProcessor.h:119
int _lowcutNHitsOnTrack
Definition: AnalysisCutSelectorProcessor.h:107
int _bestModule
Module with the best row.
Definition: AnalysisCutSelectorProcessor.h:126