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
optical
wls
include
WLSDetectorConstruction.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
//
31
//
32
33
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
34
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
35
36
#ifndef WLSDetectorConstruction_h
37
#define WLSDetectorConstruction_h 1
38
39
#include "
globals.hh
"
40
#include "
G4ios.hh
"
41
42
#include "
G4RotationMatrix.hh
"
43
44
class
G4Box
;
45
class
G4Tubs
;
46
class
G4EllipticalTube
;
47
48
class
G4LogicalVolume
;
49
class
G4VPhysicalVolume
;
50
51
class
WLSMaterials
;
52
class
G4Material
;
53
54
class
WLSDetectorMessenger
;
55
56
class
WLSPhotonDetSD
;
57
58
#include "
G4VUserDetectorConstruction.hh
"
59
60
class
WLSDetectorConstruction
:
public
G4VUserDetectorConstruction
61
{
62
public
:
63
64
WLSDetectorConstruction
();
65
~WLSDetectorConstruction
();
66
67
G4VPhysicalVolume
*
Construct
();
68
G4VPhysicalVolume
*
ConstructDetector
();
69
70
void
UpdateGeometry
();
71
72
// Set Material Commands for World and WLSfiber
73
void
SetWorldMaterial
(
G4String
);
74
void
SetWLSFiberMaterial
(
G4String
);
75
void
SetCoupleMaterial
(
G4String
);
76
77
void
SetPhotonDetGeometry
(
G4String
);
78
void
SetNumberOfCladding
(
G4int
);
// Maximum 2 claddings
79
80
void
SetWLSLength
(
G4double
);
// Total length of WLS fiber
81
void
SetWLSRadius
(
G4double
);
82
void
SetClad1Radius
(
G4double
);
83
void
SetClad2Radius
(
G4double
);
84
void
SetPhotonDetHalfLength
(
G4double
);
85
void
SetGap
(
G4double
);
86
void
SetPhotonDetAlignment
(
G4double
);
87
// Set the ratio of x and y (x/y) radius of the ellipse
88
void
SetXYRatio
(
G4double
);
89
// Set the Roughness in between each layer
90
void
SetSurfaceRoughness
(
G4double
);
91
// Set the reflectivity of the mirror
92
void
SetMirrorReflectivity
(
G4double
);
93
// Set the polish of the mirror
94
void
SetMirrorPolish
(
G4double
);
95
// Set the reflectivity of the mirror
96
void
SetPhotonDetReflectivity
(
G4double
);
97
// Set the polish of the mirror
98
void
SetPhotonDetPolish
(
G4double
);
99
100
void
SetMirror
(
G4bool
);
101
102
void
SetBarLength
(
G4double
);
103
void
SetBarBase
(
G4double
);
104
void
SetHoleRadius
(
G4double
);
105
void
SetCoatingThickness
(
G4double
);
106
void
SetCoatingRadius
(
G4double
);
107
108
G4double
GetWLSFiberLength
();
109
G4double
GetWLSFiberEnd
();
110
G4double
GetWLSFiberRMax
();
111
G4double
GetSurfaceRoughness
();
112
G4bool
IsPerfectFiber
();
113
114
G4double
GetBarLength
();
115
G4double
GetBarBase
();
116
G4double
GetHoleRadius
();
117
G4double
GetHoleLength
();
118
G4double
GetFiberRadius
();
119
120
G4double
GetCoatingThickness
();
121
G4double
GetCoatingRadius
();
122
123
// stringToRotationMatrix() converts a string "X90,Y45" into a
124
// G4RotationMatrix.
125
// This is an active rotation, in that the object is first rotated
126
// around the parent's X axis by 90 degrees, then the object is
127
// further rotated around the parent's Y axis by 45 degrees.
128
// The return value points to a G4RotationMatrix on the heap, so
129
// it is persistent. Angles are in degrees, can have decimals,
130
// and can be negative. Axes are X, Y, Z.
131
132
static
G4RotationMatrix
stringToRotationMatrix
(
G4String
rotation);
133
134
G4Material
*
FindMaterial
(
G4String
);
135
136
private
:
137
138
WLSMaterials
* materials;
139
140
G4LogicalVolume
* logicHole;
141
G4LogicalVolume
* logicWorld;
142
143
G4VPhysicalVolume
* physiWorld;
144
G4VPhysicalVolume
* physiHole;
145
146
G4double
worldSizeX;
147
G4double
worldSizeY;
148
G4double
worldSizeZ;
149
150
G4double
wlsfiberRX;
151
G4double
wlsfiberRY;
152
G4double
wlsfiberZ;
153
154
G4double
clad1RX;
155
G4double
clad1RY;
156
G4double
clad1Z;
157
158
G4double
clad2RX;
159
G4double
clad2RY;
160
G4double
clad2Z;
161
162
G4double
clrfiberHalfL;
163
G4double
clrfiberZ;
164
165
G4double
coupleRX;
166
G4double
coupleRY;
167
G4double
coupleZ;
168
169
G4double
mirrorRmax;
170
G4double
mirrorZ;
171
G4bool
mirrorToggle;
172
173
G4String
mppcShape;
174
G4double
mppcHalfL;
175
G4double
mppcZ;
176
G4double
mppcDist;
177
G4double
mppcTheta;
178
179
G4double
wlsfiberOrigin;
180
G4double
coupleOrigin;
181
G4double
mirrorOrigin;
182
G4double
mppcOriginX;
183
G4double
mppcOriginZ;
184
185
G4int
numOfCladLayers;
186
187
G4double
mirrorPolish;
188
G4double
mirrorReflectivity;
189
G4double
mppcPolish;
190
G4double
mppcReflectivity;
191
G4double
extrusionPolish;
192
G4double
extrusionReflectivity;
193
G4double
surfaceRoughness;
194
G4double
XYRatio;
195
196
G4double
barLength;
197
G4double
barBase;
198
G4double
holeRadius;
199
G4double
holeLength;
200
G4double
coatingThickness;
201
G4double
coatingRadius;
202
203
static
WLSPhotonDetSD
* mppcSD;
204
205
private
:
206
207
void
ConstructFiber();
208
209
void
UpdateGeometryParameters();
210
211
WLSDetectorMessenger
* detectorMessenger;
212
213
};
214
215
#endif
Generated on Sat May 25 2013 14:32:58 for Geant4 by
1.8.4