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 | 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.
 
const GMAD::OptionsGetOptions () const
 Return options.
 
const GMAD::OptionsBaseGetOptionsBase () const
 Return bare options base class.
 
const GMAD::BeamGetBeam () const
 Return beam.
 
GMAD::BeamGetBeam ()
 Return beam non-const. Required when loading a file and need to change beam parameters to match.
 
const GMAD::BeamBaseGetBeamBase () const
 Return bare beam base class.
 
void AmalgamateOptions (const GMAD::Options &optionsIn)
 Amalgamate the input options with the ones stored in the parser.
 
void AmalgamateBeam (const GMAD::Beam &beamIn, bool recreate)
 Amalgamate the input beam definition with the ones stored in teh parser.
 
void CheckOptions ()
 Check options for consistency. This also checks the beam options.
 
const GMAD::FastList< GMAD::Element > & GetSequence (const std::string &name)
 Return sequence.
 
const GMAD::ElementGetElement (const std::string &name)
 
const GMAD::ElementGetPlacementElement (const std::string &name)
 
const GMAD::FastList< GMAD::PhysicsBiasing > & GetBiasing () const
 Return biasing list.
 
std::vector< GMAD::AtomGetAtoms () const
 Return the parser list of that object.
 
const std::vector< GMAD::PhysicsBiasingGetBiasingVector () const
 Return the parser list of that object.
 
std::vector< GMAD::CavityModelGetCavityModels () const
 Return the parser list of that object.
 
std::vector< GMAD::NewColourGetColours () const
 Return the parser list of that object.
 
std::vector< GMAD::CrystalGetCrystals () const
 Return the parser list of that object.
 
std::vector< GMAD::FieldGetFields () const
 Return the parser list of that object.
 
std::vector< GMAD::MaterialGetMaterials () const
 Return the parser list of that object.
 
std::vector< GMAD::PlacementGetPlacements () const
 Return the parser list of that object.
 
std::vector< GMAD::QueryGetQuery () const
 Return the parser list of that object.
 
std::vector< GMAD::RegionGetRegions () const
 Return the parser list of that object.
 
std::vector< GMAD::SamplerPlacementGetSamplerPlacements () const
 Return the parser list of that object.
 
std::vector< GMAD::ScorerGetScorers () const
 Return the parser list of that object.
 
std::vector< GMAD::ScorerMeshGetScorerMesh () const
 Return the parser list of that object.
 
std::vector< GMAD::BLMPlacementGetBLMs () const
 Return the parser list of that object.
 
std::vector< GMAD::ModulatorGetModulators () const
 Return the parser list of that object.
 
std::vector< GMAD::ApertureGetApertures () const
 Return the parser list of that object.
 

Static Public Member Functions

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

Protected Member Functions

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

Static Private Attributes

static BDSParserinstance = nullptr
 Instance.
 

Additional Inherited Members

- Private Member Functions inherited from GMAD::Parser
 Parser ()=delete
 No default constructor.
 
virtual ~Parser ()
 Destructor.
 
void quit ()
 Exit method.
 
void write_table (std::string *name, ElementType type, bool isLine=false)
 Method that transfers parameters to element properties.
 
void expand_line (FastList< Element > &target, const std::string &name, const std::string &start="", const std::string &end="")
 
void expand_line (const std::string &name, const std::string &start, const std::string &end)
 Expand the main beamline as defined by the use command.
 
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
 
template<class C , class Container = FastList<C>>
void Add ()
 Insert global object of parser class C in Container class.
 
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
 
const Elementfind_element (const std::string &element_name) const
 find element (const)
 
const Elementfind_element_safe (const std::string &element_name) const
 find element by pointer - nullptr if not found - searches element_list
 
const Elementfind_placement_element_safe (const std::string &element_name) const
 search placement_element
 
double property_lookup (const std::string &element_name, const std::string &property_name) const
 access property of Element with element_name
 
void add_element_temp (const std::string &name, int number, bool pushfront, ElementType linetype)
 add element to temporary element sequence tmp_list
 
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
 
bool InvalidSymbolName (const std::string &s, std::string &errorReason)
 
Symtabsymcreate (const std::string &s)
 create new parser symbol
 
Symtabsymlook (const std::string &s)
 look up parser symbol
 
void ClearParams ()
 
template<class C , typename T >
void SetValue (std::string property, T value)
 Set value for parser class.
 
template<class C >
double GetValue (std::string property)
 Get value for parser class (only for doubles)
 
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.
 
void AddVariable (std::string *name)
 Add variable memory to variable list for memory management.
 
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< Modulator > & 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.
 
void Store (const std::string &name)
 Add value to front of temporary list.
 
void FillArray (Array *)
 
void FillString (Array *)
 
