FdElectronicsSimulator.h
Go to the documentation of this file.
1 
12 #ifndef _FdElectronicsSimulatorOG_FdElectronicsSimulator_h_
13 #define _FdElectronicsSimulatorOG_FdElectronicsSimulator_h_
14 
15 
16 #include <fwk/VModule.h>
17 #include <vector>
18 #include <map>
19 #include <string>
20 #include <utl/TabulatedFunction.h>
21 
22 namespace utl {
23  class RandomEngine;
24 }
25 
26 namespace fevt {
27  class Telescope;
28 }
29 
30 namespace fdet {
31  class Telescope;
32 }
33 
34 namespace FdElectronicsSimulatorOG {
35 
52 
53  public:
54 
57 
61 
65  void SetPeFluctuations(bool doFluctuations) { fPeFluctuations = doFluctuations; }
66 
67  protected:
68 
69  private:
70 
72 
75 
76  //double fCutoffFrequency; // unused. LN.
77  //double fNoiseEqBdw; // unused. LN.
78  int fBaseline;
81 
83 
85  std::map<std::string, utl::TabulatedFunction> fSimThresholdValues;
86 
88 
89  std::map<int, double> fPeBgNoiseTable;
90  // std::vector<double> fADCConvTable;
91  std::map<int, double> fCalibCorrection;
92  std::map<int, double> fQEffAtNormWavelength;
93  std::map<int, double> fOpticalEfficiencyCorrection;
94 
95  std::vector<double> fErrFuncFactors;
97 
98  bool InitCamera(fevt::Telescope& tel);
99  void ElecSim(fevt::Telescope& tel);
100  double EvalRedThreshold(double npe, int nSamp, double gainVariance);
101  void PrepareTimeConvolution(const fdet::Telescope& detTel);
102  void DoTimeConvolution(const std::vector<double>& originalTrace,
103  std::vector<double>& convolutedTrace,
104  unsigned int timeOffset);
105 
107 
108  REGISTER_MODULE("FdElectronicsSimulatorOG", FdElectronicsSimulator);
109 
110  };
111 
112 } // FdElectronicsSimulatorOG
113 
114 
115 #endif // _FdElectronicsSimulatorOG_FdElectronicsSimulator_h_
116 
117 // Configure (x)emacs for this file ...
118 // Local Variables:
119 // mode:c++
120 // compile-command: "cd $AUGER_BASE && make"
121 // End:
void DoTimeConvolution(const std::vector< double > &originalTrace, std::vector< double > &convolutedTrace, unsigned int timeOffset)
void SetPeFluctuations(bool doFluctuations)
Set whether photo electron fluctuations should be simulated.
fwk::VModule::ResultFlag Finish()
Finish: invoked at end of the run (NOT end of the event)
void PrepareTimeConvolution(const fdet::Telescope &detTel)
fwk::VModule::ResultFlag Init()
Initialize: invoked at beginning of run (NOT beginning of event)
std::map< std::string, utl::TabulatedFunction > fSimThresholdValues
bool GetPeFluctuations()
Returns true if photo electron fluctuations are enabled.
Wraps the random number engine used to generate distributions.
Definition: RandomEngine.h:27
Module interface.
Definition: VModule.h:53
double EvalRedThreshold(double npe, int nSamp, double gainVariance)
Detector description interface for Telescope-related data.
ResultFlag
Flag returned by module methods to the RunController.
Definition: VModule.h:60
fwk::VModule::ResultFlag Run(evt::Event &event)
Run: invoked once per event.
Simulates the electronics of the telescopes.
Fluorescence Detector Telescope Event.
REGISTER_MODULE("FdElectronicsSimulatorOG", FdElectronicsSimulator)

, generated on Tue Sep 26 2023.