Geant4  10.02.p03
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)
 

Private Member Functions

void ConstructFiber ()
 
void UpdateGeometryParameters ()
 

Private Attributes

WLSMaterialsfMaterials
 
G4LogicalVolumefLogicHole
 
G4LogicalVolumefLogicWorld
 
G4VPhysicalVolumefPhysiWorld
 
G4VPhysicalVolumefPhysiHole
 
G4double fWorldSizeX
 
G4double fWorldSizeY
 
G4double fWorldSizeZ
 
G4double fWLSfiberRX
 
G4double fWLSfiberRY
 
G4double fWLSfiberZ
 
G4double fClad1RX
 
G4double fClad1RY
 
G4double fClad1Z
 
G4double fClad2RX
 
G4double fClad2RY
 
G4double fClad2Z
 
G4double fClrfiberHalfL
 
G4double fClrfiberZ
 
G4double fCoupleRX
 
G4double fCoupleRY
 
G4double fCoupleZ
 
G4double fMirrorRmax
 
G4double fMirrorZ
 
G4bool fMirrorToggle
 
G4String fMPPCShape
 
G4double fMPPCHalfL
 
G4double fMPPCZ
 
G4double fMPPCDist
 
G4double fMPPCTheta
 
G4double fWLSfiberOrigin
 
G4double fCoupleOrigin
 
G4double fMirrorOrigin
 
G4double fMPPCOriginX
 
G4double fMPPCOriginZ
 
G4int fNumOfCladLayers
 
G4double fMirrorPolish
 
G4double fMirrorReflectivity
 
G4double fMPPCPolish
 
G4double fMPPCReflectivity
 
G4double fExtrusionPolish
 
G4double fExtrusionReflectivity
 
G4double fSurfaceRoughness
 
G4double fXYRatio
 
G4double fBarLength
 
G4double fBarBase
 
G4double fHoleRadius
 
G4double fHoleLength
 
G4double fCoatingThickness
 
G4double fCoatingRadius
 
WLSDetectorMessengerfDetectorMessenger
 
G4Cache< WLSPhotonDetSD * > fmppcSD
 

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::WLSDetectorConstruction ( )

Definition at line 67 of file WLSDetectorConstruction.cc.

68  : fMaterials(NULL), fLogicHole(NULL), fLogicWorld(NULL),
69  fPhysiWorld(NULL), fPhysiHole(NULL)
70 {
72 
73  fNumOfCladLayers = 0;
74 
76 
77  fMirrorToggle = true;
78  fMirrorPolish = 1.;
80 
81  fMPPCPolish = 1.;
82  fMPPCReflectivity = 0.;
83 
84  fExtrusionPolish = 1.;
86 
87  fXYRatio = 1.0;
88 
89  fWLSfiberZ = 1.*m;
90  fWLSfiberRY = 0.5*mm;
91  fWLSfiberOrigin = 0.0;
92 
93  fMPPCShape = "Circle";
95  fMPPCDist = 0.00*mm;
96  fMPPCTheta = 0.0*deg;
97  fMPPCZ = 0.05*mm;
98 
99  fClrfiberZ = fMPPCZ + 10.*nm;
100  fMirrorZ = 0.1*mm;
101 
102  fBarLength = 1.*m;
103  fBarBase = 9.6*mm;
104  fHoleRadius = 0.9*mm;
106  fCoatingThickness = 0.25*mm;
107  fCoatingRadius = 1.875*mm;
108 }
WLSDetectorMessenger * fDetectorMessenger
static const double deg
Definition: G4SIunits.hh:151
static const double nm
Definition: G4SIunits.hh:111
static const double m
Definition: G4SIunits.hh:128
static const double mm
Definition: G4SIunits.hh:114

◆ ~WLSDetectorConstruction()

WLSDetectorConstruction::~WLSDetectorConstruction ( )
virtual

Definition at line 112 of file WLSDetectorConstruction.cc.

113 {
115  if (fMaterials) delete fMaterials;
116 }
WLSDetectorMessenger * fDetectorMessenger

Member Function Documentation

◆ Construct()

G4VPhysicalVolume * WLSDetectorConstruction::Construct ( void  )
virtual

Implements G4VUserDetectorConstruction.

Definition at line 120 of file WLSDetectorConstruction.cc.

121 {
122  if (fPhysiWorld) {
129  }
130 
132 
134 
135  return ConstructDetector();
136 }
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:

◆ ConstructDetector()

G4VPhysicalVolume * WLSDetectorConstruction::ConstructDetector ( )

Definition at line 140 of file WLSDetectorConstruction.cc.

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

