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 | Protected Attributes | Private Member Functions | Private Attributes | Static Private Attributes
GMAD::Parser Class Reference

Parser class. More...

#include <parser.h>

Inheritance diagram for GMAD::Parser:
Inheritance graph
Collaboration diagram for GMAD::Parser:
Collaboration graph

Public Member Functions

 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...
 

Static Public Member Functions

static ParserInstance (const std::string &filename)
 Constructor method. More...
 
static ParserInstance ()
 Access method. More...
 

Data Fields

std::string current_line
 Name of beamline. More...
 
std::string current_start
 Name of beamline. More...
 
std::string current_end
 Name of beamline. More...
 

Protected Member Functions

 Parser (std::string filename)
 Constructor from filename. More...
 

Protected Attributes

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...
 

Private Member Functions

void Initialise ()
 Initialisation of parser functions and constants. More...
 
void ParseFile (FILE *f)
 Parse the input file and construct beamline_list and options. More...
 
void set_sampler (const std::string &name, int count, ElementType type, const std::string &samplerType, double samplerRadius=0, int particleSetID=-1)
 Set sampler. More...
 
void add_func (std::string name, double(*func)(double))
 Add function to parser. More...
 
void add_var (std::string name, double value, int is_reserved=0)
 
void expand_sequences ()
 Expand all sequences define with 'line' into FastLists. More...
 
template<class C >
bool FindAndExtend (const std::string &objectName)
 Find object by name in list. More...
 
template<class C >
void ExtendObject (C &object)
 Extend object with maps. More...
 

Private Attributes

const int MAX_EXPAND_ITERATIONS = 50
 maximum number of nested lines More...
 
std::vector< std::list< Element > * > allocated_lines
 
Parameters params
 Parameters to copy to Element. More...
 
Atom atom
 Atom instance;. More...
 
NewColour colour
 NewColour instance. More...
 
Crystal crystal
 
Field field
 Field instance;. More...
 
Material material
 Material instance;. More...
 
PhysicsBiasing xsecbias
 PhysicsBiasing instance. More...
 
Placement placement
 Placement instance. More...
 
Query query
 Query instance. More...
 
Region region
 Region instance;. More...
 
Tunnel tunnel
 Tunnel instance. More...
 
CavityModel cavitymodel
 RF Cavity model instance. More...
 
SamplerPlacement samplerplacement
 Sampler placement instance. More...
 
Scorer scorer
 Scorer instance. More...
 
ScorerMesh scorermesh
 ScorerMesh instance. More...
 
Aperture aperture
 Aperture instance. More...
 
BLMPlacement blm
 BLM instance. More...
 
std::map< std::string, double > extendedNumbers
 Map for options of type double for extending objects. More...
 
std::map< std::string, std::string > extendedStrings
 Map for options of type string for extending objects. More...
 
std::map< std::string, Array * > extendedVectors
 Map for options of type vector for extending objects. More...
 
FastList< Elementelement_list
 List of all encountered elements. More...
 
FastList< Elementplacement_elements
 
std::list< Elementtmp_list
 Temporary list. More...
 
std::vector< std::string > sequences
 Names of all defined sequences in the parser with 'line'. More...
 
std::map< std::string, FastList< Element > * > expandedSequences
 Cached copy of expanded sequences. More...
 
SymbolMap symtab_map
 Parser symbol map. More...
 
std::vector< std::string * > var_list
 Variable vector for memory storage. More...
 
std::set< std::set< int > > samplerFilters
 
std::map< int, std::set< int > > samplerFilterIDToSet
 
std::map< std::set< int >, int > setToSamplerFilterID
 
std::list< double > tmparray
 temporary list for reading of arrays in parser More...
 
std::list< std::string > tmpstring
 temporary list for reading of arrays in parser More...
 

Static Private Attributes

static Parserinstance = nullptr
 Instance. More...
 

Detailed Description

Parser class.

Parser class that holds all objects and relevant methods

Singleton pattern

Author
Jochem Snuverink

Definition at line 77 of file parser.h.

Constructor & Destructor Documentation

◆ ~Parser()

Parser::~Parser ( )
virtual

Destructor.

Definition at line 114 of file parser.cc.

References allocated_lines, beamline_list, and instance.

◆ Parser()

Parser::Parser ( std::string  filename)
explicitprotected

