20#include "G4VisAttributes.hh"
26#include "GDMLProcessor.hh"
27#include "GDMLExpressionEvaluator.hh"
31#include "G4BooleanSolid.hh"
56 G4cout<<
"BesDetectorConstruction::~BesDetectorConstruction()"<<G4endl;
64 if(m_SCM)
delete m_SCM;
65 if(m_Pip)
delete m_Pip;
71std::cout <<
"!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! DETECTOR CONSTRUCTION <<<<<<<<<<<<<<<<<" << std::endl;
76 G4double a, z, density,abundance,fractionmass;
77 G4double temperature, pressure;
78 G4int iz,
n,nel,ncomponents,natoms;
80 G4Isotope* U5 =
new G4Isotope(name=
"U235", iz=92,
n=235, a=235.01*g/mole);
81 G4Isotope* U8 =
new G4Isotope(name=
"U238", iz=92,
n=238, a=238.03*g/mole);
83 G4Element* U =
new G4Element(name=
"enriched Uranium",symbol=
"U",ncomponents=2);
84 U->AddIsotope(U5, abundance= 90.*perCent);
85 U->AddIsotope(U8, abundance= 10.*perCent);
88 G4Element*
H =
new G4Element(name=
"Hydrogen",symbol=
"H" , z= 1., a);
91 G4Element*
C =
new G4Element(name=
"Carbon" ,symbol=
"C" , z= 6., a);
94 G4Element* N =
new G4Element(name=
"Nitrogen",symbol=
"N" , z= 7., a);
97 G4Element* O =
new G4Element(name=
"Oxygen" ,symbol=
"O" , z= 8., a);
100 G4Element* Si =
new G4Element(name=
"Silicon",symbol=
"Si",z=14.,a);
103 G4Element*
I =
new G4Element(name=
"Iodine",symbol=
"I",z=53.,a);
106 G4Element* Cs =
new G4Element(name=
"Cesium",symbol=
"Cs",z=55.,a);
108 density = 1.848*g/cm3;
110 G4Material* Beryllium =
new G4Material(name=
"Beryllium",z=4.0,a,density);
112 density = 2.70*g/cm3;
114 G4Material* Aluminium =
new G4Material(name=
"Aluminium",z=13.,a,density);
116 density = 7.84*g/cm3;
118 G4Material* Iron =
new G4Material(name=
"Iron",z=26.0,a,density);
120 density = 8.96*g/cm3;
122 G4Material* Copper =
new G4Material(name=
"Copper",z=29.0,a,density);
124 density = 0.0001664*g/cm3;
126 G4Material* Hegas =
new G4Material(name=
"Hegas",z=2.0,a,density);
128 density = 0.001879*g/cm3;
129 G4Material* Propane =
new G4Material(name=
"Propane",density,nel=2);
130 Propane->AddElement(
C, natoms=3);
131 Propane->AddElement(
H, natoms=8);
133 density = 4.53*g/cm3;
134 G4Material* Cesiumiodide =
new G4Material(name=
"Cesiumiodide",density,nel=2);
135 Cesiumiodide->AddElement(
I, natoms=1);
136 Cesiumiodide->AddElement(Cs, natoms=1);
138 density = 0.00085144*g/cm3;
139 G4Material* Mdcgas =
new G4Material(name=
"Mdcgas",density,nel=2);
140 Mdcgas->AddMaterial(Hegas, fractionmass = 0.1173);
141 Mdcgas->AddMaterial(Propane, fractionmass = 0.8827);
143 density = 1.390*g/cm3;
145 G4Material* liquidArgon =
new G4Material(name=
"liquidArgon",z=18.0,a,density);
147 density = 11.35*g/cm3;
149 G4Material* Lead =
new G4Material(name=
"Lead",z=82.,a,density);
152 G4Material* Water =
new G4Material(name=
"Water", density, nel=2);
153 Water->AddElement(
H, natoms=2);
154 Water->AddElement(O, natoms=1);
156 density = 1.032*g/cm3;
157 G4Material* Scintillator =
new G4Material(name=
"Scintillator", density, nel=2);
158 Scintillator->AddElement(
C, natoms=9);
159 Scintillator->AddElement(
H, natoms=10);
161 density = 2.200*g/cm3;
162 G4Material* SiO2 =
new G4Material(name=
"SiO2", density, nel=2);
163 SiO2->AddElement(Si, natoms=1);
164 SiO2->AddElement(O, natoms=2);
166 density = 1.290*mg/cm3;
167 G4Material* Air =
new G4Material(name=
"Air",density,nel=2);
168 Air->AddElement(N, fractionmass = 0.7);
169 Air->AddElement(O, fractionmass = 0.3);
171 density = 0.200*g/cm3;
172 G4Material* Aerogel =
new G4Material(name=
"Aerogel",density,nel=3);
173 Aerogel->AddMaterial(SiO2, fractionmass = 0.625);
174 Aerogel->AddMaterial(Water, fractionmass = 0.374);
175 Aerogel->AddElement(
C, fractionmass = 0.001);
177 density = 27.0*mg/cm3;
178 pressure = 50.0*atmosphere;
179 temperature = 325.0*kelvin;
180 G4Material* CarbonicGas =
new G4Material(name=
"CarbonicGas",density,nel=2,kStateGas,temperature,pressure);
181 CarbonicGas->AddElement(
C,natoms=1);
182 CarbonicGas->AddElement(O,natoms=2);
184 density = 0.3*mg/cm3;
185 pressure = 2.0*atmosphere;
186 temperature = 500.0*kelvin;
187 G4Material* WaterSteam =
new G4Material(name=
"WaterSteam",density,nel=1,kStateGas,temperature,pressure);
188 WaterSteam->AddMaterial(Water,fractionmass=1);
190 density = universe_mean_density;
191 pressure = 3.e-18*pascal;
192 temperature = 2.73*kelvin;
193 G4Material* Galactic =
new G4Material(name=
"Galactic", z=1., a=1.01*g/mole,
194 density,kStateGas,temperature,pressure);
196 density = 1.0e-5*g/cm3;
197 pressure = 2.e-2*bar;
198 G4Material* Beam =
new G4Material(name=
"Beam",density,nel=1,kStateGas,STP_Temperature,pressure);
199 Beam->AddMaterial(Air,fractionmass=1.0);
202 G4Box* sWorld =
new G4Box(
"solidWorld",263.5*cm,263.5*cm,287.5*cm);
203 lWorld =
new G4LogicalVolume(sWorld,Air,
"logicalWorld",0,0,0);
204 fWorld =
new G4PVPlacement(0,G4ThreeVector(0,0,0),lWorld,
"physicWorld",0,
false,0);
210 G4cout<<
"construct beampipe and SCM with Geant4 classes"<<G4endl;
282 else if(m_pipeSCM == 2)
360 G4cout<<
"get world "<<fWorld->GetLogicalVolume()->GetNoDaughters()<<endl;
361 for(
int nd = 0; nd < fWorld->GetLogicalVolume()->GetNoDaughters(); nd++)
363 G4cout<<
"daughter n: name :"<<nd<<
" "<<fWorld->GetLogicalVolume()->GetDaughter(nd)->GetName()<<G4endl;
372 return const_cast<G4LogicalVolume*
>( GDMLProcessor::GetInstance()->GetLogicalVolume(vn) );
377 if(volumeName =
"Pip_SCM")
380 fWorld=(G4VPhysicalVolume *)GDMLProcessor::GetInstance()->GetWorldVolume();
383 "World volume not set properly check your setup selection criteria or GDML input!");
405 logicalPip->SetVisAttributes(G4VisAttributes::Invisible);
406 logicalgoldLayer->SetVisAttributes(G4VisAttributes::Invisible);
407 logicalinnerBe->SetVisAttributes(G4VisAttributes::Invisible);
408 logicaloilLayer->SetVisAttributes(G4VisAttributes::Invisible);
409 logicalouterBe->SetVisAttributes(G4VisAttributes::Invisible);
410 logicalinnerBeSide->SetVisAttributes(G4VisAttributes::Invisible);
411 logicalinnerAl->SetVisAttributes(G4VisAttributes::Invisible);
412 logicalAlRing->SetVisAttributes(G4VisAttributes::Invisible);
413 logicalouterAl->SetVisAttributes(G4VisAttributes::Invisible);
414 logicalAgLayer->SetVisAttributes(G4VisAttributes::Invisible);
415 logicalCuLayer->SetVisAttributes(G4VisAttributes::Invisible);
416 logicalAlCover->SetVisAttributes(G4VisAttributes::Invisible);
454 logicalSCM->SetVisAttributes(G4VisAttributes::Invisible);
456 logicalinnCryo->SetVisAttributes(G4VisAttributes::Invisible);
458 logicalouterCryo->SetVisAttributes(G4VisAttributes::Invisible);
460 logicalendCryo->SetVisAttributes(G4VisAttributes::Invisible);
463 logicall1Adia->SetVisAttributes(G4VisAttributes::Invisible);
465 logicall2Adia->SetVisAttributes(G4VisAttributes::Invisible);
467 logicall3Adia->SetVisAttributes(G4VisAttributes::Invisible);
469 logicall4Adia->SetVisAttributes(G4VisAttributes::Invisible);
472 logicalinnShield->SetVisAttributes(G4VisAttributes::Invisible);
474 logicaloutShield->SetVisAttributes(G4VisAttributes::Invisible);
476 logicalendShield->SetVisAttributes(G4VisAttributes::Invisible);
480 logicall1insu->SetVisAttributes(G4VisAttributes::Invisible);
482 logicall2insu->SetVisAttributes(G4VisAttributes::Invisible);
485 logicalcoil->SetVisAttributes(G4VisAttributes::Invisible);
487 logicalendCoil->SetVisAttributes(G4VisAttributes::Invisible);
490 logicalsupp->SetVisAttributes(G4VisAttributes::Invisible);
493 logicalpipe1->SetVisAttributes(G4VisAttributes::Invisible);
495 logicalpipe2->SetVisAttributes(G4VisAttributes::Invisible);
496 logicalpipe3->SetVisAttributes(G4VisAttributes::Invisible);
498 logicaltub17->SetVisAttributes(G4VisAttributes::Invisible);
500 logicaltub19->SetVisAttributes(G4VisAttributes::Invisible);
502 logicaltub20->SetVisAttributes(G4VisAttributes::Invisible);
504 logicaltub22->SetVisAttributes(G4VisAttributes::Invisible);
506 logicaltub23->SetVisAttributes(G4VisAttributes::Invisible);
508 logicaltub25->SetVisAttributes(G4VisAttributes::Invisible);
510 logicalsub1->SetVisAttributes(G4VisAttributes::Invisible);
512 logicalsub2->SetVisAttributes(G4VisAttributes::Invisible);
515 logicalsub3->SetVisAttributes(G4VisAttributes::Invisible);
517 logicalhole1->SetVisAttributes(G4VisAttributes::Invisible);
519 logicalhole2->SetVisAttributes(G4VisAttributes::Invisible);
521 logicalhole3->SetVisAttributes(G4VisAttributes::Invisible);
523 logicalhole4->SetVisAttributes(G4VisAttributes::Invisible);
525 logicalhole5->SetVisAttributes(G4VisAttributes::Invisible);
***************************************************************************************Pseudo Class RRes *****************************************************************************************Parameters and physical constants **Maarten sept ************************************************************************DOUBLE PRECISION xsmu **************************************************************************PARTICLE DATA all others are from PDG *Only resonances with known widths into electron pairs are sept ************************************************************************C Declarations C
void Construct(G4LogicalVolume *)
~BesDetectorConstruction()
G4LogicalVolume * FindLogicalVolume(const G4String &vn)
G4VPhysicalVolume * Construct()
BesDetectorConstruction()
void SetVisAttributes(G4String volumeName)
void Construct(G4LogicalVolume *)
void Construct(G4LogicalVolume *)
void Construct(G4LogicalVolume *logicBes)
void Construct(G4LogicalVolume *logicbes)
void Construct(G4LogicalVolume *logicbes)
void Construct(G4LogicalVolume *logicalBes)