MyMarlinTPC  170316
SimpleHelixGeneralBrokenLineInterfaceProcessor.h
Go to the documentation of this file.
1 #ifndef SIMPLEHELIXGENERALBROKENLINEINTERFACEPROCESSOR_H
2 #define SIMPLEHELIXGENERALBROKENLINEINTERFACEPROCESSOR_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 
80 class SimpleHelixGeneralBrokenLineInterfaceProcessor: public marlin::Processor {
81  public:
82 
83  virtual Processor* newProcessor() {
85  }
86 
88 
89  virtual void init();
90 
91  virtual void processRunHeader(EVENT::LCRunHeader* run);
92 
93  virtual void processEvent(EVENT::LCEvent* evt);
94 
95  virtual void check(EVENT::LCEvent* evt);
96 
97  virtual void end();
98  protected:
99  std::string _inputCollectionName;
103  std::string _fitOptions;
112 
113  private:
114  gbl::GblTrajectory* _trajectory;
115  gbl::MilleBinary* _milleBinary;
116  bool _curvature;
117  std::vector<unsigned int> _theLabels;
118  TVectorD* _correctionVector;
119  TMatrixDSym* _covarianceMatrix;
120  int _ndf;
121  double _chisquare;
122  double _lostweight;
123  double _refPointS;
124  unsigned int _refPointIndex;
125  double _Xcenter;
126  double _Ycenter;
127 
128  void calcLineSeed(const std::vector<TrackerHit*>, const double*, double &, double &, double &, double &, double &) const;
129 };
130 
131 } // namespace marlintpc
132 #endif // SimpleHelixGENERALBROKENLINEINTERFACEPROCESSOR_H
std::vector< unsigned int > _theLabels
Labels of (global) MP-II parameters.
int _milleMinHits
defines minimum number of hits on track for output to Millepede binary file
int _milleCalcMethod
defines which parameter should be calculated for Millepede-II binary file
double _defaultMomentum
default momentum for multiple scattering (for Bfield off, GeV) (default: 10.)
bool _outputIsPersistent
whether the output is to be stored or not (default: true)
void calcLineSeed(const std::vector< TrackerHit *>, const double *, double &, double &, double &, double &, double &) const
Simple seed for straight line.
double _x0PerUnitLength
X0 per unit length (TPC gas as homogeneous scatterer) (default: 0.)
TVectorD * _correctionVector
correction vector from GBL fit (for track parameters)
std::string _fitOptions
list of iterations with &#39;h&#39; Huber, &#39;t&#39; Tukey or &#39;c&#39; Cauchy down-weighting
std::string _inputCollectionName
Name of the input collection – track seeds.
bool _thickScatterer
selects thick (otherwise thin) scatterers for multiple scattering (default: false) ...
std::pair< double, double > arcVarPair