◆ ConstructFiber()

void WLSDetectorConstruction::ConstructFiber ( )
private

Definition at line 372 of file WLSDetectorConstruction.cc.

373 {
374  if (!(fLogicHole) || !(fPhysiHole) ) {
375  std::ostringstream o;
376  o << "The Fiber Hole has not been constructed";
377  G4Exception("WLSDetectorConstruction::ConstructFiber","",
378  FatalException,o.str().c_str());
379  }
380 
381  // Pointers to the most recently constructed volume
382  G4LogicalVolume* logicPlacement = fLogicHole;
383  G4VPhysicalVolume* physiPlacement = fPhysiHole;
384 
385  //--------------------------------------------------
386  // Fiber Construction
387  //--------------------------------------------------
388 
389  // Boundary Surface Properties
390  G4OpticalSurface* opSurface = NULL;
391 
392  if (fSurfaceRoughness < 1.)
393  opSurface = new G4OpticalSurface("RoughSurface", // Surface Name
394  glisur, // SetModel
395  ground, // SetFinish
396  dielectric_dielectric, // SetType
397  fSurfaceRoughness); // SetPolish
398 
399  G4LogicalVolume *logicClad1, *logicClad2;
400  G4VPhysicalVolume *physiClad1, *physiClad2;
401 
402  // Determine the number of cladding layers to be built
403  switch ( fNumOfCladLayers ) {
404 
405  case 2:
406 
407  //--------------------------------------------------
408  // Cladding 2
409  //--------------------------------------------------
410 
411  G4VSolid* solidClad2;
412 
413  if (fXYRatio == 1.)
414  solidClad2 = new G4Tubs("Clad2",0.,fClad2RX,fClad2Z,0.0*rad,twopi*rad);
415  else
416  solidClad2 = new G4EllipticalTube("Clad2",fClad2RX,fClad2RY,fClad2Z);
417 
418  logicClad2 = new G4LogicalVolume(solidClad2,
419  FindMaterial("FPethylene"),
420  "Clad2");
421 
422  physiClad2 = new G4PVPlacement(0,
424  logicClad2,
425  "Clad2",
426  logicPlacement,
427  false,
428  0);
429 
430  // Place the rough surface only if needed
431  if (opSurface) {
432  new G4LogicalBorderSurface("surfaceClad2Out",
433  physiClad2,
434  physiPlacement,
435  opSurface);
436  new G4LogicalBorderSurface("surfaceClad2In",
437  physiPlacement,
438  physiClad2,
439  opSurface);
440  }
441 
442  logicPlacement = logicClad2;
443  physiPlacement = physiClad2;
444 
445  case 1:
446 
447  //--------------------------------------------------
448  // Cladding 1
449  //--------------------------------------------------
450 
451  G4VSolid* solidClad1;
452 
453  if (fXYRatio == 1.)
454  solidClad1 = new G4Tubs("Clad1",0.,fClad1RX,fClad1Z,0.0*rad,twopi*rad);
455  else
456  solidClad1 = new G4EllipticalTube("Clad1",fClad1RX,fClad1RY,fClad1Z);
457 
458  logicClad1 = new G4LogicalVolume(solidClad1,
459  FindMaterial("Pethylene"),
460  "Clad1");
461 
462  physiClad1 = new G4PVPlacement(0,
464  logicClad1,
465  "Clad1",
466  logicPlacement,
467  false,
468  0);
469 
470  // Place the rough surface only if needed
471  if (opSurface) {
472  new G4LogicalBorderSurface("surfaceClad1Out",
473  physiClad1,
474  physiPlacement,
475  opSurface);
476  new G4LogicalBorderSurface("surfaceClad1In",
477  physiPlacement,
478  physiClad1,
479  opSurface);
480  }
481 
482  logicPlacement = logicClad1;
483  physiPlacement = physiClad1;
484 
485  default:
486 
487  //--------------------------------------------------
488  // WLS Fiber
489  //--------------------------------------------------
490 
491  G4VSolid* solidWLSfiber;
492 
493  if (fXYRatio == 1.)
494  solidWLSfiber =
495  new G4Tubs("WLSFiber",0.,fWLSfiberRX,fWLSfiberZ,0.0*rad,twopi*rad);
496  else
497  solidWLSfiber =
499 
500  G4LogicalVolume* logicWLSfiber =
501  new G4LogicalVolume(solidWLSfiber,
502  FindMaterial("PMMA"),
503  "WLSFiber");
504 
505  logicWLSfiber->SetUserLimits(new G4UserLimits(DBL_MAX,DBL_MAX,10*ms));
506 
507  G4VPhysicalVolume* physiWLSfiber = new G4PVPlacement(0,
509  logicWLSfiber,
510  "WLSFiber",
511  logicPlacement,
512  false,
513  0);
514 
515  // Place the rough surface only if needed
516  if (opSurface) {
517  new G4LogicalBorderSurface("surfaceWLSOut",
518  physiWLSfiber,
519  physiPlacement,
520  opSurface);
521  new G4LogicalBorderSurface("surfaceWLSIn",
522  physiPlacement,
523  physiWLSfiber,
524  opSurface);
525  }
526  }
527 
528  //--------------------------------------------------
529  // Mirror for reflection at one of the end
530  //--------------------------------------------------
531 
532  // Place the mirror only if the user wants the mirror
533  if (fMirrorToggle) {
534 
535  G4VSolid* solidMirror = new G4Box("Mirror",
536  fMirrorRmax,
537  fMirrorRmax,
538  fMirrorZ);
539 
540  G4LogicalVolume* logicMirror = new G4LogicalVolume(solidMirror,
541  FindMaterial("G4_Al"),
542  "Mirror");
543 
544  G4OpticalSurface* mirrorSurface = new G4OpticalSurface("MirrorSurface",
545  glisur,
546  ground,
548  fMirrorPolish);
549 
550  G4MaterialPropertiesTable* mirrorSurfaceProperty =
552 
553  G4double p_mirror[] = {2.00*eV, 3.47*eV};
554  const G4int nbins = sizeof(p_mirror)/sizeof(G4double);
556  assert(sizeof(refl_mirror) == sizeof(p_mirror));
557  G4double effi_mirror[] = {0, 0};
558  assert(sizeof(effi_mirror) == sizeof(effi_mirror));
559 
560  mirrorSurfaceProperty->
561  AddProperty("REFLECTIVITY",p_mirror,refl_mirror,nbins);
562  mirrorSurfaceProperty->
563  AddProperty("EFFICIENCY",p_mirror,effi_mirror,nbins);
564 
565  mirrorSurface -> SetMaterialPropertiesTable(mirrorSurfaceProperty);
566 
567  new G4PVPlacement(0,
568  G4ThreeVector(0.0,0.0,fMirrorOrigin),
569  logicMirror,
570  "Mirror",
571  fLogicWorld,
572  false,
573  0);
574 
575  new G4LogicalSkinSurface("MirrorSurface",logicMirror,mirrorSurface);
576  }
577 
578  //--------------------------------------------------
579  // Coupling at the read-out end
580  //--------------------------------------------------
581 
582  // Clear Fiber (Coupling Layer)
583  G4VSolid* solidCouple = new G4Box("Couple",fCoupleRX,fCoupleRY,fCoupleZ);
584 
585  G4LogicalVolume* logicCouple = new G4LogicalVolume(solidCouple,
586  FindMaterial("G4_AIR"),
587  "Couple");
588 
589  new G4PVPlacement(0,
590  G4ThreeVector(0.0,0.0,fCoupleOrigin),
591  logicCouple,
592  "Couple",
593  fLogicWorld,
594  false,
595  0);
596 
597  //--------------------------------------------------
598  // A logical layer in front of PhotonDet
599  //--------------------------------------------------
600 
601  // Purpose: Preventing direct dielectric to metal contact
602 
603  // Check for valid placement of PhotonDet
604  if (fMPPCTheta > std::atan(fMPPCDist / fMPPCHalfL)) {
605 
606  fMPPCTheta = 0;
607  fMPPCOriginX = std::sin(fMPPCTheta) * (fMPPCDist + fClrfiberZ);
609  G4cerr << "Invalid alignment. Alignment Reset to 0" << G4endl;
610  }
611 
612  // Clear Fiber (Coupling Layer)
613  G4VSolid* solidClrfiber;
614 
615  if ( fMPPCShape == "Square" )
616  solidClrfiber =
617  new G4Box("ClearFiber",fClrfiberHalfL,fClrfiberHalfL,fClrfiberZ);
618  else
619  solidClrfiber =
620  new G4Tubs("ClearFiber",0.,fClrfiberHalfL,fClrfiberZ,0.0*rad,twopi*rad);
621 
622  G4LogicalVolume* logicClrfiber =
623  new G4LogicalVolume(solidClrfiber,
624  FindMaterial("G4_AIR"),
625  "ClearFiber");
626 
629  logicClrfiber,
630  "ClearFiber",
631  logicCouple,
632  false,
633  0);
634 
635  //--------------------------------------------------
636  // PhotonDet (Sensitive Detector)
637  //--------------------------------------------------
638 
639  // Physical Construction
640  G4VSolid* solidPhotonDet;
641 
642  if ( fMPPCShape == "Square" )
643  solidPhotonDet = new G4Box("PhotonDet",fMPPCHalfL,fMPPCHalfL,fMPPCZ);
644  else
645  solidPhotonDet =
646  new G4Tubs("PhotonDet",0.,fMPPCHalfL,fMPPCZ,0.0*rad,twopi*rad);
647 
648  G4LogicalVolume* logicPhotonDet =
649  new G4LogicalVolume(solidPhotonDet,
650  FindMaterial("G4_Al"),
651  "PhotonDet_LV");
652 
653  new G4PVPlacement(0,
654  G4ThreeVector(0.0,0.0,0.0),
655  logicPhotonDet,
656  "PhotonDet",
657  logicClrfiber,
658  false,
659  0);
660 
661  // PhotonDet Surface Properties
662  G4OpticalSurface* photonDetSurface = new G4OpticalSurface("PhotonDetSurface",
663  glisur,
664  ground,
666  fMPPCPolish);
667 
668  G4MaterialPropertiesTable* photonDetSurfaceProperty =
670 
671  G4double p_mppc[] = {2.00*eV, 3.47*eV};
672  const G4int nbins = sizeof(p_mppc)/sizeof(G4double);
674  assert(sizeof(refl_mppc) == sizeof(p_mppc));
675  G4double effi_mppc[] = {1, 1};
676  assert(sizeof(effi_mppc) == sizeof(p_mppc));
677 
678  photonDetSurfaceProperty->AddProperty("REFLECTIVITY",p_mppc,refl_mppc,nbins);
679  photonDetSurfaceProperty->AddProperty("EFFICIENCY",p_mppc,effi_mppc,nbins);
680 
681  photonDetSurface->SetMaterialPropertiesTable(photonDetSurfaceProperty);
682 
683  new G4LogicalSkinSurface("PhotonDetSurface",logicPhotonDet,photonDetSurface);
684 }
CLHEP::Hep3Vector G4ThreeVector
CLHEP::HepRotation G4RotationMatrix
Definition: G4Box.hh:64
void SetUserLimits(G4UserLimits *pULimits)
Definition: G4Tubs.hh:85
int G4int
Definition: G4Types.hh:78
G4MaterialPropertyVector * AddProperty(const char *key, G4double *PhotonEnergies, G4double *PropertyValues, G4int NumEntries)
static const double ms
Definition: G4SIunits.hh:169
static const double twopi
Definition: G4SIunits.hh:75
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
Definition: G4Exception.cc:41
static const double rad
Definition: G4SIunits.hh:148
static const double eV
Definition: G4SIunits.hh:212
#define G4endl
Definition: G4ios.hh:61
G4Material * FindMaterial(G4String)
double G4double
Definition: G4Types.hh:76
void SetMaterialPropertiesTable(G4MaterialPropertiesTable *anMPT)
#define DBL_MAX
Definition: templates.hh:83
G4GLOB_DLL std::ostream G4cerr
Here is the call graph for this function:
Here is the caller graph for this function:

