5 #include "G4UnitsTable.hh"
6 #include "G4IntersectionSolid.hh"
8 #include "G4RunManager.hh"
9 #include "G4SDManager.hh"
10 #include "G4OpticalSurface.hh"
11 #include "G4LogicalBorderSurface.hh"
12 #include "G4LogicalSkinSurface.hh"
13 #include "G4Material.hh"
14 #include "G4MaterialTable.hh"
18 #include "G4Polyhedra.hh"
19 #include "G4UnionSolid.hh"
20 #include "G4LogicalVolume.hh"
21 #include "G4ThreeVector.hh"
22 #include "G4VisAttributes.hh"
23 #include "G4Colour.hh"
25 using namespace TelescopeSimulatorLX;
29 const G4RunManager* runManager = G4RunManager::GetRunManager();
49 G4cerr <<
" ================================================================ " << G4endl;
50 G4cerr <<
" = Mercedes parameters " << G4endl;
51 G4cerr <<
" = " << G4endl;
53 G4cerr <<
" = " << G4endl;
54 G4cerr <<
" ================================================================ " << G4endl;
61 G4cerr <<
"Absorption Property Vector " << G4endl;
64 Absorption->DumpVector();
72 const G4double TOLERANCE = 0.01*
mm;
76 G4double phi0 = 3.0*pi/2.-Dphi/2.;
81 G4double Rin[2] = {0.,0.};
82 G4double Rout[2] = {MercedesSide,MercedesSide};
86 G4Polyhedra* MercedesArm1 =
87 new G4Polyhedra(
"MercedesArm1",phi0,Dphi,1,NumZplanes,PosZplanes,Rin,Rout);
89 G4Polyhedra* MercedesArm2 =
90 new G4Polyhedra(
"MercedesArm2",phi0,Dphi,1,NumZplanes,PosZplanes,Rin,Rout);
91 G4Polyhedra* MercedesArm3 =
92 new G4Polyhedra(
"MercedesArm3",phi0,Dphi,1,NumZplanes,PosZplanes,Rin,Rout);
94 G4RotationMatrix* ArmRot12 =
95 new G4RotationMatrix(G4ThreeVector(0.,1.,0.),2*pi/3.0);
96 G4RotationMatrix* ArmRot13 =
97 new G4RotationMatrix(G4ThreeVector(0.,1.,0.),-2*pi/3.0);
99 G4ThreeVector translation = G4ThreeVector(0.,0.,0.);
101 G4UnionSolid* MercedesArms12
102 =
new G4UnionSolid(
"MercedesArms12",MercedesArm1,MercedesArm2,ArmRot12,translation);
103 G4UnionSolid* MercedesArms123
104 =
new G4UnionSolid(
"MercedesArms123",MercedesArms12,MercedesArm3,ArmRot13,translation);
107 new G4LogicalVolume(MercedesArms123,(G4Material *)
fMercedesMaterial,
"Mercedes",0,0,0);
112 const G4RunManager* runManager = G4RunManager::GetRunManager();
118 G4SDManager* SDmanager = G4SDManager::GetSDMpointer();
120 SDmanager->AddNewDetector(MercedesSD);
G4LogicalVolume * fMercedes_log
const G4Material * fMercedesMaterial
double pow(const double x, const unsigned int i)
void MakeMercedesLogicalVolume()
static const G4Colour cyan(0.0, 1.0, 1.0)
G4double fMercedesArmLength
G4bool fUseSensitiveDetectors