MarlinTPC  1.2.0
MMAdvancedCalibrationProcessor.h
1 #ifndef MMADVANCEDCALIBRATIONPROCESSOR_H
2 #define MMADVANCEDCALIBRATIONPROCESSOR_H
3 
4 #include <marlin/Processor.h>
5 #include <lcio.h>
6 #include <string>
7 #include <map>
8 #include <vector>
9 
10 #include "MMPadResponseFunction.h"
11 
12 //LCIO
13 #include "lcio.h"
14 #include "EVENT/LCCollection.h"
15 #include "IMPL/LCCollectionVec.h"
16 #include "EVENT/TrackerPulse.h"
17 
18 //Aida
19 #include <AIDA/AIDA.h>
20 #include <marlin/AIDAProcessor.h>
21 #include <AIDA/ITupleFactory.h>
22 #include <AIDA/ITuple.h>
23 #include <AIDA/IHistogramFactory.h>
24 #include <AIDA/IHistogram1D.h>
25 #include <AIDA/IHistogram2D.h>
26 
27 //LCIO
28 #include <EVENT/LCFloatVec.h>
29 #include <IMPL/TrackerDataImpl.h>
30 #include <IMPL/TrackerPulseImpl.h>
31 #include <IMPL/TrackerHitImpl.h>
32 #include <IMPL/TrackImpl.h>
33 
34 // GEAR
35 #include <gear/TPCParameters.h>
36 #include <gear/TPCModule.h>
37 #include <gearimpl/GlobalPadIndex.h>
38 
39 //MARLIN
40 #include <marlin/Global.h>
41 
42 //ROOT
43 #include <Minuit2/MnUserParameters.h>
44 #include <Minuit2/MnMigrad.h>
45 #include <Minuit2/FunctionMinimum.h>
46 #include <Minuit2/Minuit2Minimizer.h>
47 
48 #include "Math/Minimizer.h"
49 #include "Math/Functor.h"
50 #include <TMath.h>
51 #include <TTree.h>
52 #include <TH2D.h>
53 #include <TH2F.h>
54 #include <TH1F.h>
55 #include <TF1.h>
56 #include <TCanvas.h>
57 #include <TApplication.h>
58 
59 namespace marlintpc
60 {
93  class MMAdvancedCalibrationProcessor : public marlin::Processor
94  {
95  public:
96 
97  virtual Processor* newProcessor() { return new MMAdvancedCalibrationProcessor; }
98 
100 
101  virtual void init();
102 
103  virtual void processRunHeader(EVENT::LCRunHeader* run);
104 
105  virtual void processEvent(EVENT::LCEvent* evt);
106 
107  virtual void check(EVENT::LCEvent* evt);
108 
109  virtual void end();
110 
111  protected:
112 
113  //Required Parameters
114  lcio::StringVec _inputColNames; // Name of the input collection
115  std::string _output_path;
116  std::string _source;
117  std::string _type;
118  std::string _prfType;
119  int _trackType;
120 
121  std::vector<float> _stepVec;
122  std::vector<float> _minVec;
123  std::vector<float> _maxVec;
124  std::vector<float> _startVec;
125 
126 
127  //Optional Parameters
128  double _tolerance;
129  int _iter;
130  int _fcn;
131  int _normType;
132  bool _fitOutput;
133  bool _rowDep;
134  bool _fitTrack;
135  bool _padHits;
136  std::vector<int> _moduleList;
137 
138  //Class Variables
139  int _curEvt; //Keep track of the current event.
140  int _nPar;
141  bool _moduleDep;
142 
143  AIDA::ITuple* _fitData;
144  AIDA::ITuple* _hitData;
145 
146  TTree* _tree;
147  std::vector< TH1F * > _histogramPar;
148  std::vector< std::vector<TH2F *> > _histogramCorrPar;
149 
150  ROOT::Math::Minimizer* min;
151 
152  };
153 } // namespace marlintpc
154 #endif // MMADVANCEDCALIBRATIONPROCESSOR_H
Basic overview:
Definition: MMAdvancedCalibrationProcessor.h:93