◆ ConstructSDandField()

void WLSDetectorConstruction::ConstructSDandField ( )
virtual

Reimplemented from G4VUserDetectorConstruction.

Definition at line 688 of file WLSDetectorConstruction.cc.

689 {
690  if (!fmppcSD.Get()) {
691  G4String mppcSDName = "WLS/PhotonDet";
692  WLSPhotonDetSD* mppcSD = new WLSPhotonDetSD(mppcSDName);
693  fmppcSD.Put(mppcSD);
694  }
695  SetSensitiveDetector("PhotonDet_LV", fmppcSD.Get(), true);
696 }
void Put(const value_type &val) const
Definition: G4Cache.hh:286
value_type & Get() const
Definition: G4Cache.hh:282
G4Cache< WLSPhotonDetSD * > fmppcSD
void SetSensitiveDetector(const G4String &logVolName, G4VSensitiveDetector *aSD, G4bool multi=false)
Here is the call graph for this function:

◆ FindMaterial()

G4Material * WLSDetectorConstruction::FindMaterial ( G4String  name)

Definition at line 1056 of file WLSDetectorConstruction.cc.

1056  {
1058  return material;
1059 }
static G4Material * GetMaterial(const G4String &name, G4bool warning=true)
Definition: G4Material.cc:604
string material
Definition: eplot.py:19
Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetBarBase()

