CachedXShowerRegenerator.h
Go to the documentation of this file.
1 #ifndef _CachedXShowerRegeneratorAG_CachedXShowerRegenerator_h_
2 #define _CachedXShowerRegeneratorAG_CachedXShowerRegenerator_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 "StationXPositionMatrix.h"
23 #include "LogXGaussSmearing.h"
24 
25 namespace utl {
26  class ShowerParticleIterator;
27  class TimeInterval;
28  class TabulatedFunction;
29 }
30 
31 namespace CachedXShowerRegeneratorAG {
32 
33  class LogXGaussSmearing;
34 
35  class ShowerData {
36  public:
37 
39  fStationMatrix(matrix),
41  fMinR2(0) {}
42 
43  typedef std::map<int, int> StationParticleMap;
45  typedef std::map<int, TimeStat> TimeStatMap;
47  typedef std::map<int, WeightStat> WeightStatMap;
48  typedef std::map<unsigned int, double> WeightCounterMap;
49 
59  double fMinR2;
62 
63  };
64 
65 
67  public:
69 
70  VModule::ResultFlag Init();
71  VModule::ResultFlag Run(evt::Event& event);
72  VModule::ResultFlag Finish();
73 
74  private:
75  bool IsParticleEnergyLow(const int, const double) const;
76 
77  void InitNewShower(evt::Event& event);
78 
79  void OutputStats(evt::Event& event);
80 
81  boost::tuple<unsigned int, double>
82  ParticleNumberAndWeight(const double&, const int&);
83 
84  // Parameters taken from xml file
85 
86  unsigned int fMaxParticles;
87 
90 
96 
97  double fDeltaROverR;
98  double fDeltaPhi;
104 
109 
111 
115 
116 
118 
120  unsigned int fNOutOfRangeWeight;
121  double fWeightLimit;
122 
124  double fAmigaRadius;
125 
127 
128  int unityWeightCtr; // TEMP
129  int largeWeightCtr; // TEMP
130 
131  REGISTER_MODULE("CachedXShowerRegeneratorAG", CachedXShowerRegenerator);
132  };
133 
134 }
135 
136 #endif
137 
138 
139 // Configure (x)emacs for this file ...
140 // Local Variables:
141 // mode: c++
142 // compile-command: "make -C .. -k"
143 // End:
pointer with built-in initialization, deletion, deep copying
Definition: ShadowPtr.h:163
Iterator to retrieve particles from utl::VShowerParticlList.
Class to hold collection (x,y) points and provide interpolation between them.
boost::tuple< unsigned int, double > ParticleNumberAndWeight(const double &, const int &)
(Optional) special handling for particles with very large weights.
REGISTER_MODULE("CachedXShowerRegeneratorAG", CachedXShowerRegenerator)
utl::ShadowPtr< LogXGaussSmearing > fLogXGauss
VModule::ResultFlag Init()
Initialize: invoked at beginning of run (NOT beginning of event)
ShowerData(const StationPositionMatrix &matrix)
VModule::ResultFlag Finish()
Finish: invoked at end of the run (NOT end of the event)
Module interface.
Definition: VModule.h:53
utl::Accumulator::MinMaxAverage< double > WeightStat
VModule::ResultFlag Run(evt::Event &event)
Run: invoked once per event.
CLHEP::HepRandomEngine RandomEngineType
Definition: RandomEngine.h:30
std::map< unsigned int, double > WeightCounterMap
utl::Accumulator::MinMax< utl::TimeInterval > TimeStat

, generated on Tue Sep 26 2023.