ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
Home page
Related Pages
Modules
Namespaces
Classes
Files
External Links
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
PassiveCarbonBeamLine.hh
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file PassiveCarbonBeamLine.hh
1
//
2
// ********************************************************************
3
// * License and Disclaimer *
4
// * *
5
// * The Geant4 software is copyright of the Copyright Holders of *
6
// * the Geant4 Collaboration. It is provided under the terms and *
7
// * conditions of the Geant4 Software License, included in the file *
8
// * LICENSE and available at http://cern.ch/geant4/license . These *
9
// * include a list of copyright holders. *
10
// * *
11
// * Neither the authors of this software system, nor their employing *
12
// * institutes,nor the agencies providing financial support for this *
13
// * work make any representation or warranty, express or implied, *
14
// * regarding this software system or assume any liability for its *
15
// * use. Please see the license in the file LICENSE and URL above *
16
// * for the full disclaimer and the limitation of liability. *
17
// * *
18
// * This code implementation is the result of the scientific and *
19
// * technical work of the GEANT4 collaboration. *
20
// * By using, copying, modifying or distributing the software (or *
21
// * any work based on the software) you agree to acknowledge its *
22
// * use in resulting scientific publications, and indicate your *
23
// * acceptance of all terms of the Geant4 Software license. *
24
// ********************************************************************
25
//
26
// Hadrontherapy advanced example for Geant4
27
// See more at: https://twiki.cern.ch/twiki/bin/view/Geant4/AdvancedExamplesHadrontherapy
28
29
#ifndef PassiveCarbonBeamLine_H
30
#define PassiveCarbonBeamLine_H 1
31
32
#include "
globals.hh
"
33
#include "
G4VUserDetectorConstruction.hh
"
34
#include "
G4Box.hh
"
35
#include "
G4Tubs.hh
"
36
#include "
G4VisAttributes.hh
"
37
#include "
G4LogicalVolume.hh
"
38
#include "
G4Trd.hh
"
39
#include "
PassiveCarbonBeamLineMessenger.hh
"
40
41
class
G4VPhysicalVolume
;
42
class
HadrontherapyDetectorConstruction
;
43
class
HadrontherapyDetectorROGeometry
;
44
class
PassiveCarbonBeamLineMessenger
;
45
46
class
PassiveCarbonBeamLine
:
public
G4VUserDetectorConstruction
47
{
48
public
:
49
50
PassiveCarbonBeamLine
();
51
~PassiveCarbonBeamLine
();
52
53
G4VPhysicalVolume
*
Construct
();
54
55
void
HadrontherapyBeamLineSupport
();
56
// Definition of the beam line support
57
58
void
VacuumToAirInterface
();
59
60
void
HadrontherapyBeamMonitoring
();
61
// Definition of three monitor chambers
62
63
void
HadrontherapyBeamNozzle
();
64
// Definition of the beam noozle
65
66
void
HadrontherapyBeamFinalCollimator
();
67
// Definition of the final collimator
68
69
void
HadrontherapyPMMACollimator
();
70
// Definition of the PMMA collimator
71
72
void
HadrontherapyRippleFilter
();
73
// Definition of the ripple filter
74
75
void
SetInnerRadiusFinalCollimator
(
G4double
);
76
// This method allows to change the size of the inner radius of the
77
// final collimator
78
79
void
SetRippleFilterMaterial
(
G4String
);
80
// This method allows to change the material
81
// of the ripple filter
82
83
void
SetRippleFilterXPosition
(
G4double
);
84
85
// The following methods allow to change parameters
86
// of some beam line components
87
88
G4Material
*
kapton
;
89
G4VisAttributes
*
redWire
;
90
G4VPhysicalVolume
*
mother
;
91
private
:
92
static
PassiveCarbonBeamLine
*
instance
;
93
//passive carbon line dimensions
94
void
SetDefaultDimensions
();
95
void
ConstructPassiveCarbonBeamLine
();
96
97
PassiveCarbonBeamLineMessenger
*
PassiveCarbonMessenger
;
98
G4VPhysicalVolume
*
physicalTreatmentRoom
;
99
HadrontherapyDetectorConstruction
*
hadrontherapyDetectorConstruction
;
100
102
// Definitions of all volumes
103
// World (experimental hall)
104
G4Box
*
treatmentRoom
;
105
G4LogicalVolume
*
logicTreatmentRoom
;
106
107
108
// Beamline support
109
G4Box
*
beamLineSupport
;
110
G4LogicalVolume
*
logicBeamLineSupport
;
111
G4VPhysicalVolume
*
physiBeamLineSupport
;
112
113
// Beamline covers
114
G4Box
*
beamLineCover
;
115
G4LogicalVolume
*
logicBeamLineCover
;
116
G4VPhysicalVolume
*
physiBeamLineCover
;
117
G4VPhysicalVolume
*
physiBeamLineCover2
;
118
119
// Vacuum pipe
120
G4Box
*
vacuumZone
;
121
G4LogicalVolume
*
logicVacuumZone
;
122
G4VPhysicalVolume
*
physiVacuumZone
;
123
124
// Scattering foil
125
G4Box
*
firstScatteringFoil
;
126
G4LogicalVolume
*
logicFirstScatteringFoil
;
127
G4VPhysicalVolume
*
physiFirstScatteringFoil
;
128
129
// Kapton window
130
G4Box
*
solidKaptonWindow
;
131
G4LogicalVolume
*
logicKaptonWindow
;
132
G4VPhysicalVolume
*
physiKaptonWindow
;
133
134
//Ripple filter
135
G4Box
*
SolidRippleFilter
;
136
G4LogicalVolume
*
LogicRippleFilter
;
137
G4VPhysicalVolume
*
PhysiRippleFilter
;
138
139
G4Box
*
SolidRippleFilterBase
;
140
G4LogicalVolume
*
LogicRippleFilterBase
;
141
G4VPhysicalVolume
*
PhysiRippleFilterBase
;
142
143
G4Trd
*
SolidRippleFilterTrd
;
144
G4LogicalVolume
*
LogicRippleFilterTrd
;
145
G4VPhysicalVolume
*
PhysiRippleFilterTrd
;
146
147
// PMMA Collimator
148
G4Box
*
solidPMMACollimatorSupport
;
149
G4LogicalVolume
*
logicPMMACollimatorSupport
;
150
G4VPhysicalVolume
*
physiPMMACollimatorSupport
;
151
152
G4Tubs
*
solidPMMACollimator
;
153
G4LogicalVolume
*
logicPMMACollimator
;
154
G4VPhysicalVolume
*
physiPMMACollimator
;
155
156
// Monitor chamber
157
G4Box
*
solidFirstMonitorLayer1
;
158
G4LogicalVolume
*
logicFirstMonitorLayer1
;
159
G4VPhysicalVolume
*
physiFirstMonitorLayer1
;
160
161
G4Box
*
solidFirstMonitorLayer2
;
162
G4LogicalVolume
*
logicFirstMonitorLayer2
;
163
G4VPhysicalVolume
*
physiFirstMonitorLayer2
;
164
165
G4Box
*
solidFirstMonitorLayer3
;
166
G4LogicalVolume
*
logicFirstMonitorLayer3
;
167
G4VPhysicalVolume
*
physiFirstMonitorLayer3
;
168
169
G4Box
*
solidFirstMonitorLayer4
;
170
G4LogicalVolume
*
logicFirstMonitorLayer4
;
171
G4VPhysicalVolume
*
physiFirstMonitorLayer4
;
172
173
// Final nozzle and collimator
174
G4Box
*
solidNozzleSupport
;
175
G4LogicalVolume
*
logicNozzleSupport
;
176
G4VPhysicalVolume
*
physiNozzleSupport
;
177
178
G4Tubs
*
solidHoleNozzleSupport
;
179
G4LogicalVolume
*
logicHoleNozzleSupport
;
180
G4VPhysicalVolume
*
physiHoleNozzleSupport
;
181
182
G4Tubs
*
solidBrassTube3
;
183
G4LogicalVolume
*
logicBrassTube3
;
184
G4VPhysicalVolume
*
physiBrassTube3
;
185
186
G4Tubs
*
solidBrassTube2
;
187
G4LogicalVolume
*
logicBrassTube2
;
188
G4VPhysicalVolume
*
physiBrassTube2
;
189
190
G4Tubs
*
solidBrassTube
;
191
G4LogicalVolume
*
logicBrassTube
;
192
G4VPhysicalVolume
*
physiBrassTube
;
193
194
// Final collimator
195
G4Tubs
*
solidFinalCollimator
;
196
G4VPhysicalVolume
*
physiFinalCollimator
;
197
G4LogicalVolume
*
logicFinalCollimator
;
198
200
// Dimensions and positions of all volumes
201
// Beamline support
202
G4double
beamLineSupportXSize
;
203
G4double
beamLineSupportYSize
;
204
G4double
beamLineSupportZSize
;
205
G4double
beamLineSupportXPosition
;
206
G4double
beamLineSupportYPosition
;
207
G4double
beamLineSupportZPosition
;
208
209
// Beamline covers
210
G4double
beamLineCoverXSize
;
211
G4double
beamLineCoverYSize
;
212
G4double
beamLineCoverZSize
;
213
G4double
beamLineCoverXPosition
;
214
G4double
beamLineCoverYPosition
;
215
G4double
beamLineCoverZPosition
;
216
217
// vacuum pipe
218
G4double
vacuumZoneXSize
;
219
G4double
vacuumZoneYSize
;
220
G4double
vacuumZoneZSize
;
221
G4double
vacuumPipeXPosition
;
222
223
// Scattering foil
224
G4double
firstScatteringFoilXSize
;
225
G4double
firstScatteringFoilYSize
;
226
G4double
firstScatteringFoilZSize
;
227
G4double
firstScatteringFoilXPosition
;
228
229
// kapton Windows
230
G4double
kaptonWindowXSize
;
231
G4double
kaptonWindowYSize
;
232
G4double
kaptonWindowZSize
;
233
G4double
kaptonWindowXPosition
;
234
235
// PMMA Collimator
236
G4double
PMMACollimatorSupportXSize
;
237
G4double
PMMACollimatorSupportYSize
;
238
G4double
PMMACollimatorSupportZSize
;
239
G4double
PMMACollimatorXPosition
;
240
G4double
innerRadiusPMMACollimator
;
241
G4double
outerRadiusPMMACollimator
;
242
G4double
hightPMMACollimator
;
243
G4double
startAnglePMMACollimator
;
244
G4double
spanningAnglePMMACollimator
;
245
246
// Monitor chamber
247
G4double
monitor1XSize
;
248
G4double
monitor2XSize
;
249
G4double
monitor3XSize
;
250
G4double
monitorYSize
;
251
G4double
monitorZSize
;
252
G4double
monitor1XPosition
;
253
G4double
monitor2XPosition
;
254
G4double
monitor4XPosition
;
255
256
// Final nozzle and collimator
257
G4double
nozzleSupportXSize
;
258
G4double
nozzleSupportYSize
;
259
G4double
nozzleSupportZSize
;
260
G4double
nozzleSupportXPosition
;
261
262
G4double
innerRadiusHoleNozzleSupport
;
263
G4double
outerRadiusHoleNozzleSupport
;
264
G4double
hightHoleNozzleSupport
;
265
G4double
startAngleHoleNozzleSupport
;
266
G4double
spanningAngleHoleNozzleSupport
;
267
268
G4double
innerRadiusBrassTube3
;
269
G4double
outerRadiusBrassTube3
;
270
G4double
hightBrassTube3
;
271
G4double
startAngleBrassTube3
;
272
G4double
spanningAngleBrassTube3
;
273
G4double
brassTube3XPosition
;
274
275
G4double
innerRadiusBrassTube2
;
276
G4double
outerRadiusBrassTube2
;
277
G4double
hightBrassTube2
;
278
G4double
startAngleBrassTube2
;
279
G4double
spanningAngleBrassTube2
;
280
281
G4double
innerRadiusBrassTube
;
282
G4double
outerRadiusBrassTube
;
283
G4double
hightBrassTube
;
284
G4double
startAngleBrassTube
;
285
G4double
spanningAngleBrassTube
;
286
G4double
brassTubeXPosition
;
287
288
// Final collimator
289
G4double
outerRadiusFinalCollimator
;
290
G4double
innerRadiusFinalCollimator
;
291
G4double
hightFinalCollimator
;
292
G4double
startAngleFinalCollimator
;
293
G4double
spanningAngleFinalCollimator
;
294
G4double
finalCollimatorXPosition
;
295
296
// Colors
297
G4VisAttributes
*
blue
;
298
G4VisAttributes
*
gray
;
299
G4VisAttributes
*
white
;
300
G4VisAttributes
*
red
;
301
G4VisAttributes
*
yellow
;
302
G4VisAttributes
*
green
;
303
G4VisAttributes
*
darkGreen
;
304
G4VisAttributes
*
darkOrange3
;
305
G4VisAttributes
*
skyBlue
;
306
G4VisAttributes
*
black
;
307
308
// Elements, compounds and materials
309
G4Material
*
aluminumNist
;
310
G4Material
*
copperNistMaterial
;
311
G4Material
*
airNist
;
312
G4Material
*
kaptonNist
;
313
G4Material
*
galacticNist
;
314
G4Material
*
PMMANist
;
315
G4Material
*
tantalumNist
;
316
G4Material
*
brass
;
317
318
G4Material
*
beamLineSupportMaterial
;
319
G4Material
*
vacuumZoneMaterial
;
320
G4Material
*
kaptonWindowMaterial
;
321
G4Material
*
firstScatteringFoilMaterial
;
322
323
G4Material
*
layer1MonitorChamberMaterial
;
324
G4Material
*
layer2MonitorChamberMaterial
;
325
G4Material
*
layer3MonitorChamberMaterial
;
326
G4Material
*
layer4MonitorChamberMaterial
;
327
G4Material
*
nozzleSupportMaterial
;
328
G4Material
*
holeNozzleSupportMaterial
;
329
G4Material
*
seconHoleNozzleSupportMaterial
;
330
G4Material
*
brassTubeMaterial
;
331
G4Material
*
brassTube2Material
;
332
G4Material
*
brassTube3Material
;
333
G4Material
*
finalCollimatorMaterial
;
334
G4Material
*
PMMACollimatorMaterial
;
335
G4Material
*
rippleFilterMaterial
;
336
G4Material
*
rippleFilterBoxMaterial
;
337
338
HadrontherapyDetectorROGeometry
*
RO
;
339
};
340
#endif
341
geant4
tree
geant4-10.6-release
examples
advanced
hadrontherapy
include
PassiveCarbonBeamLine.hh
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:24:58
using
1.8.2 with
ECCE GitHub integration