Constructor from filename.

Definition at line 124 of file parser.cc.

References Initialise(), instance, and ParseFile().

Here is the call graph for this function:

Member Function Documentation

◆ Add() [1/3]

template<class C , class Container >
void GMAD::Parser::Add

Insert global object of parser class C in Container class.

Definition at line 1022 of file parser.cc.

◆ Add() [2/3]

template<>
void GMAD::Parser::Add ( bool  unique,
const std::string &  className 
)

Specialisation for Placements where we separately cache an Element. Note we can't do a partial specialisation so we have to do a full explicit one. Therefore we also have to be careful about the order we declare this because of where these functions are used. Also, we can't implement it in the header because we'd get multiple symbols. Therefore, declared here, but implemented in cc file with explicit instantiation of templates we need in rest of cc file.

Definition at line 1056 of file parser.cc.

References GMAD::Placement::bdsimElement, GMAD::Placement::clear(), GMAD::Placement::name, and GMAD::Placement::print().

Here is the call graph for this function:

◆ Add() [3/3]

template<class C , class Container >
void GMAD::Parser::Add ( bool  unique,
const std::string &  className 
)

Definition at line 1036 of file parser.cc.

◆ add_element_temp()

void Parser::add_element_temp ( const std::string &  name,
int  number,
bool  pushfront,
ElementType  linetype 
)

add element to temporary element sequence tmp_list

Definition at line 639 of file parser.cc.

References GMAD::Element::lst, tmp_list, and GMAD::Element::type.

◆ add_func()

void Parser::add_func ( std::string  name,
double(*)(double)  func 
)
private

Add function to parser.

Definition at line 678 of file parser.cc.

References GMAD::Symtab::Set(), GMAD::SymbolMap::symcreate(), and symtab_map.

Referenced by Initialise().

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

◆ add_sampler()

void Parser::add_sampler ( const std::string &  name,
int  count,
ElementType  type,
std::string  samplerType,
std::list< int > *  samplerPartIDListIn = nullptr 
)

insert a sampler into beamline_list

Definition at line 571 of file parser.cc.

References add_sampler_partIDSet(), and set_sampler().

Here is the call graph for this function:

◆ add_sampler_partIDSet()

int Parser::add_sampler_partIDSet ( std::list< int > *  samplerPartIDListIn)

Add a particle set for a sampler and return a unique integer ID for that set. If no list or empty list given, returns -1, the default for 'no filter'.

Definition at line 553 of file parser.cc.

References samplerFilters.

Referenced by add_sampler().

Here is the caller graph for this function:

◆ add_var()

void Parser::add_var ( std::string  name,
double  value,
int  is_reserved = 0 
)
private

Definition at line 684 of file parser.cc.

◆ AddVariable()

void Parser::AddVariable ( std::string *  name)

Add variable memory to variable list for memory management.

Definition at line 814 of file parser.cc.

References var_list.

◆ ArrayToList()

template<typename T >
std::list< T > * GMAD::Parser::ArrayToList ( Array arrayIn)

Definition at line 360 of file parser.h.

◆ ClearParams()

void Parser::ClearParams ( )

Reset parameters

Definition at line 729 of file parser.cc.

References GMAD::Parameters::flush(), params, and samplerFilters.

Here is the call graph for this function:

◆ copy_element_to_params()

int Parser::copy_element_to_params ( const std::string &  elementName)

copy properties from Element into params, returns element type as integer, returs _NONE if not found

Definition at line 663 of file parser.cc.

References find_element(), GMAD::Parameters::inherit_properties(), params, and GMAD::Element::type.

Here is the call graph for this function:

◆ expand_line() [1/2]

void Parser::expand_line ( const std::string &  name,
std::string  start,
std::string  end 
)

Expand the main beamline as defined by the use command.

Definition at line 300 of file parser.cc.

References beamline_list, and expand_line().

Here is the call graph for this function:

◆ expand_line() [2/2]

void Parser::expand_line ( FastList< Element > &  target,
const std::string &  name,
std::string  start = "",
std::string  end = "" 
)

Expand a sequence by name from start to end into the target list. This removes sublines from the beamline into one LINE.

Definition at line 305 of file parser.cc.

References find_element(), and GMAD::Element::type.

Referenced by expand_line(), and expand_sequences().

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

