90 : fAir(0), fAluminum(0), fPb(0), fXenon(0)
94 fReadFile =
"test.gdml";
95 fWriteFile=
"wtest.gdml";
108 if(fDetectorMessenger)
delete fDetectorMessenger;
121 if(fWritingChoice==0)
131 fParser.
Read(fReadFile);
147 else if(fWritingChoice==1)
179 fParser.
Write(fWriteFile, fWorldPhysVol);
208 G4Box * experimentalHallBox
209 =
new G4Box(
"ExpHallBox",fExpHall_x/50.,expHall_y,expHall_z);
214 experimentalHallLV,
"ExpHallPhys", 0,
false, 0);
219 = fParser.
ParseST(fStepFile,fAir,fAluminum);
224 "StepPhys", experimentalHallLV,
false, 0);
232 return fWorldPhysVol;
265 density = 1.29*
mg/
cm3;
266 fAir =
new G4Material(name=
"Air", density, ncomponents=2);
272 density = 2.70*
g/
cm3;
273 fAluminum =
new G4Material(name=
"Aluminum", density, ncomponents=1);
274 fAluminum->
AddElement(elAl, fractionmass=1.0);
308 G4Box * experimentalHallBox =
309 new G4Box(
"ExpHallBox", fExpHall_x, expHall_y, expHall_z);
314 "ExpHallPhys", 0,
false, 0);
318 const G4double det_x = fExpHall_x*0.8;
319 const G4double det_y = fExpHall_x*0.7;
324 G4Box * detectorBox =
325 new G4Box(
"detectorBox", det_x, det_y, det_z);
330 "detPhys", experimentalHallLV,
false, 0);
334 const G4double room_x = fExpHall_x/20.;
339 new G4Box(
"roomBox", room_x, room_y, room_z);
344 "roomPhys", experimentalHallLV,
false, 0);
348 const G4double bigL=fExpHall_x/5.+50.;
352 "PhysSubDetector1", detectorLV,
false, 0);
369 subDetectorLV1, detectorLV,
false, 0);
376 "PhysSubDetectorFirst3", detectorLV,
false, 0);
384 "AssemblyPhys", subDetectorLV4,
false, 0);
387 "PhysSubDetectorSecond3", detectorLV,
false, 0);
389 return experimentalHallPhys;
398 const G4double sub_x = fExpHall_x/5.;
404 new G4Tubs(
"subTub", 0., sub_x, sub_y, -90.*
deg, 180*
deg);
410 "AssemblyPhys", subTubLV,
false, 0);
420 const G4double sub_x = fExpHall_x/10.;
427 new G4Box(
"detHallBox", sub_x, sub_y, sub_z);
440 const G4double big_x = fExpHall_x/17;
447 new G4Box(
"OuterBox", big_x, big_y, big_z);
452 "OuterBoxPhys", 0,
false, 0);
461 new G4Box(
"BBox", bigL, bigL, bigL);
465 new G4Box(
"MBox", medL, medL, medL);
469 new G4Box(
"SBox", smalL, smalL, smalL);
477 "AlPhysBig", OuterBoxLV,
false, 0);
495 "AlPhysBigTube", SmallBoxLV,
false, 0);
532 assembly->
MakeImprint(OuterBoxLV, transform1, 0, 0);
543 const G4double chamber_x = fExpHall_x/12.;
544 const G4double chamber_y = chamber_x;
545 const G4double chamber_z = chamber_x;
549 G4Box * paramChamberBox =
550 new G4Box(
"ChamberBox", chamber_x, chamber_y, chamber_z);
556 G4int NbOfChambers = 5;
559 G4double fTrackerLength = (NbOfChambers+1)*ChamberSpacing;
560 G4double trackerSize = 0.5*fTrackerLength;
565 G4Box *solidChamber =
570 G4double firstPosition = -trackerSize + 0.5*ChamberWidth;
571 G4double firstLength = fTrackerLength/10;
572 G4double lastLength = fTrackerLength;
588 return paramChamberLV;