Geant4  10.03.p03
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
WLSDetectorConstruction Class Reference

#include <WLSDetectorConstruction.hh>

Inheritance diagram for WLSDetectorConstruction:
Collaboration diagram for WLSDetectorConstruction:

Public Member Functions

 WLSDetectorConstruction ()
 
virtual ~WLSDetectorConstruction ()
 
virtual G4VPhysicalVolumeConstruct ()
 
G4VPhysicalVolumeConstructDetector ()
 
virtual void ConstructSDandField ()
 
void SetWorldMaterial (G4String)
 
void SetWLSFiberMaterial (G4String)
 
void SetCoupleMaterial (G4String)
 
void SetPhotonDetGeometry (G4String)
 
void SetNumberOfCladding (G4int)
 
void SetWLSLength (G4double)
 
void SetWLSRadius (G4double)
 
void SetClad1Radius (G4double)
 
void SetClad2Radius (G4double)
 
void SetPhotonDetHalfLength (G4double)
 
void SetGap (G4double)
 
void SetPhotonDetAlignment (G4double)
 
void SetXYRatio (G4double)
 
void SetSurfaceRoughness (G4double)
 
void SetMirrorReflectivity (G4double)
 
void SetMirrorPolish (G4double)
 
void SetPhotonDetReflectivity (G4double)
 
void SetPhotonDetPolish (G4double)
 
void SetMirror (G4bool)
 
void SetBarLength (G4double)
 
void SetBarBase (G4double)
 
void SetHoleRadius (G4double)
 
void SetCoatingThickness (G4double)
 
void SetCoatingRadius (G4double)
 
G4double GetWLSFiberLength ()
 
G4double GetWLSFiberEnd ()
 
G4double GetWLSFiberRMax ()
 
G4double GetSurfaceRoughness ()
 
G4bool IsPerfectFiber ()
 
G4double GetBarLength ()
 
G4double GetBarBase ()
 
G4double GetHoleRadius ()
 
G4double GetHoleLength ()
 
G4double GetFiberRadius ()
 
G4double GetCoatingThickness ()
 
G4double GetCoatingRadius ()
 
G4MaterialFindMaterial (G4String)
 
- Public Member Functions inherited from G4VUserDetectorConstruction
 G4VUserDetectorConstruction ()
 
virtual ~G4VUserDetectorConstruction ()
 
virtual void CloneSD ()
 
virtual void CloneF ()
 
void RegisterParallelWorld (G4VUserParallelWorld *)
 
G4int ConstructParallelGeometries ()
 
void ConstructParallelSD ()
 
G4int GetNumberOfParallelWorld () const
 
G4VUserParallelWorldGetParallelWorld (G4int i) const
 

Static Public Member Functions

static G4RotationMatrix StringToRotationMatrix (G4String rotation)
 

Additional Inherited Members

- Protected Member Functions inherited from G4VUserDetectorConstruction
void SetSensitiveDetector (const G4String &logVolName, G4VSensitiveDetector *aSD, G4bool multi=false)
 
void SetSensitiveDetector (G4LogicalVolume *logVol, G4VSensitiveDetector *aSD)
 

Detailed Description

Definition at line 60 of file WLSDetectorConstruction.hh.

Constructor & Destructor Documentation

WLSDetectorConstruction::WLSDetectorConstruction ( )

Definition at line 68 of file WLSDetectorConstruction.cc.

