Loading...
Searching...
No Matches
Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
LXeDetectorConstruction Class Reference

#include <Doxymodules_optical.h>

Inheritance diagram for LXeDetectorConstruction:
G4VUserDetectorConstruction

Public Member Functions

 LXeDetectorConstruction ()
 
 ~LXeDetectorConstruction () override
 
G4VPhysicalVolumeConstruct () override
 
void ConstructSDandField () override
 
void SetDimensions (G4ThreeVector)
 
void SetHousingThickness (G4double)
 
void SetNX (G4int)
 
void SetNY (G4int)
 
void SetNZ (G4int)
 
void SetPMTRadius (G4double)
 
void SetDefaults ()
 
void SetSaveThreshold (G4int)
 
G4int GetNX () const
 
G4int GetNY () const
 
G4int GetNZ () const
 
G4int GetSaveThreshold () const
 
G4double GetScintX () const
 
G4double GetScintY () const
 
G4double GetScintZ () const
 
G4double GetHousingThickness () const
 
G4double GetPMTRadius () const
 
G4double GetSlabZ () const
 
void SetSphereOn (G4bool)
 
void SetHousingReflectivity (G4double)
 
G4double GetHousingReflectivity () const
 
void SetWLSSlabOn (G4bool b)
 
G4bool GetWLSSlabOn () const
 
void SetMainVolumeOn (G4bool b)
 
G4bool GetMainVolumeOn () const
 
void SetNFibers (G4int n)
 
G4int GetNFibers () const
 
void SetMainScintYield (G4double)
 
void SetWLSScintYield (G4double)
 

Static Public Member Functions

static G4bool GetSphereOn ()
 

Private Member Functions

void DefineMaterials ()
 

Private Attributes

LXeDetectorMessengerfDetectorMessenger = nullptr
 
G4BoxfExperimentalHall_box = nullptr
 
G4LogicalVolumefExperimentalHall_log = nullptr
 
G4VPhysicalVolumefExperimentalHall_phys = nullptr
 
G4ElementfN = nullptr
 
G4ElementfO = nullptr
 
G4ElementfC = nullptr
 
G4ElementfH = nullptr
 
G4MaterialfLXe = nullptr
 
G4MaterialfAl = nullptr
 
G4MaterialfAir = nullptr
 
G4MaterialfVacuum = nullptr
 
G4MaterialfGlass = nullptr
 
G4MaterialfPstyrene = nullptr
 
G4MaterialfPMMA = nullptr
 
G4MaterialfPethylene1 = nullptr
 
G4MaterialfPethylene2 = nullptr
 
G4double fScint_x = 17.8 * CLHEP::cm
 
G4double fScint_y = 17.8 * CLHEP::cm
 
G4double fScint_z = 22.6 * CLHEP::cm
 
G4double fD_mtl = 0.0635 * CLHEP::cm
 
G4int fNx = 2
 
G4int fNy = 2
 
G4int fNz = 3
 
G4int fSaveThreshold = 0
 
G4double fOuterRadius_pmt = 2.3 * CLHEP::cm
 
G4int fNfibers = 15
 
G4double fRefl = 1.
 
G4bool fWLSslab = false
 
G4bool fMainVolumeOn = true
 
G4double fSlab_z = 2.5 * CLHEP::mm
 
LXeMainVolumefMainVolume = nullptr
 
G4MaterialPropertiesTablefLXe_mt = nullptr
 
G4MaterialPropertiesTablefMPTPStyrene = nullptr
 
G4Cache< LXeScintSD * > fScint_SD
 
G4Cache< LXePMTSD * > fPmt_SD
 

Static Private Attributes

static G4bool fSphereOn = true
 

Detailed Description

Definition at line 48 of file Doxymodules_optical.h.

Constructor & Destructor Documentation

◆ LXeDetectorConstruction()

LXeDetectorConstruction::LXeDetectorConstruction ( )

◆ ~LXeDetectorConstruction()

LXeDetectorConstruction::~LXeDetectorConstruction ( )
override

Definition at line 75 of file LXeDetectorConstruction.cc.

