BDSIM
BDSIM is a Geant4 extension toolkit for simulation of particle transport in accelerator beamlines.
Public Member Functions | Static Public Member Functions | Protected Member Functions | Static Private Attributes
BDSParser Class Reference

Const entry to parser objects. More...

#include <BDSParser.hh>

Inheritance diagram for BDSParser:
Inheritance graph
Collaboration diagram for BDSParser:
Collaboration graph

Public Member Functions

 BDSParser ()=delete
 No default constructor.
 
virtual ~BDSParser ()
 Destructor. More...
 
const GMAD::OptionsGetOptions () const
 Return options. More...
 
const GMAD::OptionsBaseGetOptionsBase () const
 Return bare options base class. More...
 
const GMAD::BeamGetBeam () const
 Return beam. More...
 
GMAD::BeamGetBeam ()
 Return beam non-const. Required when loading a file and need to change beam parameters to match. More...
 
const GMAD::BeamBaseGetBeamBase () const
 Return bare beam base class. More...
 
void AmalgamateOptions (const GMAD::Options &optionsIn)
 Amalgamate the input options with the ones stored in the parser. More...
 
void AmalgamateBeam (const GMAD::Beam &beamIn, bool recreate)
 Amalgamate the input beam definition with the ones stored in teh parser. More...
 
void CheckOptions ()
 Check options for consistency. This also checks the beam options. More...
 
const GMAD::FastList< GMAD::Element > & GetSequence (const std::string &name)
 Return sequence. More...
 
const GMAD::ElementGetElement (const std::string &name)
 
std::vector< GMAD::AtomGetAtoms () const
 Return the vector of atom objects. More...
 
const GMAD::ElementGetPlacementElement (const std::string &name)
 
const GMAD::FastList< GMAD::PhysicsBiasing > & GetBiasing () const
 Return biasing list. More...
 
const std::vector< GMAD::PhysicsBiasingGetBiasingVector () const
 
std::vector< GMAD::CavityModelGetCavityModels () const
 Return cavity model list. More...
 
std::vector< GMAD::NewColourGetColours () const
 Return colour model list. More...
 
std::vector< GMAD::CrystalGetCrystals () const
 Return crystal model list. More...
 
std::vector< GMAD::FieldGetFields () const
 Return the vector of field objects. More...
 
std::vector< GMAD::MaterialGetMaterials () const
 Return material list. More...
 
std::vector< GMAD::PlacementGetPlacements () const
 Return the vector of placement objects. More...
 
std::vector< GMAD::QueryGetQuery () const
 Query list. More...
 
std::vector< GMAD::RegionGetRegions () const
 Return region list. More...
 
std::vector< GMAD::SamplerPlacementGetSamplerPlacements () const
 Return sampler placement list. More...
 
std::vector< GMAD::ScorerGetScorers () const
 Return scorer list. More...
 
std::vector< GMAD::ScorerMeshGetScorerMesh () const
 Return scorermesh list. More...
 
std::vector< GMAD::BLMPlacementGetBLMs () const
 Return blm list. More...
 
std::vector< GMAD::ApertureGetApertures () const
 Return aperture list. More...
 

Static Public Member Functions

static BDSParserInstance (const std::string &filename)
 Constructor method. More...
 
static BDSParserInstance ()
 Access method. More...
 
static bool IsInitialised ()
 Returns if parser is initialised. More...
 

Protected Member Functions

 BDSParser (const std::string &filename)
 Constructor from filename. More...
 

Static Private Attributes

static BDSParserinstance = nullptr
 Instance. More...
 

Additional Inherited Members

- Private Member Functions inherited from GMAD::Parser
 Parser ()=delete
 No default constructor.
 
virtual ~Parser ()
 Destructor. More...
 
void quit ()
 Exit method. More...
 
void write_table (std::string *name, ElementType type, bool isLine=false)
 Method that transfers parameters to element properties. More...
 
void expand_line (FastList< Element > &target, const std::string &name, std::string start="", std::string end="")
 