69  : fMaterials(NULL), fLogicHole(NULL), fLogicWorld(NULL),
70  fPhysiWorld(NULL), fPhysiHole(NULL)
71 {
72  fDetectorMessenger = new WLSDetectorMessenger(this);
73 
74  fNumOfCladLayers = 0;
75 
76  fSurfaceRoughness = 1;
77 
78  fMirrorToggle = true;
79  fMirrorPolish = 1.;
80  fMirrorReflectivity = 1.;
81 
82  fMPPCPolish = 1.;
83  fMPPCReflectivity = 0.;
84 
85  fExtrusionPolish = 1.;
86  fExtrusionReflectivity = 1.;
87 
88  fXYRatio = 1.0;
89 
90  fWLSfiberZ = 1.*m;
91  fWLSfiberRY = 0.5*mm;
92  fWLSfiberOrigin = 0.0;
93 
94  fMPPCShape = "Circle";
95  fMPPCHalfL = fWLSfiberRY;
96  fMPPCDist = 0.00*mm;
97  fMPPCTheta = 0.0*deg;
98  fMPPCZ = 0.05*mm;
99 
100  fClrfiberZ = fMPPCZ + 10.*nm;
101  fMirrorZ = 0.1*mm;
102 
103  fBarLength = 1.*m;
104  fBarBase = 9.6*mm;
105  fHoleRadius = 0.9*mm;
106  fHoleLength = fBarLength;
107  fCoatingThickness = 0.25*mm;
108  fCoatingRadius = 1.875*mm;
109 }
static constexpr double mm
Definition: G4SIunits.hh:115
static constexpr double m
Definition: G4SIunits.hh:129
static constexpr double nm
Definition: G4SIunits.hh:112
static constexpr double deg
Definition: G4SIunits.hh:152
WLSDetectorConstruction::~WLSDetectorConstruction ( )
virtual

Definition at line 113 of file WLSDetectorConstruction.cc.

114 {
115  if (fDetectorMessenger) delete fDetectorMessenger;
116  if (fMaterials) delete fMaterials;
117 }

Member Function Documentation

G4VPhysicalVolume * WLSDetectorConstruction::Construct ( void  )
virtual

Implements G4VUserDetectorConstruction.

Definition at line 121 of file WLSDetectorConstruction.cc.

122 {
123  if (fPhysiWorld) {
130  }
131 
132  fMaterials = WLSMaterials::GetInstance();
133 
134  UpdateGeometryParameters();
135 
136  return ConstructDetector();
137 }
static void Clean()
Definition: G4SolidStore.cc:79
static G4PhysicalVolumeStore * GetInstance()
static G4LogicalVolumeStore * GetInstance()
static G4SolidStore * GetInstance()
static G4GeometryManager * GetInstance()
void OpenGeometry(G4VPhysicalVolume *vol=0)
static WLSMaterials * GetInstance()
Definition: WLSMaterials.cc:62
G4VPhysicalVolume * ConstructDetector()

Here is the call graph for this function:

G4VPhysicalVolume * WLSDetectorConstruction::ConstructDetector ( )

Definition at line 141 of file WLSDetectorConstruction.cc.

