MarlinTPC  1.2.0
StepWiseHelixGeneralBrokenLineInterfaceProcessor.h
1 #ifndef STEPWISEHELIXGENERALBROKENLINEINTERFACEPROCESSOR_H
2 #define STEPWISEHELIXGENERALBROKENLINEINTERFACEPROCESSOR_H
3 
4 #include "SimpleHelixTrackModel.h"
5 #include "GeneralBrokenLineInterfaceHelpers.h"
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 _milleCalcMethod
defines which parameter should be calculated for Millepede-II binary file
Definition: StepWiseHelixGeneralBrokenLineInterfaceProcessor.h:108
double _bfieldScaleFactor
scale factor for magnetic field (default: 1.0)
Definition: StepWiseHelixGeneralBrokenLineInterfaceProcessor.h:103
std::string _outputTrackCollectionName
Name of the output track collection.
Definition: StepWiseHelixGeneralBrokenLineInterfaceProcessor.h:102
bool _encodedModuleID
Module ID is encoded in CellID0.
Definition: StepWiseHelixGeneralBrokenLineInterfaceProcessor.h:110
bool _outputIsPersistent
whether the output is to be stored or not (default: true)
Definition: StepWiseHelixGeneralBrokenLineInterfaceProcessor.h:104
double _defaultMomentum
default momentum for multiple scattering (for Bfield off, GeV) (default: 10.)
Definition: StepWiseHelixGeneralBrokenLineInterfaceProcessor.h:114
double _maxStep
maximal step size (default: 10.)
Definition: StepWiseHelixGeneralBrokenLineInterfaceProcessor.h:111
Using GBL with a step-wise helix.
Definition: StepWiseHelixGeneralBrokenLineInterfaceProcessor.h:82
bool _thickScatterer
selects thick (otherwise thin) scatterers for multiple scattering (default: false) ...
Definition: StepWiseHelixGeneralBrokenLineInterfaceProcessor.h:113
double _x0PerUnitLength
X0 per unit length (TPC gas as homogeneous scatterer) (default: 0.)
Definition: StepWiseHelixGeneralBrokenLineInterfaceProcessor.h:112
bool _writeMillepedeOut
selects output to Millepede-II binary file
Definition: StepWiseHelixGeneralBrokenLineInterfaceProcessor.h:106
std::string _fitOptions
list of iterations with 'h' Huber, 't' Tukey or 'c' Cauchy down-weighting
Definition: StepWiseHelixGeneralBrokenLineInterfaceProcessor.h:105
std::string _inputCollectionName
Name of the input collection – track seeds.
Definition: StepWiseHelixGeneralBrokenLineInterfaceProcessor.h:101
int _milleMinHits
defines minimum number of hits on track for output to Millepede binary file
Definition: StepWiseHelixGeneralBrokenLineInterfaceProcessor.h:109
std::string _fileNameMillepedeFile
name of Millepede-II binary file
Definition: StepWiseHelixGeneralBrokenLineInterfaceProcessor.h:107