BDSIM
BDSIM is a Geant4 extension toolkit for simulation of particle transport in accelerator beamlines.
Loading...
Searching...
No Matches
Public Member Functions | Private Attributes
BDSLinkBunch Class Reference

A bunch distribution that holds a bunch from a Link. More...

#include <BDSLinkBunch.hh>

Inheritance diagram for BDSLinkBunch:
Inheritance graph
Collaboration diagram for BDSLinkBunch:
Collaboration graph

Public Member Functions

virtual BDSParticleCoordsFull GetNextParticleLocal ()
 Get the next particle.
 
void AddParticle (BDSParticleDefinition *particleDefinitionIn, const BDSParticleCoordsFull &coordsIn, int externalParticleID, int externalParentID)
 Append particle to the bunch for tracking.
 
void ClearParticles ()
 Delete all particle objects in the bunch and clear the vector.
 
const BDSParticleCoordsFull ParticleLocal ()
 Access the current particle definition of the current particle local coords in the bunch.
 
virtual const BDSParticleDefinition * ParticleDefinition () const
 Access the current particle definition of the current particle in the bunch.
 
void SetCurrentIndex (size_t iIndex)
 Set current particles index.
 
void Reset ()
 Reset current particle index.
 
void UpdateGeant4ParticleDefinition (G4int pdgID)
 TBC.
 
virtual void UpdateIonDefinition ()
 Override method in BDSBunch to use our local currentParticleDefinition member.
 
size_t Size () const
 Accessor.
 
int CurrentExternalParticleID () const
 Accessor.
 
int CurrentExternalParentID () const
 Accessor.
 
- Public Member Functions inherited from BDSBunch
 BDSBunch (const G4String &nameIn)
 
virtual void SetOptions (const BDSParticleDefinition *beamParticle, const GMAD::Beam &beam, const BDSBunchType &distrType, G4Transform3D beamlineTransformIn=G4Transform3D::Identity, const G4double beamlineS=0)
 
virtual void CheckParameters ()
 
virtual void Initialise ()
 Any initialisation - to be used after SetOptions, then CheckParameters.
 
BDSParticleCoordsFullGlobal GetNextParticle ()
 
virtual G4bool ExpectChangingParticleType () const
 A hint of whether we expect to require and extended particle set (ie pions, kaons, muons).
 
virtual BDSParticleCoordsFullGlobal GetNextParticleValid (G4int maxTries=100)
 
virtual void BeginOfRunAction (G4int numberOfEvents, G4bool batchMode)
 
virtual void SetGeneratePrimariesOnly (G4bool generatePrimariesOnlyIn)
 
G4bool UseCurvilinearTransform () const
 Access whether there's a finite S offset and therefore we're using a CL transform.
 
virtual void RecreateAdvanceToEvent (G4int eventOffset)
 
G4bool BeamParticleIsAnIon () const
 Access whether the beam particle is an ion or not.
 
G4bool ParticleDefinitionHasBeenUpdated () const
 
G4String Name () const
 Distribution name.
 
G4int CurrentBunchIndex () const
 Get the current bunch index for writing to output.
 
void CalculateBunchIndex (G4int eventIndex)
 Calculate which bunch index we should be at given an event index.
 

Private Attributes

G4int currentIndex
 
G4int currentExternalParticleID
 
G4int currentExternalParentID
 
BDSParticleDefinition * currentParticleDefinition
 
G4int size
 Number of particles (1 counting).
 
std::vector< BDSParticleExternal * > particles
 

Additional Inherited Members

- Static Public Member Functions inherited from BDSBunch
static G4double CalculateZp (G4double xp, G4double yp, G4double Zp0)
 Calculate zp safely based on other components.
 
static void SetEmittances (const BDSParticleDefinition *beamParticle, const GMAD::Beam &beam, G4double &emittGeometricX, G4double &emittGeometricY, G4double &emittNormalisedX, G4double &emittNormalisedY)
 
- Protected Member Functions inherited from BDSBunch
BDSParticleCoordsFullGlobal ApplyTransform (const BDSParticleCoordsFull &localIn) const
 
void ApplyTilt (BDSParticleCoordsFull &localIn) const
 Apply a rotation about unitZ for the local coordinates according to member variable tilt.
 
void ApplyBunchTiming (BDSParticleCoordsFullGlobal &localIn) const
 Add on the offset in T for the current bunch number (i*bunchPeriod).
 
BDSParticleCoordsFullGlobal ApplyCurvilinearTransform (const BDSParticleCoordsFull &localIn) const
 Calculate the global coordinates from curvilinear coordinates of a beam line.
 
- Protected Attributes inherited from BDSBunch
G4String name
 Name of distribution.
 
G4bool useCurvilinear
 Whether to ignore z and use s and transform for curvilinear coordinates.
 
BDSParticleDefinition * particleDefinition
 Particle definition for bunch - this class owns it.
 
G4bool particleDefinitionHasBeenUpdated
 
G4bool finiteTilt
 
G4bool generatePrimariesOnly
 
G4double X0
 Centre of distributions.
 
G4double Y0
 Centre of distributions.
 
G4double Z0
 Centre of distributions.
 
G4double S0
 Centre of distributions.
 
G4double T0
 Centre of distributions.
 
G4double Xp0
 Centre of distributions.
 
G4double Yp0
 Centre of distributions.
 
G4double Zp0
 Centre of distributions.
 
G4double E0
 Centre of distributions.
 
G4double P0
 central momentum
 
G4double tilt
 Centre of distributions.
 
G4double sigmaT
 Centre of distributions.
 
G4double sigmaP
 Centre of distributions.
 
G4double sigmaE
 Centre of distributions.
 
G4double sigmaEk
 Centre of distributions.
 
bool useBunchTiming
 Bunch offset in time parameters.
 
G4int currentBunchIndex
 Bunch offset in time parameters.
 
G4int eventsPerBunch
 Bunch offset in time parameters.
 
G4double bunchPeriod
 Bunch offset in time parameters.
 
G4bool finiteSigmaE
 Flags to ignore random number generator in case of no finite E or T.
 
G4bool finiteSigmaT
 Flags to ignore random number generator in case of no finite E or T.
 

Detailed Description

A bunch distribution that holds a bunch from a Link.

Author
Stewart Boogert

Definition at line 35 of file BDSLinkBunch.hh.

Constructor & Destructor Documentation

◆ BDSLinkBunch()

BDSLinkBunch::BDSLinkBunch ( )

Definition at line 33 of file BDSLinkBunch.cc.

◆ ~BDSLinkBunch()

BDSLinkBunch::~BDSLinkBunch ( )
virtual

Definition at line 42 of file BDSLinkBunch.cc.

Member Function Documentation

◆ AddParticle()

void BDSLinkBunch::AddParticle ( BDSParticleDefinition *  particleDefinitionIn,
const BDSParticleCoordsFull &  coordsIn,
int  externalParticleID,
int  externalParentID 
)

Append particle to the bunch for tracking.

Definition at line 71 of file BDSLinkBunch.cc.

References size.

Referenced by BDSLinkTrackerInterface::AddParticle(), and BDSLinkTrackerInterface::AddParticle().

Here is the caller graph for this function:

◆ ClearParticles()

void BDSLinkBunch::ClearParticles ( )

Delete all particle objects in the bunch and clear the vector.

Definition at line 80 of file BDSLinkBunch.cc.

References size.

◆ CurrentExternalParentID()

int BDSLinkBunch::CurrentExternalParentID ( ) const
inline

Accessor.

Definition at line 56 of file BDSLinkBunch.hh.

◆ CurrentExternalParticleID()

int BDSLinkBunch::CurrentExternalParticleID ( ) const
inline

Accessor.

Definition at line 55 of file BDSLinkBunch.hh.

◆ GetNextParticleLocal()

BDSParticleCoordsFull BDSLinkBunch::GetNextParticleLocal ( )
virtual

Get the next particle.

Reimplemented from BDSBunch.

Definition at line 45 of file BDSLinkBunch.cc.

References BDSBunch::particleDefinitionHasBeenUpdated, Size(), size, and UpdateIonDefinition().

Here is the call graph for this function:

◆ ParticleDefinition()

virtual const BDSParticleDefinition * BDSLinkBunch::ParticleDefinition ( ) const
inlinevirtual

Access the current particle definition of the current particle in the bunch.

Reimplemented from BDSBunch.

Definition at line 62 of file BDSLinkBunch.hh.

◆ ParticleLocal()

const BDSParticleCoordsFull BDSLinkBunch::ParticleLocal ( )
inline

Access the current particle definition of the current particle local coords in the bunch.

Definition at line 60 of file BDSLinkBunch.hh.

◆ Reset()

void BDSLinkBunch::Reset ( )
inline

Reset current particle index.

Definition at line 70 of file BDSLinkBunch.hh.

◆ SetCurrentIndex()

void BDSLinkBunch::SetCurrentIndex ( size_t  iIndex)
inline

Set current particles index.

Definition at line 64 of file BDSLinkBunch.hh.

◆ Size()

size_t BDSLinkBunch::Size ( ) const
inline

Accessor.

Definition at line 54 of file BDSLinkBunch.hh.

Referenced by GetNextParticleLocal().

Here is the caller graph for this function:

◆ UpdateGeant4ParticleDefinition()

void BDSLinkBunch::UpdateGeant4ParticleDefinition ( G4int  pdgID)

◆ UpdateIonDefinition()

void BDSLinkBunch::UpdateIonDefinition ( )
virtual

Override method in BDSBunch to use our local currentParticleDefinition member.

Reimplemented from BDSBunch.

Definition at line 122 of file BDSLinkBunch.cc.

References BDSIonDefinition::A(), BDSIonDefinition::ExcitationEnergy(), BDS::FixGeant105ThreshholdsForParticle(), BDSParticleDefinition::IonDefinition(), BDSParticleDefinition::IsAnIon(), BDSParticleDefinition::UpdateG4ParticleDefinition(), and BDSIonDefinition::Z().

Referenced by GetNextParticleLocal().

Here is the call graph for this function:
Here is the caller graph for this function:

Field Documentation

◆ currentExternalParentID

G4int BDSLinkBunch::currentExternalParentID
private

Definition at line 81 of file BDSLinkBunch.hh.

◆ currentExternalParticleID

G4int BDSLinkBunch::currentExternalParticleID
private

Definition at line 80 of file BDSLinkBunch.hh.

◆ currentIndex

G4int BDSLinkBunch::currentIndex
private

Definition at line 79 of file BDSLinkBunch.hh.

◆ currentParticleDefinition

BDSParticleDefinition* BDSLinkBunch::currentParticleDefinition
private

Definition at line 82 of file BDSLinkBunch.hh.

◆ particles

std::vector<BDSParticleExternal*> BDSLinkBunch::particles
private

Definition at line 85 of file BDSLinkBunch.hh.

◆ size

G4int BDSLinkBunch::size
private

Number of particles (1 counting).

Definition at line 84 of file BDSLinkBunch.hh.

Referenced by AddParticle(), ClearParticles(), and GetNextParticleLocal().


The documentation for this class was generated from the following files: