ArtificialShowerFileParticleIterator.h
Go to the documentation of this file.
1 #ifndef _io_ArtificialShowerFileParticleIterator_h_
2 #define _io_ArtificialShowerFileParticleIterator_h_
3 
4 #include <fstream>
5 
6 #include <utl/VShowerFileParticleIterator.h>
7 #include <utl/Particle.h>
8 #include <utl/CoordinateSystemPtr.h>
9 #include <fwk/RandomEngineRegistry.h>
10 #include <utl/RandomEngine.h>
11 #include <CLHEP/Random/RandFlat.h>
12 #include <CLHEP/Random/RandPoisson.h>
13 #include <CLHEP/Random/RandGauss.h>
14 #include <utl/GeometryUtilities.h>
15 
16 
17 
18 
19 using CLHEP::RandFlat;
20 using CLHEP::RandPoisson;
21 using namespace fwk;
22 using namespace utl;
23 
24 
25 using namespace std;
26 
27 namespace utl {
28  class Particle;
29 }
30 
31 namespace io {
32 
43  public:
45  ArtificialShowerFileParticleIterator(double maxRadius,
46  double muonEnergy, double photonEnergy, double electronEnergy,
47  double muonDensity, double photonDensity, double electronDensity,
48  double particleZenith, double particleAzimuth, double particleTime,
49  double particleWeight, bool randomAzimuth);
50 
51 
53 
54  virtual utl::Particle* GetOneParticle(const utl::CoordinateSystemPtr& groundCS);
55  virtual void Rewind();
56 
57  void SetShowerZenith(const double showerZenith);
58  void SetShowerAzimuth(const double showerAzimuth);
59 
60  //protected:
61  //virtual utl::CoordinateSystemPtr ComputeExternalShowerCoordinateSystem(const utl::CoordinateSystemPtr& cs);
62 
63  private:
65 
66  void GenerateParticle(const utl::CoordinateSystemPtr& groundCS);
67  void ReadXMLParameters();
68 
69  // utl::CoordinateSystemPtr fArtificialCoordinateSystem;
70 
71  double fShowerZenith;
73  double fMaxRadius;
74  double fMuonEnergy;
75  double fPhotonEnergy;
77  double fMuonDensity;
82  double fParticleTime;
85 
86 
88 
89 
90  unsigned int fGeneratedParticles;
91  unsigned int fTotalParticles;
92  };
93 
94 }
95 
96 
97 #endif
Describes a particle for Simulation.
Definition: Particle.h:26
Interface class for accessing a list of particles from a shower file.
boost::shared_ptr< const CoordinateTransformer > CoordinateSystemPtr
Shared pointer for coordinate systems.
CLHEP::HepRandomEngine RandomEngineType
Definition: RandomEngine.h:30

, generated on Tue Sep 26 2023.