76{
77 delete fMainVolume;
78 delete fLXe_mt;
79 delete fDetectorMessenger;
80 delete fMPTPStyrene;
81}
G4MaterialPropertiesTable * fMPTPStyrene
G4MaterialPropertiesTable * fLXe_mt

Member Function Documentation

◆ Construct()

G4VPhysicalVolume * LXeDetectorConstruction::Construct ( )
override

Definition at line 218 of file LXeDetectorConstruction.cc.

219{
220 // The experimental hall walls are all 1m away from housing walls
221 G4double expHall_x = fScint_x + fD_mtl + 1. * m;
222 G4double expHall_y = fScint_y + fD_mtl + 1. * m;
223 G4double expHall_z = fScint_z + fD_mtl + 1. * m;
224
225 // Create experimental hall
227 new G4Box("expHall_box", expHall_x, expHall_y, expHall_z);
229 new G4LogicalVolume(fExperimentalHall_box, fVacuum, "expHall_log");
231 G4ThreeVector(), fExperimentalHall_log, "expHall", nullptr, false, 0);
232
233 fExperimentalHall_log->SetVisAttributes(G4VisAttributes::GetInvisible());
234
235 // Place the main volume
236 if(fMainVolumeOn)
237 {
238 fMainVolume = new LXeMainVolume(nullptr, G4ThreeVector(),
239 fExperimentalHall_log, false, 0, this);
240 }
241
242 // Place the WLS slab
243 if(fWLSslab)
244 {
245 G4VPhysicalVolume* slab = new LXeWLSSlab(
246 nullptr, G4ThreeVector(0., 0., -fScint_z / 2. - fSlab_z - 1. * cm),
247 fExperimentalHall_log, false, 0, this);
248
249 // Surface properties for the WLS slab
250 auto scintWrap = new G4OpticalSurface("ScintWrap");
251
252 new G4LogicalBorderSurface("ScintWrap", slab, fExperimentalHall_phys,
253 scintWrap);
254
255 scintWrap->SetType(dielectric_metal);
256 scintWrap->SetFinish(polished);
257 scintWrap->SetModel(glisur);
258
259 std::vector<G4double> pp = { 2.0 * eV, 3.5 * eV };
260 std::vector<G4double> reflectivity = { 1.0, 1.0 };
261 std::vector<G4double> efficiency = { 0.0, 0.0 };
262
263 auto scintWrapProperty = new G4MaterialPropertiesTable();
264
265 scintWrapProperty->AddProperty("REFLECTIVITY", pp, reflectivity);
266 scintWrapProperty->AddProperty("EFFICIENCY", pp, efficiency);
267 scintWrap->SetMaterialPropertiesTable(scintWrapProperty);
268 }
269
271}
G4VPhysicalVolume * fExperimentalHall_phys

◆ ConstructSDandField()

void LXeDetectorConstruction::ConstructSDandField ( )
override

Definition at line 275 of file LXeDetectorConstruction.cc.

276{
277 if(!fMainVolume)
278 return;
279
280 // PMT SD
281
282 LXePMTSD* pmt = fPmt_SD.Get();
283 if(!pmt)
284 {
285 // Created here so it exists as pmts are being placed
286 G4cout << "Construction /LXeDet/pmtSD" << G4endl;
287 auto pmt_SD = new LXePMTSD("/LXeDet/pmtSD");
288 fPmt_SD.Put(pmt_SD);
289
290 pmt_SD->InitPMTs();
291 pmt_SD->SetPmtPositions(fMainVolume->GetPmtPositions());
292 }
293 else
294 {
295 pmt->InitPMTs();
297 }
298 G4SDManager::GetSDMpointer()->AddNewDetector(fPmt_SD.Get());
299 // sensitive detector is not actually on the photocathode.
300 // processHits gets done manually by the stepping action.
301 // It is used to detect when photons hit and get absorbed & detected at the
302 // boundary to the photocathode (which doesn't get done by attaching it to a
303 // logical volume.
304 // It does however need to be attached to something or else it doesn't get
305 // reset at the begining of events
306
307 SetSensitiveDetector(fMainVolume->GetLogPhotoCath(), fPmt_SD.Get());
308
309 // Scint SD
310
311 if(!fScint_SD.Get())
312 {
313 G4cout << "Construction /LXeDet/scintSD" << G4endl;
314 auto scint_SD = new LXeScintSD("/LXeDet/scintSD");
315 fScint_SD.Put(scint_SD);
316 }
317 G4SDManager::GetSDMpointer()->AddNewDetector(fScint_SD.Get());
318 SetSensitiveDetector(fMainVolume->GetLogScint(), fScint_SD.Get());
319}
G4Cache< LXeScintSD * > fScint_SD
std::vector< G4ThreeVector > GetPmtPositions()
G4LogicalVolume * GetLogScint()
G4LogicalVolume * GetLogPhotoCath()
void InitPMTs()
Definition LXePMTSD.hh:57
void SetPmtPositions(const std::vector< G4ThreeVector > &positions)
Definition LXePMTSD.cc:67

