142 G4cout << *(G4Material::GetMaterialTable() ) << G4endl;
146 fWorldPhysVol =
fParser.GetWorldVolume();
216 G4Box * experimentalHallBox
222 experimentalHallLV,
"ExpHallPhys", 0,
false, 0);
231 new G4PVPlacement(0, G4ThreeVector(10.0,0.0,0.0), LogicalVolST,
232 "StepPhys", experimentalHallLV,
false, 0);
238 fWorldPhysVol->GetLogicalVolume()->SetVisAttributes(BoxVisAtt);
240 return fWorldPhysVol;
251 G4double density,temperature,pressure;
252 G4double fractionmass;
269 G4cout << *(G4Element::GetElementTable()) << G4endl;
273 density = 1.29*mg/cm3;
275 fAir->AddElement(elN, fractionmass=0.7);
276 fAir->AddElement(elO, fractionmass=0.3);
280 density = 2.70*g/cm3;
282 fAluminum->AddElement(elAl, fractionmass=1.0);
286 fPb =
new G4Material(
"Lead", z=82.,
a= 207.19*g/mole, density= 11.35*g/cm3);
291 density= 5.458*mg/cm3, kStateGas,
292 temperature= 293.15*kelvin, pressure= 1*atmosphere);
296 G4cout << *(G4Material::GetMaterialTable() ) << G4endl;
316 G4Box * experimentalHallBox =
321 new G4PVPlacement(0, G4ThreeVector(0.0,0.0,0.0), experimentalHallLV,
322 "ExpHallPhys", 0,
false, 0);
328 const G4double det_z = det_y;
332 G4Box * detectorBox =
333 new G4Box(
"detectorBox", det_x, det_y, det_z);
338 "detPhys", experimentalHallLV,
false, 0);
343 const G4double room_y = room_x;
344 const G4double room_z = room_x;
347 new G4Box(
"roomBox", room_x, room_y, room_z);
352 "roomPhys", experimentalHallLV,
false, 0);
359 new G4PVPlacement(0, G4ThreeVector(bigL,0.0,0.0), subDetectorLV1,
360 "PhysSubDetector1", detectorLV,
false, 0);
368 G4Translate3D translation(-bigL, 0., 0.);
369 G4RotationMatrix* rotD3 =
new G4RotationMatrix();
370 G4Transform3D rotation = G4Rotate3D(*rotD3);
371 G4ReflectX3D reflection;
372 G4Transform3D transform = translation*rotation*reflection;
376 G4ReflectionFactory::Instance()->Place(transform,
"reflSubDetector",
377 subDetectorLV1, detectorLV,
false, 0);
383 new G4PVPlacement(0, G4ThreeVector(0.0,bigL,0.0), subDetectorLV3,
384 "PhysSubDetectorFirst3", detectorLV,
false, 0);
392 "AssemblyPhys", subDetectorLV4,
false, 0);
394 new G4PVPlacement(0, G4ThreeVector(0.0,-bigL,0.0), subDetectorLV4,
395 "PhysSubDetectorSecond3", detectorLV,
false, 0);
397 return experimentalHallPhys;
449 const G4double big_y = big_x;
450 const G4double big_z = big_x;
455 new G4Box(
"OuterBox", big_x, big_y, big_z);
460 "OuterBoxPhys", 0,
false, 0);
464 const G4double bigL=big_x/2.5;
465 const G4double medL=big_x/8;
466 const G4double smalL=big_x/12;
469 new G4Box(
"BBox", bigL, bigL, bigL);
473 new G4Box(
"MBox", medL, medL, medL);
477 new G4Box(
"SBox", smalL, smalL, smalL);
481 const G4double bigPlace=bigL+10.;
482 const G4double medPlace=medL+10.;
484 new G4PVPlacement(0, G4ThreeVector(bigPlace,0.0,0.0), BigBoxLV,
485 "AlPhysBig", OuterBoxLV,
false, 0);
490 new G4Tubs(
"BTube",0,smalL,smalL,-pi/2.,pi);
494 G4ReflectX3D Xreflection;
495 G4Translate3D translation(-bigPlace, 0., 0.);
496 G4Transform3D transform =Xreflection;
503 "AlPhysBigTube", SmallBoxLV,
false, 0);
511 G4RotationMatrix* rot =
new G4RotationMatrix();
512 G4ThreeVector posBig(-bigPlace, 0, 0);
513 G4ThreeVector posBig0(bigPlace/4, 0, 0);
514 G4ThreeVector posMed(-medPlace, 0, 0);
515 G4ThreeVector posMed0(medPlace, 0, 0);
520 assembly->AddPlacedVolume(MedBoxLV1, posMed0, rot);
524 assembly->AddPlacedVolume(SmallBoxLV, posMed, rot);
528 assembly->MakeImprint(BigBoxLV, posBig0, rot, 0);
534 G4Translate3D translation1(-bigPlace, 0., 0.);
535 G4RotationMatrix* rotD3 =
new G4RotationMatrix();
536 G4Transform3D rotation = G4Rotate3D(*rotD3);
537 G4ReflectX3D reflection;
538 G4Transform3D transform1 = translation1*rotation*reflection;
540 assembly->MakeImprint(OuterBoxLV, transform1, 0, 0);
552 const G4double chamber_y = chamber_x;
553 const G4double chamber_z = chamber_x;
557 G4Box * paramChamberBox =
558 new G4Box(
"ChamberBox", chamber_x, chamber_y, chamber_z);
564 G4int NbOfChambers = 5;
565 G4double ChamberWidth = 2*cm;
566 G4double ChamberSpacing = 8*cm;
567 G4double fTrackerLength = (NbOfChambers+1)*ChamberSpacing;
568 G4double trackerSize = 0.5*fTrackerLength;
573 G4Box *solidChamber =
574 new G4Box(
"chamber", 10*cm, 10*cm, 1*cm);
578 G4double firstPosition = -trackerSize + 0.5*ChamberWidth;
579 G4double firstLength = fTrackerLength/10;
580 G4double lastLength = fTrackerLength;
596 return paramChamberLV;