CachedShowerRegeneratorOG/CachedShowerRegenerator.h
Go to the documentation of this file.
1 #ifndef _CachedShowerRegeneratorOG_CachedShowerRegenerator_h_
2 #define _CachedShowerRegeneratorOG_CachedShowerRegenerator_h_
3 
11 #include <map>
12 
13 #include <fwk/VModule.h>
14 #include <utl/Particle.h>
15 #include <utl/RandomEngine.h>
16 #include <utl/ShadowPtr.h>
17 #include <utl/ShowerParticleIterator.h>
18 #include <utl/Accumulator.h>
19 #include <utl/TimeDistribution.h>
20 #include <utl/AugerUnits.h>
21 #include <boost/tuple/tuple.hpp>
22 #include "StationPositionMatrix.h"
23 #include "LogGaussSmearing.h"
24 
25 
26 namespace utl {
27  class ShowerParticleIterator;
28  class TimeInterval;
29  class TabulatedFunction;
30 }
31 
32 
48 namespace CachedShowerRegeneratorOG {
49 
50  class LogGaussSmearing;
51 
52 
53  class ShowerData {
54  public:
56  fStationMatrix(matrix)
57  { }
58 
59  typedef std::map<int, int> StationParticleMap;
61  typedef std::map<int, TimeStat> TimeStatMap;
63  typedef std::map<int, WeightStat> WeightStatMap;
64  typedef std::map<unsigned int, double> WeightCounterMap;
65 
75  double fMinSqrR = 0;
78  };
79 
80 
82  public:
84 
85  VModule::ResultFlag Init();
86  VModule::ResultFlag Run(evt::Event& event);
87  VModule::ResultFlag Finish() { return fwk::VModule::eSuccess; }
88 
89  private:
90  bool IsParticleEnergyLow(const int type, const double energy) const;
91 
92  void InitNewShower(evt::Event& event);
93 
94  void OutputStats(evt::Event& event);
95 
96  // Parameters taken from xml file
97 
99  unsigned int fParticlesPerCycle = 0;
100 
104 
105  double fInnerRadiusCut = 0;
106  double fOuterRadiusCut = 1e6*utl::km;
107 
108  double fElectronEnergyCut = 0;
109  double fMuonEnergyCut = 0;
110  double fPhotonEnergyCut = 0;
111  double fHadronEnergyCut = 0;
112  double fMesonEnergyCut = 0;
113 
114  double fDeltaROverR = 0;
115  double fDeltaPhi = 0;
118  double fPhiGranularity = 0;
119  double fRGranularity = 0;
122 
123  double fMuonWeightScale = 1;
124 
126 
127  // If UMD need to be simulated, injectcion of particles is onle on top of an increased cylinder.
128  bool fSimulateUMD = false;
129  double fUMDTightRadius = 0;
130  double fUMDMaxRadius = 0;
131 
132  // If MARTA RPC needs to be simulated, injectcion of particles is made on a bigger radius cylinder
133  bool fSimulateMARTA = false;
134  double fMARTARadius = 0;
135 
137 
138  REGISTER_MODULE("CachedShowerRegeneratorOG", CachedShowerRegenerator);
139  };
140 
141 }
142 
143 
144 #endif
pointer with built-in initialization, deletion, deep copying
Definition: ShadowPtr.h:163
Iterator to retrieve particles from utl::VShowerParticlList.
Report success to RunController.
Definition: VModule.h:62
constexpr double km
Definition: AugerUnits.h:125
VModule::ResultFlag Init()
Initialize: invoked at beginning of run (NOT beginning of event)
Module interface.
Definition: VModule.h:53
Regenerate thinned MC showers.
CLHEP::HepRandomEngine RandomEngineType
Definition: RandomEngine.h:30
VModule::ResultFlag Run(evt::Event &event)
Run: invoked once per event.
VModule::ResultFlag Finish()
Finish: invoked at end of the run (NOT end of the event)
REGISTER_MODULE("CachedShowerRegeneratorOG", CachedShowerRegenerator)

, generated on Tue Sep 26 2023.