124 G4bool checkOverlaps =
true;
129 =
new G4Box(
"worldBox",10.*
m,3.*
m,10.*
m);
134 false,0,checkOverlaps);
139 =
new G4Tubs(
"magneticTubs",0.,1.*
m,1.*
m,0.,360.*
deg);
149 "magneticPhysical",worldLogical,
150 false,0,checkOverlaps);
158 =
new G4Box(
"firstArmBox",1.5*
m,1.*
m,3.*
m);
162 "firstArmPhysical",worldLogical,
163 false,0,checkOverlaps);
167 =
new G4Box(
"secondArmBox",2.*
m,2.*
m,3.5*
m);
174 "fSecondArmPhys",worldLogical,
175 false,0,checkOverlaps);
181 =
new G4LogicalVolume(hodoscope1Solid,scintillator,
"hodoscope1Logical");
182 for (
G4int i=0;i<15;i++)
186 "hodoscope1Physical",firstArmLogical,
187 false,i,checkOverlaps);
195 for (
G4int i=0;i<5;i++)
199 "chamber1Physical",firstArmLogical,
200 false,i,checkOverlaps);
205 =
new G4Box(
"wirePlane1Box",1.*
m,30.*
cm,0.1*
mm);
209 "wirePlane1Physical",chamber1Logical,
210 false,0,checkOverlaps);
216 =
new G4LogicalVolume(hodoscope2Solid,scintillator,
"hodoscope2Logical");
217 for (
G4int i=0;i<25;i++)
221 "hodoscope2Physical",secondArmLogical,
222 false,i,checkOverlaps);
227 =
new G4Box(
"chamber2Box",1.5*
m,30.*
cm,1.*
cm);
230 for (
G4int i=0;i<5;i++)
234 "chamber2Physical",secondArmLogical,
235 false,i,checkOverlaps);
240 =
new G4Box(
"wirePlane2Box",1.5*
m,30.*
cm,0.1*
mm);
244 "wirePlane2Physical",chamber2Logical,
245 false,0,checkOverlaps);
249 =
new G4Box(
"EMcalorimeterBox",1.5*
m,30.*
cm,15.*
cm);
253 "EMcalorimeterPhysical",secondArmLogical,
254 false,0,checkOverlaps);
267 =
new G4Box(
"HadCalorimeterBox",1.5*
m,30.*
cm,50.*
cm);
269 =
new G4LogicalVolume(hadCalorimeterSolid,lead,
"HadCalorimeterLogical");
271 "HadCalorimeterPhysical",secondArmLogical,
272 false,0,checkOverlaps);
276 =
new G4Box(
"HadCalColumnBox",15.*
cm,30.*
cm,50.*
cm);
279 new G4PVReplica(
"HadCalColumnPhysical",HadCalColumnLogical,
280 hadCalorimeterLogical,
kXAxis,10,30.*
cm);
287 new G4PVReplica(
"HadCalCellPhysical",HadCalCellLogical,
288 HadCalColumnLogical,
kYAxis,2,30.*
cm);
292 =
new G4Box(
"HadCalLayerBox",15.*
cm,15.*
cm,2.5*
cm);
295 new G4PVReplica(
"HadCalLayerPhysical",HadCalLayerLogical,
300 =
new G4Box(
"HadCalScintiBox",15.*
cm,15.*
cm,0.5*
cm);
303 "HadCalScintiLogical");
305 "HadCalScintiPhysical",HadCalLayerLogical,
306 false,0,checkOverlaps);
364 return worldPhysical;
CLHEP::Hep3Vector G4ThreeVector
G4LogicalVolume * fWirePlane2Logical
HepRotation & rotateX(double delta)
CLHEP::HepRotation G4RotationMatrix
static G4Material * GetMaterial(const G4String &name, G4bool warning=true)
G4LogicalVolume * fHodoscope1Logical
void SetVisibility(G4bool)
void SetUserLimits(G4UserLimits *pULimits)
G4LogicalVolume * fMagneticLogical
G4VPhysicalVolume * fSecondArmPhys
void ConstructMaterials()
G4LogicalVolume * fCellLogical
G4LogicalVolume * fHadCalScintiLogical
EM Calorimeter cell parameterisation.
G4RotationMatrix * fArmRotation
G4LogicalVolume * fWirePlane1Logical
G4LogicalVolume * fHodoscope2Logical
void SetVisAttributes(const G4VisAttributes *pVA)
std::vector< G4VisAttributes * > fVisAttributes