◆ expand_sequences()

void Parser::expand_sequences ( )
private

Expand all sequences define with 'line' into FastLists.

Definition at line 290 of file parser.cc.

References expand_line(), expandedSequences, and sequences.

Referenced by ParseFile().

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

◆ ExtendObject()

template<class C >
void Parser::ExtendObject ( C &  object)
private

Extend object with maps.

Definition at line 804 of file parser.cc.

References extendedNumbers, extendedStrings, and extendedVectors.

Referenced by FindAndExtend(), and Overwrite().

Here is the caller graph for this function:

◆ ExtendValue() [1/3]

template<>
void GMAD::Parser::ExtendValue ( const std::string &  property,
Array value 
)

Definition at line 1018 of file parser.cc.

◆ ExtendValue() [2/3]

template<>
void GMAD::Parser::ExtendValue ( const std::string &  property,
double  value 
)

Definition at line 1010 of file parser.cc.

◆ ExtendValue() [3/3]

template<>
void GMAD::Parser::ExtendValue ( const std::string &  property,
std::string  value 
)

Definition at line 1014 of file parser.cc.

◆ FillArray()

void Parser::FillArray ( Array array)

Fill array object from temporary list and clear temporary list

Definition at line 717 of file parser.cc.

References GMAD::Array::Copy(), and tmparray.

Here is the call graph for this function:

◆ FillString()

void Parser::FillString ( Array array)

Fill array object from temporary list and clear temporary list

Definition at line 723 of file parser.cc.

References GMAD::Array::Copy(), and tmpstring.

Here is the call graph for this function:

◆ find_element() [1/2]

Element & Parser::find_element ( const std::string &  element_name)

find element

Definition at line 582 of file parser.cc.

References element_list.

Referenced by copy_element_to_params(), expand_line(), and property_lookup().

Here is the caller graph for this function:

◆ find_element() [2/2]

const Element & Parser::find_element ( const std::string &  element_name) const

find element (const)

Definition at line 596 of file parser.cc.

References element_list.

◆ find_element_safe()

const Element * Parser::find_element_safe ( const std::string &  element_name) const

find element by pointer - nullptr if not found - searches element_list

Definition at line 621 of file parser.cc.

References element_list.

Referenced by BDSParser::GetElement().

Here is the caller graph for this function:

◆ find_placement_element_safe()

const Element * Parser::find_placement_element_safe ( const std::string &  element_name) const

search placement_element

Definition at line 609 of file parser.cc.

References placement_elements.

Referenced by BDSParser::GetPlacementElement().

Here is the caller graph for this function:

◆ FindAndExtend()

template<class C >
bool Parser::FindAndExtend ( const std::string &  objectName)
private

Find object by name in list.

Definition at line 791 of file parser.cc.

References GMAD::FastList< T >::end(), ExtendObject(), and GMAD::FastList< T >::find().

Here is the call graph for this function:

◆ get_sequence()

const FastList< Element > & Parser::get_sequence ( const std::string &  name)

Find the sequence defined in the parser and expand it if not already done so. Cache result in map of fastlists.

Definition at line 458 of file parser.cc.

References expandedSequences.

Referenced by BDSParser::GetSequence().

Here is the caller graph for this function:

◆ GetBeamline()

const FastList< Element > & Parser::GetBeamline ( ) const

Beamline Access.

Definition at line 896 of file parser.cc.

References beamline_list.

Referenced by BDSDetectorConstruction::BuildBeamlines(), and BDSDetectorConstruction::UpdateSamplerDiameterAndCountSamplers().

Here is the caller graph for this function:

◆ GetGlobal()

template<>
Aperture & GMAD::Parser::GetGlobal ( )

Definition at line 905 of file parser.cc.

◆ GetList() [1/16]

template<>
FastList< Region > & GMAD::Parser::GetList ( )

Definition at line 914 of file parser.cc.

◆ GetList() [2/16]

template<>
FastList< NewColour > & GMAD::Parser::GetList ( )

Definition at line 920 of file parser.cc.

◆ GetList() [3/16]

template<>
FastList< Crystal > & GMAD::Parser::GetList ( )

Definition at line 926 of file parser.cc.

◆ GetList() [4/16]

template<>
FastList< Field > & GMAD::Parser::GetList ( )

Definition at line 932 of file parser.cc.

