MdShowerRegenerator.h
Go to the documentation of this file.
1 #ifndef _MdShowerRegeneratorAG_MdShowerRegenerator_h_
2 #define _MdShowerRegeneratorAG_MdShowerRegenerator_h_
3 
4 #include <fwk/VModule.h>
5 #include <utl/Particle.h>
6 #include <utl/RandomEngine.h>
7 #include <utl/ShowerParticleIterator.h>
8 #include <utl/TimeDistribution.h>
9 #include <utl/AugerUnits.h>
10 
11 
12 namespace utl {
13  class ShowerParticleIterator;
14  class TimeInterval;
15  class TabulatedFunction;
16 }
17 
18 namespace mevt {
19  class Counter;
20 }
21 
22 namespace mdet {
23  class Counter;
24 }
25 
26 
27 namespace MdShowerRegeneratorAG {
28 
29  struct InStats;
30 
32  /* Regenerates particle for ground propagation
33  * the idea is similar to what is done for the tank
34  * but regeneration algorithm must consider that in this
35  * case the detector volume is not the tank itself but the soil
36  * beneath the tank till the muon counter (which is the active
37  * component of the detector. In some sense the equivalence is:
38  * water -> soil
39  * pmts -> scintillators
40  */
41  public:
43 
44  VModule::ResultFlag Init();
45  VModule::ResultFlag Run(evt::Event& event);
46  VModule::ResultFlag Finish();
47 
48  private:
49 
50  bool IsParticleEnergyLow(const int, const double) const;
51  bool IsMuon( const int );
52  bool IsIn( double phi, double r, InStats & );
53  void SetRadRange(double r1, double r2);
54  void SetPhiRange(double phi, double dphi);
55  bool IsPhiIn(double phi);
56  bool IsRIn(double r);
57 
58  // Parameters taken from xml file
61 
67 
68  double fDeltaROverR;
69  double fDeltaPhi;
71 
72  double fPhi1;
73  double fPhi2;
74  double fR1;
75  double fR2;
76 
78 
79  bool fOnlyMuons;
80  int fNMuons;
81  int fNInjected;
84 
85  REGISTER_MODULE("ShowerRegeneratorAG", MdShowerRegenerator);
86  };
87 
88 }
89 
90 #endif
91 
92 // Configure (x)emacs for this file ...
93 // Local Variables:
94 // mode: c++
95 // compile-command: "make -C .. -k"
96 // End:
VModule::ResultFlag Init()
Initialize: invoked at beginning of run (NOT beginning of event)
bool IsParticleEnergyLow(const int, const double) const
bool IsIn(double phi, double r, InStats &)
Module interface.
Definition: VModule.h:53
VModule::ResultFlag Run(evt::Event &event)
Run: invoked once per event.
CLHEP::HepRandomEngine RandomEngineType
Definition: RandomEngine.h:30
VModule::ResultFlag Finish()
Finish: invoked at end of the run (NOT end of the event)
REGISTER_MODULE("ShowerRegeneratorAG", MdShowerRegenerator)
utl::RandomEngine::RandomEngineType * fRandomEngine

, generated on Tue Sep 26 2023.