69 : fLXe_mt(NULL), fMPTPStyrene(NULL)
97 G4int nC_PMMA = 3+2*polyPMMA;
98 G4int nH_PMMA = 6+2*polyPMMA;
101 G4int nC_eth = 2*polyeth;
102 G4int nH_eth = 4*polyeth;
150 G4double lxe_SCINT[] = { 0.1, 1.0, 0.1 };
151 assert(
sizeof(lxe_SCINT) ==
sizeof(lxe_Energy));
152 G4double lxe_RIND[] = { 1.59 , 1.57, 1.54 };
153 assert(
sizeof(lxe_RIND) ==
sizeof(lxe_Energy));
155 assert(
sizeof(lxe_ABSL) ==
sizeof(lxe_Energy));
172 G4double glass_RIND[]={1.49,1.49,1.49};
173 assert(
sizeof(glass_RIND) ==
sizeof(lxe_Energy));
175 assert(
sizeof(glass_AbsLength) ==
sizeof(lxe_Energy));
177 glass_mt->
AddProperty(
"ABSLENGTH",lxe_Energy,glass_AbsLength,lxenum);
178 glass_mt->
AddProperty(
"RINDEX",lxe_Energy,glass_RIND,lxenum);
184 assert(
sizeof(vacuum_RIND) ==
sizeof(vacuum_Energy));
186 vacuum_mt->
AddProperty(
"RINDEX", vacuum_Energy, vacuum_RIND,vacnum);
193 G4double rIndexPstyrene[]={ 1.5, 1.5, 1.5, 1.5};
194 assert(
sizeof(rIndexPstyrene) ==
sizeof(wls_Energy));
196 assert(
sizeof(absorption1) ==
sizeof(wls_Energy));
197 G4double scintilFast[]={0.00, 0.00, 1.00, 1.00};
198 assert(
sizeof(scintilFast) ==
sizeof(wls_Energy));
212 G4double RefractiveIndexFiber[]={ 1.60, 1.60, 1.60, 1.60};
213 assert(
sizeof(RefractiveIndexFiber) ==
sizeof(wls_Energy));
215 assert(
sizeof(AbsFiber) ==
sizeof(wls_Energy));
216 G4double EmissionFib[]={1.0, 1.0, 0.0, 0.0};
217 assert(
sizeof(EmissionFib) ==
sizeof(wls_Energy));
219 fiberProperty->
AddProperty(
"RINDEX",wls_Energy,RefractiveIndexFiber,wlsnum);
220 fiberProperty->
AddProperty(
"WLSABSLENGTH",wls_Energy,AbsFiber,wlsnum);
221 fiberProperty->
AddProperty(
"WLSCOMPONENT",wls_Energy,EmissionFib,wlsnum);
225 G4double RefractiveIndexClad1[]={ 1.49, 1.49, 1.49, 1.49};
226 assert(
sizeof(RefractiveIndexClad1) ==
sizeof(wls_Energy));
228 clad1Property->
AddProperty(
"RINDEX",wls_Energy,RefractiveIndexClad1,wlsnum);
229 clad1Property->
AddProperty(
"ABSLENGTH",wls_Energy,AbsFiber,wlsnum);
232 G4double RefractiveIndexClad2[]={ 1.42, 1.42, 1.42, 1.42};
233 assert(
sizeof(RefractiveIndexClad2) ==
sizeof(wls_Energy));
235 clad2Property->
AddProperty(
"RINDEX",wls_Energy,RefractiveIndexClad2,wlsnum);
236 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);
void SetFinish(const G4OpticalSurfaceFinish)
void SetMainVolumeOn(G4bool b)
G4IonisParamMat * GetIonisation() const
G4double fOuterRadius_pmt
CLHEP::Hep3Vector G4ThreeVector
virtual void ConstructSDandField()
void SetMaterialPropertiesTable(G4MaterialPropertiesTable *anMPT)
void SetBirksConstant(G4double value)
Definition of the LXeDetectorConstruction class.
Definition of the LXeMainVolume class.
std::vector< G4ThreeVector > GetPmtPositions()
G4MaterialPropertiesTable * fMPTPStyrene
G4LogicalVolume * GetLogPhotoCath()
G4MaterialPropertyVector * AddProperty(const char *key, G4double *PhotonEnergies, G4double *PropertyValues, G4int NumEntries)
static void CleanSurfaceTable()
static G4UImanager * GetUIpointer()
void SetHousingReflectivity(G4double)
static G4PhysicalVolumeStore * GetInstance()
G4VPhysicalVolume * ConstructDetector()
G4LogicalVolume * GetLogScint()
G4Cache< LXePMTSD * > fPmt_SD
Definition of the LXePMTSD class.
virtual ~LXeDetectorConstruction()
G4GLOB_DLL std::ostream G4cout
LXeMainVolume * fMainVolume
virtual G4VPhysicalVolume * Construct()
static void CleanSurfaceTable()
static G4LogicalVolumeStore * GetInstance()
static G4SolidStore * GetInstance()
static const double perCent
void SetHousingThickness(G4double)
static G4GeometryManager * GetInstance()
void AddConstProperty(const char *key, G4double PropertyValue)
void SetSensitiveDetector(const G4String &logVolName, G4VSensitiveDetector *aSD, G4bool multi=false)
void ReinitializeGeometry(G4bool destroyFirst=false, G4bool prop=true)
static const double kelvin
void SetMainScintYield(G4double)
void SetDimensions(G4ThreeVector)
static G4RunManager * GetRunManager()
void SetPmtPositions(const std::vector< G4ThreeVector > &positions)
LXeDetectorMessenger * fDetectorMessenger
void SetWLSScintYield(G4double)
G4Box * fExperimentalHall_box
void SetPMTRadius(G4double)
G4Cache< LXeScintSD * > fScint_SD
static const G4VisAttributes Invisible
Definition of the LXeScintSD class.
void InitPMTs(G4int nPMTs)
G4MaterialPropertiesTable * fLXe_mt
void SetWLSSlabOn(G4bool b)
G4LogicalVolume * fExperimentalHall_log
void OpenGeometry(G4VPhysicalVolume *vol=0)
void AddElement(G4Element *element, G4int nAtoms)
LXeDetectorConstruction()
Definition of the LXeWLSSlab class.
void SetModel(const G4OpticalSurfaceModel model)
Definition of the LXeDetectorMessenger class.
void SetMaterialPropertiesTable(G4MaterialPropertiesTable *anMPT)
void Put(const value_type &val) const
void SetType(const G4SurfaceType &type)
void SetVisAttributes(const G4VisAttributes *pVA)
G4VPhysicalVolume * fExperimentalHall_phys
G4int ApplyCommand(const char *aCommand)