G4double WLSDetectorConstruction::GetBarBase ( )

Definition at line 998 of file WLSDetectorConstruction.cc.

998 { return fBarBase; }
Here is the caller graph for this function:

◆ GetBarLength()

G4double WLSDetectorConstruction::GetBarLength ( )

Definition at line 994 of file WLSDetectorConstruction.cc.

994 { return fBarLength; }
Here is the caller graph for this function:

◆ GetCoatingRadius()

G4double WLSDetectorConstruction::GetCoatingRadius ( )

Definition at line 1019 of file WLSDetectorConstruction.cc.

Here is the caller graph for this function:

◆ GetCoatingThickness()

G4double WLSDetectorConstruction::GetCoatingThickness ( )

Definition at line 1014 of file WLSDetectorConstruction.cc.

Here is the caller graph for this function:

◆ GetFiberRadius()

G4double WLSDetectorConstruction::GetFiberRadius ( )

Definition at line 1010 of file WLSDetectorConstruction.cc.

1010 { return GetWLSFiberRMax(); }
Here is the call graph for this function:
Here is the caller graph for this function:

◆ GetHoleLength()

G4double WLSDetectorConstruction::GetHoleLength ( )

Definition at line 1006 of file WLSDetectorConstruction.cc.

1006 { return fHoleLength; }
Here is the caller graph for this function:

◆ GetHoleRadius()

G4double WLSDetectorConstruction::GetHoleRadius ( )

Definition at line 1002 of file WLSDetectorConstruction.cc.

1002 { return fHoleRadius; }
Here is the caller graph for this function:

◆ GetSurfaceRoughness()

G4double WLSDetectorConstruction::GetSurfaceRoughness ( )

Definition at line 1039 of file WLSDetectorConstruction.cc.

1040 {
1041  return fSurfaceRoughness;
1042 }

◆ GetWLSFiberEnd()

G4double WLSDetectorConstruction::GetWLSFiberEnd ( )

Definition at line 1023 of file WLSDetectorConstruction.cc.

Here is the caller graph for this function:

◆ GetWLSFiberLength()

G4double WLSDetectorConstruction::GetWLSFiberLength ( )

Definition at line 990 of file WLSDetectorConstruction.cc.

990 { return fWLSfiberZ; }

◆ GetWLSFiberRMax()

G4double WLSDetectorConstruction::GetWLSFiberRMax ( )

Definition at line 1030 of file WLSDetectorConstruction.cc.

Here is the caller graph for this function:

◆ IsPerfectFiber()

G4bool WLSDetectorConstruction::IsPerfectFiber ( )

Definition at line 1047 of file WLSDetectorConstruction.cc.

Here is the caller graph for this function:

◆ SetBarBase()

void WLSDetectorConstruction::SetBarBase ( G4double  side)

Definition at line 954 of file WLSDetectorConstruction.cc.

956 {
957  fBarBase = side;
959 }
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:

◆ SetBarLength()

void WLSDetectorConstruction::SetBarLength ( G4double  length)

Definition at line 945 of file WLSDetectorConstruction.cc.

947 {
948  fBarLength = length;
950 }
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:

◆ SetClad1Radius()

void WLSDetectorConstruction::SetClad1Radius ( G4double  radius)

Definition at line 826 of file WLSDetectorConstruction.cc.

828 {
829  fClad1RY = radius;
831 }
void ReinitializeGeometry(G4bool destroyFirst=false, G4bool prop=true)
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79
Here is the call graph for this function:

◆ SetClad2Radius()

void WLSDetectorConstruction::SetClad2Radius ( G4double  radius)

Definition at line 835 of file WLSDetectorConstruction.cc.

837 {
838  fClad2RY = radius;
840 }
void ReinitializeGeometry(G4bool destroyFirst=false, G4bool prop=true)
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79
Here is the call graph for this function:

◆ SetCoatingRadius()

void WLSDetectorConstruction::SetCoatingRadius ( G4double  radius)

Definition at line 981 of file WLSDetectorConstruction.cc.

983 {
986 }
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:

◆ SetCoatingThickness()

void WLSDetectorConstruction::SetCoatingThickness ( G4double  thick)

Definition at line 972 of file WLSDetectorConstruction.cc.

974 {
975  fCoatingThickness = thick;
977 }
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:

◆ SetCoupleMaterial()

void WLSDetectorConstruction::SetCoupleMaterial ( G4String  )

◆ SetGap()

void WLSDetectorConstruction::SetGap ( G4double  gap)

Definition at line 854 of file WLSDetectorConstruction.cc.

856 {
857  fMPPCDist = gap;
859 }
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:

◆ SetHoleRadius()

void WLSDetectorConstruction::SetHoleRadius ( G4double  radius)

Definition at line 963 of file WLSDetectorConstruction.cc.

