DD4hep  1.30.0
Detector Description Toolkit for High Energy Physics
Geant4IsotropeGenerator.h
Go to the documentation of this file.
1 //==========================================================================
2 // AIDA Detector description implementation
3 //--------------------------------------------------------------------------
4 // Copyright (C) Organisation europeenne pour la Recherche nucleaire (CERN)
5 // All rights reserved.
6 //
7 // For the licensing terms see $DD4hepINSTALL/LICENSE.
8 // For the list of contributors see $DD4hepINSTALL/doc/CREDITS.
9 //
10 // Author : M.Frank
11 //
12 //==========================================================================
13 
14 #ifndef DDG4_GEANT4ISOTROPEGENERATOR_H
15 #define DDG4_GEANT4ISOTROPEGENERATOR_H
16 
17 // Framework include files
19 
21 namespace dd4hep {
22 
24  namespace sim {
26 
32  protected:
34  std::string m_distribution;
36  double m_phiMin;
38  double m_phiMax;
40  double m_thetaMin;
42  double m_thetaMax;
43 
45 
48  virtual void getParticleDirection(int num, ROOT::Math::XYZVector& direction, double& momentum) const override;
50  void getParticleDirectionFFbar(int num, ROOT::Math::XYZVector& direction, double& momentum) const;
52  void getParticleDirectionEta(int num, ROOT::Math::XYZVector& direction, double& momentum) const;
54  void getParticleDirectionCosTheta(int num, ROOT::Math::XYZVector& direction, double& momentum) const;
56  void getParticleDirectionUniform(int num, ROOT::Math::XYZVector& direction, double& momentum) const;
57 
58  public:
64  Geant4IsotropeGenerator(Geant4Context* context, const std::string& name);
66  virtual ~Geant4IsotropeGenerator();
67  };
68  } // End namespace sim
69 } // End namespace dd4hep
70 #endif // DDG4_GEANT4ISOTROPEGENERATOR_H
dd4hep::sim::Geant4IsotropeGenerator::~Geant4IsotropeGenerator
virtual ~Geant4IsotropeGenerator()
Default destructor.
Definition: Geant4IsotropeGenerator.cpp:35
dd4hep::sim::Geant4IsotropeGenerator::m_phiMax
double m_phiMax
Property: Maximal phi angular value.
Definition: Geant4IsotropeGenerator.h:38
dd4hep::sim::Geant4IsotropeGenerator::getParticleDirectionUniform
void getParticleDirectionUniform(int num, ROOT::Math::XYZVector &direction, double &momentum) const
Uniform particle distribution.
Definition: Geant4IsotropeGenerator.cpp:40
Geant4ParticleGenerator.h
dd4hep::sim::Geant4IsotropeGenerator::m_distribution
std::string m_distribution
Property: Distribution name. Default: "uniform". Allowed: "uniform", "cos(theta)",...
Definition: Geant4IsotropeGenerator.h:34
dd4hep::sim::Geant4IsotropeGenerator::m_phiMin
double m_phiMin
Property: Minimal phi angular value.
Definition: Geant4IsotropeGenerator.h:36
dd4hep::sim::Geant4IsotropeGenerator::m_thetaMax
double m_thetaMax
Property: Maximal theta angular value.
Definition: Geant4IsotropeGenerator.h:42
dd4hep::sim::Geant4IsotropeGenerator::getParticleDirectionEta
void getParticleDirectionEta(int num, ROOT::Math::XYZVector &direction, double &momentum) const
e+e- --> ffbar particle distribution ~ 1 + cos^2(theta)
Definition: Geant4IsotropeGenerator.cpp:69
dd4hep::sim::Geant4IsotropeGenerator::getParticleDirectionCosTheta
void getParticleDirectionCosTheta(int num, ROOT::Math::XYZVector &direction, double &momentum) const
Particle distribution ~ cos(theta)
Definition: Geant4IsotropeGenerator.cpp:54
dd4hep::sim::Geant4IsotropeGenerator::m_thetaMin
double m_thetaMin
Property: Minimal theta angular value.
Definition: Geant4IsotropeGenerator.h:40
dd4hep::sim::Geant4IsotropeGenerator::Geant4IsotropeGenerator
Geant4IsotropeGenerator(const Geant4IsotropeGenerator &copy)=delete
Inhibit copy constructor.
dd4hep::sim::Geant4IsotropeGenerator::getParticleDirectionFFbar
void getParticleDirectionFFbar(int num, ROOT::Math::XYZVector &direction, double &momentum) const
e+e- --> ffbar particle distribution ~ 1 + cos^2(theta)
Definition: Geant4IsotropeGenerator.cpp:90
dd4hep::sim::Geant4IsotropeGenerator::Geant4IsotropeGenerator
Geant4IsotropeGenerator()=delete
Inhibit default constructor.
dd4hep::sim::Geant4Action::name
const std::string & name() const
Access name of the action.
Definition: Geant4Action.h:280
dd4hep::sim::Geant4ParticleGenerator
Generate particles isotrop in space around origine (0,0,0)
Definition: Geant4ParticleGenerator.h:38
dd4hep
Namespace for the AIDA detector description toolkit.
Definition: AlignmentsCalib.h:28
dd4hep::sim::Geant4IsotropeGenerator::getParticleDirection
virtual void getParticleDirection(int num, ROOT::Math::XYZVector &direction, double &momentum) const override
Particle modification. Caller presets defaults to: ( direction = m_direction, momentum = [m_momentumM...
Definition: Geant4IsotropeGenerator.cpp:119
dd4hep::detail::tools::copy
void copy(Alignment from, Alignment to)
Copy alignment object from source object.
Definition: AlignmentTools.cpp:43
dd4hep::sim::Geant4Context
Generic context to extend user, run and event information.
Definition: Geant4Context.h:201
dd4hep::sim::Geant4IsotropeGenerator
Generate particles isotrop in space around origine (0,0,0)
Definition: Geant4IsotropeGenerator.h:31
dd4hep::sim::Geant4Action::context
Geant4Context * context() const
Access the context.
Definition: Geant4Action.h:270