19#include "G4VisAttributes.hh"
25#include "GDMLProcessor.hh"
26#include "GDMLExpressionEvaluator.hh"
30#include "G4BooleanSolid.hh"
54 G4cout<<
"BesDetectorConstruction::~BesDetectorConstruction()"<<G4endl;
61 if(m_SCM)
delete m_SCM;
62 if(m_Pip)
delete m_Pip;
70 G4double a, z, density,abundance,fractionmass;
71 G4double temperature, pressure;
72 G4int iz,
n,nel,ncomponents,natoms;
74 G4Isotope* U5 =
new G4Isotope(name=
"U235", iz=92,
n=235, a=235.01*g/mole);
75 G4Isotope* U8 =
new G4Isotope(name=
"U238", iz=92,
n=238, a=238.03*g/mole);
77 G4Element* U =
new G4Element(name=
"enriched Uranium",symbol=
"U",ncomponents=2);
78 U->AddIsotope(U5, abundance= 90.*perCent);
79 U->AddIsotope(U8, abundance= 10.*perCent);
82 G4Element*
H =
new G4Element(name=
"Hydrogen",symbol=
"H" , z= 1., a);
85 G4Element*
C =
new G4Element(name=
"Carbon" ,symbol=
"C" , z= 6., a);
88 G4Element* N =
new G4Element(name=
"Nitrogen",symbol=
"N" , z= 7., a);
91 G4Element* O =
new G4Element(name=
"Oxygen" ,symbol=
"O" , z= 8., a);
94 G4Element* Si =
new G4Element(name=
"Silicon",symbol=
"Si",z=14.,a);
97 G4Element*
I =
new G4Element(name=
"Iodine",symbol=
"I",z=53.,a);
100 G4Element* Cs =
new G4Element(name=
"Cesium",symbol=
"Cs",z=55.,a);
102 density = 1.848*g/cm3;
104 G4Material* Beryllium =
new G4Material(name=
"Beryllium",z=4.0,a,density);
106 density = 2.70*g/cm3;
108 G4Material* Aluminium =
new G4Material(name=
"Aluminium",z=13.,a,density);
110 density = 7.84*g/cm3;
112 G4Material* Iron =
new G4Material(name=
"Iron",z=26.0,a,density);
114 density = 8.96*g/cm3;
116 G4Material* Copper =
new G4Material(name=
"Copper",z=29.0,a,density);
118 density = 0.0001664*g/cm3;
120 G4Material* Hegas =
new G4Material(name=
"Hegas",z=2.0,a,density);
122 density = 0.001879*g/cm3;
123 G4Material* Propane =
new G4Material(name=
"Propane",density,nel=2);
124 Propane->AddElement(
C, natoms=3);
125 Propane->AddElement(
H, natoms=8);
127 density = 4.53*g/cm3;
128 G4Material* Cesiumiodide =
new G4Material(name=
"Cesiumiodide",density,nel=2);
129 Cesiumiodide->AddElement(
I, natoms=1);
130 Cesiumiodide->AddElement(Cs, natoms=1);
132 density = 0.00085144*g/cm3;
133 G4Material* Mdcgas =
new G4Material(name=
"Mdcgas",density,nel=2);
134 Mdcgas->AddMaterial(Hegas, fractionmass = 0.1173);
135 Mdcgas->AddMaterial(Propane, fractionmass = 0.8827);
137 density = 1.390*g/cm3;
139 G4Material* liquidArgon =
new G4Material(name=
"liquidArgon",z=18.0,a,density);
141 density = 11.35*g/cm3;
143 G4Material* Lead =
new G4Material(name=
"Lead",z=82.,a,density);
146 G4Material* Water =
new G4Material(name=
"Water", density, nel=2);
147 Water->AddElement(
H, natoms=2);
148 Water->AddElement(O, natoms=1);
150 density = 1.032*g/cm3;
151 G4Material* Scintillator =
new G4Material(name=
"Scintillator", density, nel=2);
152 Scintillator->AddElement(
C, natoms=9);
153 Scintillator->AddElement(
H, natoms=10);
155 density = 2.200*g/cm3;
156 G4Material* SiO2 =
new G4Material(name=
"SiO2", density, nel=2);
157 SiO2->AddElement(Si, natoms=1);
158 SiO2->AddElement(O, natoms=2);
160 density = 1.290*mg/cm3;
161 G4Material* Air =
new G4Material(name=
"Air",density,nel=2);
162 Air->AddElement(N, fractionmass = 0.7);
163 Air->AddElement(O, fractionmass = 0.3);
165 density = 0.200*g/cm3;
166 G4Material* Aerogel =
new G4Material(name=
"Aerogel",density,nel=3);
167 Aerogel->AddMaterial(SiO2, fractionmass = 0.625);
168 Aerogel->AddMaterial(Water, fractionmass = 0.374);
169 Aerogel->AddElement(
C, fractionmass = 0.001);
171 density = 27.0*mg/cm3;
172 pressure = 50.0*atmosphere;
173 temperature = 325.0*kelvin;
174 G4Material* CarbonicGas =
new G4Material(name=
"CarbonicGas",density,nel=2,kStateGas,temperature,pressure);
175 CarbonicGas->AddElement(
C,natoms=1);
176 CarbonicGas->AddElement(O,natoms=2);
178 density = 0.3*mg/cm3;
179 pressure = 2.0*atmosphere;
180 temperature = 500.0*kelvin;
181 G4Material* WaterSteam =
new G4Material(name=
"WaterSteam",density,nel=1,kStateGas,temperature,pressure);
182 WaterSteam->AddMaterial(Water,fractionmass=1);
184 density = universe_mean_density;
185 pressure = 3.e-18*pascal;
186 temperature = 2.73*kelvin;
187 G4Material* Galactic =
new G4Material(name=
"Galactic", z=1., a=1.01*g/mole,
188 density,kStateGas,temperature,pressure);
190 density = 1.0e-5*g/cm3;
191 pressure = 2.e-2*bar;
192 G4Material* Beam =
new G4Material(name=
"Beam",density,nel=1,kStateGas,STP_Temperature,pressure);
193 Beam->AddMaterial(Air,fractionmass=1.0);
196 G4Box* sWorld =
new G4Box(
"solidWorld",263.5*cm,263.5*cm,287.5*cm);
197 lWorld =
new G4LogicalVolume(sWorld,Air,
"logicalWorld",0,0,0);
198 fWorld =
new G4PVPlacement(0,G4ThreeVector(0,0,0),lWorld,
"physicWorld",0,
false,0);
204 G4cout<<
"construct beampipe and SCM with Geant4 classes"<<G4endl;
276 else if(m_pipeSCM == 2)
352 G4cout<<
"get world "<<fWorld->GetLogicalVolume()->GetNoDaughters()<<endl;
353 for(
int nd = 0; nd < fWorld->GetLogicalVolume()->GetNoDaughters(); nd++)
355 G4cout<<
"daughter n: name :"<<nd<<
" "<<fWorld->GetLogicalVolume()->GetDaughter(nd)->GetName()<<G4endl;
364 return const_cast<G4LogicalVolume*
>( GDMLProcessor::GetInstance()->GetLogicalVolume(vn) );
369 if(volumeName =
"Pip_SCM")
372 fWorld=(G4VPhysicalVolume *)GDMLProcessor::GetInstance()->GetWorldVolume();
375 "World volume not set properly check your setup selection criteria or GDML input!");
397 logicalPip->SetVisAttributes(G4VisAttributes::Invisible);
398 logicalgoldLayer->SetVisAttributes(G4VisAttributes::Invisible);
399 logicalinnerBe->SetVisAttributes(G4VisAttributes::Invisible);
400 logicaloilLayer->SetVisAttributes(G4VisAttributes::Invisible);
401 logicalouterBe->SetVisAttributes(G4VisAttributes::Invisible);
402 logicalinnerBeSide->SetVisAttributes(G4VisAttributes::Invisible);
403 logicalinnerAl->SetVisAttributes(G4VisAttributes::Invisible);
404 logicalAlRing->SetVisAttributes(G4VisAttributes::Invisible);
405 logicalouterAl->SetVisAttributes(G4VisAttributes::Invisible);
406 logicalAgLayer->SetVisAttributes(G4VisAttributes::Invisible);
407 logicalCuLayer->SetVisAttributes(G4VisAttributes::Invisible);
408 logicalAlCover->SetVisAttributes(G4VisAttributes::Invisible);
446 logicalSCM->SetVisAttributes(G4VisAttributes::Invisible);
448 logicalinnCryo->SetVisAttributes(G4VisAttributes::Invisible);
450 logicalouterCryo->SetVisAttributes(G4VisAttributes::Invisible);
452 logicalendCryo->SetVisAttributes(G4VisAttributes::Invisible);
455 logicall1Adia->SetVisAttributes(G4VisAttributes::Invisible);
457 logicall2Adia->SetVisAttributes(G4VisAttributes::Invisible);
459 logicall3Adia->SetVisAttributes(G4VisAttributes::Invisible);
461 logicall4Adia->SetVisAttributes(G4VisAttributes::Invisible);
464 logicalinnShield->SetVisAttributes(G4VisAttributes::Invisible);
466 logicaloutShield->SetVisAttributes(G4VisAttributes::Invisible);
468 logicalendShield->SetVisAttributes(G4VisAttributes::Invisible);
472 logicall1insu->SetVisAttributes(G4VisAttributes::Invisible);
474 logicall2insu->SetVisAttributes(G4VisAttributes::Invisible);
477 logicalcoil->SetVisAttributes(G4VisAttributes::Invisible);
479 logicalendCoil->SetVisAttributes(G4VisAttributes::Invisible);
482 logicalsupp->SetVisAttributes(G4VisAttributes::Invisible);
485 logicalpipe1->SetVisAttributes(G4VisAttributes::Invisible);
487 logicalpipe2->SetVisAttributes(G4VisAttributes::Invisible);
488 logicalpipe3->SetVisAttributes(G4VisAttributes::Invisible);
490 logicaltub17->SetVisAttributes(G4VisAttributes::Invisible);
492 logicaltub19->SetVisAttributes(G4VisAttributes::Invisible);
494 logicaltub20->SetVisAttributes(G4VisAttributes::Invisible);
496 logicaltub22->SetVisAttributes(G4VisAttributes::Invisible);
498 logicaltub23->SetVisAttributes(G4VisAttributes::Invisible);
500 logicaltub25->SetVisAttributes(G4VisAttributes::Invisible);
502 logicalsub1->SetVisAttributes(G4VisAttributes::Invisible);
504 logicalsub2->SetVisAttributes(G4VisAttributes::Invisible);
507 logicalsub3->SetVisAttributes(G4VisAttributes::Invisible);
509 logicalhole1->SetVisAttributes(G4VisAttributes::Invisible);
511 logicalhole2->SetVisAttributes(G4VisAttributes::Invisible);
513 logicalhole3->SetVisAttributes(G4VisAttributes::Invisible);
515 logicalhole4->SetVisAttributes(G4VisAttributes::Invisible);
517 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
~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)