965 {
968 }
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:

◆ SetMirror()

void WLSDetectorConstruction::SetMirror ( G4bool  flag)

Definition at line 925 of file WLSDetectorConstruction.cc.

928 {
929  fMirrorToggle = flag;
931 }
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:

◆ SetMirrorPolish()

void WLSDetectorConstruction::SetMirrorPolish ( G4double  polish)

Definition at line 885 of file WLSDetectorConstruction.cc.

888 {
889  fMirrorPolish = polish;
891 }
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:

◆ SetMirrorReflectivity()

void WLSDetectorConstruction::SetMirrorReflectivity ( G4double  reflectivity)

Definition at line 895 of file WLSDetectorConstruction.cc.

898 {
899  fMirrorReflectivity = reflectivity;
901 }
void ReinitializeGeometry(G4bool destroyFirst=false, G4bool prop=true)
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79
Here is the call graph for this function:

◆ SetNumberOfCladding()

void WLSDetectorConstruction::SetNumberOfCladding ( G4int  num)

Definition at line 798 of file WLSDetectorConstruction.cc.

801 {
802  fNumOfCladLayers = num;
804 }
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:

◆ SetPhotonDetAlignment()

void WLSDetectorConstruction::SetPhotonDetAlignment ( G4double  theta)

Definition at line 863 of file WLSDetectorConstruction.cc.

868 {
869  fMPPCTheta = theta;
871 }
void ReinitializeGeometry(G4bool destroyFirst=false, G4bool prop=true)
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79
Here is the call graph for this function:

◆ SetPhotonDetGeometry()

void WLSDetectorConstruction::SetPhotonDetGeometry ( G4String  shape)

Definition at line 788 of file WLSDetectorConstruction.cc.

791 {
792  if (shape == "Circle" || shape == "Square" ) fMPPCShape = shape;
794 }
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:

◆ SetPhotonDetHalfLength()

void WLSDetectorConstruction::SetPhotonDetHalfLength ( G4double  halfL)

Definition at line 844 of file WLSDetectorConstruction.cc.

847 {
848  fMPPCHalfL = halfL;
850 }
void ReinitializeGeometry(G4bool destroyFirst=false, G4bool prop=true)
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79
Here is the call graph for this function:

◆ SetPhotonDetPolish()

void WLSDetectorConstruction::SetPhotonDetPolish ( G4double  polish)

Definition at line 905 of file WLSDetectorConstruction.cc.

908 {
909  fMPPCPolish = polish;
911 }
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:

◆ SetPhotonDetReflectivity()

void WLSDetectorConstruction::SetPhotonDetReflectivity ( G4double  reflectivity)

Definition at line 915 of file WLSDetectorConstruction.cc.

918 {
919  fMPPCReflectivity = reflectivity;
921 }
void ReinitializeGeometry(G4bool destroyFirst=false, G4bool prop=true)
static G4RunManager * GetRunManager()
Definition: G4RunManager.cc:79
Here is the call graph for this function:

◆ SetSurfaceRoughness()

void WLSDetectorConstruction::SetSurfaceRoughness ( G4double  roughness)

Definition at line 875 of file WLSDetectorConstruction.cc.

878 {
879  fSurfaceRoughness = roughness;
881 }
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:

◆ SetWLSFiberMaterial()

void WLSDetectorConstruction::SetWLSFiberMaterial ( G4String  )

◆ SetWLSLength()

void WLSDetectorConstruction::SetWLSLength ( G4double  length)

Definition at line 808 of file WLSDetectorConstruction.cc.

810 {
811  fWLSfiberZ = length;
813 }
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:

◆ SetWLSRadius()

void WLSDetectorConstruction::SetWLSRadius ( G4double  radius)

Definition at line 817 of file WLSDetectorConstruction.cc.

819 {
822 }
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:

◆ SetWorldMaterial()

void WLSDetectorConstruction::SetWorldMaterial ( G4String  )

◆ SetXYRatio()

void WLSDetectorConstruction::SetXYRatio ( G4double  r)

Definition at line 935 of file WLSDetectorConstruction.cc.

938 {
939  fXYRatio = r;
941 }
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:

◆ StringToRotationMatrix()

G4RotationMatrix WLSDetectorConstruction::StringToRotationMatrix ( G4String  rotation)
static

Definition at line 733 of file WLSDetectorConstruction.cc.

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

◆ UpdateGeometryParameters()

void WLSDetectorConstruction::UpdateGeometryParameters ( )
private

Definition at line 700 of file WLSDetectorConstruction.cc.

