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
F04DetectorConstruction.hh
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file F04DetectorConstruction.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
31
#ifndef F04DetectorConstruction_h
32
#define F04DetectorConstruction_h 1
33
34
#include "
globals.hh
"
35
#include "
G4Cache.hh
"
36
37
#include "
G4LogicalVolume.hh
"
38
#include "
G4RotationMatrix.hh
"
39
40
class
G4Tubs
;
41
42
class
G4VPhysicalVolume
;
43
44
class
F04Materials
;
45
class
G4Material
;
46
47
class
F04GlobalField
;
48
49
class
F04DetectorMessenger
;
50
51
#include "
G4VUserDetectorConstruction.hh
"
52
53
class
F04DetectorConstruction
:
public
G4VUserDetectorConstruction
54
{
55
public
:
56
57
F04DetectorConstruction
();
58
virtual
~F04DetectorConstruction
();
59
60
virtual
G4VPhysicalVolume
*
Construct
();
61
G4VPhysicalVolume
*
ConstructDetector
();
62
63
virtual
void
ConstructSDandField
();
64
65
// StringToRotationMatrix() converts a string "X90,Y45" into a
66
// G4RotationMatrix.
67
// This is an active rotation, in that the object is first rotated
68
// around the parent's X axis by 90 degrees, then the object is
69
// further rotated around the parent's Y axis by 45 degrees.
70
// The return value points to a G4RotationMatrix on the heap, so
71
// it is persistent. Angles are in degrees, can have decimals,
72
// and can be negative. Axes are X, Y, Z.
73
74
static
G4RotationMatrix
StringToRotationMatrix
(
G4String
rotation);
75
76
public
:
77
78
void
SetWorldMaterial
(
G4String
);
79
void
SetWorldSizeZ
(
G4double
);
80
void
SetWorldSizeR
(
G4double
);
81
82
void
SetCaptureMgntRadius
(
G4double
);
83
void
SetCaptureMgntLength
(
G4double
);
84
void
SetCaptureMgntB1
(
G4double
);
85
void
SetCaptureMgntB2
(
G4double
);
86
87
void
SetTransferMgntRadius
(
G4double
);
88
void
SetTransferMgntLength
(
G4double
);
89
void
SetTransferMgntB
(
G4double
);
90
void
SetTransferMgntPos
(
G4double
);
91
92
void
SetTargetMaterial
(
G4String
);
93
void
SetTargetThickness
(
G4double
);
94
void
SetTargetRadius
(
G4double
);
95
void
SetTargetPos
(
G4double
);
96
void
SetTargetAngle
(
G4int
);
97
98
void
SetDegraderMaterial
(
G4String
);
99
void
SetDegraderThickness
(
G4double
);
100
void
SetDegraderRadius
(
G4double
);
101
void
SetDegraderPos
(
G4double
);
102
103
public
:
104
105
G4Material
*
GetWorldMaterial
() {
return
fWorldMaterial
;}
106
G4double
GetWorldSizeZ
() {
return
fWorldSizeZ
;}
107
G4double
GetWorldSizeR
() {
return
fWorldSizeR
;}
108
109
G4LogicalVolume
*
GetCaptureMgnt
() {
return
fLogicCaptureMgnt
;}
110
G4double
GetCaptureMgntRadius
() {
return
fCaptureMgntRadius
;}
111
G4double
GetCaptureMgntLength
() {
return
fCaptureMgntLength
;}
112
G4double
GetCaptureMgntB1
() {
return
fCaptureMgntB1
;}
113
G4double
GetCaptureMgntB2
() {
return
fCaptureMgntB2
;}
114
G4ThreeVector
GetCaptureMgntCenter
() {
return
fCaptureMgntCenter
;}
115
116
G4LogicalVolume
*
GetTransferMgnt
() {
return
fLogicTransferMgnt
;}
117
G4double
GetTransferMgntRadius
() {
return
fTransferMgntRadius
;}
118
G4double
GetTransferMgntLength
() {
return
fTransferMgntLength
;}
119
G4double
GetTransferMgntB
() {
return
fTransferMgntB
;}
120
G4double
GetTransferMgntPos
() {
return
fTransferMgntPos
;}
121
G4ThreeVector
GetTransferMgntCenter
() {
return
fTransferMgntCenter
;}
122
123
G4Material
*
GetTargetMaterial
() {
return
fTargetMaterial
;}
124
G4double
GetTargetRadius
() {
return
fTargetRadius
;}
125
G4double
GetTargetThickness
() {
return
fTargetThickness
;}
126
G4double
GetTargetPos
() {
return
fTargetPos
;}
127
G4int
GetTargetAngle
() {
return
fTargetAngle
;}
128
129
G4Material
*
GetDegraderMaterial
() {
return
fDegraderMaterial
;}
130
G4double
GetDegraderRadius
() {
return
fDegraderRadius
;}
131
G4double
GetDegraderThickness
() {
return
fDegraderThickness
;}
132
G4double
GetDegraderPos
() {
return
fDegraderPos
;}
133
134
private
:
135
136
F04DetectorMessenger
*
fDetectorMessenger
;
// pointer to the Messenger
137
G4Cache<F04GlobalField*>
fFieldSetUp
;
138
139
F04Materials
*
fMaterials
;
140
141
G4Material
*
fVacuum
;
142
143
G4Tubs
*
fSolidWorld
;
144
G4LogicalVolume
*
fLogicWorld
;
145
G4VPhysicalVolume
*
fPhysiWorld
;
146
147
G4Tubs
*
fSolidTarget
;
148
G4LogicalVolume
*
fLogicTarget
;
149
G4VPhysicalVolume
*
fPhysiTarget
;
150
151
G4Tubs
*
fSolidDegrader
;
152
G4LogicalVolume
*
fLogicDegrader
;
153
G4VPhysicalVolume
*
fPhysiDegrader
;
154
155
G4Tubs
*
fSolidCaptureMgnt
;
156
G4LogicalVolume
*
fLogicCaptureMgnt
;
157
G4VPhysicalVolume
*
fPhysiCaptureMgnt
;
158
159
G4Tubs
*
fSolidTransferMgnt
;
160
G4LogicalVolume
*
fLogicTransferMgnt
;
161
G4VPhysicalVolume
*
fPhysiTransferMgnt
;
162
163
G4Material
*
fWorldMaterial
;
164
G4double
fWorldSizeR
;
165
G4double
fWorldSizeZ
;
166
167
G4double
fCaptureMgntLength
;
168
G4double
fCaptureMgntRadius
;
169
G4double
fCaptureMgntB1
;
170
G4double
fCaptureMgntB2
;
171
172
G4double
fTransferMgntLength
;
173
G4double
fTransferMgntRadius
;
174
G4double
fTransferMgntB
;
175
G4double
fTransferMgntPos
;
176
177
G4Material
*
fTargetMaterial
;
178
G4double
fTargetThickness
;
179
G4double
fTargetRadius
;
180
G4double
fTargetPos
;
181
G4int
fTargetAngle
;
182
183
G4Material
*
fDegraderMaterial
;
184
G4double
fDegraderThickness
;
185
G4double
fDegraderRadius
;
186
G4double
fDegraderPos
;
187
188
G4ThreeVector
fCaptureMgntCenter
,
fTransferMgntCenter
;
189
190
private
:
191
192
void
DefineMaterials
();
193
194
};
195
196
#endif
geant4
tree
geant4-10.6-release
examples
extended
field
field04
include
F04DetectorConstruction.hh
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:25:05
using
1.8.2 with
ECCE GitHub integration