void expand_line (const std::string &name, std::string start, std::string end)
 Expand the main beamline as defined by the use command. More...
 
const FastList< Element > & get_sequence (const std::string &name)
 
int add_sampler_partIDSet (std::list< int > *samplerPartIDListIn)
 
void add_sampler (const std::string &name, int count, ElementType type, std::string samplerType, std::list< int > *samplerPartIDListIn=nullptr)
 insert a sampler into beamline_list More...
 
template<class C , class Container = FastList<C>>
void Add ()
 Insert global object of parser class C in Container class. More...
 
template<class C , class Container = FastList<C>>
void Add (bool unique, const std::string &className)
 
template<class C >
C & GetGlobal ()
 Get global object of parser class C.
 
template<class C , class Container = FastList<C>>
Container & GetList ()
 Get list for parser class C.
 
const std::set< std::set< int > > & GetSamplerFilters () const
 
const std::map< int, std::set< int > > & GetSamplerFilterIDToSet () const
 
Elementfind_element (const std::string &element_name)
 find element More...
 
const Elementfind_element (const std::string &element_name) const
 find element (const) More...
 
const Elementfind_element_safe (const std::string &element_name) const
 find element by pointer - nullptr if not found - searches element_list More...
 
const Elementfind_placement_element_safe (const std::string &element_name) const
 search placement_element More...
 
double property_lookup (const std::string &element_name, const std::string &property_name) const
 access property of Element with element_name More...
 
void add_element_temp (const std::string &name, int number, bool pushfront, ElementType linetype)
 add element to temporary element sequence tmp_list More...
 
int copy_element_to_params (const std::string &elementName)
 copy properties from Element into params, returns element type as integer, returs _NONE if not found More...
 
bool InvalidSymbolName (const std::string &s, std::string &errorReason)
 
Symtabsymcreate (const std::string &s)
 create new parser symbol More...
 
Symtabsymlook (const std::string &s)
 look up parser symbol More...
 
void ClearParams ()
 
template<class C , typename T >
void SetValue (std::string property, T value)
 Set value for parser class. More...
 
template<class C >
double GetValue (std::string property)
 Get value for parser class (only for doubles) More...
 
template<typename T >
std::list< T > * ArrayToList (Array *)
 
template<typename T >
void ExtendValue (const std::string &property, T value)
 Add value to be extended to object.
 
void Overwrite (const std::string &objectName)
 Overwrite object with current values. More...
 
void AddVariable (std::string *name)
 Add variable memory to variable list for memory management. More...
 
bool TryPrintingObject (const std::string &objectName) const
 
const FastList< Element > & GetBeamline () const
 
template<>
BeamGetGlobal ()
 
template<>
FastList< Region > & GetList ()
 
template<>
FastList< NewColour > & GetList ()
 
template<>
FastList< Crystal > & GetList ()
 
template<>
FastList< Field > & GetList ()
 
template<>
FastList< Query > & GetList ()
 
template<>
FastList< Atom > & GetList ()
 
template<>
FastList< Material > & GetList ()
 
template<>
FastList< Tunnel > & GetList ()
 
template<>
FastList< CavityModel > & GetList ()
 
template<>
FastList< Scorer > & GetList ()
 
template<>
FastList< ScorerMesh > & GetList ()
 
template<>
FastList< Placement > & GetList ()
 
template<>
FastList< PhysicsBiasing > & GetList ()
 
template<>
FastList< SamplerPlacement > & GetList ()
 
template<>
FastList< BLMPlacement > & GetList ()
 
template<>
FastList< Aperture > & GetList ()
 
template<>
void ExtendValue (const std::string &property, double value)
 
template<>
void ExtendValue (const std::string &property, std::string value)
 
template<>
void ExtendValue (const std::string &property, Array *value)
 
template<>
void Add (bool unique, const std::string &className)
 
void Store (double value)
 Add value to front of temporary list. More...
 
void Store (const std::string &name)
 Add value to front of temporary list. More...
 
void FillArray (Array *)
 
void FillString (Array *)
 