142 {
143  //--------------------------------------------------
144  // World
145  //--------------------------------------------------
146 
147  G4VSolid* solidWorld =
148  new G4Box("World", fWorldSizeX, fWorldSizeY, fWorldSizeZ);
149 
150  fLogicWorld = new G4LogicalVolume(solidWorld,
151  FindMaterial("G4_AIR"),
152  "World");
153 
154  fPhysiWorld = new G4PVPlacement(0,
155  G4ThreeVector(),
156  fLogicWorld,
157  "World",
158  0,
159  false,
160  0);
161 
162  //--------------------------------------------------
163  // Extrusion
164  //--------------------------------------------------
165 
166  G4VSolid* solidExtrusion =
167  new G4Box("Extrusion",GetBarBase()/2,GetBarBase()/2,GetBarLength()/2);
168 
169  G4LogicalVolume* logicExtrusion =
170  new G4LogicalVolume(solidExtrusion,
171  FindMaterial("Coating"),
172  "Extrusion");
173 
174  G4OpticalSurface* TiO2Surface = new G4OpticalSurface("TiO2Surface",
175  glisur,
176  ground,
178  fExtrusionPolish);
179 
180  G4MaterialPropertiesTable* TiO2SurfaceProperty =
182 
183  G4double p_TiO2[] = {2.00*eV, 3.47*eV};
184  const G4int nbins = sizeof(p_TiO2)/sizeof(G4double);
185 
186  G4double refl_TiO2[] = {fExtrusionReflectivity,fExtrusionReflectivity};
187  assert(sizeof(refl_TiO2) == sizeof(p_TiO2));
188  G4double effi_TiO2[] = {0, 0};
189  assert(sizeof(effi_TiO2) == sizeof(p_TiO2));
190 
191  TiO2SurfaceProperty -> AddProperty("REFLECTIVITY",p_TiO2,refl_TiO2,nbins);
192  TiO2SurfaceProperty -> AddProperty("EFFICIENCY",p_TiO2,effi_TiO2,nbins);
193 
194  TiO2Surface -> SetMaterialPropertiesTable(TiO2SurfaceProperty);
195 
196  new G4PVPlacement(0,
197  G4ThreeVector(),
198  logicExtrusion,
199  "Extrusion",
200  fLogicWorld,
201  false,
202  0);
203 
204  new G4LogicalSkinSurface("TiO2Surface",logicExtrusion,TiO2Surface);
205 
206  //--------------------------------------------------
207  // Scintillator
208  //--------------------------------------------------
209 
210  G4VSolid* solidScintillator = new G4Box("Scintillator",
212  -GetCoatingRadius(),
214  -GetCoatingRadius(),
215  GetBarLength()/2);
216 
217  G4LogicalVolume* logicScintillator =
218  new G4LogicalVolume(solidScintillator,
219  FindMaterial("Polystyrene"),
220  "Scintillator");
221 
222  new G4PVPlacement(0,
223  G4ThreeVector(),
224  logicScintillator,
225  "Scintillator",
226  logicExtrusion,
227  false,
228  0);
229 
230  if (GetCoatingRadius() > 0.*mm) {
231  G4VSolid* solidScintside = new G4Box("SideOfBar",
233  -GetCoatingRadius(),
234  GetCoatingRadius()/2,
235  GetBarLength()/2);
236  G4VSolid* solidScintcrnr = new G4Tubs("CrnrOfBar",
237  0.0*cm,
239  GetBarLength()/2,
240  0.*deg,
241  90.*deg);
242  G4LogicalVolume* logicScintSide =
243  new G4LogicalVolume(solidScintside,
244  FindMaterial("Polystyrene"),
245  "SideOfBar");
246 
247  G4LogicalVolume* logicScintCrnr =
248  new G4LogicalVolume(solidScintcrnr,
249  FindMaterial("Polystyrene"),
250  "CrnrOfBar");
251 
254 
255  new G4PVPlacement(0,
256  G4ThreeVector(0,-y,0),
257  logicScintSide,
258  "SideOfBar",
259  logicExtrusion,
260  false,
261  0);
262  new G4PVPlacement(0,
263  G4ThreeVector(0, y,0),
264  logicScintSide,
265  "SideOfBar",
266  logicExtrusion,
267  false,
268  1);
269 
270  G4RotationMatrix* g4rot = new G4RotationMatrix();
271  *g4rot = StringToRotationMatrix("Z90");
272  *g4rot = g4rot->inverse();
273  if (*g4rot == G4RotationMatrix()) g4rot = NULL;
274 
275  new G4PVPlacement(g4rot,
276  G4ThreeVector(x,0,0),
277  logicScintSide,
278  "SideOfBar",
279  logicExtrusion,
280  false,
281  2);
282  new G4PVPlacement(g4rot,
283  G4ThreeVector(-x,0,0),
284  logicScintSide,
285  "SideOfBar",
286  logicExtrusion,
287  false,
288  3);
289 
292 
293  new G4PVPlacement(0,
294  G4ThreeVector(x,y,0),
295  logicScintCrnr,
296  "CrnrOfBar",
297  logicExtrusion,
298  false,
299  0);
300 
301  new G4PVPlacement(g4rot,
302  G4ThreeVector(-x,y,0),
303  logicScintCrnr,
304  "CrnrOfBar",
305  logicExtrusion,
306  false,
307  1);
308 
309  g4rot = new G4RotationMatrix();
310  *g4rot = StringToRotationMatrix("Z180");
311  *g4rot = g4rot->inverse();
312  if (*g4rot == G4RotationMatrix()) g4rot = NULL;
313 
314  new G4PVPlacement(g4rot,
315  G4ThreeVector(-x,-y,0),
316  logicScintCrnr,
317  "CrnrOfBar",
318  logicExtrusion,
319  false,
320  2);
321 
322  g4rot = new G4RotationMatrix();
323  *g4rot = StringToRotationMatrix("Z270");
324  *g4rot = g4rot->inverse();
325  if (*g4rot == G4RotationMatrix()) g4rot = NULL;
326 
327  new G4PVPlacement(g4rot,
328  G4ThreeVector(x,-y,0),
329  logicScintCrnr,
330  "CrnrOfBar",
331  logicExtrusion,
332  false,
333  3);
334 
335  }
336 
337  if (GetFiberRadius()<GetHoleRadius()) {
338 
339  G4VSolid* solidHole = new G4Tubs("Hole",
340  0.0*cm,
341  GetHoleRadius(),
342  GetHoleLength()/2,
343  0.*deg,
344  360.*deg);
345  fLogicHole = new G4LogicalVolume(solidHole,
346  FindMaterial("G4_AIR"),
347  "Hole");
348 
349  fPhysiHole = new G4PVPlacement(0,
350  G4ThreeVector(),
351  fLogicHole,
352  "Hole",
353  logicScintillator,
354  false,
355  0);
356  }
357 
358  //--------------------------------------------------
359  // Fiber
360  //--------------------------------------------------
361 
362  ConstructFiber();
363 
364  //--------------------------------------------------
365  // End of Construction
366  //--------------------------------------------------
367 
368  return fPhysiWorld;
369 }
static constexpr double mm
Definition: G4SIunits.hh:115
CLHEP::Hep3Vector G4ThreeVector
CLHEP::HepRotation G4RotationMatrix
Definition: G4Box.hh:64
Definition: G4Tubs.hh:85
tuple x
Definition: test.py:50
int G4int
Definition: G4Types.hh:78
HepRotation inverse() const
static G4RotationMatrix StringToRotationMatrix(G4String rotation)
static constexpr double cm
Definition: G4SIunits.hh:119
static constexpr double eV
Definition: G4SIunits.hh:215
G4Material * FindMaterial(G4String)
double G4double
Definition: G4Types.hh:76
static constexpr double deg
Definition: G4SIunits.hh:152

