G/ApertureLight.h
Go to the documentation of this file.
1 #ifndef _FdProfileConstrainedGeometryFitPG_ApertureLight_h
2 #define _FdProfileConstrainedGeometryFitPG_ApertureLight_h
3 
4 
5 #include <fwk/VModule.h>
6 #include <fevt/FdConstants.h>
7 #include <evt/Event.h>
8 #include <utl/Vector.h>
9 #include <utl/AugerUnits.h>
10 #include <map>
11 #include <vector>
12 
14 using namespace utl;
15 
16 namespace fevt {
17  class Eye;
18  class Telescope;
19 }
20 
21 namespace fdet {
22  class Pixel;
23  class Telescope;
24 }
25 
26 namespace utl {
28 }
29 
30 
31 namespace FdProfileConstrainedGeometryFitPG {
32 
39  // auxillary class for light flux loop
41 
42  public:
43  // time bin start
44  unsigned int fT1;
45  // time bin stop
46  unsigned int fT2;
47 
48  // index within ADC trace
49  unsigned int fADCTraceIndex;
50 
51  // chi_i vector at tMean
52  double fChiVecMean[3];
53 
54  // telescope flux and variance sums
55  double fTelFluxSum;
58 
59  // Eye flux and variance sums
60  double fEyeFluxSum;
63 
64  // For calculating the time ranges that are valid
65  // for efficiency-less profile reconstruction
67 
68  // The set of pixel ids in zeta at the given time
69  std::vector<unsigned int> fPixelsInZeta;
70 
71  // Flag whether the bin is part of the time fit
73  };
74 
75 
76  class ApertureLight {
77 
81  ePerEyeAndTelescope
82  };
83 
84  public:
85 
86  bool Init();
87  bool Run(evt::Event& event);
88  void SetStripMode(bool strip=true) { fStripMode = strip; }
89 
90  private:
91 
92  bool FindLightFlux(fevt::Eye& eye);
93 
96  //bool fEyeModeAllowTimeOverlap; // unused. LN.
97  //bool fStopZetaAtBorder; // unused. LN.
98  //bool fTelModeStopZetaAtBorder; // unused. LN.
99  //bool fEyeModeStopZetaAtBorder; // unused. LN.
100  //eModeOfOperation fConfigMode; // unused. LN.
101  //eModeOfOperation fMode; // unused. LN.
107 
109 
111  std::map<unsigned short, std::vector<ShowerGeometryData> > fShowerGeometryData;
112 
115  bool IsNearBorder(const utl::Vector& direction,
116  const fevt::Telescope& telescope,
117  double zeta) const;
118 
120  double FindZeta( fevt::Eye& eye,
121  double initZeta,
122  double finZeta,
123  double stepZeta,
124  bool fillFlux=false );
125 
128  GetClearedTelescopeLightFlux( fevt::Telescope& tel,
129  const fevt::FdConstants::LightSource source );
130 
133  GetClearedEyeLightFlux( fevt::Eye& eye,
134  const fevt::FdConstants::LightSource source );
135 
137  void FillEyeFluxes(fevt::Eye&,
138  const std::vector<double> &,
139  const std::vector<double> &,
140  const std::vector<double> &,
141  const std::vector<double> &,
142  const std::vector<double> &);
143 
145  void FillTelescopeFluxes(fevt::Telescope&,
146  const std::vector<double> &,
147  const std::vector<double> &,
148  const std::vector<double> &,
149  const std::vector<double> &,
150  const std::vector<double> &,
151  const std::vector<const std::vector<unsigned int>*> &,
152  const std::list<std::pair<double, double> > &);
153 
155  void FillFluxes(utl::TabulatedFunctionErrors&,
158  const std::vector<double> &,
159  const std::vector<double> &,
160  const std::vector<double> &,
161  const std::vector<double> &,
162  const std::vector<double> &);
163 
165  bool CalculateShowerGeometryData(const fevt::Eye& eye);
166 
167  private:
168  /* nested class representing the latest telescope times for sorting */
169  class LastTelTime {
170  public:
171  LastTelTime(unsigned int telid, unsigned int lasttime) : fTelId(telid), fLastTime(lasttime) {}
172  unsigned int fTelId;
173  unsigned int fLastTime;
175  };
176 
177  };
178 
179 } //namespace;
180 
181 #endif
static bool TelescopeTimeCmp(LastTelTime a, LastTelTime b)
Fluorescence Detector Eye Event.
Definition: FEvent/Eye.h:29
void Init()
Initialise the registry.
LastTelTime(unsigned int telid, unsigned int lasttime)
boost::shared_ptr< const CoordinateTransformer > CoordinateSystemPtr
Shared pointer for coordinate systems.
LightSource
Possible light sources.
Definition: FdConstants.h:9
Vector object.
Definition: Vector.h:30
std::map< unsigned short, std::vector< ShowerGeometryData > > fShowerGeometryData
geometry and trace bin data
Fluorescence Detector Telescope Event.

, generated on Tue Sep 26 2023.