◆ SetDimensions()

void LXeDetectorConstruction::SetDimensions ( G4ThreeVector  dims)

Definition at line 323 of file LXeDetectorConstruction.cc.

324{
325 fScint_x = dims[0];
326 fScint_y = dims[1];
327 fScint_z = dims[2];
328 G4RunManager::GetRunManager()->ReinitializeGeometry();
329}

◆ SetHousingThickness()

void LXeDetectorConstruction::SetHousingThickness ( G4double  d_mtl)

Definition at line 333 of file LXeDetectorConstruction.cc.

334{
335 fD_mtl = d_mtl;
336 G4RunManager::GetRunManager()->ReinitializeGeometry();
337}

◆ SetNX()

void LXeDetectorConstruction::SetNX ( G4int  nx)

Definition at line 341 of file LXeDetectorConstruction.cc.

342{
343 fNx = nx;
344 G4RunManager::GetRunManager()->ReinitializeGeometry();
345}

◆ SetNY()

void LXeDetectorConstruction::SetNY ( G4int  ny)

Definition at line 349 of file LXeDetectorConstruction.cc.

350{
351 fNy = ny;
352 G4RunManager::GetRunManager()->ReinitializeGeometry();
353}

◆ SetNZ()

void LXeDetectorConstruction::SetNZ ( G4int  nz)

Definition at line 357 of file LXeDetectorConstruction.cc.

358{
359 fNz = nz;
360 G4RunManager::GetRunManager()->ReinitializeGeometry();
361}

◆ SetPMTRadius()

void LXeDetectorConstruction::SetPMTRadius ( G4double  outerRadius_pmt)

Definition at line 365 of file LXeDetectorConstruction.cc.

366{
367 fOuterRadius_pmt = outerRadius_pmt;
368 G4RunManager::GetRunManager()->ReinitializeGeometry();
369}

◆ SetDefaults()

void LXeDetectorConstruction::SetDefaults ( )

Definition at line 373 of file LXeDetectorConstruction.cc.

374{
375 // Resets to default values
376 fD_mtl = 0.0635 * cm;
377
378 fScint_x = 17.8 * cm;
379 fScint_y = 17.8 * cm;
380 fScint_z = 22.6 * cm;
381
382 fNx = 2;
383 fNy = 2;
384 fNz = 3;
385
386 fOuterRadius_pmt = 2.3 * cm;
387
388 fSphereOn = true;
389 fRefl = 1.0;
390
391 fNfibers = 15;
392 fWLSslab = false;
393 fMainVolumeOn = true;
394 fMainVolume = nullptr;
395 fSlab_z = 2.5 * mm;
396
397 G4UImanager::GetUIpointer()->ApplyCommand(
398 "/LXe/detector/scintYieldFactor 1.");
399
400 if(fLXe_mt)
401 fLXe_mt->AddConstProperty("SCINTILLATIONYIELD", 12000. / MeV);
402 if(fMPTPStyrene)
403 fMPTPStyrene->AddConstProperty("SCINTILLATIONYIELD", 10. / keV);
404}

◆ SetSaveThreshold()

void LXeDetectorConstruction::SetSaveThreshold ( G4int  save)

Definition at line 462 of file LXeDetectorConstruction.cc.