Here is the call graph for this function:

Here is the caller graph for this function:

void WLSDetectorConstruction::ConstructSDandField ( )
virtual

Reimplemented from G4VUserDetectorConstruction.

Definition at line 691 of file WLSDetectorConstruction.cc.

692 {
693  if (!fmppcSD.Get()) {
694  G4String mppcSDName = "WLS/PhotonDet";
695  WLSPhotonDetSD* mppcSD = new WLSPhotonDetSD(mppcSDName);
697  fmppcSD.Put(mppcSD);
698  }
699  SetSensitiveDetector("PhotonDet_LV", fmppcSD.Get(), true);
700 }
value_type & Get() const
Definition: G4Cache.hh:282
void SetSensitiveDetector(const G4String &logVolName, G4VSensitiveDetector *aSD, G4bool multi=false)
void AddNewDetector(G4VSensitiveDetector *aSD)
Definition: G4SDManager.cc:71
static G4SDManager * GetSDMpointer()
Definition: G4SDManager.cc:40
void Put(const value_type &val) const
Definition: G4Cache.hh:286

Here is the call graph for this function:

G4Material * WLSDetectorConstruction::FindMaterial ( G4String  name)

Definition at line 1060 of file WLSDetectorConstruction.cc.

1060  {
1062  return material;
1063 }
static G4Material * GetMaterial(const G4String &name, G4bool warning=true)
Definition: G4Material.cc:602
string material
Definition: eplot.py:19

Here is the call graph for this function:

Here is the caller graph for this function:

G4double WLSDetectorConstruction::GetBarBase ( )

Definition at line 1002 of file WLSDetectorConstruction.cc.

1002 { return fBarBase; }

Here is the caller graph for this function:

G4double WLSDetectorConstruction::GetBarLength ( )

Definition at line 998 of file WLSDetectorConstruction.cc.

998 { return fBarLength; }

Here is the caller graph for this function:

G4double WLSDetectorConstruction::GetCoatingRadius ( )

