65 F2LArGapID =
new G4int[2600];
66 F2LArIX =
new G4int[2600];
67 F2LArJY =
new G4int[2600];
68 F2LArITile =
new G4int[2600];
75 delete [] F2LArGapPosX;
76 delete [] F2LArGapPosY;
85 #include "FCALHadModuleParameters.input"
88 (
"geom_data/FCal2Electrodes.dat");
90 if(!File)
G4cerr <<
"Failed to open file FCal2Electrode data file" <<
G4endl;
94 while(!(File.eof())) {
96 File >> F2LArGapID[NF2LarGap] >> F2LArGapPosX[NF2LarGap] >> F2LArGapPosY[NF2LarGap]
97 >> F2LArIX[NF2LarGap] >> F2LArJY[NF2LarGap] >> F2LArITile[NF2LarGap];
100 G4cout <<
"*********" <<
" Number of Rods in FCAL2 : " << NF2LarGap-1 <<
G4endl;
129 new G4Tubs(
"HadModuleSolid", HadModuleRMin, HadModuleRMax, HadModuleLenght,
130 HadModuleStartPhi,HadModuleDPhi);
145 new G4Tubs(
"WAbsorberSolid", WAbsorberRMin, WAbsorberRMax, WAbsorberLenght,
146 WAbsorberStartPhi, WAbsorberDPhi);
152 LogicalHadModule, 0, 0);
162 new G4Tubs(
"CuPlateSolid",HadModuleRMin, HadModuleRMax, CuPlateLenght,
163 HadModuleStartPhi, HadModuleDPhi);
168 new G4PVPlacement(0,
G4ThreeVector(0.,0.,CuPlateAPosZ), LogicalCuPlate,
169 "CuPlateAPhysical", LogicalHadModule, 0, 0);
171 new G4PVPlacement(0,
G4ThreeVector(0.,0.,CuPlateBPosZ), LogicalCuPlate,
172 "CuPlateBPhysical", LogicalHadModule, 0, 0);
180 G4Tubs * SolidF2TroffMain =
181 new G4Tubs(
"F2TroffMainSolid", F2TroffRmin, F2TroffRmax, F2TroffMainLenght,
182 F2TroffStartPhi, F2TroffDphi);
185 "F2TroffMainLogical");
188 new G4Tubs(
"F2TroffABSolid", F2TroffRmin, F2TroffRmax, F2TroffABLenght,
189 F2TroffStartPhi, F2TroffDphi);
198 for(i=0 ; i < NCableTroff ; i++)
201 new G4PVPlacement(
G4Transform3D(F2TroffRot,F2TroffMainTrans), LogicalF2TroffMain,
202 "F2TroffMainPhysical", LogicalWAbsorber,0,i+1);
205 new G4PVPlacement(
G4Transform3D(F2TroffRot,F2TroffABTrans), LogicalF2TroffAB,
206 "F2TroffAPhysical", LogicalCuPlate, 0, i+1);
208 F2TroffRot.
rotateZ(F2TroffRotZ);
221 new G4Tubs(
"F2LArGapSolid", F2LArGapRmin, F2LArGapRmax, F2LArGapLenght,
222 F2LArGapStartPhi, F2LArGapDphi);
231 new G4Tubs(
"F2RodSolid", F2RodRmin, F2RodRmax, F2RodLenght, F2RodStartPhi, F2RodDphi);
235 new G4PVPlacement(0,
G4ThreeVector(),LogicalF2Rod,
"F2RodPhysical",LogicalF2LArGap,0, 0);
243 for(i=1; i < NF2LarGap; i++){
245 new G4PVPlacement(0,
G4ThreeVector(F2LArGapPosX[i]*
cm,F2LArGapPosY[i]*cm,0.*cm),
246 LogicalF2LArGap,
"F2LArGapPhysical",
247 LogicalHadModule, 0, i);
265 return LogicalHadModule;
271 return F2LArITile[TileID];
static FCALMaterialConsultant * GetInstance()
CLHEP::Hep3Vector G4ThreeVector
G4LogicalVolume * Construct()
void InitializeGeometry()
G4Material * Material(G4String)
G4GLOB_DLL std::ostream G4cout
static constexpr double cm
void AddNewDetector(G4VSensitiveDetector *aSD)
void SetSmartless(G4double s)
static G4SDManager * GetSDMpointer()
HepRotation & rotateZ(double delta)
void SetVisAttributes(const G4VisAttributes *pVA)
void SetSensitiveDetector(G4VSensitiveDetector *pSDetector)
G4GLOB_DLL std::ostream G4cerr