463{
464 // Sets the save threshold for the random number seed. If the number of
465 // photons generated in an event is lower than this, then save the seed for
466 // this event in a file called run###evt###.rndm
467
468 fSaveThreshold = save;
469 G4RunManager::GetRunManager()->SetRandomNumberStore(true);
470}

◆ GetNX()

G4int LXeDetectorConstruction::GetNX ( ) const
inline

Definition at line 73 of file LXeDetectorConstruction.hh.

73{ return fNx; };

◆ GetNY()

G4int LXeDetectorConstruction::GetNY ( ) const
inline

Definition at line 74 of file LXeDetectorConstruction.hh.

74{ return fNy; };

◆ GetNZ()

G4int LXeDetectorConstruction::GetNZ ( ) const
inline

Definition at line 75 of file LXeDetectorConstruction.hh.

75{ return fNz; };

◆ GetSaveThreshold()

G4int LXeDetectorConstruction::GetSaveThreshold ( ) const
inline

Definition at line 76 of file LXeDetectorConstruction.hh.

76{ return fSaveThreshold; };

◆ GetScintX()

G4double LXeDetectorConstruction::GetScintX ( ) const
inline

Definition at line 77 of file LXeDetectorConstruction.hh.

77{ return fScint_x; }

◆ GetScintY()

G4double LXeDetectorConstruction::GetScintY ( ) const
inline

Definition at line 78 of file LXeDetectorConstruction.hh.

78{ return fScint_y; }

◆ GetScintZ()

G4double LXeDetectorConstruction::GetScintZ ( ) const
inline

Definition at line 79 of file LXeDetectorConstruction.hh.

79{ return fScint_z; }

◆ GetHousingThickness()

G4double LXeDetectorConstruction::GetHousingThickness ( ) const
inline

Definition at line 80 of file LXeDetectorConstruction.hh.

80{ return fD_mtl; }

◆ GetPMTRadius()

G4double LXeDetectorConstruction::GetPMTRadius ( ) const
inline

Definition at line 81 of file LXeDetectorConstruction.hh.

81{ return fOuterRadius_pmt; }

◆ GetSlabZ()

G4double LXeDetectorConstruction::GetSlabZ ( ) const
inline

Definition at line 82 of file LXeDetectorConstruction.hh.

82{ return fSlab_z; }

◆ SetSphereOn()

void LXeDetectorConstruction::SetSphereOn ( G4bool  b)

Definition at line 408 of file LXeDetectorConstruction.cc.

409{
410 fSphereOn = b;
411 G4RunManager::GetRunManager()->ReinitializeGeometry();
412}

◆ GetSphereOn()

static G4bool LXeDetectorConstruction::GetSphereOn ( )
inlinestatic

Definition at line 85 of file LXeDetectorConstruction.hh.

85{ return fSphereOn; }

◆ SetHousingReflectivity()

void LXeDetectorConstruction::SetHousingReflectivity ( G4double  r)

Definition at line 416 of file LXeDetectorConstruction.cc.

417{
418 fRefl = r;
419 G4RunManager::GetRunManager()->ReinitializeGeometry();
420}

◆ GetHousingReflectivity()

G4double LXeDetectorConstruction::GetHousingReflectivity ( ) const
inline

Definition at line 88 of file LXeDetectorConstruction.hh.

88{ return fRefl; }

◆ SetWLSSlabOn()

void LXeDetectorConstruction::SetWLSSlabOn ( G4bool  b)

Definition at line 424 of file LXeDetectorConstruction.cc.

425{
426 fWLSslab = b;
427 G4RunManager::GetRunManager()->ReinitializeGeometry();
428}

◆ GetWLSSlabOn()

G4bool LXeDetectorConstruction::GetWLSSlabOn ( ) const
inline

Definition at line 91 of file LXeDetectorConstruction.hh.

91{ return fWLSslab; }

◆ SetMainVolumeOn()

void LXeDetectorConstruction::SetMainVolumeOn ( G4bool  b)

Definition at line 432 of file LXeDetectorConstruction.cc.

433{
434 fMainVolumeOn = b;
435 G4RunManager::GetRunManager()->ReinitializeGeometry();
436}

◆ GetMainVolumeOn()

G4bool LXeDetectorConstruction::GetMainVolumeOn ( ) const
inline

Definition at line 94 of file LXeDetectorConstruction.hh.

94{ return fMainVolumeOn; }

◆ SetNFibers()

void LXeDetectorConstruction::SetNFibers ( G4int  n)

Definition at line 440 of file LXeDetectorConstruction.cc.

441{
442 fNfibers = n;
443 G4RunManager::GetRunManager()->ReinitializeGeometry();
444}

◆ GetNFibers()

G4int LXeDetectorConstruction::GetNFibers ( ) const
inline

Definition at line 97 of file LXeDetectorConstruction.hh.

97{ return fNfibers; }

◆ SetMainScintYield()

void LXeDetectorConstruction::SetMainScintYield ( G4double  y)

Definition at line 448 of file LXeDetectorConstruction.cc.

449{
450 fLXe_mt->AddConstProperty("SCINTILLATIONYIELD", y / MeV);
451}

◆ SetWLSScintYield()

void LXeDetectorConstruction::SetWLSScintYield ( G4double  y)

Definition at line 455 of file LXeDetectorConstruction.cc.

456{
457 fMPTPStyrene->AddConstProperty("SCINTILLATIONYIELD", y / MeV);
458}

◆ DefineMaterials()

void LXeDetectorConstruction::DefineMaterials ( )
private

Definition at line 85 of file LXeDetectorConstruction.cc.

