66 #include "FCALTestbeamSetupParameters.input"
85 G4Box * SolidMother =
new G4Box(
"Mother",MotherSizeX,MotherSizeY,MotherSizeZ);
97 G4Box * SolidScintS1andS3 =
98 new G4Box(
"ScintS1andS3Solid",ScintS1andS3SizeX, ScintS1andS3SizeY, ScintS1andS3SizeZ);
99 G4Box * SolidScintS2 =
100 new G4Box(
"ScintS2Solid", ScintS2SizeX, ScintS2SizeY, ScintS2SizeZ);
104 "ScintS1andS3Logical");
111 "ScintS1Physical",LogicalScintS1andS3,PhysicalMother,0,0);
113 new G4PVPlacement(0,
G4ThreeVector(ScintS1_S3PosX, ScintS1_S3PosY, ScintS3PosZ),
114 "ScintS3Physical",LogicalScintS1andS3,PhysicalMother,0,0);
116 new G4PVPlacement(0,
G4ThreeVector(ScintS1_S3PosX, ScintS1_S3PosY, ScintS2PosZ),
117 "ScintS2Physical", LogicalScintS2, PhysicalMother,0,0);
121 LogicalScintS2->SetVisAttributes(ColorOfScintillator);
127 G4Box* SolidMWPC =
new G4Box(
"MWPCSolid",MWPCSizeX,MWPCSizeY,MWPCSizeZ);
133 new G4PVPlacement(0,
G4ThreeVector(MWPCPosX,MWPCPosY,MWPCPosZ[i]),
134 "MWPCPhysical", LogicalMWPC, PhysicalMother,0,i+1);
143 G4Box * SolidHoleCntrScint =
144 new G4Box(
"ScintSolid", HoleCntrSizeX, HoleCntrSizeY, HoleCntrScintSizeZ);
147 "HoleCntrScintLogical");
150 new G4Tubs(
"HoleSolid", ScintHoleRmin, ScintHoleRmax, ScintHoleLenght,
151 HoleStartPhi, HoleDPhi);
155 new G4PVPlacement(0,
G4ThreeVector(HolePosX, HolePosY, HolePosZ), LogicalHole,
156 "HolePhysicalScint", LogicalHoleCntrScint, 0, 0);
160 G4ThreeVector(HoleCntrScintPosX, HoleCntrScintPosY, HoleCntrScintPosZ),
161 "HoleCntrScintPhysical", LogicalHoleCntrScint, PhysicalMother, 0, 0);
164 G4Box * SolidHoleCntrAbsrb =
165 new G4Box(
"AbsrbSolid", HoleCntrSizeX, HoleCntrSizeY, HoleCntrAbsrbSizeZ);
168 "HoleCntrPbLoghical");
172 new G4Tubs(
"HoleSolidAbs", AbsrbHoleRmin, AbsrbHoleRmax, AbsrbHoleLenght,
173 HoleStartPhi, HoleDPhi);
177 new G4PVPlacement(0,
G4ThreeVector(HolePosX, HolePosY, HolePosZ), LogicalHoleAbs,
178 "HolePbPhysical", LogicalHoleCntrPb, 0, 0);
182 new G4PVPlacement(0,
G4ThreeVector(HoleCntrPbPosX, HoleCntrPbPosY, HoleCntrPbPosZ),
183 "HoleCntrPbPhysical", LogicalHoleCntrPb, PhysicalMother, 0, 0);
188 "HoleCntrAlLoghical");
190 new G4PVPlacement(0,
G4ThreeVector(HolePosX, HolePosY, HolePosZ), LogicalHoleAbs,
191 "HoleAlPhysical", LogicalHoleCntrAl, 0, 0);
193 new G4PVPlacement(0,
G4ThreeVector(HoleCntrAlPosX, HoleCntrAlPosY, HoleCntrAlPosZ),
194 "HoleCntrAlPhysical", LogicalHoleCntrAl, PhysicalMother, 0, 0);
211 G4Box * SolidLeadWall =
212 new G4Box(
"LeadWallSolid", LeadWallSizeX, LeadWallSizeY, LeadWallSizeZ);
217 G4Box * SolidSlitPb =
new G4Box(
"SlitPb", LeadWallSlitSizeX, LeadWallSlitSizeY,
222 new G4PVPlacement(0,
G4ThreeVector(), LogicalSlitPb,
"SlitPbPhysical", LogicalLeadWall, 0, 0);
225 new G4PVPlacement(0,
G4ThreeVector(LeadWallPosX,LeadWallPosY,LeadWallPosZ),
226 "LeadWallPhysical", LogicalLeadWall, PhysicalMother, 0, 0);
235 G4Box * SolidIronWall =
236 new G4Box(
"IronWallSolid", IronWallSizeX, IronWallSizeY, IronWallSizeZ);
241 G4Box * SolidSlitFe =
new G4Box(
"SlitFe", IronWallSlitSizeX, IronWallSlitSizeY,
246 new G4PVPlacement(0,
G4ThreeVector(), LogicalSlitFe,
"SlitFePhysical", LogicalIronWall, 0, 0);
249 new G4PVPlacement(0,
G4ThreeVector(IronWallPosX,IronWallPosY,IronWallPosZ),
250 "IronWallPhysical", LogicalIronWall, PhysicalMother, 0, 0);
259 G4Box * SolidBigScint =
260 new G4Box(
"BigSolidScint",BigScintSizeX, BigScintSizeY, ScintSizeZ);
265 G4Box * SolidSmallScint =
266 new G4Box(
"SmallSolidScint",SmallScintSizeX, SmallScintSizeY, ScintSizeZ);
269 "SmallScintLogical");
271 for( i=0; i<(NBigScint+NSmallScint); i++)
275 new G4PVPlacement(0,
G4ThreeVector(ScintPosX, ScintPosY, ScintPosZ[i]),
276 "BigScintPhysical", LogicalBigScint, PhysicalMother,
281 new G4PVPlacement(0,
G4ThreeVector(ScintPosX, ScintPosY, ScintPosZ[i]),
282 "SmallScintPhysical", LogicalSmallScint, PhysicalMother,
290 G4Box * SolidBigIron =
291 new G4Box(
"BigSolidIron",BigIronSizeX, BigIronSizeY, IronSizeZ);
296 G4Box * SolidSmallIron =
297 new G4Box(
"SmallSolidIron",SmallIronSizeX, SmallIronSizeY, IronSizeZ);
302 for( i=0; i<(NBigIron+NSmallIron); i++)
306 new G4PVPlacement(0,
G4ThreeVector(IronPosX, IronPosY, IronPosZ[i]),
307 "BigIronPhysical", LogicalBigIron, PhysicalMother,
312 new G4PVPlacement(0,
G4ThreeVector(IronPosX, IronPosY, IronPosZ[i]),
313 "SmallIronPhysical", LogicalSmallIron, PhysicalMother,
323 G4Box * SolidConcWall =
324 new G4Box(
"ConcWallSolid", ConcWallSizeX, ConcWallSizeY, ConcWallSizeZ);
329 new G4PVPlacement(0,
G4ThreeVector(ConcWallPosX, ConcWallPosY, ConcWallAPosZ),
330 "ConcWallAPhysical", LogicalConcWallA, PhysicalMother, 0, 0);
336 new G4PVPlacement(0,
G4ThreeVector(ConcWallPosX, ConcWallPosY, ConcWallBPosZ),
337 "ConcWallBPhysical", LogicalConcWallB, PhysicalMother, 0, 0);
339 G4Box * SolidConcWallIns =
340 new G4Box(
"ConcWallInsSolid", ConcWallInsSizeX,ConcWallInsSizeY,ConcWallInsSizeZ);
343 "LogicalConcWallIns");
345 new G4PVPlacement(0,
G4ThreeVector(),
"ConcWallInsPhysical", LogicalConcWallIns, PhysicalConcWallA, 0, 0);
355 G4Box * SolidMuContr =
356 new G4Box(
"MuContrSolid", MuCntrSIzeX, MuCntrSIzeY, MuCntrSIzeZ);
361 new G4PVPlacement(0,
G4ThreeVector(MuCntrPosX, MuCntrPosY, MuCntrPosZ),
362 "MuContrPhyiscal", LogicalMuContr, PhysicalMother, 0, 0);
392 new G4PVPlacement(CryostatRotationMatrix,
393 G4ThreeVector(CryostatPosX,CryostatPosY,CryostatPosZ),
"CryostatVolumes"
394 , theCryostatVolumes, PhysicalMother, 0,0);
408 LogicalScintS2->SetSensitiveDetector(FCALTBSetupSD);
432 return PhysicalMother;