MyMarlinTPC  170316
StepWiseHelixGeneralBrokenLineInterfaceProcessor.h
Go to the documentation of this file.
1 #ifndef STEPWISEHELIXGENERALBROKENLINEINTERFACEPROCESSOR_H
2 #define STEPWISEHELIXGENERALBROKENLINEINTERFACEPROCESSOR_H
3 
6 
7 #include <marlin/Processor.h>
8 #include <marlin/Global.h>
9 
10 #include <lcio.h>
11 #include <string>
12 
13 // GBL:
14 #include "GblTrajectory.h"
15 #include "MilleBinary.h"
16 
17 // LCIO:
18 #include <EVENT/Track.h>
19 #include "EVENT/TrackerHit.h"
20 
21 #include "TFile.h"
22 #include "TTree.h"
23 #include "TMath.h"
24 
25 namespace marlintpc {
26 
27 typedef std::pair<int, double> indexArcPair;
28 typedef std::pair<double, double> arcVarPair;
29 
31 
82 class StepWiseHelixGeneralBrokenLineInterfaceProcessor: public marlin::Processor {
83  public:
84 
85  virtual Processor* newProcessor() {
87  }
88 
90 
91  virtual void init();
92 
93  virtual void processRunHeader(EVENT::LCRunHeader* run);
94 
95  virtual void processEvent(EVENT::LCEvent* evt);
96 
97  virtual void check(EVENT::LCEvent* evt);
98 
99  virtual void end();
100  protected:
101  std::string _inputCollectionName;
105  std::string _fitOptions;
111  double _maxStep;
115 
116  private:
117  gbl::GblTrajectory* _trajectory;
118  gbl::MilleBinary* _milleBinary;
119  bool _curvature;
120  std::vector<unsigned int> _theLabels;
121  TVectorD* _correctionVector;
122  TMatrixDSym* _covarianceMatrix;
123  int _ndf;
124  double _chisquare;
125  double _lostweight;
126  double _refPointS;
127  unsigned int _refPointIndex;
128  double _Xcenter;
129  double _Ycenter;
130 
131  void calcLineSeed(const std::vector<TrackerHit*>, const double*, double&, double&, double&, double&, double&) const;
132 };
133 
134 } // namespace marlintpc
135 #endif // STEPWISEHELIXGENERALBROKENLINEINTERFACEPROCESSOR_H
int _milleMinHits
defines minimum number of hits on track for output to Millepede binary file
bool _thickScatterer
selects thick (otherwise thin) scatterers for multiple scattering (default: false) ...
std::string _fitOptions
list of iterations with &#39;h&#39; Huber, &#39;t&#39; Tukey or &#39;c&#39; Cauchy down-weighting
void calcLineSeed(const std::vector< TrackerHit *>, const double *, double &, double &, double &, double &, double &) const
Simple seed for straight line.
bool _outputIsPersistent
whether the output is to be stored or not (default: true)
double _defaultMomentum
default momentum for multiple scattering (for Bfield off, GeV) (default: 10.)
std::vector< unsigned int > _theLabels
Labels of (global) MP-II parameters.
int _milleCalcMethod
defines which parameter should be calculated for Millepede-II binary file
TVectorD * _correctionVector
correction vector from GBL fit (for track parameters)
std::string _inputCollectionName
Name of the input collection – track seeds.
std::pair< double, double > arcVarPair
double _x0PerUnitLength
X0 per unit length (TPC gas as homogeneous scatterer) (default: 0.)