86{
87 G4double a; // atomic mass
88 G4double z; // atomic number
89 G4double density;
90
91 G4int polyPMMA = 1;
92 G4int nC_PMMA = 3 + 2 * polyPMMA;
93 G4int nH_PMMA = 6 + 2 * polyPMMA;
94
95 G4int polyeth = 1;
96 G4int nC_eth = 2 * polyeth;
97 G4int nH_eth = 4 * polyeth;
98
99 //***Elements
100 fH = new G4Element("H", "H", z = 1., a = 1.01 * g / mole);
101 fC = new G4Element("C", "C", z = 6., a = 12.01 * g / mole);
102 fN = new G4Element("N", "N", z = 7., a = 14.01 * g / mole);
103 fO = new G4Element("O", "O", z = 8., a = 16.00 * g / mole);
104
105 //***Materials
106 // Liquid Xenon
107 fLXe = new G4Material("LXe", z = 54., a = 131.29 * g / mole,
108 density = 3.020 * g / cm3);
109 // Aluminum
110 fAl = new G4Material("Al", z = 13., a = 26.98 * g / mole,
111 density = 2.7 * g / cm3);
112 // Vacuum
113 fVacuum = new G4Material("Vacuum", z = 1., a = 1.01 * g / mole,
114 density = universe_mean_density, kStateGas,
115 0.1 * kelvin, 1.e-19 * pascal);
116 // Air
117 fAir = new G4Material("Air", density = 1.29 * mg / cm3, 2);
118 fAir->AddElement(fN, 70 * perCent);
119 fAir->AddElement(fO, 30 * perCent);
120 // Glass
121 fGlass = new G4Material("Glass", density = 1.032 * g / cm3, 2);
122 fGlass->AddElement(fC, 91.533 * perCent);
123 fGlass->AddElement(fH, 8.467 * perCent);
124 // Polystyrene
125 fPstyrene = new G4Material("Polystyrene", density = 1.03 * g / cm3, 2);
126 fPstyrene->AddElement(fC, 8);
127 fPstyrene->AddElement(fH, 8);
128 // Fiber(PMMA)
129 fPMMA = new G4Material("PMMA", density = 1190. * kg / m3, 3);
130 fPMMA->AddElement(fH, nH_PMMA);
131 fPMMA->AddElement(fC, nC_PMMA);
132 fPMMA->AddElement(fO, 2);
133 // Cladding(polyethylene)
134 fPethylene1 = new G4Material("Pethylene1", density = 1200. * kg / m3, 2);
135 fPethylene1->AddElement(fH, nH_eth);
136 fPethylene1->AddElement(fC, nC_eth);
137 // Double cladding(flourinated polyethylene)
138 fPethylene2 = new G4Material("Pethylene2", density = 1400. * kg / m3, 2);
139 fPethylene2->AddElement(fH, nH_eth);
140 fPethylene2->AddElement(fC, nC_eth);
141
142 //***Material properties tables
143
144 std::vector<G4double> lxe_Energy = { 7.0 * eV, 7.07 * eV, 7.14 * eV };
145
146 std::vector<G4double> lxe_SCINT = { 0.1, 1.0, 0.1 };
147 std::vector<G4double> lxe_RIND = { 1.59, 1.57, 1.54 };
148 std::vector<G4double> lxe_ABSL = { 35. * cm, 35. * cm, 35. * cm };
150 fLXe_mt->AddProperty("SCINTILLATIONCOMPONENT1", lxe_Energy, lxe_SCINT);
151 fLXe_mt->AddProperty("SCINTILLATIONCOMPONENT2", lxe_Energy, lxe_SCINT);
152 fLXe_mt->AddProperty("RINDEX", lxe_Energy, lxe_RIND);
153 fLXe_mt->AddProperty("ABSLENGTH", lxe_Energy, lxe_ABSL);
154 fLXe_mt->AddConstProperty("SCINTILLATIONYIELD", 12000. / MeV);
155 fLXe_mt->AddConstProperty("RESOLUTIONSCALE", 1.0);
156 fLXe_mt->AddConstProperty("SCINTILLATIONTIMECONSTANT1", 20. * ns);
157 fLXe_mt->AddConstProperty("SCINTILLATIONTIMECONSTANT2", 45. * ns);
158 fLXe_mt->AddConstProperty("SCINTILLATIONYIELD1", 1.0);
159 fLXe_mt->AddConstProperty("SCINTILLATIONYIELD2", 0.0);
160 fLXe->SetMaterialPropertiesTable(fLXe_mt);
161
162 // Set the Birks Constant for the LXe scintillator
163 fLXe->GetIonisation()->SetBirksConstant(0.126 * mm / MeV);
164
165 std::vector<G4double> glass_AbsLength = { 420. * cm, 420. * cm, 420. * cm };
166 auto glass_mt = new G4MaterialPropertiesTable();
167 glass_mt->AddProperty("ABSLENGTH", lxe_Energy, glass_AbsLength);
168 glass_mt->AddProperty("RINDEX", "Fused Silica");
169 fGlass->SetMaterialPropertiesTable(glass_mt);
170
171 auto vacuum_mt = new G4MaterialPropertiesTable();
172 vacuum_mt->AddProperty("RINDEX", "Air");
173 fVacuum->SetMaterialPropertiesTable(vacuum_mt);
174 fAir->SetMaterialPropertiesTable(vacuum_mt); // Give air the same rindex
175
176 std::vector<G4double> wls_Energy = { 2.00 * eV, 2.87 * eV, 2.90 * eV,
177 3.47 * eV };
178
179 std::vector<G4double> rIndexPstyrene = { 1.5, 1.5, 1.5, 1.5 };
180 std::vector<G4double> absorption1 = { 2. * cm, 2. * cm, 2. * cm, 2. * cm };
181 std::vector<G4double> scintilFast = { 0.0, 0.0, 1.0, 1.0 };
183 fMPTPStyrene->AddProperty("RINDEX", wls_Energy, rIndexPstyrene);
184 fMPTPStyrene->AddProperty("ABSLENGTH", wls_Energy, absorption1);
185 fMPTPStyrene->AddProperty("SCINTILLATIONCOMPONENT1", wls_Energy, scintilFast);
186 fMPTPStyrene->AddConstProperty("SCINTILLATIONYIELD", 10. / keV);
187 fMPTPStyrene->AddConstProperty("RESOLUTIONSCALE", 1.0);
188 fMPTPStyrene->AddConstProperty("SCINTILLATIONTIMECONSTANT1", 10. * ns);
189 fPstyrene->SetMaterialPropertiesTable(fMPTPStyrene);
190
191 // Set the Birks Constant for the Polystyrene scintillator
192 fPstyrene->GetIonisation()->SetBirksConstant(0.126 * mm / MeV);
193
194 std::vector<G4double> AbsFiber = { 9.0 * m, 9.0 * m, 0.1 * mm, 0.1 * mm };
195 std::vector<G4double> EmissionFib = { 1.0, 1.0, 0.0, 0.0 };
196 auto fiberProperty = new G4MaterialPropertiesTable();
197 fiberProperty->AddProperty("RINDEX", "PMMA");
198 fiberProperty->AddProperty("WLSABSLENGTH", wls_Energy, AbsFiber);
199 fiberProperty->AddProperty("WLSCOMPONENT", wls_Energy, EmissionFib);
200 fiberProperty->AddConstProperty("WLSTIMECONSTANT", 0.5 * ns);
201 fPMMA->SetMaterialPropertiesTable(fiberProperty);
202
203 std::vector<G4double> RefractiveIndexClad1 = { 1.49, 1.49, 1.49, 1.49 };
204 auto clad1Property = new G4MaterialPropertiesTable();
205 clad1Property->AddProperty("RINDEX", wls_Energy, RefractiveIndexClad1);
206 clad1Property->AddProperty("ABSLENGTH", wls_Energy, AbsFiber);
207 fPethylene1->SetMaterialPropertiesTable(clad1Property);
208
209 std::vector<G4double> RefractiveIndexClad2 = { 1.42, 1.42, 1.42, 1.42 };
210 auto clad2Property = new G4MaterialPropertiesTable();
211 clad2Property->AddProperty("RINDEX", wls_Energy, RefractiveIndexClad2);
212 clad2Property->AddProperty("ABSLENGTH", wls_Energy, AbsFiber);
213 fPethylene2->SetMaterialPropertiesTable(clad2Property);
214}
std::vector< ExP01TrackerHit * > a