Definition at line 1023 of file WLSDetectorConstruction.cc.

1023 { return fCoatingRadius; }

Here is the caller graph for this function:

G4double WLSDetectorConstruction::GetCoatingThickness ( )

Definition at line 1018 of file WLSDetectorConstruction.cc.

1019  { return fCoatingThickness; }

Here is the caller graph for this function:

G4double WLSDetectorConstruction::GetFiberRadius ( )

Definition at line 1014 of file WLSDetectorConstruction.cc.

1014 { return GetWLSFiberRMax(); }

Here is the call graph for this function:

Here is the caller graph for this function:

G4double WLSDetectorConstruction::GetHoleLength ( )

Definition at line 1010 of file WLSDetectorConstruction.cc.

1010 { return fHoleLength; }

Here is the caller graph for this function:

G4double WLSDetectorConstruction::GetHoleRadius ( )

Definition at line 1006 of file WLSDetectorConstruction.cc.

1006 { return fHoleRadius; }

Here is the caller graph for this function:

G4double WLSDetectorConstruction::GetSurfaceRoughness ( )

Definition at line 1043 of file WLSDetectorConstruction.cc.

1044 {
1045  return fSurfaceRoughness;
1046 }
G4double WLSDetectorConstruction::GetWLSFiberEnd ( )

Definition at line 1027 of file WLSDetectorConstruction.cc.

1028 {
1029  return fWLSfiberOrigin + fWLSfiberZ;
1030 }

Here is the caller graph for this function:

G4double WLSDetectorConstruction::GetWLSFiberLength ( )

Definition at line 994 of file WLSDetectorConstruction.cc.

994 { return fWLSfiberZ; }
G4double WLSDetectorConstruction::GetWLSFiberRMax ( )

Definition at line 1034 of file WLSDetectorConstruction.cc.

1035 {
1036  if (fNumOfCladLayers == 2) return fClad2RY;
1037  if (fNumOfCladLayers == 1) return fClad1RY;
1038  return fWLSfiberRY;
1039 }

Here is the caller graph for this function:

G4bool WLSDetectorConstruction::IsPerfectFiber ( )

Definition at line 1051 of file WLSDetectorConstruction.cc.

1052 {
1053  return fSurfaceRoughness == 1. && fXYRatio == 1.
1054  && (!fMirrorToggle ||
1055  (fMirrorPolish == 1. && fMirrorReflectivity == 1.));
1056 }

Here is the caller graph for this function:

void WLSDetectorConstruction::SetBarBase ( G4double  side)

Definition at line 958 of file WLSDetectorConstruction.cc.

960 {
961  fBarBase = side;
963 }
void ReinitializeGeometry(G4bool destroyFirst=false, G4bool prop=true)
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79

Here is the call graph for this function:

Here is the caller graph for this function:

void WLSDetectorConstruction::SetBarLength ( G4double  length)

Definition at line 949 of file WLSDetectorConstruction.cc.

951 {
952  fBarLength = length;
954 }
void ReinitializeGeometry(G4bool destroyFirst=false, G4bool prop=true)
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79

Here is the call graph for this function:

Here is the caller graph for this function:

void WLSDetectorConstruction::SetClad1Radius ( G4double  radius)

Definition at line 830 of file WLSDetectorConstruction.cc.

832 {
833  fClad1RY = radius;
835 }
void ReinitializeGeometry(G4bool destroyFirst=false, G4bool prop=true)
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79

Here is the call graph for this function:

void WLSDetectorConstruction::SetClad2Radius ( G4double  radius)

Definition at line 839 of file WLSDetectorConstruction.cc.

841 {
842  fClad2RY = radius;
844 }
void ReinitializeGeometry(G4bool destroyFirst=false, G4bool prop=true)
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79

Here is the call graph for this function:

void WLSDetectorConstruction::SetCoatingRadius ( G4double  radius)

Definition at line 985 of file WLSDetectorConstruction.cc.

987 {
988  fCoatingRadius = radius;
990 }
void ReinitializeGeometry(G4bool destroyFirst=false, G4bool prop=true)
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79

Here is the call graph for this function:

Here is the caller graph for this function:

