BDSIM
BDSIM is a Geant4 extension toolkit for simulation of particle transport in accelerator beamlines.
Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Static Protected Attributes
BDSLinkTrackerInterface Class Reference
Collaboration diagram for BDSLinkTrackerInterface:
Collaboration graph

Public Member Functions

void Reset ()
 
BDSParticleDefinition * PrepareBDSParticleDefinition (int pdg, double totalEnergy, double momentum, double kineticEnergy, int ionCharge)
 
BDSParticleDefinition * PrepareBDSParticleDefinition_Bjorn (int pdg, double momentum, double kineticEnergy, int ionCharge)
 
const BDSParticleDefinition * GetReferenceParticleDefinition ()
 
void SetReferenceParticleDefinition (BDSParticleDefinition *rpd)
 
std::string GetBDSIMConfigFile ()
 
int GetReferenceParticlePDG ()
 
double GetReferenceParticleKineticEnergy ()
 
double GetRelativeEnergyCut ()
 
int GetSeed ()
 
int GetReferenceIonCharge ()
 
bool GetBatchMode ()
 
double GetMinimumKineticEnergy ()
 
void SetNoNeutralParticles (bool val)
 
bool GetNoNeutralParticles () const
 
BDSLinkBunch * GetBunchLink ()
 
BDSIMLink * GetBDSIMLink ()
 
void AddParticle (double x, double y, double px, double py, double ct, double deltap, double chi, double chargeRatio, double s, int trackid, int pdgid)
 
void AddParticle (double x, double y, double px, double py, double pz, double t, double s, int trackid, int pdgid)
 Add particle to simulation in momenta in MeV.
 
void AddParticles (std::vector< double > &x, std::vector< double > &y, std::vector< double > &px, std::vector< double > &py, std::vector< double > &ct, std::vector< double > &deltap, std::vector< double > &chi, std::vector< double > &chargeRatio, std::vector< double > &s, std::vector< int > &trackid, std::vector< int > &pdgid)
 
void AddParticles (std::vector< double > &x, std::vector< double > &y, std::vector< double > &px, std::vector< double > &py, std::vector< double > &pz, std::vector< double > &t, std::vector< double > &s, std::vector< int > &trackid, std::vector< int > &pdgid)
 
void ClearData ()
 
G4ParticleDefinition * GetParticleDefinition (int pdgid)
 
double GetParticlePDGMass (int pdgid)
 
double GetParticlePDGCharge (int pdgid)
 
double GetChargeRatio (int pdgid)
 Ratio of charge between pdgid particle and reference particle.
 
double GetMassRatio (int pdgid)
 Ratio of mass between pdgid particle and reference particle.
 
double GetChi (int pdgid)
 Ratio of charge ratio to mass ratio between pdgid particle and reference particle.
 
std::vector< bool > & GetParticleActiveState ()
 

Static Public Member Functions

static BDSLinkTrackerInterface * GetInstance (std::string bdsimConfigFileIn, int referenceParticlePDGIn=11, double referenceKineticEnergyIn=100, double relativeEnergyCutIn=0.01, int seedIn=1234, int referenceIonChargeIn=1, bool batchModeIn=true)
 
static BDSLinkTrackerInterface * GetInstance (BDSParser *parserIn, int referenceParticlePDGIn=11, double referenceKineticEnergyIn=100, double relativeEnergyCutIn=0.01, int seedIn=1234, int referenceIonChargeIn=1, bool batchModeIn=true)
 
static BDSLinkTrackerInterface * GetInstance ()
 

Protected Member Functions

 BDSLinkTrackerInterface (std::string bdsimConfigFileIn="trackerInterface.gmad", int referenceParticlePDGIn=11, double referenceKineticEnergyIn=100, double relativeEnergyCutIn=0.01, int seedIn=1234, int referenceIonChargeIn=1, bool batchModeIn=true)
 
 BDSLinkTrackerInterface (BDSParser *parser, int referenceParticlePDGIn=11, double referenceKineticEnergyIn=100, double relativeEnergyCutIn=0.01, int seedIn=1234, int referenceIonChargeIn=1, bool batchModeIn=true)
 
 BDSLinkTrackerInterface (const BDSLinkTrackerInterface &)=delete
 
BDSLinkTrackerInterface & operator= (const BDSLinkTrackerInterface &)=delete
 

Protected Attributes

std::string bdsimConfigFile
 
int referenceParticlePDG
 
double referenceKineticEnergy
 
double relativeEnergyCut
 
int seed
 
int referenceIonCharge
 
bool batchMode
 
bool noNeutralParticles = true
 
double minimumKineticEnergy
 
G4ParticleTable * g4particle_table
 
G4IonTable * g4ion_table
 
BDSLinkBunch * linkBunch
 
BDSIMLink * linkBDSIM
 
BDSParticleDefinition * referenceParticleDefinition
 
std::vector< bool > particleActiveState
 

Static Protected Attributes

static BDSLinkTrackerInterface * singleton = nullptr
 

Detailed Description

Definition at line 30 of file BDSLinkTrackerInterface.hh.

Constructor & Destructor Documentation

◆ ~BDSLinkTrackerInterface()

BDSLinkTrackerInterface::~BDSLinkTrackerInterface ( )

Definition at line 213 of file BDSLinkTrackerInterface.cc.

◆ BDSLinkTrackerInterface() [1/2]

BDSLinkTrackerInterface::BDSLinkTrackerInterface ( std::string  bdsimConfigFileIn = "trackerInterface.gmad",
int  referenceParticlePDGIn = 11,
double  referenceKineticEnergyIn = 100,
double  relativeEnergyCutIn = 0.01,
int  seedIn = 1234,
int  referenceIonChargeIn = 1,
bool  batchModeIn = true 
)
protected

Definition at line 95 of file BDSLinkTrackerInterface.cc.

◆ BDSLinkTrackerInterface() [2/2]

BDSLinkTrackerInterface::BDSLinkTrackerInterface ( BDSParser *  parser,
int  referenceParticlePDGIn = 11,
double  referenceKineticEnergyIn = 100,
double  relativeEnergyCutIn = 0.01,
int  seedIn = 1234,
int  referenceIonChargeIn = 1,
bool  batchModeIn = true 
)
protected

Definition at line 155 of file BDSLinkTrackerInterface.cc.

Member Function Documentation

◆ AddParticle() [1/2]

void BDSLinkTrackerInterface::AddParticle ( double  x,
double  y,
double  px,
double  py,
double  ct,
double  deltap,
double  chi,
double  chargeRatio,
double  s,
int  trackid,
int  pdgid 
)

Add particle to simulation in accelerator coordinates units of position (x,y, ct) are Geant4 (mm), deltap unitless, chi is (q/q_ref)/(mass/mass_ref)

Definition at line 324 of file BDSLinkTrackerInterface.cc.

References BDSLinkBunch::AddParticle(), BDSParticleDefinition::Beta(), BDSParticleDefinition::Charge(), BDSParticleDefinition::Momentum(), and BDSParticleDefinition::PDGID().

Here is the call graph for this function:

◆ AddParticle() [2/2]

void BDSLinkTrackerInterface::AddParticle ( double  x,
double  y,
double  px,
double  py,
double  pz,
double  t,
double  s,
int  trackid,
int  pdgid 
)

Add particle to simulation in momenta in MeV.

Definition at line 365 of file BDSLinkTrackerInterface.cc.

References BDSLinkBunch::AddParticle(), BDSParticleDefinition::Charge(), and BDSParticleDefinition::PDGID().

Here is the call graph for this function:

◆ AddParticles() [1/2]

void BDSLinkTrackerInterface::AddParticles ( std::vector< double > &  x,
std::vector< double > &  y,
std::vector< double > &  px,
std::vector< double > &  py,
std::vector< double > &  ct,
std::vector< double > &  deltap,
std::vector< double > &  chi,
std::vector< double > &  chargeRatio,
std::vector< double > &  s,
std::vector< int > &  trackid,
std::vector< int > &  pdgid 
)

Definition at line 406 of file BDSLinkTrackerInterface.cc.

◆ AddParticles() [2/2]

void BDSLinkTrackerInterface::AddParticles ( std::vector< double > &  x,
std::vector< double > &  y,
std::vector< double > &  px,
std::vector< double > &  py,
std::vector< double > &  pz,
std::vector< double > &  t,
std::vector< double > &  s,
std::vector< int > &  trackid,
std::vector< int > &  pdgid 
)

Definition at line 420 of file BDSLinkTrackerInterface.cc.

◆ ClearData()

void BDSLinkTrackerInterface::ClearData ( )

Definition at line 435 of file BDSLinkTrackerInterface.cc.

◆ GetBatchMode()

bool BDSLinkTrackerInterface::GetBatchMode ( )
inline

Definition at line 73 of file BDSLinkTrackerInterface.hh.

◆ GetBDSIMConfigFile()

std::string BDSLinkTrackerInterface::GetBDSIMConfigFile ( )
inline

