19#include "BDSBunchGauss.hh"
21#include "parser/beam.h"
23#include "Randomize.hh"
24#include "CLHEP/RandomObjects/RandMultiGauss.h"
28BDSBunchGauss::BDSBunchGauss():
35 G4Transform3D beamlineTransformIn,
36 const G4double beamlineSIn)
40 sigmaGM[0][0] = std::pow(beam.
sigmaX, 2);
41 sigmaGM[1][1] = std::pow(beam.
sigmaXp,2);
42 sigmaGM[2][2] = std::pow(beam.
sigmaY, 2);
43 sigmaGM[3][3] = std::pow(beam.
sigmaYp,2);
44 sigmaGM[4][4] = std::pow(
sigmaT, 2);
45 sigmaGM[5][5] = std::pow(
sigmaE, 2);
Common functionality for a 6D Gaussian distribution.
virtual void SetOptions(const BDSParticleDefinition *beamParticle, const GMAD::Beam &beam, const BDSBunchType &distrType, G4Transform3D beamlineTransformIn=G4Transform3D::Identity, const G4double beamlineS=0)
CLHEP::RandMultiGauss * gaussMultiGen
Randon number generator with sigma matrix and mean.
CLHEP::RandMultiGauss * CreateMultiGauss(CLHEP::HepRandomEngine &anEngine, const CLHEP::HepVector &mu, CLHEP::HepSymMatrix &sigma)
virtual void SetOptions(const BDSParticleDefinition *beamParticle, const GMAD::Beam &beam, const BDSBunchType &distrType, G4Transform3D beamlineTransformIn=G4Transform3D::Identity, const G4double beamlineS=0)
G4double sigmaE
Centre of distributions.
G4double sigmaT
Centre of distributions.
Wrapper for particle definition.
Improve type-safety of native enum data type in C++.
double sigmaX
for the gaussian beam distribution
double sigmaXp
for the gaussian beam distribution
double sigmaYp
for the gaussian beam distribution
double sigmaY
for the gaussian beam distribution