void PrintBeamline () const
 Print methods.
 
void PrintElements () const
 Print methods.
 
void PrintOptions () const
 Print methods.
 
 Parser (std::string filename)
 Constructor from filename.
 
- Static Private Member Functions inherited from GMAD::Parser
static ParserInstance (const std::string &filename)
 Constructor method.
 
static ParserInstance ()
 Access method.
 
- Private Attributes inherited from GMAD::Parser
std::string current_line
 Name of beamline.
 
std::string current_start
 Name of beamline.
 
std::string current_end
 Name of beamline.
 
Beam beam
 Beam instance;.
 
Options options
 General options.
 
FastList< Elementbeamline_list
 Beamline.
 
FastList< Atomatom_list
 List of parser defined instances of that object.
 
FastList< NewColourcolour_list
 List of parser defined instances of that object.
 
FastList< Crystalcrystal_list
 List of parser defined instances of that object.
 
FastList< Fieldfield_list
 List of parser defined instances of that object.
 
FastList< Materialmaterial_list
 List of parser defined instances of that object.
 
FastList< Queryquery_list
 List of parser defined instances of that object.
 
FastList< Regionregion_list
 List of parser defined instances of that object.
 
FastList< Tunneltunnel_list
 List of parser defined instances of that object.
 
FastList< PhysicsBiasingxsecbias_list
 List of parser defined instances of that object.
 
FastList< Placementplacement_list
 List of parser defined instances of that object.
 
FastList< CavityModelcavitymodel_list
 List of parser defined instances of that object.
 
FastList< SamplerPlacementsamplerplacement_list
 List of parser defined instances of that object.
 
FastList< Scorerscorer_list
 List of parser defined instances of that object.
 
FastList< ScorerMeshscorermesh_list
 List of parser defined instances of that object.
 
FastList< Apertureaperture_list
 List of parser defined instances of that object.
 
FastList< BLMPlacementblm_list
 List of parser defined instances of that object.
 
FastList< Modulatormodulator_list
 List of parser defined instances of that object.
 

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 the parser list of that object.

Definition at line 111 of file BDSParser.hh.

References GMAD::Parser::aperture_list.

◆ GetAtoms()

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

Return the parser list of that object.

Definition at line 96 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::GeneratePrimariesOnly().

Here is the caller graph for this function:

◆ GetBiasing()

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

Return biasing list.

Definition at line 92 of file BDSParser.hh.

References GMAD::Parser::xsecbias_list.

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

Here is the caller graph for this function:

◆ GetBiasingVector()

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

Return the parser list of that object.

Definition at line 97 of file BDSParser.hh.

References GMAD::Parser::xsecbias_list.

◆ GetBLMs()

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

Return the parser list of that object.

Definition at line 109 of file BDSParser.hh.

References GMAD::Parser::blm_list.

◆ GetCavityModels()

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

Return the parser list of that object.

Definition at line 98 of file BDSParser.hh.

References GMAD::Parser::cavitymodel_list.

◆ GetColours()

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

Return the parser list of that object.

Definition at line 99 of file BDSParser.hh.

References GMAD::Parser::colour_list.

◆ GetCrystals()

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

Return the parser list of that object.

Definition at line 100 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 parser list of that object.

Definition at line 101 of file BDSParser.hh.

References GMAD::Parser::field_list.

◆ GetMaterials()

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

Return the parser list of that object.

Definition at line 102 of file BDSParser.hh.

References GMAD::Parser::material_list.

Referenced by BDSMaterials::PrepareRequiredMaterials().

Here is the caller graph for this function:

◆ GetModulators()

std::vector< GMAD::Modulator > BDSParser::GetModulators ( ) const
inline

Return the parser list of that object.

Definition at line 110 of file BDSParser.hh.

References GMAD::Parser::modulator_list.

◆ 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::GeneratePrimariesOnly().

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 89 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 parser list of that object.

Definition at line 103 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

Return the parser list of that object.

Definition at line 104 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 the parser list of that object.

Definition at line 105 of file BDSParser.hh.

References GMAD::Parser::region_list.

◆ GetSamplerPlacements()

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

Return the parser list of that object.

Definition at line 106 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 the parser list of that object.

Definition at line 108 of file BDSParser.hh.

References GMAD::Parser::scorermesh_list.

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 the parser list of that object.

Definition at line 107 of file BDSParser.hh.

References GMAD::Parser::scorer_list.

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 BDSFieldFactory::BDSFieldFactory(), BDSMaterials::DefineVacuums(), and BDSGlobalConstants::Instance().

Here is the caller graph for this function:

Field Documentation

◆ instance

BDSParser * BDSParser::instance = nullptr
staticprivate

Instance.

Definition at line 120 of file BDSParser.hh.

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


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