BDSIM
BDSIM is a Geant4 extension toolkit for simulation of particle transport in accelerator beamlines.
Loading...
Searching...
No Matches
BDSParser.hh
1/*
2Beam Delivery Simulation (BDSIM) Copyright (C) Royal Holloway,
3University of London 2001 - 2024.
4
5This file is part of BDSIM.
6
7BDSIM is free software: you can redistribute it and/or modify
8it under the terms of the GNU General Public License as published
9by the Free Software Foundation version 3 of the License.
10
11BDSIM is distributed in the hope that it will be useful, but
12WITHOUT ANY WARRANTY; without even the implied warranty of
13MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14GNU General Public License for more details.
15
16You should have received a copy of the GNU General Public License
17along with BDSIM. If not, see <http://www.gnu.org/licenses/>.
18*/
19#ifndef BDSPARSER_H
20#define BDSPARSER_H
21
22#include <map>
23#include <string>
24#include <vector>
25
26#include "parser/parser.h"
27
37{
38public:
40 BDSParser();
42 static BDSParser* Instance(const std::string& filename);
44 static BDSParser* Instance();
46 static bool IsInitialised();
48 virtual ~BDSParser();
49
51 const GMAD::Options& GetOptions() const {return options;}
52
54 const GMAD::OptionsBase* GetOptionsBase() const {return dynamic_cast<const GMAD::OptionsBase*>(&options);}
55
57 const GMAD::Beam& GetBeam() const {return beam;}
58
60 GMAD::Beam& GetBeam() {return beam;}
61
63 const GMAD::BeamBase* GetBeamBase() const {return dynamic_cast<const GMAD::BeamBase*>(&beam);}
64
66 void AmalgamateOptions(const GMAD::Options& optionsIn);
68 void AmalgamateBeam(const GMAD::Beam& beamIn, bool recreate);
70 void CheckOptions();
71
76
79 using GMAD::Parser::GetSamplerFilterIDToSet;
80
82 inline const GMAD::FastList<GMAD::Element>& GetSequence(const std::string& name) {return get_sequence(name);}
83
86 inline const GMAD::Element* GetElement(const std::string& name) {return find_element_safe(name);}
87
90 inline const GMAD::Element* GetPlacementElement(const std::string& name) {return find_placement_element_safe(name);}
91
94
95
97 inline std::vector<GMAD::Atom> GetAtoms() const {return atom_list.getVector();}
98 inline const std::vector<GMAD::PhysicsBiasing> GetBiasingVector() const {return xsecbias_list.getVector();}
99 inline std::vector<GMAD::CavityModel> GetCavityModels() const {return cavitymodel_list.getVector();}
100 inline std::vector<GMAD::NewColour> GetColours() const {return colour_list.getVector();}
101 inline std::vector<GMAD::Crystal> GetCrystals() const {return crystal_list.getVector();}
102 inline std::vector<GMAD::CoolingChannel> GetCoolingChannels() const {return coolingchannel_list.getVector();}
103 inline std::map<std::string, GMAD::CoolingChannel> GetCoolingChannelMap() const {return coolingchannel_list.getMap();}
104 inline std::vector<GMAD::Field> GetFields() const {return field_list.getVector();}
105 inline std::vector<GMAD::Laser>GetLasers() const {return laser_list.getVector();}
106 inline std::vector<GMAD::Material> GetMaterials() const {return material_list.getVector();}
107 inline std::vector<GMAD::Placement> GetPlacements() const {return placement_list.getVector();}
108 inline std::vector<GMAD::Query> GetQuery() const {return query_list.getVector();}
109 inline std::vector<GMAD::Region> GetRegions() const {return region_list.getVector();}
110 inline std::vector<GMAD::SamplerPlacement> GetSamplerPlacements() const {return samplerplacement_list.getVector();}
111 inline std::vector<GMAD::Scorer> GetScorers() const {return scorer_list.getVector();}
112 inline std::vector<GMAD::ScorerMesh> GetScorerMesh() const {return scorermesh_list.getVector();}
113 inline std::vector<GMAD::BLMPlacement> GetBLMs() const {return blm_list.getVector();}
114 inline std::vector<GMAD::Modulator> GetModulators() const {return modulator_list.getVector();}
115 inline std::vector<GMAD::Aperture> GetApertures() const {return aperture_list.getVector();}
117
119 GMAD::CoolingChannel GetCoolingChannel(const std::string& objectName);
120
121
122protected:
124 explicit BDSParser(const std::string& filename);
125
126private:
129};
130
131#endif
Const entry to parser objects.
Definition BDSParser.hh:37
const GMAD::Element * GetElement(const std::string &name)
Definition BDSParser.hh:86
const GMAD::FastList< GMAD::Element > & GetSequence(const std::string &name)
Return sequence.
Definition BDSParser.hh:82
BDSParser()
Default constructor.
Definition BDSParser.cc:69
std::vector< GMAD::Scorer > GetScorers() const
Return the parser list of that object.
Definition BDSParser.hh:111
void AmalgamateBeam(const GMAD::Beam &beamIn, bool recreate)
Amalgamate the input beam definition with the ones stored in teh parser.
Definition BDSParser.cc:75
const GMAD::OptionsBase * GetOptionsBase() const
Return bare options base class.
Definition BDSParser.hh:54
void CheckOptions()
Check options for consistency. This also checks the beam options.
Definition BDSParser.cc:94
static BDSParser * Instance()
Access method.
Definition BDSParser.cc:30
std::vector< GMAD::Atom > GetAtoms() const
Return the parser list of that object.
Definition BDSParser.hh:97
std::vector< GMAD::Aperture > GetApertures() const
Return the parser list of that object.
Definition BDSParser.hh:115
std::vector< GMAD::CavityModel > GetCavityModels() const
Return the parser list of that object.
Definition BDSParser.hh:99
static BDSParser * instance
Instance.
Definition BDSParser.hh:128
std::vector< GMAD::Field > GetFields() const
Return the parser list of that object.
Definition BDSParser.hh:104
const GMAD::Beam & GetBeam() const
Return beam.
Definition BDSParser.hh:57
std::map< std::string, GMAD::CoolingChannel > GetCoolingChannelMap() const
Return the parser list of that object.
Definition BDSParser.hh:103
GMAD::CoolingChannel GetCoolingChannel(const std::string &objectName)
Return a cooling channel object by name. Throws an exception if it doesn't exist.
Definition BDSParser.cc:118
std::vector< GMAD::CoolingChannel > GetCoolingChannels() const
Return the parser list of that object.
Definition BDSParser.hh:102
static bool IsInitialised()
Returns if parser is initialised.
Definition BDSParser.cc:51
const GMAD::Options & GetOptions() const
Return options.
Definition BDSParser.hh:51
std::vector< GMAD::Crystal > GetCrystals() const
Return the parser list of that object.
Definition BDSParser.hh:101
std::vector< GMAD::Query > GetQuery() const
Return the parser list of that object.
Definition BDSParser.hh:108
std::vector< GMAD::SamplerPlacement > GetSamplerPlacements() const
Return the parser list of that object.
Definition BDSParser.hh:110
std::vector< GMAD::Region > GetRegions() const
Return the parser list of that object.
Definition BDSParser.hh:109
const GMAD::Element * GetPlacementElement(const std::string &name)
Definition BDSParser.hh:90
std::vector< GMAD::BLMPlacement > GetBLMs() const
Return the parser list of that object.
Definition BDSParser.hh:113
void AmalgamateOptions(const GMAD::Options &optionsIn)
Amalgamate the input options with the ones stored in the parser.
Definition BDSParser.cc:86
std::vector< GMAD::NewColour > GetColours() const
Return the parser list of that object.
Definition BDSParser.hh:100
std::vector< GMAD::Modulator > GetModulators() const
Return the parser list of that object.
Definition BDSParser.hh:114
const GMAD::BeamBase * GetBeamBase() const
Return bare beam base class.
Definition BDSParser.hh:63
const std::vector< GMAD::PhysicsBiasing > GetBiasingVector() const
Return the parser list of that object.
Definition BDSParser.hh:98
std::vector< GMAD::Material > GetMaterials() const
Return the parser list of that object.
Definition BDSParser.hh:106
const GMAD::FastList< GMAD::PhysicsBiasing > & GetBiasing() const
Return biasing list.
Definition BDSParser.hh:93
std::vector< GMAD::Laser > GetLasers() const
Return the parser list of that object.
Definition BDSParser.hh:105
GMAD::Beam & GetBeam()
Return beam non-const. Required when loading a file and need to change beam parameters to match.
Definition BDSParser.hh:60
std::vector< GMAD::ScorerMesh > GetScorerMesh() const
Return the parser list of that object.
Definition BDSParser.hh:112
virtual ~BDSParser()
Destructor.
Definition BDSParser.cc:56
std::vector< GMAD::Placement > GetPlacements() const
Return the parser list of that object.
Definition BDSParser.hh:107
Options for a beam distribution.
Definition beamBase.h:35
Beam class.
Definition beam.h:44
Cooling channel parameters.
List with Efficient Lookup.
Definition fastlist.h:42
Basic options class independent of Geant4.
Definition optionsBase.h:36
Options class.
Definition options.h:44
Parser class.
Definition parser.h:82
FastList< Atom > atom_list
List of parser defined instances of that object.
Definition parser.h:239
FastList< BLMPlacement > blm_list
List of parser defined instances of that object.
Definition parser.h:256
FastList< Crystal > crystal_list
List of parser defined instances of that object.
Definition parser.h:241
FastList< Placement > placement_list
List of parser defined instances of that object.
Definition parser.h:249
FastList< Region > region_list
List of parser defined instances of that object.
Definition parser.h:246
FastList< Modulator > modulator_list
List of parser defined instances of that object.
Definition parser.h:257
FastList< NewColour > colour_list
List of parser defined instances of that object.
Definition parser.h:240
FastList< Scorer > scorer_list
List of parser defined instances of that object.
Definition parser.h:253
Options options
General options.
Definition parser.h:235
FastList< Aperture > aperture_list
List of parser defined instances of that object.
Definition parser.h:255
FastList< CoolingChannel > coolingchannel_list
List of parser defined instances of that object.
Definition parser.h:242
FastList< PhysicsBiasing > xsecbias_list
List of parser defined instances of that object.
Definition parser.h:248
FastList< ScorerMesh > scorermesh_list
List of parser defined instances of that object.
Definition parser.h:254
const Element * find_placement_element_safe(const std::string &element_name) const
search placement_element
Definition parser.cc:645
FastList< SamplerPlacement > samplerplacement_list
List of parser defined instances of that object.
Definition parser.h:252
const FastList< Element > & get_sequence(const std::string &name)
Definition parser.cc:495
const FastList< Element > & GetBeamline() const
Definition parser.cc:945
FastList< Field > field_list
List of parser defined instances of that object.
Definition parser.h:243
FastList< CavityModel > cavitymodel_list
List of parser defined instances of that object.
Definition parser.h:251
FastList< Query > query_list
List of parser defined instances of that object.
Definition parser.h:245
FastList< Laser > laser_list
List of parser defined instances of that object.
Definition parser.h:250
Beam beam
Beam instance;.
Definition parser.h:233
FastList< Material > material_list
List of parser defined instances of that object.
Definition parser.h:244
const Element * find_element_safe(const std::string &element_name) const
find element by pointer - nullptr if not found - searches element_list
Definition parser.cc:657
Element class.
Definition element.h:45