Member Data Documentation

◆ fDetectorMessenger

LXeDetectorMessenger* LXeDetectorConstruction::fDetectorMessenger = nullptr
private

Definition at line 105 of file LXeDetectorConstruction.hh.

◆ fExperimentalHall_box

G4Box* LXeDetectorConstruction::fExperimentalHall_box = nullptr
private

Definition at line 107 of file LXeDetectorConstruction.hh.

◆ fExperimentalHall_log

G4LogicalVolume* LXeDetectorConstruction::fExperimentalHall_log = nullptr
private

Definition at line 108 of file LXeDetectorConstruction.hh.

◆ fExperimentalHall_phys

G4VPhysicalVolume* LXeDetectorConstruction::fExperimentalHall_phys = nullptr
private

Definition at line 109 of file LXeDetectorConstruction.hh.

◆ fN

G4Element* LXeDetectorConstruction::fN = nullptr
private

Definition at line 112 of file LXeDetectorConstruction.hh.

◆ fO

G4Element* LXeDetectorConstruction::fO = nullptr
private

Definition at line 113 of file LXeDetectorConstruction.hh.

◆ fC

G4Element* LXeDetectorConstruction::fC = nullptr
private

Definition at line 114 of file LXeDetectorConstruction.hh.

◆ fH

G4Element* LXeDetectorConstruction::fH = nullptr
private

Definition at line 115 of file LXeDetectorConstruction.hh.

◆ fLXe

G4Material* LXeDetectorConstruction::fLXe = nullptr
private

Definition at line 116 of file LXeDetectorConstruction.hh.

◆ fAl

G4Material* LXeDetectorConstruction::fAl = nullptr
private

Definition at line 117 of file LXeDetectorConstruction.hh.

◆ fAir

G4Material* LXeDetectorConstruction::fAir = nullptr
private

Definition at line 118 of file LXeDetectorConstruction.hh.

◆ fVacuum

G4Material* LXeDetectorConstruction::fVacuum = nullptr
private

Definition at line 119 of file LXeDetectorConstruction.hh.

◆ fGlass

G4Material* LXeDetectorConstruction::fGlass = nullptr
private

Definition at line 120 of file LXeDetectorConstruction.hh.

◆ fPstyrene

G4Material* LXeDetectorConstruction::fPstyrene = nullptr
private

