69 : fLXe_mt(nullptr), fMPTPStyrene(nullptr)
98 G4int nC_PMMA = 3+2*polyPMMA;
99 G4int nH_PMMA = 6+2*polyPMMA;
102 G4int nC_eth = 2*polyeth;
103 G4int nH_eth = 4*polyeth;
151 G4double lxe_SCINT[] = { 0.1, 1.0, 0.1 };
152 assert(
sizeof(lxe_SCINT) ==
sizeof(lxe_Energy));
153 G4double lxe_RIND[] = { 1.59 , 1.57, 1.54 };
154 assert(
sizeof(lxe_RIND) ==
sizeof(lxe_Energy));
156 assert(
sizeof(lxe_ABSL) ==
sizeof(lxe_Energy));
173 G4double glass_RIND[]={1.49,1.49,1.49};
174 assert(
sizeof(glass_RIND) ==
sizeof(lxe_Energy));
176 assert(
sizeof(glass_AbsLength) ==
sizeof(lxe_Energy));
178 glass_mt->
AddProperty(
"ABSLENGTH",lxe_Energy,glass_AbsLength,lxenum);
179 glass_mt->
AddProperty(
"RINDEX",lxe_Energy,glass_RIND,lxenum);
185 assert(
sizeof(vacuum_RIND) ==
sizeof(vacuum_Energy));
187 vacuum_mt->
AddProperty(
"RINDEX", vacuum_Energy, vacuum_RIND,vacnum);
194 G4double rIndexPstyrene[]={ 1.5, 1.5, 1.5, 1.5};
195 assert(
sizeof(rIndexPstyrene) ==
sizeof(wls_Energy));
197 assert(
sizeof(absorption1) ==
sizeof(wls_Energy));
198 G4double scintilFast[]={0.00, 0.00, 1.00, 1.00};
199 assert(
sizeof(scintilFast) ==
sizeof(wls_Energy));
213 G4double RefractiveIndexFiber[]={ 1.60, 1.60, 1.60, 1.60};
214 assert(
sizeof(RefractiveIndexFiber) ==
sizeof(wls_Energy));
216 assert(
sizeof(AbsFiber) ==
sizeof(wls_Energy));
217 G4double EmissionFib[]={1.0, 1.0, 0.0, 0.0};
218 assert(
sizeof(EmissionFib) ==
sizeof(wls_Energy));
220 fiberProperty->
AddProperty(
"RINDEX",wls_Energy,RefractiveIndexFiber,wlsnum);
221 fiberProperty->
AddProperty(
"WLSABSLENGTH",wls_Energy,AbsFiber,wlsnum);
222 fiberProperty->
AddProperty(
"WLSCOMPONENT",wls_Energy,EmissionFib,wlsnum);
226 G4double RefractiveIndexClad1[]={ 1.49, 1.49, 1.49, 1.49};
227 assert(
sizeof(RefractiveIndexClad1) ==
sizeof(wls_Energy));
229 clad1Property->
AddProperty(
"RINDEX",wls_Energy,RefractiveIndexClad1,wlsnum);
230 clad1Property->
AddProperty(
"ABSLENGTH",wls_Energy,AbsFiber,wlsnum);
233 G4double RefractiveIndexClad2[]={ 1.42, 1.42, 1.42, 1.42};
234 assert(
sizeof(RefractiveIndexClad2) ==
sizeof(wls_Energy));
236 clad2Property->
AddProperty(
"RINDEX",wls_Energy,RefractiveIndexClad2,wlsnum);
237 clad2Property->
AddProperty(
"ABSLENGTH",wls_Energy,AbsFiber,wlsnum);
268 =
new G4Box(
"expHall_box",expHall_x,expHall_y,expHall_z);
303 assert(
sizeof(reflectivity) ==
sizeof(pp));
305 assert(
sizeof(efficiency) ==
sizeof(pp));
310 scintWrapProperty->
AddProperty(
"REFLECTIVITY",pp,reflectivity,num);
311 scintWrapProperty->
AddProperty(
"EFFICIENCY",pp,efficiency,num);
static constexpr double kelvin
static G4RunManager * GetRunManager()
void SetWLSScintYield(G4double)
void SetPmtPositions(const std::vector< G4ThreeVector > &positions)
CLHEP::Hep3Vector G4ThreeVector
LXeDetectorConstruction()
std::vector< ExP01TrackerHit * > a
static void CleanSurfaceTable()
static constexpr double MeV
void SetSensitiveDetector(const G4String &logVolName, G4VSensitiveDetector *aSD, G4bool multi=false)
static constexpr double keV
static constexpr double mm
virtual G4VPhysicalVolume * Construct()
void AddNewDetector(G4VSensitiveDetector *aSD)
G4int ApplyCommand(const char *aCommand)
void SetPMTRadius(G4double)
Definition of the LXeDetectorMessenger class.
static constexpr double perCent
LXeMainVolume * fMainVolume
void AddConstProperty(const char *key, G4double PropertyValue)
void SetDimensions(G4ThreeVector)
G4Box * fExperimentalHall_box
void SetMaterialPropertiesTable(G4MaterialPropertiesTable *anMPT)
static constexpr double kg
static void CleanSurfaceTable()
Definition of the LXeWLSSlab class.
void SetBirksConstant(G4double value)
void SetMainVolumeOn(G4bool b)
static constexpr double universe_mean_density
Definition of the LXeScintSD class.
static G4UImanager * GetUIpointer()
static const G4VisAttributes & GetInvisible()
LXeDetectorMessenger * fDetectorMessenger
G4Cache< LXePMTSD * > fPmt_SD
void SetMainScintYield(G4double)
static constexpr double g
static constexpr double m
Definition of the LXeMainVolume class.
static constexpr double m3
void SetMaterialPropertiesTable(G4MaterialPropertiesTable *anMPT)
void SetType(const G4SurfaceType &type)
G4MaterialPropertyVector * AddProperty(const char *key, G4double *PhotonEnergies, G4double *PropertyValues, G4int NumEntries)
static constexpr double mg
static G4GeometryManager * GetInstance()
G4Cache< LXeScintSD * > fScint_SD
void SetHousingReflectivity(G4double)
G4LogicalVolume * fExperimentalHall_log
virtual ~LXeDetectorConstruction()
static constexpr double eV
void OpenGeometry(G4VPhysicalVolume *vol=0)
void SetVisAttributes(const G4VisAttributes *pVA)
G4VPhysicalVolume * fExperimentalHall_phys
void InitPMTs(G4int nPMTs)
G4MaterialPropertiesTable * fMPTPStyrene
void Put(const value_type &val) const
Definition of the LXeDetectorConstruction class.
G4LogicalVolume * GetLogScint()
static G4SolidStore * GetInstance()
static G4SDManager * GetSDMpointer()
static G4PhysicalVolumeStore * GetInstance()
void ReinitializeGeometry(G4bool destroyFirst=false, G4bool prop=true)
void AddElement(G4Element *element, G4int nAtoms)
Definition of the LXePMTSD class.
G4IonisParamMat * GetIonisation() const
void SetHousingThickness(G4double)
G4GLOB_DLL std::ostream G4cout
static constexpr double cm
std::vector< G4ThreeVector > GetPmtPositions()
G4MaterialPropertiesTable * fLXe_mt
static constexpr double mole
virtual void ConstructSDandField()
G4LogicalVolume * GetLogPhotoCath()
void SetWLSSlabOn(G4bool b)
static constexpr double cm3
G4VPhysicalVolume * ConstructDetector()
void SetModel(const G4OpticalSurfaceModel model)
static G4LogicalVolumeStore * GetInstance()
G4double fOuterRadius_pmt
void SetFinish(const G4OpticalSurfaceFinish)