701 {
703 
705  fClad1RY = fWLSfiberRY + 0.03*fWLSfiberRY;
707 
708  fClad2RX = fClad1RX + 0.03*fWLSfiberRX;
709  fClad2RY = fClad1RY + 0.03*fWLSfiberRY;
711 
715 
718  fCoupleZ = (fWorldSizeZ - fWLSfiberZ) / 2;
719 
721 
723 
726  fMPPCOriginX = std::sin(fMPPCTheta) * (fMPPCDist + fClrfiberZ);
727  fMPPCOriginZ = -fCoupleZ + std::cos(fMPPCTheta) * (fMPPCDist + fClrfiberZ);
728 }
static const double cm
Definition: G4SIunits.hh:118
Here is the caller graph for this function:

Member Data Documentation

◆ fBarBase

G4double WLSDetectorConstruction::fBarBase
private

Definition at line 197 of file WLSDetectorConstruction.hh.

◆ fBarLength

G4double WLSDetectorConstruction::fBarLength
private

Definition at line 196 of file WLSDetectorConstruction.hh.

◆ fClad1RX

G4double WLSDetectorConstruction::fClad1RX
private

Definition at line 154 of file WLSDetectorConstruction.hh.

◆ fClad1RY

G4double WLSDetectorConstruction::fClad1RY
private

Definition at line 155 of file WLSDetectorConstruction.hh.

◆ fClad1Z

G4double WLSDetectorConstruction::fClad1Z
private

Definition at line 156 of file WLSDetectorConstruction.hh.

◆ fClad2RX

G4double WLSDetectorConstruction::fClad2RX
private

Definition at line 158 of file WLSDetectorConstruction.hh.

◆ fClad2RY

G4double WLSDetectorConstruction::fClad2RY
private

Definition at line 159 of file WLSDetectorConstruction.hh.

◆ fClad2Z

G4double WLSDetectorConstruction::fClad2Z
private

Definition at line 160 of file WLSDetectorConstruction.hh.

◆ fClrfiberHalfL

G4double WLSDetectorConstruction::fClrfiberHalfL
private

Definition at line 162 of file WLSDetectorConstruction.hh.

◆ fClrfiberZ

G4double WLSDetectorConstruction::fClrfiberZ
private

Definition at line 163 of file WLSDetectorConstruction.hh.

◆ fCoatingRadius

G4double WLSDetectorConstruction::fCoatingRadius
private

Definition at line 201 of file WLSDetectorConstruction.hh.

◆ fCoatingThickness

G4double WLSDetectorConstruction::fCoatingThickness
private

Definition at line 200 of file WLSDetectorConstruction.hh.

◆ fCoupleOrigin

G4double WLSDetectorConstruction::fCoupleOrigin
private

Definition at line 180 of file WLSDetectorConstruction.hh.

◆ fCoupleRX

G4double WLSDetectorConstruction::fCoupleRX
private

Definition at line 165 of file WLSDetectorConstruction.hh.

◆ fCoupleRY

G4double WLSDetectorConstruction::fCoupleRY
private

Definition at line 166 of file WLSDetectorConstruction.hh.

◆ fCoupleZ

G4double WLSDetectorConstruction::fCoupleZ
private

Definition at line 167 of file WLSDetectorConstruction.hh.

◆ fDetectorMessenger

WLSDetectorMessenger* WLSDetectorConstruction::fDetectorMessenger
private

Definition at line 209 of file WLSDetectorConstruction.hh.

◆ fExtrusionPolish

G4double WLSDetectorConstruction::fExtrusionPolish
private

Definition at line 191 of file WLSDetectorConstruction.hh.

◆ fExtrusionReflectivity

G4double WLSDetectorConstruction::fExtrusionReflectivity
private

Definition at line 192 of file WLSDetectorConstruction.hh.

◆ fHoleLength

G4double WLSDetectorConstruction::fHoleLength
private

Definition at line 199 of file WLSDetectorConstruction.hh.

◆ fHoleRadius

G4double WLSDetectorConstruction::fHoleRadius
private

Definition at line 198 of file WLSDetectorConstruction.hh.

◆ fLogicHole

G4LogicalVolume* WLSDetectorConstruction::fLogicHole
private

Definition at line 140 of file WLSDetectorConstruction.hh.

◆ fLogicWorld

G4LogicalVolume* WLSDetectorConstruction::fLogicWorld
private

Definition at line 141 of file WLSDetectorConstruction.hh.

◆ fMaterials

WLSMaterials* WLSDetectorConstruction::fMaterials
private

Definition at line 138 of file WLSDetectorConstruction.hh.

◆ fMirrorOrigin

