BDSIM
BDSIM is a Geant4 extension toolkit for simulation of particle transport in accelerator beamlines.
Loading...
Searching...
No Matches
beamBase.h
1/*
2Beam Delivery Simulation (BDSIM) Copyright (C) Royal Holloway,
3University of London 2001 - 2023.
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 BEAMBASE_H
20#define BEAMBASE_H
21
22#include <string>
23#include <vector>
24
25namespace GMAD
26{
35 {
36 public:
37 BeamBase();
38
40 std::string particle;
41 std::string beamParticleName;
42 double beamEnergy;
45 std::string distrType;
46 std::string xDistrType;
47 std::string yDistrType;
48 std::string zDistrType;
49 std::string spaceDistrType;
50 std::string directionDistrType;
51 std::string energyDistrType;
52 std::string distrFile;
53 std::string distrFileFormat;
62
68
70 double X0, Y0, Z0, S0;
71 double Xp0, Yp0, Zp0;
72 double T0;
73 double E0;
74 double Ek0;
75 double P0;
77
79 double tilt;
80
82 double sigmaT;
83
85 double sigmaE;
86 double sigmaEk;
87 double sigmaP;
88
91 double emitNX, emitNY;
93
97
102 bool zFromT;
104
111 double sigma66;
113
118
120 double Rmin, Rmax;
122
139
140 bool offsetSampleMean;
141
165
167 std::vector<std::string> setKeys;
168 };
169}
170
171#endif
Options for a beam distribution.
Definition: beamBase.h:35
double dispy
initial twiss parameters
Definition: beamBase.h:90
double alfy
initial twiss parameters
Definition: beamBase.h:90
std::string particle
beam parameters
Definition: beamBase.h:40
double eventGeneratorMaxYp
Event generator file filter.
Definition: beamBase.h:153
double sigma45
for the gaussian sigma matrix distribution
Definition: beamBase.h:109
double eventGeneratorMaxXp
Event generator file filter.
Definition: beamBase.h:151
double sigmaE
for the gaussian, elliptic shell, ring distributions
Definition: beamBase.h:85
double emity
initial twiss parameters
Definition: beamBase.h:90
double haloXCutOuter
for the halo distribution
Definition: beamBase.h:130
double bunchFrequency
Bunch offsets in time.
Definition: beamBase.h:64
double sigma16
for the gaussian sigma matrix distribution
Definition: beamBase.h:106
double haloNSigmaYInner
for the halo distribution
Definition: beamBase.h:126
double beamKineticEnergy
beam parameters
Definition: beamBase.h:43
double envelopeRp
for the circle/square/box beam distribution
Definition: beamBase.h:101
double eventGeneratorMaxEK
Event generator file filter.
Definition: beamBase.h:161
double haloXpCutOuter
for the halo distribution
Definition: beamBase.h:134
double sigmaX
for the gaussian beam distribution
Definition: beamBase.h:95
std::string distrFileFormat
beam parameters
Definition: beamBase.h:53
double beamEnergy
beam parameters
Definition: beamBase.h:42
double envelopeZp
for the circle/square/box beam distribution
Definition: beamBase.h:99
bool eventGeneratorWarnSkippedParticles
Event generator file filter.
Definition: beamBase.h:163
double shellXp
for the elliptic shell distribution
Definition: beamBase.h:115
double sigma66
for the gaussian sigma matrix distribution
Definition: beamBase.h:111
double haloXCutInner
for the halo distribution
Definition: beamBase.h:128
double envelopeZ
for the circle/square/box beam distribution
Definition: beamBase.h:99
double sigma35
for the gaussian sigma matrix distribution
Definition: beamBase.h:108
double sigma44
for the gaussian sigma matrix distribution
Definition: beamBase.h:109
double haloYpCutInner
for the halo distribution
Definition: beamBase.h:133
double emitNY
initial twiss parameters
Definition: beamBase.h:91
double envelopeE
for the circle/square/box beam distribution
Definition: beamBase.h:100
double eventGeneratorMaxZp
Event generator file filter.
Definition: beamBase.h:155
double sigmaXp
for the gaussian beam distribution
Definition: beamBase.h:95
double eventGeneratorMinYp
Event generator file filter.
Definition: beamBase.h:152
double sigma13
for the gaussian sigma matrix distribution
Definition: beamBase.h:106
int eventsPerBunch
Bunch offsets in time.
Definition: beamBase.h:66
double sigma34
for the gaussian sigma matrix distribution
Definition: beamBase.h:108
double betx
initial twiss parameters
Definition: beamBase.h:90
std::string distrFile
beam parameters
Definition: beamBase.h:52
double eventGeneratorMinEK
Event generator file filter.
Definition: beamBase.h:160
std::string directionDistrType
beam parameters
Definition: beamBase.h:50
double haloYCutOuter
for the halo distribution
Definition: beamBase.h:131
double sigmaYp
for the gaussian beam distribution
Definition: beamBase.h:95
double haloNSigmaXInner
for the halo distribution
Definition: beamBase.h:124
bool distrFileFromExecOptions
Required to know how to build the absolute path properly.
Definition: beamBase.h:54
double dispxp
initial twiss parameters
Definition: beamBase.h:90
double envelopeYp
for the circle/square/box beam distribution
Definition: beamBase.h:99
double eventGeneratorMaxZ
Event generator file filter.
Definition: beamBase.h:149
double eventGeneratorMinY
Event generator file filter.
Definition: beamBase.h:146
double sigma12
for the gaussian sigma matrix distribution
Definition: beamBase.h:106
double Ek0
initial beam centroid
Definition: beamBase.h:74
std::string spaceDistrType
beam parameters
Definition: beamBase.h:49
double haloNSigmaYOuter
for the halo distribution
Definition: beamBase.h:127
std::string beamParticleName
beam parameters
Definition: beamBase.h:41
bool distrFileLoop
beam parameters
Definition: beamBase.h:56
bool removeUnstableWithoutDecay
beam parameters
Definition: beamBase.h:58
double sigma26
for the gaussian sigma matrix distribution
Definition: beamBase.h:107
double haloYCutInner
for the halo distribution
Definition: beamBase.h:129
double tilt
tilt of beam applied as rotation about unit local z
Definition: beamBase.h:79
double sigma25
for the gaussian sigma matrix distribution
Definition: beamBase.h:107
double shellXpWidth
for the elliptic shell distribution
Definition: beamBase.h:116
std::string distrType
beam parameters
Definition: beamBase.h:45
double sigma36
for the gaussian sigma matrix distribution
Definition: beamBase.h:108
int eventGeneratorNEventsSkip
Event generator file filter.
Definition: beamBase.h:143
double sigma46
for the gaussian sigma matrix distribution
Definition: beamBase.h:109
double eventGeneratorMaxRp
Event generator file filter.
Definition: beamBase.h:157
int nlinesIgnore
Ignore first lines in the input bunch file.
Definition: beamBase.h:60
double emitNX
initial twiss parameters
Definition: beamBase.h:91
double eventGeneratorMinZ
Event generator file filter.
Definition: beamBase.h:148
double envelopeR
for the circle/square/box beam distribution
Definition: beamBase.h:101
double S0
initial beam centroid
Definition: beamBase.h:70
double eventGeneratorMinXp
Event generator file filter.
Definition: beamBase.h:150
double shellYp
for the elliptic shell distribution
Definition: beamBase.h:115
double dispyp
initial twiss parameters
Definition: beamBase.h:90
double sigma14
for the gaussian sigma matrix distribution
Definition: beamBase.h:106
bool zFromT
for the circle/square/box beam distribution
Definition: beamBase.h:102
double bunchPeriod
Bunch offsets in time.
Definition: beamBase.h:65
double sigma23
for the gaussian sigma matrix distribution
Definition: beamBase.h:107
double sigma11
for the gaussian sigma matrix distribution
Definition: beamBase.h:106
double eventGeneratorMinZp
Event generator file filter.
Definition: beamBase.h:154
double envelopeX
for the circle/square/box beam distribution
Definition: beamBase.h:99
double shellX
for the elliptic shell distribution
Definition: beamBase.h:115
double P0
initial beam centroid
Definition: beamBase.h:75
std::string zDistrType
beam parameters
Definition: beamBase.h:48
double haloNSigmaXOuter
for the halo distribution
Definition: beamBase.h:125
std::vector< std::string > setKeys
A list of all the keys that have been set in this instance.
Definition: beamBase.h:167
double dispx
initial twiss parameters
Definition: beamBase.h:90
double alfx
initial twiss parameters
Definition: beamBase.h:90
double emitx
initial twiss parameters
Definition: beamBase.h:90
std::string eventGeneratorParticles
Event generator file filter.
Definition: beamBase.h:162
double sigmaT
bunch length
Definition: beamBase.h:82
double sigma22
for the gaussian sigma matrix distribution
Definition: beamBase.h:107
double bety
initial twiss parameters
Definition: beamBase.h:90
std::string yDistrType
beam parameters
Definition: beamBase.h:47
double Zp0
initial beam centroid
Definition: beamBase.h:71
double Rmax
for the ring beam distribution
Definition: beamBase.h:120
double envelopeXp
for the circle/square/box beam distribution
Definition: beamBase.h:99
int distrFileLoopNTimes
beam parameters
Definition: beamBase.h:57
double Z0
initial beam centroid
Definition: beamBase.h:70
double sigma33
for the gaussian sigma matrix distribution
Definition: beamBase.h:108
std::string energyDistrType
beam parameters
Definition: beamBase.h:51
double eventGeneratorMaxY
Event generator file filter.
Definition: beamBase.h:147
double eventGeneratorMinT
Event generator file filter.
Definition: beamBase.h:158
double sigma15
for the gaussian sigma matrix distribution
Definition: beamBase.h:106
double eventGeneratorMaxT
Event generator file filter.
Definition: beamBase.h:159
double envelopeY
for the circle/square/box beam distribution
Definition: beamBase.h:99
double haloPSWeightParameter
for the halo distribution
Definition: beamBase.h:136
double sigma55
for the gaussian sigma matrix distribution
Definition: beamBase.h:110
double sigma56
for the gaussian sigma matrix distribution
Definition: beamBase.h:110
double X0
initial beam centroid
Definition: beamBase.h:70
double eventGeneratorMaxX
Event generator file filter.
Definition: beamBase.h:145
double envelopeT
for the circle/square/box beam distribution
Definition: beamBase.h:100
int nlinesSkip
Number of event lines to skip after the ignore lines.
Definition: beamBase.h:61
double eventGeneratorMinRp
Event generator file filter.
Definition: beamBase.h:156
bool distrFileMatchLength
beam parameters
Definition: beamBase.h:55
double beamMomentum
beam parameters
Definition: beamBase.h:44
double Xp0
initial beam centroid
Definition: beamBase.h:71
double sigma24
for the gaussian sigma matrix distribution
Definition: beamBase.h:107
double eventGeneratorMinX
Event generator file filter.
Definition: beamBase.h:144
std::string xDistrType
beam parameters
Definition: beamBase.h:46
double shellY
for the elliptic shell distribution
Definition: beamBase.h:115
double Yp0
initial beam centroid
Definition: beamBase.h:71
std::string haloPSWeightFunction
for the halo distribution
Definition: beamBase.h:137
double shellYpWidth
for the elliptic shell distribution
Definition: beamBase.h:116
double haloXpCutInner
for the halo distribution
Definition: beamBase.h:132
double Y0
initial beam centroid
Definition: beamBase.h:70
double haloYpCutOuter
for the halo distribution
Definition: beamBase.h:135
double Rmin
for the ring beam distribution
Definition: beamBase.h:120
double T0
initial beam centroid
Definition: beamBase.h:72
double sigmaY
for the gaussian beam distribution
Definition: beamBase.h:95
double shellXWidth
for the elliptic shell distribution
Definition: beamBase.h:116
double shellYWidth
for the elliptic shell distribution
Definition: beamBase.h:116
double E0
initial beam centroid
Definition: beamBase.h:73
Parser namespace for GMAD language. Combination of Geant4 and MAD.