void WLSDetectorConstruction::SetCoatingThickness ( G4double  thick)

Definition at line 976 of file WLSDetectorConstruction.cc.

978 {
979  fCoatingThickness = thick;
981 }
void ReinitializeGeometry(G4bool destroyFirst=false, G4bool prop=true)
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79

Here is the call graph for this function:

Here is the caller graph for this function:

void WLSDetectorConstruction::SetCoupleMaterial ( G4String  )
void WLSDetectorConstruction::SetGap ( G4double  gap)

Definition at line 858 of file WLSDetectorConstruction.cc.

860 {
861  fMPPCDist = gap;
863 }
void ReinitializeGeometry(G4bool destroyFirst=false, G4bool prop=true)
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79

Here is the call graph for this function:

Here is the caller graph for this function:

void WLSDetectorConstruction::SetHoleRadius ( G4double  radius)

Definition at line 967 of file WLSDetectorConstruction.cc.

969 {
970  fHoleRadius = radius;
972 }
void ReinitializeGeometry(G4bool destroyFirst=false, G4bool prop=true)
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79

Here is the call graph for this function:

Here is the caller graph for this function:

void WLSDetectorConstruction::SetMirror ( G4bool  flag)

Definition at line 929 of file WLSDetectorConstruction.cc.

932 {
933  fMirrorToggle = flag;
935 }
void ReinitializeGeometry(G4bool destroyFirst=false, G4bool prop=true)
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79

Here is the call graph for this function:

Here is the caller graph for this function:

void WLSDetectorConstruction::SetMirrorPolish ( G4double  polish)

Definition at line 889 of file WLSDetectorConstruction.cc.

892 {
893  fMirrorPolish = polish;
895 }
void ReinitializeGeometry(G4bool destroyFirst=false, G4bool prop=true)
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79

Here is the call graph for this function:

Here is the caller graph for this function:

void WLSDetectorConstruction::SetMirrorReflectivity ( G4double  reflectivity)

Definition at line 899 of file WLSDetectorConstruction.cc.

902 {
903  fMirrorReflectivity = reflectivity;
905 }
void ReinitializeGeometry(G4bool destroyFirst=false, G4bool prop=true)
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79

Here is the call graph for this function:

void WLSDetectorConstruction::SetNumberOfCladding ( G4int  num)

Definition at line 802 of file WLSDetectorConstruction.cc.

805 {
806  fNumOfCladLayers = num;
808 }
void ReinitializeGeometry(G4bool destroyFirst=false, G4bool prop=true)
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79

Here is the call graph for this function:

Here is the caller graph for this function:

void WLSDetectorConstruction::SetPhotonDetAlignment ( G4double  theta)

Definition at line 867 of file WLSDetectorConstruction.cc.

872 {
873  fMPPCTheta = theta;
875 }
void ReinitializeGeometry(G4bool destroyFirst=false, G4bool prop=true)
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79

Here is the call graph for this function:

void WLSDetectorConstruction::SetPhotonDetGeometry ( G4String  shape)

Definition at line 792 of file WLSDetectorConstruction.cc.

795 {
796  if (shape == "Circle" || shape == "Square" ) fMPPCShape = shape;
798 }
void ReinitializeGeometry(G4bool destroyFirst=false, G4bool prop=true)
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79

Here is the call graph for this function:

Here is the caller graph for this function:

void WLSDetectorConstruction::SetPhotonDetHalfLength ( G4double  halfL)

Definition at line 848 of file WLSDetectorConstruction.cc.

851 {
852  fMPPCHalfL = halfL;
854 }
void ReinitializeGeometry(G4bool destroyFirst=false, G4bool prop=true)
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79

Here is the call graph for this function:

void WLSDetectorConstruction::SetPhotonDetPolish ( G4double  polish)

Definition at line 909 of file WLSDetectorConstruction.cc.

912 {
913  fMPPCPolish = polish;
915 }
void ReinitializeGeometry(G4bool destroyFirst=false, G4bool prop=true)
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79

Here is the call graph for this function:

Here is the caller graph for this function:

void WLSDetectorConstruction::SetPhotonDetReflectivity ( G4double  reflectivity)

