BDSIM
BDSIM is a Geant4 extension toolkit for simulation of particle transport in accelerator beamlines.
Loading...
Searching...
No Matches
BDSApertureInfo.hh
1/*
2Beam Delivery Simulation (BDSIM) Copyright (C) BDSIM Collaboration, 2001 - 2026.
3
4This file is part of BDSIM.
5
6BDSIM is free software: you can redistribute it and/or modify
7it under the terms of the GNU General Public License as published
8by the Free Software Foundation version 3 of the License.
9
10BDSIM is distributed in the hope that it will be useful, but
11WITHOUT ANY WARRANTY; without even the implied warranty of
12MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13GNU General Public License for more details.
14
15You should have received a copy of the GNU General Public License
16along with BDSIM. If not, see <http://www.gnu.org/licenses/>.
17*/
18#ifndef BDSAPERTUREINFO_H
19#define BDSAPERTUREINFO_H
20
21#include "BDSApertureType.hh"
22
23#include "globals.hh" // geant4 types / globals
24#include "G4ThreeVector.hh"
25
26class BDSExtent;
27class G4Material;
28
36{
37public:
39 BDSApertureInfo(BDSApertureType apertureTypeIn,
40 G4double aper1In,
41 G4double aper2In,
42 G4double aper3In,
43 G4double aper4In,
44 G4String nameForError = "");
45
47 BDSApertureInfo(G4String apertureTypeIn,
48 G4double aper1In,
49 G4double aper2In,
50 G4double aper3In,
51 G4double aper4In,
52 G4String nameForError = "");
53
57 G4String apertureTypeIn,
58 G4double aper1In,
59 G4double aper2In,
60 G4double aper3In,
61 G4double aper4In,
62 G4String nameForError = "");
63
66 void CheckApertureInfo(const G4String& nameForError);
67
70 BDSExtent Extent() const;
71
73 G4double IndicativeRadius() const;
74
77 G4double aper1;
78 G4double aper2;
79 G4double aper3;
80 G4double aper4;
82
83private:
85 BDSApertureInfo() = delete;
86
91 void CheckRequiredParametersSet(G4bool setAper1, G4bool setAper2,
92 G4bool setAper3, G4bool setAper4);
93
95 void InfoOKForCircular();
96
99
102
104 void InfoOKForLHC();
105
108
111
113 void InfoOKForRaceTrack();
114
116 void InfoOKForOctagonal();
117
119 void InfoOKForClicPCL();
120};
121
122#endif
Holder class for all information required to describe an aperture.
void InfoOKForRectangular()
Aperture info check for rectangular aperture.
void CheckApertureInfo(const G4String &nameForError)
void InfoOKForRectEllipse()
Aperture info check for rectellipse aperture.
void InfoOKForLHCDetailed()
Aperture info check for lhc detailed aperture.
G4double IndicativeRadius() const
Return an indicative extent of the beam pipe - typically the maximum of x or y extent.
G4double aper1
Public member for direct access.
void InfoOKForRaceTrack()
Aperture info check for racetrack aperture.
void InfoOKForElliptical()
Aperture info check for elliptical aperture.
G4double aper2
Public member for direct access.
BDSExtent Extent() const
G4double aper3
Public member for direct access.
G4double aper4
Public member for direct access.
BDSApertureInfo()=delete
Private default constructor to ensure one of supplied constructors is used.
void CheckRequiredParametersSet(G4bool setAper1, G4bool setAper2, G4bool setAper3, G4bool setAper4)
void InfoOKForClicPCL()
Aperture info check for CLIC PCL aperture.
void InfoOKForOctagonal()
Aperture info check for octagonal aperture.
void InfoOKForLHC()
Aperture info check for lhc aperture.
void InfoOKForCircular()
Aperture info check for circular aperture.
BDSApertureType apertureType
Public member for direct access.
Holder for +- extents in 3 dimensions.
Definition BDSExtent.hh:38