◆ GetList() [5/16]

template<>
FastList< Query > & GMAD::Parser::GetList ( )

Definition at line 938 of file parser.cc.

◆ GetList() [6/16]

template<>
FastList< Atom > & GMAD::Parser::GetList ( )

Definition at line 944 of file parser.cc.

◆ GetList() [7/16]

template<>
FastList< Material > & GMAD::Parser::GetList ( )

Definition at line 950 of file parser.cc.

◆ GetList() [8/16]

template<>
FastList< Tunnel > & GMAD::Parser::GetList ( )

Definition at line 956 of file parser.cc.

◆ GetList() [9/16]

template<>
FastList< CavityModel > & GMAD::Parser::GetList ( )

Definition at line 962 of file parser.cc.

◆ GetList() [10/16]

template<>
FastList< Scorer > & GMAD::Parser::GetList ( )

Definition at line 968 of file parser.cc.

◆ GetList() [11/16]

template<>
FastList< ScorerMesh > & GMAD::Parser::GetList ( )

Definition at line 974 of file parser.cc.

◆ GetList() [12/16]

template<>
FastList< Placement > & GMAD::Parser::GetList ( )

Definition at line 980 of file parser.cc.

◆ GetList() [13/16]

template<>
FastList< PhysicsBiasing > & GMAD::Parser::GetList ( )

Definition at line 986 of file parser.cc.

◆ GetList() [14/16]

template<>
FastList< SamplerPlacement > & GMAD::Parser::GetList ( )

Definition at line 992 of file parser.cc.

◆ GetList() [15/16]

template<>
FastList< BLMPlacement > & GMAD::Parser::GetList ( )

Definition at line 998 of file parser.cc.

◆ GetList() [16/16]

template<>
FastList< Aperture > & GMAD::Parser::GetList ( )

Definition at line 1004 of file parser.cc.

◆ GetSamplerFilterIDToSet()

const std::map< int, std::set< int > > & GMAD::Parser::GetSamplerFilterIDToSet ( ) const
inline

Definition at line 138 of file parser.h.

◆ GetSamplerFilters()

const std::set< std::set< int > > & GMAD::Parser::GetSamplerFilters ( ) const
inline

Definition at line 137 of file parser.h.

◆ GetValue()

template<class C >
double GMAD::Parser::GetValue ( std::string  property)

Get value for parser class (only for doubles)

Definition at line 354 of file parser.h.

◆ Initialise()

void Parser::Initialise ( )
private

Initialisation of parser functions and constants.

Definition at line 187 of file parser.cc.

References add_func(), GMAD::Parameters::flush(), and params.

Referenced by Parser().

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

◆ Instance() [1/2]

Parser * Parser::Instance ( )
static

Access method.

Definition at line 93 of file parser.cc.

References instance.

◆ Instance() [2/2]

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

Constructor method.

Definition at line 103 of file parser.cc.

References instance, and Parser().

Here is the call graph for this function:

◆ InvalidSymbolName()

bool Parser::InvalidSymbolName ( const std::string &  s,
std::string &  errorReason 
)

Definition at line 690 of file parser.cc.

◆ Overwrite()

void Parser::Overwrite ( const std::string &  objectName)

Overwrite object with current values.

Definition at line 735 of file parser.cc.

References element_list, extendedNumbers, extendedStrings, extendedVectors, ExtendObject(), and xsecbias_list.

Here is the call graph for this function:

◆ ParseFile()

void Parser::ParseFile ( FILE *  f)
private

Parse the input file and construct beamline_list and options.

Definition at line 155 of file parser.cc.

References GMAD::SymbolMap::clear(), element_list, expand_sequences(), symtab_map, tmp_list, and var_list.

Referenced by Parser().

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

◆ PrintBeamline()

void Parser::PrintBeamline ( ) const

Print methods.

Definition at line 819 of file parser.cc.

References beamline_list.

◆ PrintElements()

void Parser::PrintElements ( ) const

Print methods.

Definition at line 824 of file parser.cc.

References element_list.

◆ PrintOptions()

void Parser::PrintOptions ( ) const

Print methods.

Definition at line 829 of file parser.cc.

References options, and GMAD::OptionsBase::print().

Here is the call graph for this function:

◆ property_lookup()

double Parser::property_lookup ( const std::string &  element_name,
const std::string &  property_name 
) const

access property of Element with element_name

Definition at line 633 of file parser.cc.

References find_element(), and GMAD::Element::property_lookup().

Here is the call graph for this function:

◆ quit()

void Parser::quit ( )

Exit method.

Definition at line 267 of file parser.cc.

◆ set_sampler()

void Parser::set_sampler ( const std::string &  name,
int  count,
ElementType  type,
const std::string &  samplerType,
double  samplerRadius = 0,
int  particleSetID = -1 
)
private

Set sampler.

Definition at line 468 of file parser.cc.

References beamline_list.

Referenced by add_sampler().

Here is the caller graph for this function:

◆ SetValue()

template<class C , typename T >
void GMAD::Parser::SetValue ( std::string  property,
value 
)

Set value for parser class.

Definition at line 348 of file parser.h.

◆ Store() [1/2]

void Parser::Store ( const std::string &  name)

Add value to front of temporary list.

Definition at line 712 of file parser.cc.

References tmpstring.

◆ Store() [2/2]

void Parser::Store ( double  value)

Add value to front of temporary list.

Definition at line 707 of file parser.cc.

References tmparray.

◆ symcreate()

Symtab * Parser::symcreate ( const std::string &  s)

create new parser symbol

Definition at line 698 of file parser.cc.

References GMAD::SymbolMap::symcreate(), and symtab_map.

Here is the call graph for this function:

◆ symlook()

Symtab * Parser::symlook ( const std::string &  s)

look up parser symbol

Definition at line 703 of file parser.cc.

References GMAD::SymbolMap::symlook(), and symtab_map.

Here is the call graph for this function:

◆ TryPrintingObject()

bool Parser::TryPrintingObject ( const std::string &  objectName) const

Search each member vector for an object with the matching name. Return true if successfully printed.

Definition at line 834 of file parser.cc.

References aperture_list, atom_list, blm_list, cavitymodel_list, colour_list, crystal_list, field_list, material_list, placement_list, query_list, region_list, samplerplacement_list, tunnel_list, and xsecbias_list.

◆ write_table()

void Parser::write_table ( std::string *  name,
ElementType  type,
bool  isLine = false 
)

Method that transfers parameters to element properties.

Definition at line 273 of file parser.cc.

References allocated_lines, element_list, GMAD::Element::lst, params, sequences, GMAD::Element::set(), and tmp_list.

Here is the call graph for this function:

Field Documentation

◆ allocated_lines

std::vector<std::list<Element>*> GMAD::Parser::allocated_lines
private

vector of defined lines for memory management

Definition at line 269 of file parser.h.

Referenced by write_table(), and ~Parser().

◆ aperture

Aperture GMAD::Parser::aperture
private

Aperture instance.

Definition at line 300 of file parser.h.

◆ aperture_list

FastList<Aperture> GMAD::Parser::aperture_list
protected

List of parser defined apertures.

Definition at line 253 of file parser.h.

Referenced by BDSParser::GetApertures(), and TryPrintingObject().

◆ atom

Atom GMAD::Parser::atom
private

Atom instance;.

Definition at line 274 of file parser.h.

◆ atom_list

FastList<Atom> GMAD::Parser::atom_list
protected

List of parser defined atoms.

Definition at line 229 of file parser.h.

Referenced by BDSParser::GetAtoms(), and TryPrintingObject().

◆ beam

Beam GMAD::Parser::beam
protected

◆ beamline_list

FastList<Element> GMAD::Parser::beamline_list
protected

Beamline.

Definition at line 227 of file parser.h.

Referenced by expand_line(), GetBeamline(), PrintBeamline(), set_sampler(), and ~Parser().

◆ blm

BLMPlacement GMAD::Parser::blm
private

BLM instance.

Definition at line 302 of file parser.h.

◆ blm_list

FastList<BLMPlacement> GMAD::Parser::blm_list
protected

List of parser defined blms.

Definition at line 255 of file parser.h.

Referenced by BDSParser::GetBLMs(), and TryPrintingObject().

◆ cavitymodel

CavityModel GMAD::Parser::cavitymodel
private

RF Cavity model instance.

Definition at line 292 of file parser.h.

◆ cavitymodel_list

FastList<CavityModel> GMAD::Parser::cavitymodel_list
protected

