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
WLSDetectorConstruction.hh
Go to the documentation of this file.
Or view
the newest version in sPHENIX GitHub for file WLSDetectorConstruction.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
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
32
//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo....
33
34
#ifndef WLSDetectorConstruction_h
35
#define WLSDetectorConstruction_h 1
36
37
#include "
globals.hh
"
38
#include "
G4ios.hh
"
39
40
#include "
G4RotationMatrix.hh
"
41
42
class
G4Box
;
43
class
G4Tubs
;
44
class
G4EllipticalTube
;
45
46
class
G4LogicalVolume
;
47
class
G4VPhysicalVolume
;
48
49
class
WLSMaterials
;
50
class
G4Material
;
51
52
class
WLSDetectorMessenger
;
53
54
class
WLSPhotonDetSD
;
55
56
#include "
G4VUserDetectorConstruction.hh
"
57
#include "
G4Cache.hh
"
58
59
class
WLSDetectorConstruction
:
public
G4VUserDetectorConstruction
60
{
61
public
:
62
63
WLSDetectorConstruction
();
64
virtual
~WLSDetectorConstruction
();
65
66
virtual
G4VPhysicalVolume
*
Construct
();
67
G4VPhysicalVolume
*
ConstructDetector
();
68
69
virtual
void
ConstructSDandField
();
70
71
// Set Material Commands for World and WLSfiber
72
void
SetWorldMaterial
(
G4String
);
73
void
SetWLSFiberMaterial
(
G4String
);
74
void
SetCoupleMaterial
(
G4String
);
75
76
void
SetPhotonDetGeometry
(
G4String
);
77
void
SetNumberOfCladding
(
G4int
);
// Maximum 2 claddings
78
79
void
SetWLSLength
(
G4double
);
// Total length of WLS fiber
80
void
SetWLSRadius
(
G4double
);
81
void
SetClad1Radius
(
G4double
);
82
void
SetClad2Radius
(
G4double
);
83
void
SetPhotonDetHalfLength
(
G4double
);
84
void
SetGap
(
G4double
);
85
void
SetPhotonDetAlignment
(
G4double
);
86
// Set the ratio of x and y (x/y) radius of the ellipse
87
void
SetXYRatio
(
G4double
);
88
// Set the Roughness in between each layer
89
void
SetSurfaceRoughness
(
G4double
);
90
// Set the reflectivity of the mirror
91
void
SetMirrorReflectivity
(
G4double
);
92
// Set the polish of the mirror
93
void
SetMirrorPolish
(
G4double
);
94
// Set the reflectivity of the mirror
95
void
SetPhotonDetReflectivity
(
G4double
);
96
// Set the polish of the mirror
97
void
SetPhotonDetPolish
(
G4double
);
98
99
void
SetMirror
(
G4bool
);
100
101
void
SetBarLength
(
G4double
);
102
void
SetBarBase
(
G4double
);
103
void
SetHoleRadius
(
G4double
);
104
void
SetCoatingThickness
(
G4double
);
105
void
SetCoatingRadius
(
G4double
);
106
107
G4double
GetWLSFiberLength
();
108
G4double
GetWLSFiberEnd
();
109
G4double
GetWLSFiberRMax
();
110
G4double
GetSurfaceRoughness
();
111
G4bool
IsPerfectFiber
();
112
113
G4double
GetBarLength
();
114
G4double
GetBarBase
();
115
G4double
GetHoleRadius
();
116
G4double
GetHoleLength
();
117
G4double
GetFiberRadius
();
118
119
G4double
GetCoatingThickness
();
120
G4double
GetCoatingRadius
();
121
122
// StringToRotationMatrix() converts a string "X90,Y45" into a
123
// G4RotationMatrix.
124
// This is an active rotation, in that the object is first rotated
125
// around the parent's X axis by 90 degrees, then the object is
126
// further rotated around the parent's Y axis by 45 degrees.
127
// The return value points to a G4RotationMatrix on the heap, so
128
// it is persistent. Angles are in degrees, can have decimals,
129
// and can be negative. Axes are X, Y, Z.
130
131
static
G4RotationMatrix
StringToRotationMatrix
(
G4String
rotation);
132
133
G4Material
*
FindMaterial
(
G4String
);
134
135
private
:
136
137
WLSMaterials
*
fMaterials
;
138
139
G4LogicalVolume
*
fLogicHole
;
140
G4LogicalVolume
*
fLogicWorld
;
141
142
G4VPhysicalVolume
*
fPhysiWorld
;
143
G4VPhysicalVolume
*
fPhysiHole
;
144
145
G4double
fWorldSizeX
;
146
G4double
fWorldSizeY
;
147
G4double
fWorldSizeZ
;
148
149
G4double
fWLSfiberRX
;
150
G4double
fWLSfiberRY
;
151
G4double
fWLSfiberZ
;
152
153
G4double
fClad1RX
;
154
G4double
fClad1RY
;
155
G4double
fClad1Z
;
156
157
G4double
fClad2RX
;
158
G4double
fClad2RY
;
159
G4double
fClad2Z
;
160
161
G4double
fClrfiberHalfL
;
162
G4double
fClrfiberZ
;
163
164
G4double
fCoupleRX
;
165
G4double
fCoupleRY
;
166
G4double
fCoupleZ
;
167
168
G4double
fMirrorRmax
;
169
G4double
fMirrorZ
;
170
G4bool
fMirrorToggle
;
171
172
G4String
fMPPCShape
;
173
G4double
fMPPCHalfL
;
174
G4double
fMPPCZ
;
175
G4double
fMPPCDist
;
176
G4double
fMPPCTheta
;
177
178
G4double
fWLSfiberOrigin
;
179
G4double
fCoupleOrigin
;
180
G4double
fMirrorOrigin
;
181
G4double
fMPPCOriginX
;
182
G4double
fMPPCOriginZ
;
183
184
G4int
fNumOfCladLayers
;
185
186
G4double
fMirrorPolish
;
187
G4double
fMirrorReflectivity
;
188
G4double
fMPPCPolish
;
189
G4double
fMPPCReflectivity
;
190
G4double
fExtrusionPolish
;
191
G4double
fExtrusionReflectivity
;
192
G4double
fSurfaceRoughness
;
193
G4double
fXYRatio
;
194
195
G4double
fBarLength
;
196
G4double
fBarBase
;
197
G4double
fHoleRadius
;
198
G4double
fHoleLength
;
199
G4double
fCoatingThickness
;
200
G4double
fCoatingRadius
;
201
202
private
:
203
204
void
ConstructFiber
();
205
206
void
UpdateGeometryParameters
();
207
208
WLSDetectorMessenger
*
fDetectorMessenger
;
209
G4Cache<WLSPhotonDetSD*>
fmppcSD
;
210
211
};
212
213
#endif
geant4
tree
geant4-10.6-release
examples
extended
optical
wls
include
WLSDetectorConstruction.hh
Built by
Jin Huang
. updated:
Wed Jun 29 2022 17:25:08
using
1.8.2 with
ECCE GitHub integration