UniversalityFitter.h
Go to the documentation of this file.
1 
9 #ifndef _UniversalityFitter_UniversalityFitter_h_
10 #define _UniversalityFitter_UniversalityFitter_h_
11 
12 #include <string>
13 #include <sstream>
14 #include <fstream>
15 
16 #include <fwk/VModule.h>
17 
18 #include "UnivRecNS/UnivRec.h"
20 
21 namespace utl {
22  class RandomEngine;
23 }
24 
25 namespace mdet {
26  class Scintillator;
27 }
28 
29 namespace UniversalityFitter {
30 
31  enum StationType {
35  };
36 
37  struct StationFitData {
38  public:
40  useUnsaturatedTrace(false), isSilent(false),
41  AreaOverPeak(0), startBin(0), stopBin(0), t10(0), t50(0), t90(0) {};
42 
43  int stationId;
45  double totalSignal;
48  bool isSilent;
49  double AreaOverPeak;
50  double DetectorArea;
51 
52  std::vector<double> trace;
53 
55  int startBin;
56  int stopBin;
57 
58  double t10;
59  double t50;
60  double t90;
61 
63  };
64 
65  struct FDParameters {
66  public:
67  FDParameters(): xmax(0), energy(0) {};
68 
69  std::string eyeName;
70  double xmax;
71  double xmaxUnc;
72  double energy;
73  double energyUnc;
77  };
78 
79  class MCParameters {
80  public:
82  {
83  reset();
84  };
85  void reset()
86  {
87  xmax = 0;
88  x0 = 0;
89  Nmu = 0;
90  energy = 0;
91  }
92 
93  double xmax;
94  double xmaxMu;
95  double x0;
96  double Nmu;
97  double energy;
101  };
102 
104  public:
106  {
107  reset();
108  };
109  void reset()
110  {
111  isGoodRec = false;
112  xmax = 0;
113  x0 = 0;
114  Nmu = 0;
115  energy = 0;
116  xmaxUnc = 0;
117  x0Unc = 0;
118  NmuUnc = 0;
119  energyUnc = 0;
120  TimeModelOffset = 0;
121  TimeModelOffsetUnc = 0;
122  }
123 
124  bool isGoodRec;
125 
126  double xmax;
127  double xmaxUnc;
128 
129  double x0;
130  double x0Unc;
131 
132  double Nmu;
133  double NmuUnc;
134 
135  double energy;
136  double energyUnc;
137 
140 
142  double axisUncTheta;
143  double axisUncPhi;
144 
146  double coreUncX;
147  double coreUncY;
148 
150 
154  };
155 
157  public:
159 
160  int RecType;
164  std::string outputFileName;
165  };
166 
168  public:
170 
171  std::string outputFileName;
172  bool IsData;
174  int RecType;
176  int RecSys;
177  int verbose;
178  int debug;
179  };
180 
181  // global for use by TMinuit
182  static std::unique_ptr<UnivRecNS::UnivRec> gUnivRecNS;
183  static std::vector<int> parStatus;
184 
186 
187  public:
191 
192  void SwitchMethod();
193 
194  private:
195 
197  double fMinEnergy;
198 
202  double fMinDXground;
206  std::string fActiveMethod;
208 
210 
213 
216 
217  std::ofstream fitInfoKG;
218  std::ofstream fitInfoBG;
219 
221 
222  double fDensity;
224 
225  //0: "combined", 1: "Los Leones", 2: "Los Morados", 3: "Loma Amarilla", 4: "Coihueco", 5: "Heat", 6: "HECO"
226  std::map<int, FDParameters> fdParameters;
227 
231 
232  std::vector<StationFitData> fStations;
235 
237 
240 
241  double SmearValue(double mean, double spread);
242 
243  void SetRecData(evt::Event& event);
244  void WriteRecParameters(evt::Event& event);
245 
246  // the same object is used for all events (creating the fitter instance is rather slow)
247  std::unique_ptr<UnivFitterKG::Fitter> fFitterKG;
248 
249  static void UnivRecNS_FCN(Int_t& npar, Double_t* gin, Double_t& f, Double_t* par, Int_t iflag);
250  bool Rec(UnivRecNS::UnivRec& theRec);
251 
252  REGISTER_MODULE("UniversalityFitter", UniversalityFitter);
253 
254  };
255 
256 }
257 
258 
259 #endif
fwk::VModule::ResultFlag Init()
Initialize: invoked at beginning of run (NOT beginning of event)
Point object.
Definition: Point.h:32
bool Rec(UnivRecNS::UnivRec &theRec)
void RunBarilocheReconstruction(evt::Event &event)
std::map< int, FDParameters > fdParameters
fwk::VModule::ResultFlag Run(evt::Event &event)
Run: invoked once per event.
const unsigned int npar
Definition: UnivRec.h:75
void RunKarlsruheReconstruction(evt::Event &event)
A TimeStamp holds GPS second and nanosecond for some event.
Definition: TimeStamp.h:110
std::unique_ptr< UnivFitterKG::Fitter > fFitterKG
Wraps the random number engine used to generate distributions.
Definition: RandomEngine.h:27
REGISTER_MODULE("UniversalityFitter", UniversalityFitter)
double SmearValue(double mean, double spread)
Module interface.
Definition: VModule.h:53
std::vector< StationFitData > fStations
ResultFlag
Flag returned by module methods to the RunController.
Definition: VModule.h:60
fwk::VModule::ResultFlag Finish()
Finish: invoked at end of the run (NOT end of the event)
static std::unique_ptr< UnivRecNS::UnivRec > gUnivRecNS
Vector object.
Definition: Vector.h:30
static std::vector< int > parStatus
bool InitBarilocheReconstruction(evt::Event &event)
static void UnivRecNS_FCN(Int_t &npar, Double_t *gin, Double_t &f, Double_t *par, Int_t iflag)

, generated on Tue Sep 26 2023.