G4double WLSDetectorConstruction::fMirrorOrigin
private

Definition at line 181 of file WLSDetectorConstruction.hh.

◆ fMirrorPolish

G4double WLSDetectorConstruction::fMirrorPolish
private

Definition at line 187 of file WLSDetectorConstruction.hh.

◆ fMirrorReflectivity

G4double WLSDetectorConstruction::fMirrorReflectivity
private

Definition at line 188 of file WLSDetectorConstruction.hh.

◆ fMirrorRmax

G4double WLSDetectorConstruction::fMirrorRmax
private

Definition at line 169 of file WLSDetectorConstruction.hh.

◆ fMirrorToggle

G4bool WLSDetectorConstruction::fMirrorToggle
private

Definition at line 171 of file WLSDetectorConstruction.hh.

◆ fMirrorZ

G4double WLSDetectorConstruction::fMirrorZ
private

Definition at line 170 of file WLSDetectorConstruction.hh.

◆ fMPPCDist

G4double WLSDetectorConstruction::fMPPCDist
private

Definition at line 176 of file WLSDetectorConstruction.hh.

◆ fMPPCHalfL

G4double WLSDetectorConstruction::fMPPCHalfL
private

Definition at line 174 of file WLSDetectorConstruction.hh.

◆ fMPPCOriginX

G4double WLSDetectorConstruction::fMPPCOriginX
private

Definition at line 182 of file WLSDetectorConstruction.hh.

◆ fMPPCOriginZ

G4double WLSDetectorConstruction::fMPPCOriginZ
private

Definition at line 183 of file WLSDetectorConstruction.hh.

◆ fMPPCPolish

G4double WLSDetectorConstruction::fMPPCPolish
private

Definition at line 189 of file WLSDetectorConstruction.hh.

◆ fMPPCReflectivity

G4double WLSDetectorConstruction::fMPPCReflectivity
private

Definition at line 190 of file WLSDetectorConstruction.hh.

◆ fmppcSD

G4Cache<WLSPhotonDetSD*> WLSDetectorConstruction::fmppcSD
private

Definition at line 210 of file WLSDetectorConstruction.hh.

◆ fMPPCShape

G4String WLSDetectorConstruction::fMPPCShape
private

Definition at line 173 of file WLSDetectorConstruction.hh.

◆ fMPPCTheta

G4double WLSDetectorConstruction::fMPPCTheta
private

Definition at line 177 of file WLSDetectorConstruction.hh.

◆ fMPPCZ

G4double WLSDetectorConstruction::fMPPCZ
private

Definition at line 175 of file WLSDetectorConstruction.hh.

◆ fNumOfCladLayers

G4int WLSDetectorConstruction::fNumOfCladLayers
private

Definition at line 185 of file WLSDetectorConstruction.hh.

◆ fPhysiHole

G4VPhysicalVolume* WLSDetectorConstruction::fPhysiHole
private

Definition at line 144 of file WLSDetectorConstruction.hh.

◆ fPhysiWorld

G4VPhysicalVolume* WLSDetectorConstruction::fPhysiWorld
private

Definition at line 143 of file WLSDetectorConstruction.hh.

◆ fSurfaceRoughness

G4double WLSDetectorConstruction::fSurfaceRoughness
private

Definition at line 193 of file WLSDetectorConstruction.hh.

◆ fWLSfiberOrigin

G4double WLSDetectorConstruction::fWLSfiberOrigin
private

Definition at line 179 of file WLSDetectorConstruction.hh.

◆ fWLSfiberRX

G4double WLSDetectorConstruction::fWLSfiberRX
private

Definition at line 150 of file WLSDetectorConstruction.hh.

◆ fWLSfiberRY

G4double WLSDetectorConstruction::fWLSfiberRY
private

Definition at line 151 of file WLSDetectorConstruction.hh.

◆ fWLSfiberZ

G4double WLSDetectorConstruction::fWLSfiberZ
private

Definition at line 152 of file WLSDetectorConstruction.hh.

◆ fWorldSizeX

G4double WLSDetectorConstruction::fWorldSizeX
private

Definition at line 146 of file WLSDetectorConstruction.hh.

◆ fWorldSizeY

G4double WLSDetectorConstruction::fWorldSizeY
private

Definition at line 147 of file WLSDetectorConstruction.hh.

◆ fWorldSizeZ

G4double WLSDetectorConstruction::fWorldSizeZ
private

Definition at line 148 of file WLSDetectorConstruction.hh.

◆ fXYRatio

G4double WLSDetectorConstruction::fXYRatio
private

Definition at line 194 of file WLSDetectorConstruction.hh.


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