36 #include "G4Material.hh" 38 #include "G4LogicalVolume.hh" 39 #include "G4PVPlacement.hh" 40 #include "G4PVReplica.hh" 41 #include "G4UniformMagField.hh" 43 #include "G4GeometryManager.hh" 44 #include "G4PhysicalVolumeStore.hh" 45 #include "G4LogicalVolumeStore.hh" 46 #include "G4SolidStore.hh" 48 #include "G4VisAttributes.hh" 49 #include "G4Colour.hh" 50 #include "G4SystemOfUnits.hh" 51 #include "G4PhysicalConstants.hh" 56 :AbsorberMaterial(0),GapMaterial(0),defaultMaterial(0),
57 solidWorld(0),logicWorld(0),physiWorld(0),
58 solidCalor(0),logicCalor(0),physiCalor(0),
59 solidLayer(0),logicLayer(0),physiLayer(0),
60 solidAbsorber(0),logicAbsorber(0),physiAbsorber(0),
61 solidGap (0),logicGap (0),physiGap (0),
99 G4double a,
z, density;
103 G4int ncomponents, natoms;
104 G4double abundance, fractionmass;
110 G4Element* H =
new G4Element(
"Hydrogen",symbol=
"H" , z= 1., a= 1.01*g/mole);
111 G4Element* C =
new G4Element(
"Carbon" ,symbol=
"C" , z= 6., a= 12.01*g/mole);
112 G4Element* N =
new G4Element(
"Nitrogen",symbol=
"N" , z= 7., a= 14.01*g/mole);
113 G4Element* O =
new G4Element(
"Oxygen" ,symbol=
"O" , z= 8., a= 16.00*g/mole);
114 G4Element* Si =
new G4Element(
"Silicon",symbol=
"Si" , z= 14., a= 28.09*g/mole);
120 G4Isotope* U5 =
new G4Isotope(
"U235", iz=92, n=235, a=235.01*g/mole);
121 G4Isotope* U8 =
new G4Isotope(
"U238", iz=92, n=238, a=238.03*g/mole);
123 G4Element* U =
new G4Element(
"enriched Uranium",symbol=
"U",ncomponents=2);
124 U->AddIsotope(U5, abundance= 90.*perCent);
125 U->AddIsotope(U8, abundance= 10.*perCent);
131 new G4Material(
"Aluminium", z=13., a=26.98*g/mole, density=2.700*g/cm3);
132 new G4Material(
"liquidArgon", z=18., a= 39.95*g/mole, density= 1.390*g/cm3);
133 new G4Material(
"Lead" , z=82., a= 207.19*g/mole, density= 11.35*g/cm3);
140 new G4Material(
"Water", density= 1.000*g/cm3, ncomponents=2);
141 H2O->AddElement(H, natoms=2);
142 H2O->AddElement(O, natoms=1);
144 H2O->GetIonisation()->SetMeanExcitationEnergy(75.0*eV);
147 new G4Material(
"Scintillator", density= 1.032*g/cm3, ncomponents=2);
148 Sci->AddElement(C, natoms=9);
149 Sci->AddElement(H, natoms=10);
152 new G4Material(
"Mylar", density= 1.397*g/cm3, ncomponents=3);
153 Myl->AddElement(C, natoms=10);
154 Myl->AddElement(H, natoms= 8);
155 Myl->AddElement(O, natoms= 4);
158 new G4Material(
"quartz",density= 2.200*g/cm3, ncomponents=2);
159 SiO2->AddElement(Si, natoms=1);
160 SiO2->AddElement(O , natoms=2);
167 new G4Material(
"Air" , density= 1.290*mg/cm3, ncomponents=2);
168 Air->AddElement(N, fractionmass=0.7);
169 Air->AddElement(O, fractionmass=0.3);
176 new G4Material(
"Aerogel", density= 0.200*g/cm3, ncomponents=3);
177 Aerog->AddMaterial(SiO2, fractionmass=62.5*perCent);
178 Aerog->AddMaterial(H2O , fractionmass=37.4*perCent);
179 Aerog->AddElement (C , fractionmass= 0.1*perCent);
186 new G4Material(
"CarbonicGas", density= 27.*mg/cm3, ncomponents=2,
187 kStateGas, 325.*kelvin, 50.*atmosphere);
188 CO2->AddElement(C, natoms=1);
189 CO2->AddElement(O, natoms=2);
192 new G4Material(
"WaterSteam", density= 0.3*mg/cm3, ncomponents=1,
193 kStateGas, 500.*kelvin, 2.*atmosphere);
194 steam->AddMaterial(H2O, fractionmass=1.);
201 new G4Material(
"Galactic", z=1., a=1.01*g/mole,density= universe_mean_density,
202 kStateGas, 2.73*kelvin, 3.
e-18*pascal);
205 new G4Material(
"Beam", density= 1.
e-5*g/cm3, ncomponents=1,
206 kStateGas, STP_Temperature, 2.
e-2*bar);
207 beam->AddMaterial(Air, fractionmass=1.);
209 G4cout << *(G4Material::GetMaterialTable()) << G4endl;
222 G4GeometryManager::GetInstance()->OpenGeometry();
223 G4PhysicalVolumeStore::GetInstance()->Clean();
224 G4LogicalVolumeStore::GetInstance()->Clean();
225 G4SolidStore::GetInstance()->Clean();
325 { solidGap =
new G4Box(
"Gap",
328 logicGap =
new G4LogicalVolume(solidGap,
346 logicWorld->SetVisAttributes (G4VisAttributes::GetInvisible());
348 G4VisAttributes* simpleBoxVisAtt=
new G4VisAttributes(G4Colour(1.0,1.0,1.0));
349 simpleBoxVisAtt->SetVisibility(
true);
350 logicCalor->SetVisAttributes(simpleBoxVisAtt);
384 G4cout <<
"\n------------------------------------------------------------" 385 <<
"\n---> The calorimeter is " <<
NbOfLayers <<
" layers of: [ " 389 <<
"\n------------------------------------------------------------\n";
397 G4Material* pttoMaterial = G4Material::GetMaterial(materialChoice);
406 G4Material* pttoMaterial = G4Material::GetMaterial(materialChoice);
443 #include "G4FieldManager.hh" 444 #include "G4TransportationManager.hh" 449 G4FieldManager* fieldMgr
450 = G4TransportationManager::GetTransportationManager()->GetFieldManager();
455 {
magField =
new G4UniformMagField(G4ThreeVector(0.,0.,fieldValue));
456 fieldMgr->SetDetectorField(
magField);
457 fieldMgr->CreateChordFinder(
magField);
460 fieldMgr->SetDetectorField(
magField);
466 #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()