Definition at line 67 of file BDSLinkTrackerInterface.hh.

◆ GetBDSIMLink()

BDSIMLink * BDSLinkTrackerInterface::GetBDSIMLink ( )
inline

Definition at line 80 of file BDSLinkTrackerInterface.hh.

◆ GetBunchLink()

BDSLinkBunch * BDSLinkTrackerInterface::GetBunchLink ( )
inline

Definition at line 79 of file BDSLinkTrackerInterface.hh.

◆ GetChargeRatio()

double BDSLinkTrackerInterface::GetChargeRatio ( int  pdgid)

Ratio of charge between pdgid particle and reference particle.

Definition at line 465 of file BDSLinkTrackerInterface.cc.

References BDSParticleDefinition::Charge().

Referenced by GetChi().

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

◆ GetChi()

double BDSLinkTrackerInterface::GetChi ( int  pdgid)

Ratio of charge ratio to mass ratio between pdgid particle and reference particle.

Definition at line 475 of file BDSLinkTrackerInterface.cc.

References GetChargeRatio(), and GetMassRatio().

Here is the call graph for this function:

◆ GetInstance() [1/3]

BDSLinkTrackerInterface * BDSLinkTrackerInterface::GetInstance ( )
static

Definition at line 84 of file BDSLinkTrackerInterface.cc.

◆ GetInstance() [2/3]

BDSLinkTrackerInterface * BDSLinkTrackerInterface::GetInstance ( BDSParser *  parserIn,
int  referenceParticlePDGIn = 11,
double  referenceKineticEnergyIn = 100,
double  relativeEnergyCutIn = 0.01,
int  seedIn = 1234,
int  referenceIonChargeIn = 1,
bool  batchModeIn = true 
)
static

Definition at line 61 of file BDSLinkTrackerInterface.cc.

◆ GetInstance() [3/3]

BDSLinkTrackerInterface * BDSLinkTrackerInterface::GetInstance ( std::string  bdsimConfigFileIn,
int  referenceParticlePDGIn = 11,
double  referenceKineticEnergyIn = 100,
double  relativeEnergyCutIn = 0.01,
int  seedIn = 1234,
int  referenceIonChargeIn = 1,
bool  batchModeIn = true 
)
static

Definition at line 38 of file BDSLinkTrackerInterface.cc.

◆ GetMassRatio()

double BDSLinkTrackerInterface::GetMassRatio ( int  pdgid)

Ratio of mass between pdgid particle and reference particle.

Definition at line 470 of file BDSLinkTrackerInterface.cc.

References BDSParticleDefinition::Mass().

Referenced by GetChi().

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

◆ GetMinimumKineticEnergy()

double BDSLinkTrackerInterface::GetMinimumKineticEnergy ( )
inline

Definition at line 74 of file BDSLinkTrackerInterface.hh.

◆ GetNoNeutralParticles()

bool BDSLinkTrackerInterface::GetNoNeutralParticles ( ) const
inline

Definition at line 77 of file BDSLinkTrackerInterface.hh.

◆ GetParticleActiveState()

std::vector< bool > & BDSLinkTrackerInterface::GetParticleActiveState ( )
inline

Definition at line 122 of file BDSLinkTrackerInterface.hh.

◆ GetParticleDefinition()

G4ParticleDefinition * BDSLinkTrackerInterface::GetParticleDefinition ( int  pdgid)

Definition at line 445 of file BDSLinkTrackerInterface.cc.

◆ GetParticlePDGCharge()

double BDSLinkTrackerInterface::GetParticlePDGCharge ( int  pdgid)

Definition at line 460 of file BDSLinkTrackerInterface.cc.

◆ GetParticlePDGMass()

double BDSLinkTrackerInterface::GetParticlePDGMass ( int  pdgid)

Definition at line 455 of file BDSLinkTrackerInterface.cc.

◆ GetReferenceIonCharge()

int BDSLinkTrackerInterface::GetReferenceIonCharge ( )
inline

Definition at line 72 of file BDSLinkTrackerInterface.hh.

◆ GetReferenceParticleDefinition()

const BDSParticleDefinition * BDSLinkTrackerInterface::GetReferenceParticleDefinition ( )
inline

Definition at line 64 of file BDSLinkTrackerInterface.hh.

◆ GetReferenceParticleKineticEnergy()

double BDSLinkTrackerInterface::GetReferenceParticleKineticEnergy ( )
inline

Definition at line 69 of file BDSLinkTrackerInterface.hh.

◆ GetReferenceParticlePDG()

int BDSLinkTrackerInterface::GetReferenceParticlePDG ( )
inline