Definition at line 919 of file WLSDetectorConstruction.cc.

922 {
923  fMPPCReflectivity = reflectivity;
925 }
void ReinitializeGeometry(G4bool destroyFirst=false, G4bool prop=true)
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79

Here is the call graph for this function:

void WLSDetectorConstruction::SetSurfaceRoughness ( G4double  roughness)

Definition at line 879 of file WLSDetectorConstruction.cc.

882 {
883  fSurfaceRoughness = roughness;
885 }
void ReinitializeGeometry(G4bool destroyFirst=false, G4bool prop=true)
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79

Here is the call graph for this function:

Here is the caller graph for this function:

void WLSDetectorConstruction::SetWLSFiberMaterial ( G4String  )
void WLSDetectorConstruction::SetWLSLength ( G4double  length)

Definition at line 812 of file WLSDetectorConstruction.cc.

814 {
815  fWLSfiberZ = length;
817 }
void ReinitializeGeometry(G4bool destroyFirst=false, G4bool prop=true)
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79

Here is the call graph for this function:

Here is the caller graph for this function:

void WLSDetectorConstruction::SetWLSRadius ( G4double  radius)

Definition at line 821 of file WLSDetectorConstruction.cc.

823 {
824  fWLSfiberRY = radius;
826 }
void ReinitializeGeometry(G4bool destroyFirst=false, G4bool prop=true)
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79

Here is the call graph for this function:

Here is the caller graph for this function:

void WLSDetectorConstruction::SetWorldMaterial ( G4String  )
void WLSDetectorConstruction::SetXYRatio ( G4double  r)

Definition at line 939 of file WLSDetectorConstruction.cc.

942 {
943  fXYRatio = r;
945 }
void ReinitializeGeometry(G4bool destroyFirst=false, G4bool prop=true)
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79

Here is the call graph for this function:

Here is the caller graph for this function:

G4RotationMatrix WLSDetectorConstruction::StringToRotationMatrix ( G4String  rotation)
static

Definition at line 737 of file WLSDetectorConstruction.cc.

738 {
739  // We apply successive rotations OF THE OBJECT around the FIXED
740  // axes of the parent's local coordinates; rotations are applied
741  // left-to-right (rotation="r1,r2,r3" => r1 then r2 then r3).
742 
743  G4RotationMatrix rot;
744 
745  unsigned int place = 0;
746 
747  while (place < rotation.size()) {
748 
749  G4double angle;
750  char* p;
751 
752  const G4String tmpstring=rotation.substr(place+1);
753 
754  angle = strtod(tmpstring.c_str(),&p) * deg;
755 
756  if (!p || (*p != (char)',' && *p != (char)'\0')) {
757  G4cerr << "Invalid rotation specification: " <<
758  rotation.c_str() << G4endl;
759  return rot;
760  }
761 
762  G4RotationMatrix thisRotation;
763 
764  switch(rotation.substr(place,1).c_str()[0]) {
765  case 'X': case 'x':
766  thisRotation = G4RotationMatrix(CLHEP::HepRotationX(angle));
767  break;
768  case 'Y': case 'y':
769  thisRotation = G4RotationMatrix(CLHEP::HepRotationY(angle));
770  break;
771  case 'Z': case 'z':
772  thisRotation = G4RotationMatrix(CLHEP::HepRotationZ(angle));
773  break;
774  default:
775  G4cerr << " Invalid rotation specification: "
776  << rotation << G4endl;
777  return rot;
778  }
779 
780  rot = thisRotation * rot;
781  place = rotation.find(',',place);
782  if (place > rotation.size()) break;
783  ++place;
784  }
785 
786  return rot;
787 
788 }
CLHEP::HepRotation G4RotationMatrix
const char * p
Definition: xmltok.h:285
static G4double angle[DIM]
#define G4endl
Definition: G4ios.hh:61
double G4double
Definition: G4Types.hh:76
static constexpr double deg
Definition: G4SIunits.hh:152
G4GLOB_DLL std::ostream G4cerr

Here is the caller graph for this function:


The documentation for this class was generated from the following files: