19#include "BDSBunchTwiss.hh"
21#include "BDSException.hh"
22#include "BDSUtilities.hh"
24#include "parser/beam.h"
28#include "Randomize.hh"
29#include "CLHEP/Matrix/SymMatrix.h"
30#include "CLHEP/Matrix/Vector.h"
31#include "CLHEP/RandomObjects/RandMultiGauss.h"
32#include "CLHEP/Units/PhysicalConstants.h"
37BDSBunchTwiss::BDSBunchTwiss():
39 betaX(0.0), betaY(0.0),
40 alphaX(0.0), alphaY(0.0),
41 emitX(0.0), emitY(0.0),
42 gammaX(0.0), gammaY(0.0),
43 dispX(0.0), dispY(0.0),
44 dispXP(0.0), dispYP(0.0)
50 G4Transform3D beamlineTransformIn,
51 const G4double beamlineSIn)
95 sigmaGM[4][4] = std::pow(
sigmaT,2);
96 sigmaGM[5][5] = std::pow(
sigmaE,2);
121 {
throw BDSException(__METHOD_NAME__,
"emitx must be finite!");}
123 {
throw BDSException(__METHOD_NAME__,
"emity must be finite!");}
125 {
throw BDSException(__METHOD_NAME__,
"betx must be finite!");}
127 {
throw BDSException(__METHOD_NAME__,
"bety must be finite!");}
Common functionality for a 6D Gaussian distribution.
CLHEP::RandMultiGauss * CreateMultiGauss(CLHEP::HepRandomEngine &anEngine, const CLHEP::HepVector &mu, CLHEP::HepSymMatrix &sigma)
CLHEP::RandMultiGauss * gaussMultiGen
Randon number generator with sigma matrix and mean.
virtual void SetOptions(const BDSParticleDefinition *beamParticle, const GMAD::Beam &beam, const BDSBunchType &distrType, G4Transform3D beamlineTransformIn=G4Transform3D::Identity, const G4double beamlineS=0)
G4double gammaX
Twiss parameters.
G4double betaY
Twiss parameters.
virtual void CheckParameters()
G4double dispY
Twiss parameters.
G4double gammaY
Twiss parameters.
G4double emitY
Twiss parameters.
G4double dispYP
Twiss parameters.
G4double alphaY
Twiss parameters.
G4double dispX
Twiss parameters.
virtual void SetOptions(const BDSParticleDefinition *beamParticle, const GMAD::Beam &beam, const BDSBunchType &distrType, G4Transform3D beamlineTransformIn=G4Transform3D::Identity, const G4double beamlineS=0)
G4double emitX
Twiss parameters.
G4double alphaX
Twiss parameters.
G4double dispXP
Twiss parameters.
G4double betaX
Twiss parameters.
G4double sigmaE
Centre of distributions.
G4double sigmaP
Centre of distributions.
G4double sigmaT
Centre of distributions.
static void SetEmittances(const BDSParticleDefinition *beamParticle, const GMAD::Beam &beam, G4double &emittGeometricX, G4double &emittGeometricY, G4double &emittNormalisedX, G4double &emittNormalisedY)
virtual void CheckParameters()
General exception with possible name of object and message.
Wrapper for particle definition.
Improve type-safety of native enum data type in C++.
double dispy
initial twiss parameters
double alfy
initial twiss parameters
double betx
initial twiss parameters
double dispxp
initial twiss parameters
double dispyp
initial twiss parameters
double dispx
initial twiss parameters
double alfx
initial twiss parameters
double bety
initial twiss parameters