List of parser defined rf cavity models.

Definition at line 247 of file parser.h.

Referenced by BDSParser::GetCavityModels(), and TryPrintingObject().

◆ colour

NewColour GMAD::Parser::colour
private

NewColour instance.

Definition at line 275 of file parser.h.

◆ colour_list

FastList<NewColour> GMAD::Parser::colour_list
protected

List of parser defined colours.

Definition at line 230 of file parser.h.

Referenced by BDSParser::GetColours(), and TryPrintingObject().

◆ crystal

Crystal GMAD::Parser::crystal
private

Crystal instance.

Definition at line 276 of file parser.h.

◆ crystal_list

FastList<Crystal> GMAD::Parser::crystal_list
protected

List of parser defined crystals.

Definition at line 231 of file parser.h.

Referenced by BDSParser::GetCrystals(), and TryPrintingObject().

◆ current_end

std::string GMAD::Parser::current_end

Name of beamline.

Definition at line 201 of file parser.h.

◆ current_line

std::string GMAD::Parser::current_line

Name of beamline.

Definition at line 199 of file parser.h.

◆ current_start

std::string GMAD::Parser::current_start

Name of beamline.

Definition at line 200 of file parser.h.

◆ element_list

FastList<Element> GMAD::Parser::element_list
private

List of all encountered elements.

Definition at line 319 of file parser.h.

Referenced by find_element(), find_element_safe(), Overwrite(), ParseFile(), PrintElements(), and write_table().

◆ expandedSequences

std::map<std::string, FastList<Element>*> GMAD::Parser::expandedSequences
private

Cached copy of expanded sequences.

Definition at line 333 of file parser.h.

Referenced by expand_sequences(), and get_sequence().

◆ extendedNumbers

std::map<std::string, double> GMAD::Parser::extendedNumbers
private

Map for options of type double for extending objects.

Definition at line 312 of file parser.h.

Referenced by ExtendObject(), and Overwrite().

◆ extendedStrings

std::map<std::string, std::string> GMAD::Parser::extendedStrings
private

Map for options of type string for extending objects.

Definition at line 314 of file parser.h.

Referenced by ExtendObject(), and Overwrite().

◆ extendedVectors

std::map<std::string, Array*> GMAD::Parser::extendedVectors
private

Map for options of type vector for extending objects.

Definition at line 316 of file parser.h.

Referenced by ExtendObject(), and Overwrite().

◆ field

Field GMAD::Parser::field
private

Field instance;.

Definition at line 278 of file parser.h.

◆ field_list

FastList<Field> GMAD::Parser::field_list
protected

List of parser defined fields.

Definition at line 233 of file parser.h.

Referenced by BDSParser::GetFields(), and TryPrintingObject().

◆ instance

Parser * Parser::instance = nullptr
staticprivate

Instance.

Definition at line 94 of file parser.h.

Referenced by Instance(), Parser(), and ~Parser().

◆ material

Material GMAD::Parser::material
private

Material instance;.

Definition at line 280 of file parser.h.

◆ material_list

FastList<Material> GMAD::Parser::material_list
protected

List of parser defined materials.

Definition at line 235 of file parser.h.

Referenced by BDSParser::GetMaterials(), and TryPrintingObject().

◆ MAX_EXPAND_ITERATIONS

const int GMAD::Parser::MAX_EXPAND_ITERATIONS = 50
private

maximum number of nested lines

Definition at line 262 of file parser.h.

◆ options

Options GMAD::Parser::options
protected

◆ params

Parameters GMAD::Parser::params
private

Parameters to copy to Element.

Definition at line 272 of file parser.h.

Referenced by ClearParams(), copy_element_to_params(), Initialise(), and write_table().

◆ placement

Placement GMAD::Parser::placement
private

Placement instance.

Definition at line 284 of file parser.h.

◆ placement_elements

FastList<Element> GMAD::Parser::placement_elements
private

List of element definitions that are used in placements - keep separately a copy so that when we clear all the lists after expanding the lines we still have the element definitions we need

Definition at line 324 of file parser.h.

Referenced by find_placement_element_safe().

◆ placement_list

FastList<Placement> GMAD::Parser::placement_list
protected

List of parser defined placements.

Definition at line 245 of file parser.h.

Referenced by BDSParser::GetPlacements(), and TryPrintingObject().

