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
HadrontherapyTIFPAPassiveProtonBeamLine.hh
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file HadrontherapyTIFPAPassiveProtonBeamLine.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 TrentoPassiveProtonBeamLine_H
30
#define TrentoPassiveProtonBeamLine_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
39
class
G4VPhysicalVolume
;
40
class
HadrontherapyDetectorConstruction
;
41
class
HadrontherapyModulator
;
42
class
TrentoPassiveProtonBeamLineMessenger
;
43
class
HadrontherapyDetectorROGeometry
;
44
45
class
TrentoPassiveProtonBeamLine
:
public
G4VUserDetectorConstruction
46
{
47
public
:
48
49
//TrentoPassiveProtonBeamLine(G4VPhysicalVolume*);
50
TrentoPassiveProtonBeamLine
();
51
~TrentoPassiveProtonBeamLine
();
52
// static G4bool doCalculation;
53
54
G4VPhysicalVolume
*
Construct
();
55
//
56
static
TrentoPassiveProtonBeamLine
*
GetInstance
();
57
58
//
59
void
HadrontherapyBeamLineSupport
();
60
// Definition of the beam line support
61
62
void
HadrontherapyBeamMonitoring
();
63
//Definition of the monitor chamber
64
65
void
HadrontherapyBeamScatteringFoils
();
66
// Definition of the first scattering foil made of tantalum
67
68
void
HadrontherapyBeamCollimators
();
69
// Definition of the pre collimator made of plastic
70
// and the collimator in front of the detector
71
72
void
HadrontherapyRidgeFilter
();
73
// The following methods allow to change parameters
74
// of some beam line components (through Messenger files)
75
76
void
SetScatteringFoilXSize
(
G4double
);
77
// This method allows to change the size of the scattering foil
78
// along the X axis
79
80
void
SetPreCollimatorXSize
(
G4double
);
81
// This method allows to change the size of the pre collimator along
82
// the Z axis
83
84
void
SetPreCollimatorXPosition
(
G4double
);
85
// This method allows to change the position of the pre collimator along
86
// the X axis
87
88
void
SetAirTubeYSize
(
G4double
);
89
// This method allows to change the y side of
90
// air tube
91
92
void
SetAirTubeZSize
(
G4double
);
93
// This method allows to change the z side of
94
// the air tube
95
96
void
SetScattererMaterial
(
G4String
);
97
// This method permit to change
98
//the material of scatterer
99
100
private
:
101
static
TrentoPassiveProtonBeamLine
*
instance
;
102
//passive proton line dimensions
103
void
SetDefaultDimensions
();
104
void
ConstructTrentoPassiveProtonBeamLine
();
105
106
// geometry component
107
TrentoPassiveProtonBeamLineMessenger
*
TrentoPassiveMessenger
;
108
G4LogicalVolume
*
logicTreatmentRoom
;
109
G4VPhysicalVolume
*
physicalTreatmentRoom
;
110
HadrontherapyDetectorConstruction
*
hadrontherapyDetectorConstruction
;
111
112
113
G4Material
*
kapton
;
114
115
G4double
ScatteringFoilXSize
;
116
G4double
ScatteringFoilYSize
;
117
G4double
ScatteringFoilZSize
;
118
G4double
ScatteringFoilXPosition
;
119
G4double
ScatteringFoilYPosition
;
120
G4double
ScatteringFoilZPosition
;
121
122
G4double
preCollimatorXHalfSide
;
123
G4double
preCollimatorXPosition
;
124
G4double
preCollimatorYPosition
;
125
G4double
preCollimatorZPosition
;
126
127
G4double
YHalfSideAirTube
;
128
G4double
ZHalfSideAirTube
;
129
130
G4VPhysicalVolume
*
physiBeamLineSupport
;
131
G4VPhysicalVolume
*
physiBeamLineCover
;
132
G4VPhysicalVolume
*
physiBeamLineCover2
;
133
134
G4VPhysicalVolume
*
physiMonitorLayer1
;
135
G4VPhysicalVolume
*
physiMonitorLayer2
;
136
137
G4VPhysicalVolume
*
internalMonitorStructurePV
;
138
G4VPhysicalVolume
*
firstFoilPV
;
139
G4VPhysicalVolume
*
secondFoilPV
;
140
G4VPhysicalVolume
*
airgapPV
;
141
142
G4Box
*
ScatteringFoil
;
143
G4LogicalVolume
*
logicScatteringFoil
;
144
G4VPhysicalVolume
*
physiScatteringFoil
;
145
146
G4VPhysicalVolume
*
ridgeFilterPhys
;
147
148
G4Box
*
preCollimator
;
149
G4VPhysicalVolume
*
physiPreCollimator
;
150
151
G4Box
*
Collimator
;
152
G4VPhysicalVolume
*
physiCollimator
;
153
154
G4Box
*
solidAirTube
;
155
G4Box
*
solidAirPreTube
;
156
157
G4VPhysicalVolume
*
mother
;
158
G4VPhysicalVolume
*
physiAirTube
;
159
G4VPhysicalVolume
*
physiAirPreTube
;
160
161
G4VisAttributes
*
blue
;
162
G4VisAttributes
*
gray
;
163
G4VisAttributes
*
white
;
164
G4VisAttributes
*
red
;
165
G4VisAttributes
*
yellow
;
166
G4VisAttributes
*
green
;
167
G4VisAttributes
*
darkGreen
;
168
G4VisAttributes
*
darkOrange3
;
169
G4VisAttributes
*
skyBlue
;
170
171
G4Material
*
beamLineSupportMaterial
;
172
G4Material
*
vacuumZoneMaterial
;
173
G4Material
*
layerMonitorChamberMaterial
;
174
G4Material
*
layerDefaultMaterial
;
175
G4Material
*
FoilMaterial
;
176
G4Material
*
internalStructureMaterial
;
177
G4Material
*
airgapMaterial
;
178
G4Material
*
ScatteringFoilMaterial
;
179
G4Material
*
singleTrapMaterial
;
180
G4Material
*
CollimatorMaterial
;
181
G4Material
*
preCollimatorMaterial
;
182
G4Material
*
airTubeMaterial
;
183
G4Material
*
airTube2Material
;
184
G4Material
*
airTube3Material
;
185
G4Material
*
ridgeFilterMaterial
;
186
187
HadrontherapyDetectorROGeometry
*
RO
;
188
189
190
};
191
#endif
geant4
tree
geant4-10.6-release
examples
advanced
hadrontherapy
include
HadrontherapyTIFPAPassiveProtonBeamLine.hh
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:24:58
using
1.8.2 with
ECCE GitHub integration