Definition at line 68 of file BDSLinkTrackerInterface.hh.

◆ GetRelativeEnergyCut()

double BDSLinkTrackerInterface::GetRelativeEnergyCut ( )
inline

Definition at line 70 of file BDSLinkTrackerInterface.hh.

◆ GetSeed()

int BDSLinkTrackerInterface::GetSeed ( )
inline

Definition at line 71 of file BDSLinkTrackerInterface.hh.

◆ PrepareBDSParticleDefinition()

BDSParticleDefinition * BDSLinkTrackerInterface::PrepareBDSParticleDefinition ( int  pdg,
double  totalEnergy,
double  momentum,
double  kineticEnergy,
int  ionCharge 
)

Definition at line 227 of file BDSLinkTrackerInterface.cc.

◆ PrepareBDSParticleDefinition_Bjorn()

BDSParticleDefinition * BDSLinkTrackerInterface::PrepareBDSParticleDefinition_Bjorn ( int  pdg,
double  momentum,
double  kineticEnergy,
int  ionCharge 
)

Definition at line 273 of file BDSLinkTrackerInterface.cc.

◆ Reset()

void BDSLinkTrackerInterface::Reset ( )

Definition at line 220 of file BDSLinkTrackerInterface.cc.

◆ SetNoNeutralParticles()

void BDSLinkTrackerInterface::SetNoNeutralParticles ( bool  val)
inline

Definition at line 76 of file BDSLinkTrackerInterface.hh.

◆ SetReferenceParticleDefinition()

void BDSLinkTrackerInterface::SetReferenceParticleDefinition ( BDSParticleDefinition *  rpd)
inline

Definition at line 65 of file BDSLinkTrackerInterface.hh.

Field Documentation

◆ batchMode

bool BDSLinkTrackerInterface::batchMode
protected

Definition at line 159 of file BDSLinkTrackerInterface.hh.

◆ bdsimConfigFile

std::string BDSLinkTrackerInterface::bdsimConfigFile
protected

Definition at line 153 of file BDSLinkTrackerInterface.hh.

◆ g4ion_table

G4IonTable* BDSLinkTrackerInterface::g4ion_table
protected

Definition at line 169 of file BDSLinkTrackerInterface.hh.

◆ g4particle_table

G4ParticleTable* BDSLinkTrackerInterface::g4particle_table
protected

Definition at line 168 of file BDSLinkTrackerInterface.hh.

◆ linkBDSIM

BDSIMLink* BDSLinkTrackerInterface::linkBDSIM
protected

Definition at line 173 of file BDSLinkTrackerInterface.hh.

◆ linkBunch

BDSLinkBunch* BDSLinkTrackerInterface::linkBunch
protected

Definition at line 172 of file BDSLinkTrackerInterface.hh.

◆ minimumKineticEnergy

double BDSLinkTrackerInterface::minimumKineticEnergy
protected

Definition at line 165 of file BDSLinkTrackerInterface.hh.

◆ noNeutralParticles

bool BDSLinkTrackerInterface::noNeutralParticles = true
protected

Definition at line 162 of file BDSLinkTrackerInterface.hh.

◆ particleActiveState

std::vector<bool> BDSLinkTrackerInterface::particleActiveState
protected

Definition at line 179 of file BDSLinkTrackerInterface.hh.

◆ referenceIonCharge

int BDSLinkTrackerInterface::referenceIonCharge
protected

Definition at line 158 of file BDSLinkTrackerInterface.hh.

◆ referenceKineticEnergy

double BDSLinkTrackerInterface::referenceKineticEnergy
protected

Definition at line 155 of file BDSLinkTrackerInterface.hh.

◆ referenceParticleDefinition

BDSParticleDefinition* BDSLinkTrackerInterface::referenceParticleDefinition
protected

Definition at line 176 of file BDSLinkTrackerInterface.hh.

◆ referenceParticlePDG

int BDSLinkTrackerInterface::referenceParticlePDG
protected

Definition at line 154 of file BDSLinkTrackerInterface.hh.

◆ relativeEnergyCut

double BDSLinkTrackerInterface::relativeEnergyCut
protected

Definition at line 156 of file BDSLinkTrackerInterface.hh.

◆ seed

int BDSLinkTrackerInterface::seed
protected

Definition at line 157 of file BDSLinkTrackerInterface.hh.

◆ singleton

BDSLinkTrackerInterface * BDSLinkTrackerInterface::singleton = nullptr
staticprotected

Definition at line 145 of file BDSLinkTrackerInterface.hh.


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