void PrintBeamline () const
 Print methods. More...
 
void PrintElements () const
 Print methods. More...
 
void PrintOptions () const
 Print methods. More...
 
 Parser (std::string filename)
 Constructor from filename. More...
 
- Static Private Member Functions inherited from GMAD::Parser
static ParserInstance (const std::string &filename)
 Constructor method. More...
 
static ParserInstance ()
 Access method. More...
 
- Private Attributes inherited from GMAD::Parser
std::string current_line
 Name of beamline. More...
 
std::string current_start
 Name of beamline. More...
 
std::string current_end
 Name of beamline. More...
 
Beam beam
 Beam instance;. More...
 
Options options
 General options. More...
 
FastList< Elementbeamline_list
 Beamline. More...
 
FastList< Atomatom_list
 List of parser defined atoms. More...
 
FastList< NewColourcolour_list
 List of parser defined colours. More...
 
FastList< Crystalcrystal_list
 
FastList< Fieldfield_list
 List of parser defined fields. More...
 
FastList< Materialmaterial_list
 List of parser defined materials. More...
 
FastList< Queryquery_list
 List of parser defined query objects. More...
 
FastList< Regionregion_list
 List of parser defined regions. More...
 
FastList< Tunneltunnel_list
 List of parser defined tunnels. More...
 
FastList< PhysicsBiasingxsecbias_list
 List of parser defined cross section biasing objects. More...
 
FastList< Placementplacement_list
 List of parser defined placements. More...
 
FastList< CavityModelcavitymodel_list
 List of parser defined rf cavity models. More...
 
FastList< SamplerPlacementsamplerplacement_list
 List of parser defined sampler placements. More...
 
FastList< Scorerscorer_list
 
FastList< ScorerMeshscorermesh_list
 
FastList< Apertureaperture_list
 List of parser defined apertures. More...
 
FastList< BLMPlacementblm_list
 List of parser defined blms. More...
 

Detailed Description

Const entry to parser objects.

Singleton pattern

Author
Jochem Snuverink

Definition at line 35 of file BDSParser.hh.

Constructor & Destructor Documentation

◆ ~BDSParser()

BDSParser::~BDSParser ( )
virtual

Destructor.

Definition at line 54 of file BDSParser.cc.

References instance.

◆ BDSParser()

BDSParser::BDSParser ( const std::string &  filename)
explicitprotected

Constructor from filename.

Definition at line 59 of file BDSParser.cc.

Member Function Documentation

◆ AmalgamateBeam()

void BDSParser::AmalgamateBeam ( const GMAD::Beam beamIn,
bool  recreate 
)

Amalgamate the input beam definition with the ones stored in teh parser.

Definition at line 65 of file BDSParser.cc.

References GMAD::Beam::Amalgamate(), and GMAD::Parser::beam.

Referenced by BDSIM::Initialise(), and BDSIMLink::Initialise().

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

◆ AmalgamateOptions()

void BDSParser::AmalgamateOptions ( const GMAD::Options optionsIn)

Amalgamate the input options with the ones stored in the parser.

Definition at line 76 of file BDSParser.cc.

References GMAD::Options::Amalgamate(), GMAD::Parser::options, and GMAD::OptionsBase::recreate.

Referenced by BDSIM::Initialise(), and BDSIMLink::Initialise().

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

◆ CheckOptions()

void BDSParser::CheckOptions ( )

Check options for consistency. This also checks the beam options.

Definition at line 84 of file BDSParser.cc.

References GMAD::Parser::beam, GMAD::OptionsBase::beamlineS, BDS::IsFinite(), GMAD::OptionsBase::nGenerate, GMAD::Parser::options, and GMAD::BeamBase::S0.

Referenced by BDSIM::Initialise(), and BDSIMLink::Initialise().

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

◆ GetApertures()

std::vector< GMAD::Aperture > BDSParser::GetApertures ( ) const
inline

Return aperture list.

Definition at line 135 of file BDSParser.hh.

References GMAD::Parser::aperture_list.

◆ GetAtoms()

