BDSIM
BDSIM is a Geant4 extension toolkit for simulation of particle transport in accelerator beamlines.
Loading...
Searching...
No Matches
BDSMagnetOuterFactoryNone.hh
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 BDSMAGNETOUTERFACTORYNONE_H
20#define BDSMAGNETOUTERFACTORYNONE_H
21
22#include "BDSMagnetOuter.hh"
23#include "BDSMagnetOuterFactoryBase.hh"
24
25#include "globals.hh" // geant4 globals / types
26
27class BDSBeamPipe;
28class G4Material;
29
37{
38public:
41
43 virtual BDSMagnetOuter* CreateSectorBend(G4String name, // name
44 G4double length, // full length
45 const BDSBeamPipe* beamPipe, // beampipe
46 G4double containerLength, // full length to make AccComp container
47 const BDSMagnetOuterInfo* recipe); // recipe for geometry
48
50 virtual BDSMagnetOuter* CreateRectangularBend(G4String name, // name
51 G4double length, // full length
52 const BDSBeamPipe* beamPipe, // beampipe
53 G4double containerLength, // full length to make AccComp container
54 const BDSMagnetOuterInfo* recipe); // recipe for geometry
55
57 virtual BDSMagnetOuter* CreateQuadrupole(G4String name, // name
58 G4double length, // length
59 BDSBeamPipe* beamPipe, // beampipe
60 G4double containerLength, // full length to make AccComp container
61 const BDSMagnetOuterInfo* recipe); // recipe for geometry
62
63
65 virtual BDSMagnetOuter* CreateSextupole(G4String name, // name
66 G4double length, // length
67 BDSBeamPipe* beamPipe, // beampipe
68 G4double containerLength, // full length to make AccComp container
69 const BDSMagnetOuterInfo* recipe); // recipe for geometry
70
72 virtual BDSMagnetOuter* CreateOctupole(G4String name, // name
73 G4double length, // length
74 BDSBeamPipe* beamPipe, // beampipe
75 G4double containerLength, // full length to make AccComp container
76 const BDSMagnetOuterInfo* recipe); // recipe for geometry
77
79 virtual BDSMagnetOuter* CreateDecapole(G4String name, // name
80 G4double length, // length
81 BDSBeamPipe* beamPipe, // beampipe
82 G4double containerLength, // full length to make AccComp container
83 const BDSMagnetOuterInfo* recipe); // recipe for geometry
84
86 virtual BDSMagnetOuter* CreateSolenoid(G4String name, // name
87 G4double length, // length
88 BDSBeamPipe* beamPipe, // beampipe
89 G4double containerLength, // full length to make AccComp container
90 const BDSMagnetOuterInfo* recipe); // recipe for geometry
91
93 virtual BDSMagnetOuter* CreateMultipole(G4String name, // name
94 G4double length, // length
95 BDSBeamPipe* beamPipe, // beampipe
96 G4double containerLength, // full length to make AccComp container
97 const BDSMagnetOuterInfo* recipe); // recipe for geometry
98
100 virtual BDSMagnetOuter* CreateRfCavity(G4String name, // name
101 G4double length, // length
102 BDSBeamPipe* beamPipe, // beampipe
103 G4double containerLength, // full length to make AccComp container
104 const BDSMagnetOuterInfo* recipe); // recipe for geometry
105
107 virtual BDSMagnetOuter* CreateMuonSpoiler(G4String name, // name
108 G4double length, // length
109 BDSBeamPipe* beamPipe, // beampipe
110 G4double containerLength, // full length to make AccComp container
111 const BDSMagnetOuterInfo* recipe); // recipe for geometry
112
114 virtual BDSMagnetOuter* CreateKicker(G4String name, // name
115 G4double length, // length
116 const BDSBeamPipe* beamPipe, // beampipe
117 G4double containerLength, // full length to make AccComp container
118 const BDSMagnetOuterInfo* recipe, // geometry recipe
119 G4bool vertical); // is it a vertical kicker?
120};
121
122#endif
A holder class for a piece of beam pipe geometry.
Definition: BDSBeamPipe.hh:45
Abstract base class for magnet outer volume factories.
Factory that produces null outer geometry.
virtual BDSMagnetOuter * CreateQuadrupole(G4String name, G4double length, BDSBeamPipe *beamPipe, G4double containerLength, const BDSMagnetOuterInfo *recipe)
quadrupole outer volume
virtual BDSMagnetOuter * CreateMultipole(G4String name, G4double length, BDSBeamPipe *beamPipe, G4double containerLength, const BDSMagnetOuterInfo *recipe)
general multipole outer volume - could be any 2N order multipole
virtual BDSMagnetOuter * CreateRfCavity(G4String name, G4double length, BDSBeamPipe *beamPipe, G4double containerLength, const BDSMagnetOuterInfo *recipe)
RF cavity outer volume.
virtual BDSMagnetOuter * CreateSextupole(G4String name, G4double length, BDSBeamPipe *beamPipe, G4double containerLength, const BDSMagnetOuterInfo *recipe)
sextupole outer volume
virtual BDSMagnetOuter * CreateSolenoid(G4String name, G4double length, BDSBeamPipe *beamPipe, G4double containerLength, const BDSMagnetOuterInfo *recipe)
solenoid outer volume
virtual BDSMagnetOuter * CreateKicker(G4String name, G4double length, const BDSBeamPipe *beamPipe, G4double containerLength, const BDSMagnetOuterInfo *recipe, G4bool vertical)
horizontal and vertical kicker outer volume
virtual BDSMagnetOuter * CreateMuonSpoiler(G4String name, G4double length, BDSBeamPipe *beamPipe, G4double containerLength, const BDSMagnetOuterInfo *recipe)
muon spoiler outer volume
virtual BDSMagnetOuter * CreateRectangularBend(G4String name, G4double length, const BDSBeamPipe *beamPipe, G4double containerLength, const BDSMagnetOuterInfo *recipe)
rectangular bend outer volume
virtual BDSMagnetOuter * CreateOctupole(G4String name, G4double length, BDSBeamPipe *beamPipe, G4double containerLength, const BDSMagnetOuterInfo *recipe)
octupole outer volume
virtual BDSMagnetOuter * CreateSectorBend(G4String name, G4double length, const BDSBeamPipe *beamPipe, G4double containerLength, const BDSMagnetOuterInfo *recipe)
sector bend outer volume
virtual BDSMagnetOuter * CreateDecapole(G4String name, G4double length, BDSBeamPipe *beamPipe, G4double containerLength, const BDSMagnetOuterInfo *recipe)
decapole outer volume
Holder struct of all information required to create the outer geometry of a magnet.
An object for both the returned magnet outer body but also a tight fitting container for the whole ma...