38 :defaultMaterial(NULL),collimatorMaterial(NULL),BoiteMaterial(NULL),
39 CathodeMaterial(NULL),VerreMaterial(NULL),Verre2Material(NULL),
40 KgmMaterial(NULL),Boite2Material(NULL),Boite3Material(NULL),
41 nucleusMaterial1(NULL),cytoplasmMaterial1(NULL),
42 nucleusMaterial2(NULL),cytoplasmMaterial2(NULL),
43 nucleusMaterial3(NULL),cytoplasmMaterial3(NULL),
44 physiWorld(NULL),logicWorld(NULL),solidWorld(NULL),
45 physiVol(NULL),logicVol(NULL),solidVol(NULL),
46 physiBoite(NULL),logicBoite(NULL),solidBoite(NULL),
47 physiYoke1(NULL),logicYoke1(NULL),solidYoke1(NULL),
48 physi1Gap(NULL),logic1Gap(NULL),solid1Gap(NULL),
49 physi2Gap(NULL),logic2Gap(NULL),solid2Gap(NULL),
50 physi3Gap(NULL),logic3Gap(NULL),solid3Gap(NULL),
51 physiYoke2(NULL),logicYoke2(NULL),solidYoke2(NULL),
52 physi4Gap(NULL),logic4Gap(NULL),solid4Gap(NULL),
53 physi5Gap(NULL),logic5Gap(NULL),solid5Gap(NULL),
54 physiBoiteIso(NULL),logicBoiteIso(NULL),solidBoiteIso(NULL),
55 physiCathode(NULL),logicCathode(NULL),solidCathode(NULL),
56 physiIso(NULL),logicIso(NULL),solidIso(NULL),
57 physiVerre(NULL),logicVerre(NULL),solidVerre(NULL),
58 physiBoite2(NULL),logicBoite2(NULL),solidBoite2(NULL),
59 physiBoite3(NULL),logicBoite3(NULL),solidBoite3(NULL),
60 physiKgm(NULL),logicKgm(NULL),solidKgm(NULL),
61 physiVerre2(NULL),logicVerre2(NULL),solidVerre2(NULL),
62 physiPhantom(NULL),logicPhantom(NULL),solidPhantom(NULL)
65 WorldSizeXY=WorldSizeZ=0;
72 delete defaultMaterial;
73 delete collimatorMaterial;
75 delete CathodeMaterial;
77 delete Verre2Material;
79 delete Boite2Material;
80 delete Boite3Material;
81 delete nucleusMaterial1;
82 delete cytoplasmMaterial1;
83 delete nucleusMaterial2;
84 delete cytoplasmMaterial2;
85 delete nucleusMaterial3;
86 delete cytoplasmMaterial3;
95 return ConstructMicrobeamLine();
100 void MicrobeamDetectorConstruction::DefineMaterials()
127 density = 1.000*
g/
cm3;
133 density = 1.290*
mg/
cm3;
135 temperature = 293.16*
kelvin;
141 density = (5
e-6/1013.)*1.290*
mg/
cm3;
143 temperature = 293.16*
kelvin;
151 density = 21.4*
g/
cm3;
155 density = 2.552e-2*
mg/
cm3;
157 temperature = 293.16*
kelvin;
169 density = 3.44*
g/
cm3;
192 densityCytoplasm = 1.;
193 density = densityCytoplasm*
g/
cm3;
195 Cytoplasm1->
AddElement(H, fractionmass=0.112);
196 Cytoplasm1->
AddElement(O, fractionmass=0.888);
198 densityCytoplasm = 1.;
200 density = densityCytoplasm*
g/
cm3;
202 Cytoplasm2->
AddElement(H, fractionmass=0.1064);
203 Cytoplasm2->
AddElement(O, fractionmass=0.745);
204 Cytoplasm2->
AddElement(C, fractionmass=0.0904);
205 Cytoplasm2->
AddElement(N, fractionmass=0.0321);
206 Cytoplasm2->
AddElement(P, fractionmass=0.0261);
209 densityCytoplasm = 1.;
210 density = densityCytoplasm*
g/
cm3;
212 Cytoplasm3->
AddElement(H, fractionmass=0.112);
213 Cytoplasm3->
AddElement(O, fractionmass=0.888);
217 density = densityNucleus*
g/
cm3;
226 density = densityNucleus*
g/
cm3;
236 density = densityNucleus*
g/
cm3;
245 defaultMaterial = vacuum;
246 collimatorMaterial = Pt;
247 BoiteMaterial = Butane;
248 CathodeMaterial = Laiton;
249 VerreMaterial = Si3N4;
250 Verre2Material = SiO2;
252 Boite2Material =
Air;
253 Boite3Material = Polyprop;
254 nucleusMaterial1 = Nucleus1;
255 cytoplasmMaterial1 = Cytoplasm1;
256 nucleusMaterial2 = Nucleus2;
257 cytoplasmMaterial2 = Cytoplasm2;
258 nucleusMaterial3 = Nucleus3;
259 cytoplasmMaterial3 = Cytoplasm3;
278 CiblePositionX = -1461.42*
mm;
279 CiblePositionY = 0*
mm;
280 CiblePositionZ = -1327 + (955*std::cos(lineAngle))*
mm;
284 static G4bool fieldIsInitialized =
false;
286 if(!fieldIsInitialized)
297 fieldIsInitialized =
true;
315 solidWorld =
new G4Box(
"World",
316 WorldSizeXY/2,WorldSizeXY/2,WorldSizeZ/2);
335 solidVol =
new G4Box(
"Vol",
336 10.*
m/2,10.*
m/2,(14025)*
mm/2);
354 G4double PosX = CiblePositionX*
mm +( (6958.3/2-3.3)*std::sin(lineAngle))*
mm;
355 G4double PosZ = (CiblePositionZ+2012.5)*
mm - ((6958.3/2-3.3)*std::cos(lineAngle))*
mm;
359 PosX = PosX + 1.3 *
micrometer * std::cos(lineAngle);
360 PosZ = PosZ + 1.3 *
micrometer * std::sin(lineAngle);
367 solidBoite =
new G4Box(
"Boite", 4*
cm, 4*
cm, 6958.3*
mm/2);
369 logicBoite =
new G4LogicalVolume(solidBoite, defaultMaterial,
"Boite");
383 CollObjSizeXY = 8*
cm;
384 CollObjSizeZ = 0.07*
mm;
386 solidYoke1 =
new G4Box(
"_CollObj_yoke1_", CollObjSizeXY/2,CollObjSizeXY/2 , CollObjSizeZ/2);
388 logicYoke1 =
new G4LogicalVolume(solidYoke1, collimatorMaterial,
"_CollObj_yoke1_");
390 logicBoite,
false, 0);
397 0, ((360*CLHEP::pi)/180));
399 logic1Gap =
new G4LogicalVolume(solid1Gap, defaultMaterial,
"_CollObj_gap1_");
409 0, ((360*CLHEP::pi)/180));
411 logic2Gap =
new G4LogicalVolume(solid2Gap, defaultMaterial,
"_CollObj_gap2_");
421 0, ((360*CLHEP::pi)/180));
423 logic3Gap =
new G4LogicalVolume(solid3Gap, defaultMaterial,
"_CollObj_gap3_");
432 solidYoke2 =
new G4Box(
"_CollDet_yoke_", 2.5*
cm, 2.5*
cm, 0.035*
mm);
434 logicYoke2 =
new G4LogicalVolume(solidYoke2, collimatorMaterial,
"_CollDet_yoke_");
437 logicBoite,
false, 0);
444 0, ((360*CLHEP::pi)/180));
446 logic4Gap =
new G4LogicalVolume(solid4Gap, defaultMaterial,
"_CollDet_gap4_");
455 0, ((360*CLHEP::pi)/180));
457 logic5Gap =
new G4LogicalVolume(solid5Gap, defaultMaterial,
"_CollDet_gap5_");
470 solidBoiteIso =
new G4Box(
"Isobutane", 2.5*
cm, 2.5*
cm, 1.75*
mm);
472 logicBoiteIso =
new G4LogicalVolume(solidBoiteIso, BoiteMaterial,
"Isobutane");
483 solidCathode =
new G4Box(
"_Laiton_", 2.5*
cm, 2.5*
cm, 0.5*
mm);
485 logicCathode =
new G4LogicalVolume(solidCathode, CathodeMaterial,
"_Laiton_");
496 solidIso =
new G4Box(
"_Iso_", 1.*
mm, 1.*
mm, 0.499925*
mm);
512 logicVerre =
new G4LogicalVolume(solidVerre, VerreMaterial,
"_Si3N4_");
526 solidBoite2 =
new G4Box(
"_Air_", 2.5*
cm, 2.5*
cm, 0.1*
mm/2);
528 logicBoite2 =
new G4LogicalVolume(solidBoite2, Boite2Material,
"_Air_");
542 solidBoite3 =
new G4Box(
"Polyprop", 2.5*
cm, 2.5*
cm, 0.004*
mm/2);
544 logicBoite3 =
new G4LogicalVolume(solidBoite3, Boite3Material,
"Polyprop");
557 solidKgm =
new G4Box(
"KGM", 2.5*
cm, 2.5*
cm, 3*
mm/2);
573 solidVerre2 =
new G4Box(
"_Lame_", 2.5*
cm, 2.5*
cm, 0.150*
mm);
575 logicVerre2 =
new G4LogicalVolume(solidVerre2, Verre2Material,
"_Lame_");
602 solidPhantom =
new G4Box(
"Phantom",
607 logicPhantom =
new G4LogicalVolume(solidPhantom,defaultMaterial,
"Phantom",0,0,0);
624 nucleusMaterial1,cytoplasmMaterial1,
625 nucleusMaterial2,cytoplasmMaterial2,
626 nucleusMaterial3,cytoplasmMaterial3
635 phantomParam->GetNoBoxes(),
638 G4cout <<
" ==========> The phantom contains "