std::vector< GMAD::Atom > BDSParser::GetAtoms ( ) const
inline

Return the vector of atom objects.

Definition at line 88 of file BDSParser.hh.

References GMAD::Parser::atom_list.

Referenced by BDSMaterials::PrepareRequiredMaterials().

Here is the caller graph for this function:

◆ GetBeam() [1/2]

GMAD::Beam & BDSParser::GetBeam ( )
inline

Return beam non-const. Required when loading a file and need to change beam parameters to match.

Definition at line 59 of file BDSParser.hh.

References GMAD::Parser::beam.

◆ GetBeam() [2/2]

const GMAD::Beam & BDSParser::GetBeam ( ) const
inline

Return beam.

Definition at line 56 of file BDSParser.hh.

References GMAD::Parser::beam.

Referenced by BDSIM::Initialise(), and BDSIMLink::Initialise().

Here is the caller graph for this function:

◆ GetBeamBase()

const GMAD::BeamBase * BDSParser::GetBeamBase ( ) const
inline

Return bare beam base class.

Definition at line 62 of file BDSParser.hh.

References GMAD::Parser::beam.

Referenced by BDSIM::Initialise().

Here is the caller graph for this function:

◆ GetBiasing()

const GMAD::FastList< GMAD::PhysicsBiasing > & BDSParser::GetBiasing ( ) const
inline

Return biasing list.

Definition at line 95 of file BDSParser.hh.

References GMAD::Parser::xsecbias_list.

Referenced by BDSDetectorConstruction::BuildPhysicsBias(), and BDSIM::Initialise().

Here is the caller graph for this function:

◆ GetBiasingVector()

const std::vector< GMAD::PhysicsBiasing > BDSParser::GetBiasingVector ( ) const
inline

Definition at line 96 of file BDSParser.hh.

◆ GetBLMs()

std::vector< GMAD::BLMPlacement > BDSParser::GetBLMs ( ) const
inline

Return blm list.

Definition at line 132 of file BDSParser.hh.

References GMAD::Parser::blm_list.

◆ GetCavityModels()

std::vector< GMAD::CavityModel > BDSParser::GetCavityModels ( ) const
inline

Return cavity model list.

Definition at line 99 of file BDSParser.hh.

References GMAD::Parser::cavitymodel_list.

◆ GetColours()

std::vector< GMAD::NewColour > BDSParser::GetColours ( ) const
inline

Return colour model list.

Definition at line 102 of file BDSParser.hh.

References GMAD::Parser::colour_list.

◆ GetCrystals()

std::vector< GMAD::Crystal > BDSParser::GetCrystals ( ) const
inline

Return crystal model list.

Definition at line 105 of file BDSParser.hh.

References GMAD::Parser::crystal_list.

◆ GetElement()

const GMAD::Element * BDSParser::GetElement ( const std::string &  name)
inline

Return an element definition. Returns nullptr if not found. Note the element_list is emptied after parsing.

Definition at line 85 of file BDSParser.hh.

References GMAD::Parser::find_element_safe().

Here is the call graph for this function:

◆ GetFields()

std::vector< GMAD::Field > BDSParser::GetFields ( ) const
inline

Return the vector of field objects.

Definition at line 108 of file BDSParser.hh.

References GMAD::Parser::field_list.

◆ GetMaterials()

std::vector< GMAD::Material > BDSParser::GetMaterials ( ) const
inline

Return material list.

Definition at line 111 of file BDSParser.hh.

References GMAD::Parser::material_list.

Referenced by BDSMaterials::PrepareRequiredMaterials().

Here is the caller graph for this function:

◆ GetOptions()

const GMAD::Options & BDSParser::GetOptions ( ) const
inline

Return options.

Definition at line 50 of file BDSParser.hh.

References GMAD::Parser::options.

Referenced by BDSDetectorConstruction::BuildPhysicsBias(), BDSMaterials::DefineVacuums(), BDSIM::Initialise(), and BDSIMLink::Initialise().

Here is the caller graph for this function:

◆ GetOptionsBase()

