Loading...
Searching...
No Matches
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//
26//
27/// \file optical/wls/include/WLSDetectorConstruction.hh
28/// \brief Definition of the WLSDetectorConstruction class
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 "G4Cache.hh"
39#include "G4RotationMatrix.hh"
40#include "G4VUserDetectorConstruction.hh"
41#include <CLHEP/Units/SystemOfUnits.h>
42
43class WLSMaterials;
45class WLSPhotonDetSD;
46
47class G4Box;
49class G4LogicalVolume;
50class G4Material;
51class G4Tubs;
52class G4VisAttributes;
54
56{
57 public:
59 ~WLSDetectorConstruction() override;
60
61 G4VPhysicalVolume* Construct() override;
63
64 void ConstructSDandField() override;
65
66 // Set Material Commands for World and WLSfiber
70
72 void SetNumberOfCladding(G4int); // Maximum 2 claddings
73
74 void SetWLSLength(G4double); // Total length of WLS fiber
75 void SetWLSRadius(G4double);
76 void SetClad1Radius(G4double);
77 void SetClad2Radius(G4double);
78 void SetPhotonDetHalfLength(G4double);
79 void SetGap(G4double);
80 void SetPhotonDetAlignment(G4double);
81 // Set the ratio of x and y (x/y) radius of the ellipse
82 void SetXYRatio(G4double);
83 // Set the Roughness in between each layer
84 void SetSurfaceRoughness(G4double);
85 // Set the reflectivity of the mirror
86 void SetMirrorReflectivity(G4double);
87 // Set the polish of the mirror
88 void SetMirrorPolish(G4double);
89 // Set the reflectivity of the mirror
90 void SetPhotonDetReflectivity(G4double);
91 // Set the polish of the mirror
92 void SetPhotonDetPolish(G4double);
93
94 void SetMirror(G4bool);
95
96 void SetBarLength(G4double);
97 void SetBarBase(G4double);
98 void SetHoleRadius(G4double);
99 void SetCoatingThickness(G4double);
100 void SetCoatingRadius(G4double);
101
102 G4double GetWLSFiberLength();
103 G4double GetWLSFiberEnd();
104 G4double GetWLSFiberRMax();
105 G4double GetSurfaceRoughness();
106 G4bool IsPerfectFiber();
107
108 G4double GetBarLength();
109 G4double GetBarBase();
110 G4double GetHoleRadius();
111 G4double GetHoleLength();
112 G4double GetFiberRadius();
113
114 G4double GetCoatingThickness();
115 G4double GetCoatingRadius();
116
118
119 private:
120 std::vector<G4VisAttributes*> fVisAttributes;
121
123
126
129
130 G4double fWorldSizeX = -1.;
131 G4double fWorldSizeY = -1.;
132 G4double fWorldSizeZ = -1.;
133
134 G4double fWLSfiberRX = -1.;
135 G4double fWLSfiberRY = 0.5 * CLHEP::mm;
136 G4double fWLSfiberZ = 1. * CLHEP::m;
137
138 G4double fClad1RX = -1.;
139 G4double fClad1RY = -1.;
140 G4double fClad1Z = -1.;
141
142 G4double fClad2RX = -1.;
143 G4double fClad2RY = -1.;
144 G4double fClad2Z = -1.;
145
146 G4double fClrfiberHalfL = -1.;
147 G4double fClrfiberZ = -1.;
148
149 G4double fCoupleRX = -1.;
150 G4double fCoupleRY = -1.;
151 G4double fCoupleZ = -1.;
152
153 G4double fMirrorRmax = -1.;
154 G4double fMirrorZ = 0.1 * CLHEP::mm;
155 G4bool fMirrorToggle = true;
156
158 G4double fMPPCHalfL = -1.;
159 G4double fMPPCZ = 0.05 * CLHEP::mm;
160 G4double fMPPCDist = 0.;
161 G4double fMPPCTheta = 0;
162
163 G4double fWLSfiberOrigin = 0.;
164 G4double fCoupleOrigin = 0.;
165 G4double fMirrorOrigin = 0.;
166 G4double fMPPCOriginX = 0.;
167 G4double fMPPCOriginZ = 0.;
168
170
171 G4double fMirrorPolish = 1.;
172 G4double fMirrorReflectivity = 1.;
173 G4double fMPPCPolish = 1.;
174 G4double fMPPCReflectivity = 0.;
175 G4double fExtrusionPolish = 1.;
177 G4double fSurfaceRoughness = 1.;
178 G4double fXYRatio = 1.;
179
180 G4double fBarLength = 1. * CLHEP::m;
181 G4double fBarBase = 9.6 * CLHEP::mm;
182 G4double fHoleRadius = 0.9 * CLHEP::mm;
183 G4double fHoleLength = -1.;
184 G4double fCoatingThickness = 0.25 * CLHEP::mm;
185 G4double fCoatingRadius = 1.875 * CLHEP::mm;
186
188
191};
192
193#endif
G4Material * FindMaterial(G4String)
G4VPhysicalVolume * ConstructDetector()
std::vector< G4VisAttributes * > fVisAttributes
void SetWLSFiberMaterial(G4String)
void SetCoupleMaterial(G4String)
G4Cache< WLSPhotonDetSD * > fmppcSD
WLSDetectorMessenger * fDetectorMessenger
void SetWorldMaterial(G4String)
G4VPhysicalVolume * Construct() override

Applications | User Support | Publications | Collaboration