◆ query

Query GMAD::Parser::query
private

Query instance.

Definition at line 286 of file parser.h.

◆ query_list

FastList<Query> GMAD::Parser::query_list
protected

List of parser defined query objects.

Definition at line 237 of file parser.h.

Referenced by BDSParser::GetQuery(), and TryPrintingObject().

◆ region

Region GMAD::Parser::region
private

Region instance;.

Definition at line 288 of file parser.h.

◆ region_list

FastList<Region> GMAD::Parser::region_list
protected

List of parser defined regions.

Definition at line 239 of file parser.h.

Referenced by BDSParser::GetRegions(), and TryPrintingObject().

◆ samplerFilterIDToSet

std::map<int, std::set<int> > GMAD::Parser::samplerFilterIDToSet
private

Definition at line 343 of file parser.h.

◆ samplerFilters

std::set<std::set<int> > GMAD::Parser::samplerFilters
private

Set of unique sets of particle IDs. This will allow us to build up unique Sensitive detectors for particles later on.

Definition at line 342 of file parser.h.

Referenced by add_sampler_partIDSet(), and ClearParams().

◆ samplerplacement

SamplerPlacement GMAD::Parser::samplerplacement
private

Sampler placement instance.

Definition at line 294 of file parser.h.

◆ samplerplacement_list

FastList<SamplerPlacement> GMAD::Parser::samplerplacement_list
protected

List of parser defined sampler placements.

Definition at line 249 of file parser.h.

Referenced by BDSParser::GetSamplerPlacements(), and TryPrintingObject().

◆ scorer

Scorer GMAD::Parser::scorer
private

Scorer instance.

Definition at line 296 of file parser.h.

◆ scorer_list

FastList<Scorer> GMAD::Parser::scorer_list
protected

Definition at line 250 of file parser.h.

◆ scorermesh

ScorerMesh GMAD::Parser::scorermesh
private

ScorerMesh instance.

Definition at line 298 of file parser.h.

◆ scorermesh_list

FastList<ScorerMesh> GMAD::Parser::scorermesh_list
protected

Definition at line 251 of file parser.h.

◆ sequences

std::vector<std::string> GMAD::Parser::sequences
private

Names of all defined sequences in the parser with 'line'.

Definition at line 330 of file parser.h.

Referenced by expand_sequences(), and write_table().

◆ setToSamplerFilterID

std::map<std::set<int>, int> GMAD::Parser::setToSamplerFilterID
private

Definition at line 344 of file parser.h.

◆ symtab_map

SymbolMap GMAD::Parser::symtab_map
private

Parser symbol map.

Definition at line 336 of file parser.h.

Referenced by add_func(), ParseFile(), symcreate(), and symlook().

◆ tmp_list

std::list<Element> GMAD::Parser::tmp_list
private

Temporary list.

Definition at line 327 of file parser.h.

Referenced by add_element_temp(), ParseFile(), and write_table().

◆ tmparray

std::list<double> GMAD::Parser::tmparray
private

temporary list for reading of arrays in parser

Definition at line 265 of file parser.h.

Referenced by FillArray(), and Store().

◆ tmpstring

std::list<std::string> GMAD::Parser::tmpstring
private

temporary list for reading of arrays in parser

Definition at line 266 of file parser.h.

Referenced by FillString(), and Store().

◆ tunnel

Tunnel GMAD::Parser::tunnel
private

Tunnel instance.

Definition at line 290 of file parser.h.

◆ tunnel_list

FastList<Tunnel> GMAD::Parser::tunnel_list
protected

List of parser defined tunnels.

Definition at line 241 of file parser.h.

Referenced by TryPrintingObject().

◆ var_list

std::vector<std::string*> GMAD::Parser::var_list
private

Variable vector for memory storage.

Definition at line 338 of file parser.h.

Referenced by AddVariable(), and ParseFile().

◆ xsecbias

PhysicsBiasing GMAD::Parser::xsecbias
private

PhysicsBiasing instance.

Definition at line 282 of file parser.h.

◆ xsecbias_list

FastList<PhysicsBiasing> GMAD::Parser::xsecbias_list
protected

List of parser defined cross section biasing objects.

Definition at line 243 of file parser.h.

Referenced by BDSParser::GetBiasing(), Overwrite(), and TryPrintingObject().


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