Definition at line 121 of file LXeDetectorConstruction.hh.

◆ fPMMA

G4Material* LXeDetectorConstruction::fPMMA = nullptr
private

Definition at line 122 of file LXeDetectorConstruction.hh.

◆ fPethylene1

G4Material* LXeDetectorConstruction::fPethylene1 = nullptr
private

Definition at line 123 of file LXeDetectorConstruction.hh.

◆ fPethylene2

G4Material* LXeDetectorConstruction::fPethylene2 = nullptr
private

Definition at line 124 of file LXeDetectorConstruction.hh.

◆ fScint_x

G4double LXeDetectorConstruction::fScint_x = 17.8 * CLHEP::cm
private

Definition at line 127 of file LXeDetectorConstruction.hh.

◆ fScint_y

G4double LXeDetectorConstruction::fScint_y = 17.8 * CLHEP::cm
private

Definition at line 128 of file LXeDetectorConstruction.hh.

◆ fScint_z

G4double LXeDetectorConstruction::fScint_z = 22.6 * CLHEP::cm
private

Definition at line 129 of file LXeDetectorConstruction.hh.

◆ fD_mtl

G4double LXeDetectorConstruction::fD_mtl = 0.0635 * CLHEP::cm
private

Definition at line 130 of file LXeDetectorConstruction.hh.

◆ fNx

G4int LXeDetectorConstruction::fNx = 2
private

Definition at line 131 of file LXeDetectorConstruction.hh.

◆ fNy

G4int LXeDetectorConstruction::fNy = 2
private

Definition at line 132 of file LXeDetectorConstruction.hh.

◆ fNz

G4int LXeDetectorConstruction::fNz = 3
private

Definition at line 133 of file LXeDetectorConstruction.hh.

◆ fSaveThreshold

G4int LXeDetectorConstruction::fSaveThreshold = 0
private

Definition at line 134 of file LXeDetectorConstruction.hh.

◆ fOuterRadius_pmt

G4double LXeDetectorConstruction::fOuterRadius_pmt = 2.3 * CLHEP::cm
private

Definition at line 135 of file LXeDetectorConstruction.hh.

◆ fNfibers

G4int LXeDetectorConstruction::fNfibers = 15
private

Definition at line 136 of file LXeDetectorConstruction.hh.

◆ fSphereOn

G4bool LXeDetectorConstruction::fSphereOn = true
staticprivate

Definition at line 137 of file LXeDetectorConstruction.hh.

◆ fRefl

G4double LXeDetectorConstruction::fRefl = 1.
private

Definition at line 138 of file LXeDetectorConstruction.hh.

◆ fWLSslab

G4bool LXeDetectorConstruction::fWLSslab = false
private

Definition at line 139 of file LXeDetectorConstruction.hh.

◆ fMainVolumeOn

G4bool LXeDetectorConstruction::fMainVolumeOn = true
private

Definition at line 140 of file LXeDetectorConstruction.hh.

◆ fSlab_z

G4double LXeDetectorConstruction::fSlab_z = 2.5 * CLHEP::mm
private

Definition at line 141 of file LXeDetectorConstruction.hh.

◆ fMainVolume

LXeMainVolume* LXeDetectorConstruction::fMainVolume = nullptr
private

Definition at line 143 of file LXeDetectorConstruction.hh.

◆ fLXe_mt

G4MaterialPropertiesTable* LXeDetectorConstruction::fLXe_mt = nullptr
private

Definition at line 145 of file LXeDetectorConstruction.hh.

◆ fMPTPStyrene

G4MaterialPropertiesTable* LXeDetectorConstruction::fMPTPStyrene = nullptr
private

Definition at line 146 of file LXeDetectorConstruction.hh.

◆ fScint_SD

G4Cache<LXeScintSD*> LXeDetectorConstruction::fScint_SD
private

Definition at line 149 of file LXeDetectorConstruction.hh.

◆ fPmt_SD

G4Cache<LXePMTSD*> LXeDetectorConstruction::fPmt_SD
private

Definition at line 150 of file LXeDetectorConstruction.hh.


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

Applications | User Support | Publications | Collaboration