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
DetectorConstruction.hh
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file DetectorConstruction.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
//
29
//
30
#ifndef DetectorConstruction_h
31
#define DetectorConstruction_h 1
32
33
// -------------------------------------------------------------
34
// GEANT4 test IBREM
35
//
36
// Authors: V.Grichine, V.Ivanchenko
37
//
38
// Modified:
39
//
40
// 18-02-03 V.Ivanchenko create
41
//
42
// -------------------------------------------------------------
43
44
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
45
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
46
47
#include "
G4VUserDetectorConstruction.hh
"
48
#include "
G4VPhysicalVolume.hh
"
49
#include "
G4Material.hh
"
50
51
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
52
53
class
CheckVolumeSD
;
54
class
PhantomSD
;
55
class
TargetSD
;
56
class
DetectorMessenger
;
57
class
G4LogicalVolume
;
58
59
class
DetectorConstruction
:
public
G4VUserDetectorConstruction
60
{
61
public
:
62
63
DetectorConstruction
();
64
virtual
~DetectorConstruction
();
65
66
G4VPhysicalVolume
*
Construct
();
67
68
void
SetTarget1Material
(
const
G4String
&
m
);
69
void
SetTarget2Material
(
const
G4String
&
m
);
70
71
inline
G4double
GetGeneratorPosZ
()
const
{
return
fGeneratorPosZ
; };
72
73
inline
void
SetGap
(
G4double
val) {
fDelta
= val; };
74
inline
void
SetTarget1Z
(
G4double
val) {
fTarget1Z
= val; };
75
inline
void
SetTarget2Z
(
G4double
val) {
fTarget2Z
= val; };
76
inline
void
SetMylarZ
(
G4double
val) {
fMylarVolumeZ
= val; }
77
inline
void
SetCheckShiftZ
(
G4double
val) {
fCheckShiftZ
= val; }
78
inline
void
SetAbsorberZ
(
G4double
val) {
fAbsorberZ
= val; }
79
inline
void
SetAbsorberShiftZ
(
G4double
val) {
fAbsorberShiftZ
= val; }
80
81
inline
void
SetNumberDivZ
(
G4int
val) {
fNumZ
= val; };
82
inline
void
SetNumberDivR
(
G4int
val) {
fNumR
= val; };
83
84
const
G4VPhysicalVolume
*
GetCheckVolume
()
const
{
return
fCheckVolume
; }
85
const
G4VPhysicalVolume
*
GetGasVolume
()
const
{
return
fGasVolume
; }
86
const
G4VPhysicalVolume
*
GetPhantom
()
const
{
return
fPhantom
; }
87
const
G4VPhysicalVolume
*
GetTarget1
()
const
{
return
fTarget1
; }
88
const
G4VPhysicalVolume
*
GetTarget2
()
const
{
return
fTarget2
; }
89
90
G4double
GetAbsorberZ
()
const
{
return
fPhantomZ
; }
91
G4double
GetAbsorberR
()
const
{
return
fAbsorberRadius
; }
92
G4double
GetScoreZ
()
const
{
return
fAbsorberShiftZ
; }
93
94
G4int
GetNumberDivZ
()
const
{
return
fNumZ
; }
95
G4int
GetNumberDivR
()
const
{
return
fNumR
; }
96
97
void
SetMaxEnergy
(
G4double
e
) {
fMaxEnergy
=
e
; }
98
inline
G4double
GetMaxEnergy
()
const
{
return
fMaxEnergy
; }
99
G4int
GetNumberDivE
()
const
{
return
fNumE
; }
100
inline
void
SetNumberDivE
(
G4int
val) {
fNumE
= val; };
101
102
void
SetVerbose
(
G4bool
v
) {
fVerbose
=
v
; }
103
inline
G4bool
GetVerbose
()
const
{
return
fVerbose
; }
104
105
void
DumpGeometryParameters
();
106
107
private
:
108
109
void
InitialiseGeometryParameters
();
110
111
DetectorConstruction
&
operator=
(
const
DetectorConstruction
&
right
);
112
DetectorConstruction
(
const
DetectorConstruction
&);
113
void
ConstructSDandField
();
114
115
G4bool
fVerbose
;
116
117
G4int
fNumZ
;
118
G4int
fNumR
;
119
120
G4int
fNumE
;
121
G4double
fMaxEnergy
;
122
123
G4LogicalVolume
*
fLogicCheckVolume
;
124
std::vector<G4LogicalVolume*>
fLogicRing
;
125
G4LogicalVolume
*
fLogicPh
;
126
G4LogicalVolume
*
fLogicAbsorber
;
127
128
G4double
fWorldXY
,
fWorldZ
;
129
G4double
fDelta
;
130
G4double
fGeneratorPosZ
;
131
132
G4double
fTargetRadius
,
fTarget1Z
,
fTarget1PosZ
;
133
G4double
fTarget2Z
,
fTarget2PosZ
;
134
135
G4double
fGasVolumeRadius
,
fGasVolumeZ
,
fGasVolumePosZ
;
136
G4double
fAirZ
,
fMylarVolumeZ
,
fMylarPosZ
;
137
G4double
fCheckVolumeRadius
,
fCheckVolumeZ
,
fCheckShiftZ
,
fCheckVolumePosZ
;
138
G4double
fTargetVolumeZ
,
fTargetVolumePosZ
;
139
G4double
fShiftZPh
;
140
141
G4double
fPhantomRadius
,
fPhantomZ
,
fPhantomPosZ
;
142
G4double
fAbsorberRadius
,
fAbsorberZ
,
fAbsorberShiftZ
,
fAbsorberPosZ
;
143
G4double
fDistanceVacuumTarget
,
fWindowZ
,
fWindowPosZ
;
144
145
G4Material
*
fWorldMaterial
;
146
147
G4Material
*
fTarget1Material
;
148
G4Material
*
fTarget2Material
;
149
G4Material
*
fMylar
;
150
G4Material
*
fWindowMaterial
;
151
152
G4Material
*
fLightMaterial
;
153
G4Material
*
fAbsorberMaterial
;
154
155
G4LogicalVolume
*
fLogicTarget1
;
156
G4LogicalVolume
*
fLogicTarget2
;
157
158
G4VPhysicalVolume
*
fCheckVolume
;
159
G4VPhysicalVolume
*
fGasVolume
;
160
G4VPhysicalVolume
*
fPhantom
;
161
G4VPhysicalVolume
*
fTarget1
;
162
G4VPhysicalVolume
*
fTarget2
;
163
164
DetectorMessenger
*
fMessenger
;
165
};
166
167
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
168
169
#endif
geant4
tree
geant4-10.6-release
examples
extended
medical
GammaTherapy
include
DetectorConstruction.hh
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:24:50
using
1.8.2 with
ECCE GitHub integration