Geant4
9.6.p02
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
geant4_9_6_p02
examples
extended
electromagnetic
TestEm10
include
Em10DetectorConstruction.hh
Go to the documentation of this file.
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
//
28
//
29
//
30
// $Id$
31
//
32
//
33
34
#ifndef Em10DetectorConstruction_h
35
#define Em10DetectorConstruction_h 1
36
37
#include "
G4VUserDetectorConstruction.hh
"
38
#include "
globals.hh
"
39
#include "
G4ios.hh
"
40
41
class
G4Box
;
42
class
G4Tubs
;
43
class
G4LogicalVolume
;
44
class
G4VPhysicalVolume
;
45
class
G4Material
;
46
class
G4Region
;
47
class
G4UniformMagField
;
48
class
Em10DetectorMessenger
;
49
class
Em10CalorimeterSD
;
50
class
G4Region
;
51
class
Em10Materials
;
52
53
54
class
Em10DetectorConstruction
:
public
G4VUserDetectorConstruction
55
{
56
public
:
57
58
Em10DetectorConstruction
();
59
~Em10DetectorConstruction
();
60
61
public
:
62
63
64
void
SetAbsorberMaterial
(
G4String
);
65
void
SetAbsorberThickness
(
G4double
);
66
void
SetAbsorberRadius
(
G4double
);
67
void
SetAbsorberZpos
(
G4double
);
68
69
void
SetRadiatorMaterial
(
G4String
);
70
void
SetRadiatorThickness
(
G4double
);
71
72
void
SetGasGapThickness
(
G4double
);
73
74
void
SetFoilNumber
(
G4int
i) {fFoilNumber = i; };
75
76
void
SetWorldMaterial
(
G4String
);
77
void
SetWorldSizeZ
(
G4double
);
78
void
SetWorldSizeR
(
G4double
);
79
void
SetDetectorSetUp
(
G4String
s
) {fSetUp =
s
;};
80
81
82
void
SetMagField
(
G4double
);
83
84
G4VPhysicalVolume
*
Construct
();
85
86
void
UpdateGeometry
();
87
88
public
:
89
90
void
PrintGeometryParameters
();
91
92
G4Material
*
GetWorldMaterial
() {
return
fWorldMaterial;};
93
G4double
GetWorldSizeZ
() {
return
fWorldSizeZ;};
94
G4double
GetWorldSizeR
() {
return
fWorldSizeR;};
95
96
G4double
GetAbsorberZpos
() {
return
fAbsorberZ;};
97
98
G4Material
*
GetAbsorberMaterial
() {
return
fAbsorberMaterial;};
99
G4double
GetAbsorberThickness
() {
return
fAbsorberThickness;};
100
G4double
GetAbsorberRadius
() {
return
fAbsorberRadius;};
101
102
const
G4VPhysicalVolume
*
GetphysiWorld
() {
return
fPhysicsWorld;};
103
const
G4VPhysicalVolume
*
GetAbsorber
() {
return
fPhysicsAbsorber;};
104
G4LogicalVolume
*
GetLogicalAbsorber
() {
return
fLogicAbsorber;};
105
106
G4LogicalVolume
*
GetLogicalRadiator
() {
return
fLogicRadiator;};
107
G4double
GetFoilThick
() {
return
fRadThickness;};
108
G4double
GetGasThick
() {
return
fGasGap;};
109
G4int
GetFoilNumber
() {
return
fFoilNumber;};
110
G4Material
*
GetFoilMaterial
() {
return
fFoilMat;};
111
G4Material
*
GetGasMaterial
() {
return
fGasMat;};
112
113
private
:
114
115
G4VPhysicalVolume
* ConstructDetectorXTR();
116
117
118
G4VPhysicalVolume
* SimpleSetUpALICE();
119
G4VPhysicalVolume
* SetUpALICE06();
120
G4VPhysicalVolume
* SetUpBari05();
121
G4VPhysicalVolume
* SetUpHarris73();
122
G4VPhysicalVolume
* SetUpWatase86();
123
G4VPhysicalVolume
* SetUpBarr90();
124
125
126
127
void
TestOld();
128
129
private
:
130
131
G4bool
fWorldChanged;
132
G4Material
* fAbsorberMaterial;
133
G4double
fAbsorberThickness;
134
G4double
fAbsorberRadius;
135
136
G4Material
* fPipeMat;
137
138
G4Material
* fWindowMat;
139
G4double
fWindowThick;
140
141
G4Material
* fElectrodeMat;
142
G4double
fElectrodeThick;
143
144
G4Material
* fGapMat;
145
G4double
fGapThick;
146
147
G4double
fAbsorberZ;
148
// G4double zstartAbs , zendAbs;
149
G4String
fSetUp;
150
151
G4Material
* fWorldMaterial;
152
G4double
fWorldSizeR;
153
G4double
fWorldSizeZ;
154
155
G4Box
* fSolidWorld;
//pointer to the solid World
156
G4LogicalVolume
* fLogicWorld;
//pointer to the logical World
157
G4VPhysicalVolume
* fPhysicsWorld;
//pointer to the physical World
158
159
// TR radiator volumes and dimensions
160
161
G4Box
* fSolidRadSlice;
// pointer to the solid z-slice
162
G4LogicalVolume
* fLogicRadSlice;
// pointer to the logical z-slide
163
G4VPhysicalVolume
* fPhysicRadSlice;
// pointer to the physical z-slide
164
165
G4Box
* fSolidRadRing;
// pointer to the solid R-slice
166
G4LogicalVolume
* fLogicRadRing;
// pointer to the logical R-slide
167
G4VPhysicalVolume
* fPhysicRadRing;
// pointer to the physical R-slide
168
169
G4Box
* fSolidRadiator;
170
G4LogicalVolume
* fLogicRadiator;
171
G4VPhysicalVolume
* fPhysicsRadiator;
172
173
G4Material
* fRadiatorMat;
// pointer to the mixed TR radiator material
174
G4Material
* fFoilMat;
// pointer to the TR foil radiator material
175
G4Material
* fGasMat;
// pointer to the TR gas radiator material
176
177
G4double
fRadThickness;
178
G4double
fGasGap;
179
G4double
foilGasRatio;
180
181
G4int
fFoilNumber;
182
183
G4double
fDetThickness;
184
G4double
fDetLength;
185
G4double
fDetGap;
186
187
G4double
fStartR;
188
G4double
fStartZ;
189
190
G4int
fModuleNumber;
// the number of Rad-Det modules
191
192
G4double
fRadThick;
193
G4double
fMylarThick;
194
G4double
fPipeLength;
195
G4bool
fPipe;
196
G4bool
fPipeField;
197
G4double
fRadZ;
198
G4double
fWindowZ;
199
G4double
fGapZ;
200
G4double
fElectrodeZ;
201
202
G4Box
* fSolidAbsorber;
//pointer to the solid Absorber
203
G4LogicalVolume
* fLogicAbsorber;
//pointer to the logical Absorber
204
G4VPhysicalVolume
* fPhysicsAbsorber;
//pointer to the physical Absorber
205
206
G4UniformMagField
* fMagField;
//pointer to the magnetic field
207
208
// G4double fElectronCut, fGammaCut, fPositronCut;
209
210
Em10DetectorMessenger
* fDetectorMessenger;
//pointer to the Messenger
211
Em10CalorimeterSD
* fCalorimeterSD;
//pointer to the sensitive detector
212
G4Region
* fRegGasDet;
213
G4Region
* fRadRegion;
214
Em10Materials
* fMat;
215
216
};
217
218
#endif
219
220
221
222
223
224
225
Generated on Sat May 25 2013 14:32:20 for Geant4 by
1.8.4