37 #include "G4Material.hh" 39 #include "G4LogicalVolume.hh" 40 #include "G4PVPlacement.hh" 41 #include "G4PVReplica.hh" 42 #include "G4UniformMagField.hh" 44 #include "G4GeometryManager.hh" 45 #include "G4PhysicalVolumeStore.hh" 46 #include "G4LogicalVolumeStore.hh" 47 #include "G4SolidStore.hh" 49 #include "G4VisAttributes.hh" 50 #include "G4Colour.hh" 51 #include "G4SystemOfUnits.hh" 52 #include "G4PhysicalConstants.hh" 57 :AbsorberMaterial(0),GapMaterial(0),defaultMaterial(0),
58 solidWorld(0),logicWorld(0),physiWorld(0),
59 solidCalor(0),logicCalor(0),physiCalor(0),
60 solidLayer(0),logicLayer(0),physiLayer(0),
61 solidAbsorber(0),logicAbsorber(0),physiAbsorber(0),
62 solidGap (0),logicGap (0),physiGap (0),
100 G4double a,
z, density;
104 G4int ncomponents, natoms;
105 G4double abundance, fractionmass;
111 G4Element* H =
new G4Element(
"Hydrogen",symbol=
"H" , z= 1., a= 1.01*g/mole);
112 G4Element* C =
new G4Element(
"Carbon" ,symbol=
"C" , z= 6., a= 12.01*g/mole);
113 G4Element* N =
new G4Element(
"Nitrogen",symbol=
"N" , z= 7., a= 14.01*g/mole);
114 G4Element* O =
new G4Element(
"Oxygen" ,symbol=
"O" , z= 8., a= 16.00*g/mole);
115 G4Element* Si =
new G4Element(
"Silicon",symbol=
"Si" , z= 14., a= 28.09*g/mole);
121 G4Isotope* U5 =
new G4Isotope(
"U235", iz=92, n=235, a=235.01*g/mole);
122 G4Isotope* U8 =
new G4Isotope(
"U238", iz=92, n=238, a=238.03*g/mole);
124 G4Element* U =
new G4Element(
"enriched Uranium",symbol=
"U",ncomponents=2);
125 U->AddIsotope(U5, abundance= 90.*perCent);
126 U->AddIsotope(U8, abundance= 10.*perCent);
132 new G4Material(
"Aluminium", z=13., a=26.98*g/mole, density=2.700*g/cm3);
133 new G4Material(
"liquidArgon", z=18., a= 39.95*g/mole, density= 1.390*g/cm3);
134 new G4Material(
"Lead" , z=82., a= 207.19*g/mole, density= 11.35*g/cm3);
141 new G4Material(
"Water", density= 1.000*g/cm3, ncomponents=2);
142 H2O->AddElement(H, natoms=2);
143 H2O->AddElement(O, natoms=1);
145 H2O->GetIonisation()->SetMeanExcitationEnergy(75.0*eV);
148 new G4Material(
"Scintillator", density= 1.032*g/cm3, ncomponents=2);
149 Sci->AddElement(C, natoms=9);
150 Sci->AddElement(H, natoms=10);
153 new G4Material(
"Mylar", density= 1.397*g/cm3, ncomponents=3);
154 Myl->AddElement(C, natoms=10);
155 Myl->AddElement(H, natoms= 8);
156 Myl->AddElement(O, natoms= 4);
159 new G4Material(
"quartz",density= 2.200*g/cm3, ncomponents=2);
160 SiO2->AddElement(Si, natoms=1);
161 SiO2->AddElement(O , natoms=2);
168 new G4Material(
"Air" , density= 1.290*mg/cm3, ncomponents=2);
169 Air->AddElement(N, fractionmass=0.7);
170 Air->AddElement(O, fractionmass=0.3);
177 new G4Material(
"Aerogel", density= 0.200*g/cm3, ncomponents=3);
178 Aerog->AddMaterial(SiO2, fractionmass=62.5*perCent);
179 Aerog->AddMaterial(H2O , fractionmass=37.4*perCent);
180 Aerog->AddElement (C , fractionmass= 0.1*perCent);
187 new G4Material(
"CarbonicGas", density= 27.*mg/cm3, ncomponents=2,
188 kStateGas, 325.*kelvin, 50.*atmosphere);
189 CO2->AddElement(C, natoms=1);
190 CO2->AddElement(O, natoms=2);
193 new G4Material(
"WaterSteam", density= 0.3*mg/cm3, ncomponents=1,
194 kStateGas, 500.*kelvin, 2.*atmosphere);
195 steam->AddMaterial(H2O, fractionmass=1.);
202 new G4Material(
"Galactic", z=1., a=1.01*g/mole,density= universe_mean_density,
203 kStateGas, 2.73*kelvin, 3.
e-18*pascal);
206 new G4Material(
"Beam", density= 1.
e-5*g/cm3, ncomponents=1,
207 kStateGas, STP_Temperature, 2.
e-2*bar);
208 beam->AddMaterial(Air, fractionmass=1.);
210 G4cout << *(G4Material::GetMaterialTable()) << G4endl;
223 G4GeometryManager::GetInstance()->OpenGeometry();
224 G4PhysicalVolumeStore::GetInstance()->Clean();
225 G4LogicalVolumeStore::GetInstance()->Clean();
226 G4SolidStore::GetInstance()->Clean();
326 { solidGap =
new G4Box(
"Gap",
329 logicGap =
new G4LogicalVolume(solidGap,
347 logicWorld->SetVisAttributes (G4VisAttributes::GetInvisible());
349 G4VisAttributes* simpleBoxVisAtt=
new G4VisAttributes(G4Colour(1.0,1.0,1.0));
350 simpleBoxVisAtt->SetVisibility(
true);
351 logicCalor->SetVisAttributes(simpleBoxVisAtt);
385 G4cout <<
"\n------------------------------------------------------------" 386 <<
"\n---> The calorimeter is " <<
NbOfLayers <<
" layers of: [ " 390 <<
"\n------------------------------------------------------------\n";
398 G4Material* pttoMaterial = G4Material::GetMaterial(materialChoice);
407 G4Material* pttoMaterial = G4Material::GetMaterial(materialChoice);
444 #include "G4FieldManager.hh" 445 #include "G4TransportationManager.hh" 450 G4FieldManager* fieldMgr
451 = G4TransportationManager::GetTransportationManager()->GetFieldManager();
456 {
magField =
new G4UniformMagField(G4ThreeVector(0.,0.,fieldValue));
457 fieldMgr->SetDetectorField(
magField);
458 fieldMgr->CreateChordFinder(
magField);
461 fieldMgr->SetDetectorField(
magField);
467 #include "G4RunManager.hh"
G4VPhysicalVolume * physiWorld
void SetGapThickness(G4double)
G4double AbsorberThickness
void SetCalorSizeYZ(G4double)
G4LogicalVolume * logicWorld
G4LogicalVolume * logicGap
G4VPhysicalVolume * physiLayer
G4VPhysicalVolume * Construct()
void ComputeCalorParameters()
ExN03DetectorMessenger * detectorMessenger
void SetGapMaterial(G4String)
G4LogicalVolume * logicAbsorber
void SetAbsorberThickness(G4double)
G4VPhysicalVolume * ConstructCalorimeter()
G4VPhysicalVolume * physiGap
ExN03DetectorConstruction()
G4LogicalVolume * logicLayer
G4Material * AbsorberMaterial
G4VPhysicalVolume * physiCalor
void SetMagField(G4double)
void SetNbOfLayers(G4int)
G4Material * defaultMaterial
G4LogicalVolume * logicCalor
void PrintCalorParameters()
void SetAbsorberMaterial(G4String)
G4VPhysicalVolume * physiAbsorber
G4UniformMagField * magField
~ExN03DetectorConstruction()