43 #include "DetectorConstruction.hh"
44 #include "DetectorMessenger.hh"
45 #include "TargetSD.hh"
77 fGasMat(0), fWindowMat(0), fWorldMaterial(0),
78 fPhysWorld(0), fLogicWorld(0), fLogicWind(0), fLogicDet(0),
79 fDetectorMessenger(0), fGasDetectorCuts(0), fRegGasDet(0)
144 density = 3.491*
mg/
cm3 ;
148 Kr7CH4->
AddMaterial( Methane, fractionmass = 0.014 ) ;
170 new G4Material(name=
"XeCO2CF4", XeCO2CF4_density,
178 density = 3.758*
mg/
cm3 ;
184 density = 4.9196*
mg/
cm3 ;
186 density, ncomponents=3);
187 XeCH4C3H8->
AddMaterial( Xe, fractionmass = 0.971 ) ;
188 XeCH4C3H8->
AddMaterial( Methane, fractionmass = 0.010 ) ;
189 XeCH4C3H8->
AddMaterial( Propane, fractionmass = 0.019 ) ;
192 density = 1.709*
mg/
cm3 ;
194 Ar7CH4->
AddMaterial( Argon, fractionmass = 0.971 ) ;
195 Ar7CH4->
AddMaterial( Methane, fractionmass = 0.029 ) ;
198 density = 1.8223*
mg/
cm3 ;
201 Ar_80CO2_20->
AddMaterial( Argon, fractionmass = 0.783 ) ;
202 Ar_80CO2_20->
AddMaterial( CarbonDioxide, fractionmass = 0.217 ) ;
205 density = 5.0818*
mg/
cm3 ;
209 Xe20CO2->
AddMaterial( CarbonDioxide, fractionmass = 0.078 ) ;
212 density = 3.601*
mg/
cm3 ;
216 Kr20CO2->
AddMaterial( CarbonDioxide, fractionmass = 0.11 ) ;
219 density = 0.939*
mg/
cm3 ;
222 NeCO2->
AddElement( elNe, fractionmass = 0.8039 ) ;
223 NeCO2->
AddElement( elO, fractionmass = 0.1426 ) ;
224 NeCO2->
AddElement( elC, fractionmass = 0.0535 ) ;
240 G4double worldSizeZ = contThick*1.2;
246 G4cout <<
"\n The WORLD is made of "
248 G4cout <<
", the transverse size (R) of the world is " << worldSizeR/
mm
250 G4cout <<
" The CONTAINER is made of "
252 G4cout <<
" The TARGET is made of "
254 G4cout <<
", the transverse size (R) is " << fGasRadius/
mm <<
" mm. "
260 new G4Tubs(
"World",0.,worldSizeR,worldSizeZ/2.,0.,CLHEP::twopi);
274 0.,contR,contThick/2.,0.,CLHEP::twopi);
283 G4Tubs* det =
new G4Tubs(
"Gas", 0., fGasRadius, fGasThickness/2.,
381 G4Exception (
"DetectorConstruction::SetGasThickness()",
"test005",
383 "Attempt to change already constructed geometry is ignored");
394 G4Exception (
"DetectorConstruction::SetGasRadius()",
"test005",
396 "Attempt to change already constructed geometry is ignored");
407 G4Exception (
"DetectorConstruction::SetContainerThickness()",
"test005",
409 "Attempt to change already constructed geometry is ignored");
G4IonisParamMat * GetIonisation() const
G4Material * FindOrBuildMaterial(const G4String &name, G4bool isotopes=true, G4bool warning=false)
CLHEP::Hep3Vector G4ThreeVector
void AddRootLogicalVolume(G4LogicalVolume *lv)
void SetGasThickness(G4double)
void AddMaterial(G4Material *material, G4double fraction)
static G4Material * GetMaterial(const G4String &name, G4bool warning=true)
G4double GetMeanEnergyPerIonPair() const
const G4String & GetName() const
G4VPhysicalVolume * Construct()
static G4MaterialTable * GetMaterialTable()
void SetWorldMaterial(const G4String &)
void SetProductionCut(G4double cut, G4int index=-1)
void SetPairEnergy(G4double)
void SetPositionZ(G4double val)
void SetContainerMaterial(const G4String &)
static G4NistManager * Instance()
G4ProductionCuts * fGasDetectorCuts
virtual void ConstructSDandField()
void SetContainerThickness(G4double)
G4LogicalVolume * fLogicDet
G4GLOB_DLL std::ostream G4cout
G4LogicalVolume * fLogicWorld
void PhysicsHasBeenModified()
G4VPhysicalVolume * fPhysWorld
void SetSensitiveDetector(const G4String &logVolName, G4VSensitiveDetector *aSD, G4bool multi=false)
void G4Exception(const char *originOfException, const char *exceptionCode, G4ExceptionSeverity severity, const char *comments)
static const double kelvin
static G4RunManager * GetRunManager()
static const double micrometer
void SetGasMaterial(const G4String &)
G4double XeCO2CF4_density
G4LogicalVolume * fLogicWind
static const G4VisAttributes Invisible
static const double atmosphere
static TestParameters * GetPointer()
void SetGasRadius(G4double)
void SetProductionCuts(G4ProductionCuts *cut)
void AddElement(G4Element *element, G4int nAtoms)
G4Element * FindOrBuildElement(G4int Z, G4bool isotopes=true)
void SetMaterial(G4Material *pMaterial)
Messenger class that defines commands for DetectorConstruction.
void SetVisAttributes(const G4VisAttributes *pVA)
G4Material * fWorldMaterial
void SetMeanEnergyPerIonPair(G4double value)
DetectorMessenger * fDetectorMessenger