const GMAD::OptionsBase * BDSParser::GetOptionsBase ( ) const
inline

Return bare options base class.

Definition at line 53 of file BDSParser.hh.

References GMAD::Parser::options.

Referenced by BDSIM::Initialise().

Here is the caller graph for this function:

◆ GetPlacementElement()

const GMAD::Element * BDSParser::GetPlacementElement ( const std::string &  name)
inline

Return a placement element definition. Returns nullptr if not found. Only searches elements used in the placement.

Definition at line 92 of file BDSParser.hh.

References GMAD::Parser::find_placement_element_safe().

Referenced by BDS::BuildPlacementGeometry().

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

◆ GetPlacements()

std::vector< GMAD::Placement > BDSParser::GetPlacements ( ) const
inline

Return the vector of placement objects.

Definition at line 114 of file BDSParser.hh.

References GMAD::Parser::placement_list.

Referenced by BDSDetectorConstruction::BuildBeamlines(), BDSDetectorConstruction::CountPlacementFields(), and BDS::NumberOfExtraWorldsRequired().

Here is the caller graph for this function:

◆ GetQuery()

std::vector< GMAD::Query > BDSParser::GetQuery ( ) const
inline

Query list.

Definition at line 117 of file BDSParser.hh.

References GMAD::Parser::query_list.

Referenced by BDSDetectorConstruction::PrepareFieldQueries().

Here is the caller graph for this function:

◆ GetRegions()

std::vector< GMAD::Region > BDSParser::GetRegions ( ) const
inline

Return region list.

Definition at line 120 of file BDSParser.hh.

References GMAD::Parser::region_list.

◆ GetSamplerPlacements()

std::vector< GMAD::SamplerPlacement > BDSParser::GetSamplerPlacements ( ) const
inline

Return sampler placement list.

Definition at line 123 of file BDSParser.hh.

References GMAD::Parser::samplerplacement_list.

Referenced by BDSDetectorConstruction::CalculateExtentOfSamplerPlacements(), BDSParallelWorldSampler::Construct(), and BDSDetectorConstruction::UpdateSamplerDiameterAndCountSamplers().

Here is the caller graph for this function:

◆ GetScorerMesh()

std::vector< GMAD::ScorerMesh > BDSParser::GetScorerMesh ( ) const
inline

Return scorermesh list.

Definition at line 129 of file BDSParser.hh.

Referenced by BDSDetectorConstruction::CalculateExtentOfScorerMeshes(), and BDSDetectorConstruction::ConstructScoringMeshes().

Here is the caller graph for this function:

◆ GetScorers()

std::vector< GMAD::Scorer > BDSParser::GetScorers ( ) const
inline

Return scorer list.

Definition at line 126 of file BDSParser.hh.

Referenced by BDS::BuildBLMs(), and BDSDetectorConstruction::ConstructScoringMeshes().

Here is the caller graph for this function:

◆ GetSequence()

const GMAD::FastList< GMAD::Element > & BDSParser::GetSequence ( const std::string &  name)
inline

Return sequence.

Definition at line 81 of file BDSParser.hh.

References GMAD::Parser::get_sequence().

Referenced by BDSDetectorConstruction::BuildBeamlines().

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

◆ Instance() [1/2]

BDSParser * BDSParser::Instance ( )
static

◆ Instance() [2/2]

BDSParser * BDSParser::Instance ( const std::string &  filename)
static

Constructor method.

Definition at line 38 of file BDSParser.cc.

References BDSParser(), and instance.

Here is the call graph for this function:

◆ IsInitialised()

bool BDSParser::IsInitialised ( )
static

Returns if parser is initialised.

Definition at line 49 of file BDSParser.cc.

References instance.

Referenced by BDSMaterials::DefineVacuums().

Here is the caller graph for this function:

Field Documentation

◆ instance

BDSParser * BDSParser::instance = nullptr
staticprivate

Instance.

Definition at line 143 of file BDSParser.hh.

Referenced by Instance(), IsInitialised(), and ~BDSParser().


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