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) 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 BDSMAGNETOUTERFACTORYNONE_H
19#define BDSMAGNETOUTERFACTORYNONE_H
20
21#include "BDSMagnetOuter.hh"
22#include "BDSMagnetOuterFactoryBase.hh"
23
24#include "globals.hh" // geant4 globals / types
25
26class BDSBeamPipe;
27class G4Material;
28
36{
37public:
40
42 virtual BDSMagnetOuter* CreateSectorBend(G4String name, // name
43 G4double length, // full length
44 const BDSBeamPipe* beamPipe, // beampipe
45 G4double containerLength, // full length to make AccComp container
46 const BDSMagnetOuterInfo* recipe); // recipe for geometry
47
49 virtual BDSMagnetOuter* CreateRectangularBend(G4String name, // name
50 G4double length, // full length
51 const BDSBeamPipe* beamPipe, // beampipe
52 G4double containerLength, // full length to make AccComp container
53 const BDSMagnetOuterInfo* recipe); // recipe for geometry
54
56 virtual BDSMagnetOuter* CreateQuadrupole(G4String name, // name
57 G4double length, // length
58 BDSBeamPipe* beamPipe, // beampipe
59 G4double containerLength, // full length to make AccComp container
60 const BDSMagnetOuterInfo* recipe); // recipe for geometry
61
62
64 virtual BDSMagnetOuter* CreateSextupole(G4String name, // name
65 G4double length, // length
66 BDSBeamPipe* beamPipe, // beampipe
67 G4double containerLength, // full length to make AccComp container
68 const BDSMagnetOuterInfo* recipe); // recipe for geometry
69
71 virtual BDSMagnetOuter* CreateOctupole(G4String name, // name
72 G4double length, // length
73 BDSBeamPipe* beamPipe, // beampipe
74 G4double containerLength, // full length to make AccComp container
75 const BDSMagnetOuterInfo* recipe); // recipe for geometry
76
78 virtual BDSMagnetOuter* CreateDecapole(G4String name, // name
79 G4double length, // length
80 BDSBeamPipe* beamPipe, // beampipe
81 G4double containerLength, // full length to make AccComp container
82 const BDSMagnetOuterInfo* recipe); // recipe for geometry
83
85 virtual BDSMagnetOuter* CreateSolenoid(G4String name, // name
86 G4double length, // length
87 BDSBeamPipe* beamPipe, // beampipe
88 G4double containerLength, // full length to make AccComp container
89 const BDSMagnetOuterInfo* recipe); // recipe for geometry
90
92 virtual BDSMagnetOuter* CreateMultipole(G4String name, // name
93 G4double length, // length
94 BDSBeamPipe* beamPipe, // beampipe
95 G4double containerLength, // full length to make AccComp container
96 const BDSMagnetOuterInfo* recipe); // recipe for geometry
97
99 virtual BDSMagnetOuter* CreateRfCavity(G4String name, // name
100 G4double length, // length
101 BDSBeamPipe* beamPipe, // beampipe
102 G4double containerLength, // full length to make AccComp container
103 const BDSMagnetOuterInfo* recipe); // recipe for geometry
104
106 virtual BDSMagnetOuter* CreateMuonSpoiler(G4String name, // name
107 G4double length, // length
108 BDSBeamPipe* beamPipe, // beampipe
109 G4double containerLength, // full length to make AccComp container
110 const BDSMagnetOuterInfo* recipe); // recipe for geometry
111
113 virtual BDSMagnetOuter* CreateKicker(G4String name, // name
114 G4double length, // length
115 const BDSBeamPipe* beamPipe, // beampipe
116 G4double containerLength, // full length to make AccComp container
117 const BDSMagnetOuterInfo* recipe, // geometry recipe
118 G4bool vertical); // is it a vertical kicker?
119};
120
121#endif
A holder class for a piece of beam pipe geometry.
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...