FdApertureLightFinderKG/FdApertureLightFinder.h
Go to the documentation of this file.
1 
11 #ifndef _FdApertureLightFinderKG_FdApertureLightFinder_h_
12 #define _FdApertureLightFinderKG_FdApertureLightFinder_h_
13 
14 
15 #include <fwk/VModule.h>
16 #include <fevt/FdConstants.h>
17 #include <evt/Event.h>
18 #include <utl/Vector.h>
19 #include <utl/AugerUnits.h>
20 #include <map>
21 #include <vector>
22 
24 using namespace utl;
25 
26 
27 namespace fevt {
28  class Eye;
29  class Telescope;
30 }
31 
32 namespace fdet {
33  class Pixel;
34  class Telescope;
35 }
36 
37 namespace utl {
39 }
40 
41 namespace FdApertureLightFinderKG {
42 
59  // auxillary class for light flux loop
61 
62  public:
63  // time in ns of start
64  double fT1;
65  // time in ns of stop
66  double fT2;
67 
68  // index within ADC trace
69  unsigned int fADCTraceIndex;
70 
71  // chi_i vector at tMean
72  double fChiVecMean[3];
73 
74  // telescope flux and variance sums
75  double fTelFluxSum;
78 
79  // Eye flux and variance sums
80  double fEyeFluxSum;
83 
84  // For calculating the time ranges that are valid
85  // for efficiency-less profile reconstruction
87 
88  // The set of pixel ids in zeta at the given time
89  std::vector<unsigned int> fPixelsInZeta;
90 
91  // Flag whether the bin is part of the time fit
93  };
94 
95 
97 
101  ePerEyeAndTelescope
102  };
103 
104  public:
108 
109  private:
110  bool FindLightFlux(fevt::Eye& eye);
111 
113  int fVerbosity = 0;
114  //bool fEyeModeAllowTimeOverlap; // unused. LN.
115  //bool fStopZetaAtBorder; // unused. LN.
116  //bool fTelModeStopZetaAtBorder; // unused. LN.
117  //bool fEyeModeStopZetaAtBorder; // unused. LN.
118  //eModeOfOperation fConfigMode; // unused. LN.
119  //eModeOfOperation fMode; // unused. LN.
125 
127  std::map<unsigned short, std::vector<ShowerGeometryData>> fShowerGeometryData;
128 
131  bool IsNearBorder(const utl::Vector& direction,
132  const fevt::Telescope& telescope,
133  double zeta) const;
134 
136  double FindZeta(fevt::Eye& eye,
137  double initZeta,
138  double finZeta,
139  double stepZeta,
140  bool fillFlux = false);
141 
144  GetClearedTelescopeLightFlux(fevt::Telescope& tel,
145  const fevt::FdConstants::LightSource source);
146 
149  GetClearedEyeLightFlux(fevt::Eye& eye,
150  const fevt::FdConstants::LightSource source);
151 
153  void FillEyeFluxes(fevt::Eye&,
154  const std::vector<double>&,
155  const std::vector<double>&,
156  const std::vector<double>&,
157  const std::vector<double>&,
158  const std::vector<double>&);
159 
161  void FillTelescopeFluxes(fevt::Telescope&,
162  const std::vector<double>&,
163  const std::vector<double>&,
164  const std::vector<double>&,
165  const std::vector<double>&,
166  const std::vector<double>&,
167  const std::vector<const std::vector<unsigned int>*>&,
168  const std::list<std::pair<double, double>>&);
169 
171  void FillFluxes(utl::TabulatedFunctionErrors&,
174  const std::vector<double>&,
175  const std::vector<double>&,
176  const std::vector<double>&,
177  const std::vector<double>&,
178  const std::vector<double>&);
179 
181  bool CalculateShowerGeometryData(const fevt::Eye& eye);
182 
183  private:
184  /* nested class representing the latest telescope times for sorting */
185  class LastTelTime {
186  public:
187  LastTelTime(unsigned int telid, unsigned int lasttime) : fTelId(telid), fLastTime(lasttime) { }
188  unsigned int fTelId;
189  unsigned int fLastTime;
191  };
192 
193  REGISTER_MODULE("FdApertureLightKG", FdApertureLightFinder);
194 
195  };
196 
197 }
198 
199 
200 #endif
Fluorescence Detector Eye Event.
Definition: FEvent/Eye.h:29
void Init()
Initialise the registry.
fwk::VModule::ResultFlag Finish()
Finish: invoked at end of the run (NOT end of the event)
boost::shared_ptr< const CoordinateTransformer > CoordinateSystemPtr
Shared pointer for coordinate systems.
LightSource
Possible light sources.
Definition: FdConstants.h:9
Module interface.
Definition: VModule.h:53
std::map< unsigned short, std::vector< ShowerGeometryData > > fShowerGeometryData
geometry and trace bin data
#define REGISTER_MODULE(_moduleName_, _ModuleType_)
Definition: VModule.h:145
ResultFlag
Flag returned by module methods to the RunController.
Definition: VModule.h:60
A simple module to reconstruct the light flux at the apertures.
Vector object.
Definition: Vector.h:30
Fluorescence Detector Telescope Event.

, generated on Tue Sep 26 2023.