BDSIM
BDSIM is a Geant4 extension toolkit for simulation of particle transport in accelerator beamlines.
Loading...
Searching...
No Matches
BDSGasJet.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 BDSGASJET_H
20#define BDSGASJET_H
21
22#include "globals.hh"
23
24#include "BDSAcceleratorComponent.hh"
25
26class G4Colour;
27class G4Material;
28class G4VSolid;
29
37{
38public:
39 BDSGasJet(const G4String& name,
40 G4double length,
41 BDSBeamPipeInfo* beamPipeInfoIn,
42 G4Material* gasMaterial,
43 G4double xSize = 0,
44 G4double ySize = 0,
45 G4double zSize = 0,
46 G4double xAngle = 0,
47 G4double yAngle = 0,
48 G4double zAngle = 0,
49 G4double xOffset = 0,
50 G4double yOffset = 0);
51 virtual ~BDSGasJet(){;};
52
54 virtual G4String Material() const;
56
57protected:
60 virtual void CheckParameters();
61 virtual void BuildContainerLogicalVolume();
62 virtual void Build();
63
65 G4VSolid* gasSolid;
67
68 G4Material* gasMaterial;
69 G4double xSize;
70 G4double ySize;
71 G4double zSize;
72 G4double xAngle;
73 G4double yAngle;
74 G4double zAngle;
75 G4double xOffset;
76 G4double yOffset;
77
78
79
80
81
82private:
84 BDSGasJet() = delete;
85
87 BDSGasJet& operator=(const BDSGasJet&) = delete;
88 BDSGasJet(BDSGasJet&) = delete;
90};
91
92#endif
Abstract class that represents a component of an accelerator.
const G4String name
Const protected member variable that may not be changed by derived classes.
Holder class for all information required to describe a beam pipe model.
A class for a gas jet.
Definition BDSGasJet.hh:37
G4Material * gasMaterial
Gas material.
Definition BDSGasJet.hh:68
BDSGasJet()=delete
Private default constructor to force the use of the supplied one.
G4double ySize
Aperture of main slit in y dimension.
Definition BDSGasJet.hh:70
G4double xOffset
Offset of the side slit wrt the main slit in x.
Definition BDSGasJet.hh:75
virtual G4String Material() const
Accessor.
Definition BDSGasJet.cc:88
G4double xSize
Aperture of main slit in x dimension.
Definition BDSGasJet.hh:69
G4double zAngle
Offset of the mask in the pipe in y.
Definition BDSGasJet.hh:74
virtual void CheckParameters()
Definition BDSGasJet.cc:64
G4VSolid * gasSolid
Geometrical objects:
Definition BDSGasJet.hh:65
virtual void Build()
Definition BDSGasJet.cc:119
G4double zSize
Aperture of side slit in x dimension.
Definition BDSGasJet.hh:71
G4double yOffset
Offset of the side slit wrt the main slit in y.
Definition BDSGasJet.hh:76
G4double xAngle
Aperture of side slit in y dimension.
Definition BDSGasJet.hh:72
BDSGasJet(BDSGasJet &)=delete
Assignment and copy constructor not implemented nor used.
G4double yAngle
Offset of the mask in the pipe in x.
Definition BDSGasJet.hh:73
virtual void BuildContainerLogicalVolume()
Definition BDSGasJet.cc:96
BDSGasJet & operator=(const BDSGasJet &)=delete
Assignment and copy constructor not implemented nor used.