File indexing completed on 2025-02-23 09:22:44
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030 #include "RE04ParallelWorldConstruction.hh"
0031
0032 #include "RE04ParallelWorldParam.hh"
0033
0034 #include "G4Box.hh"
0035 #include "G4LogicalVolume.hh"
0036 #include "G4Material.hh"
0037 #include "G4PVParameterised.hh"
0038 #include "G4PVPlacement.hh"
0039 #include "G4SystemOfUnits.hh"
0040
0041
0042 RE04ParallelWorldConstruction ::RE04ParallelWorldConstruction(G4String& parallelWorldName)
0043 : G4VUserParallelWorld(parallelWorldName), fConstructed(false)
0044 {
0045 ;
0046 }
0047
0048
0049 RE04ParallelWorldConstruction::~RE04ParallelWorldConstruction()
0050 {
0051 ;
0052 }
0053
0054
0055 void RE04ParallelWorldConstruction::Construct()
0056 {
0057 if (fConstructed) return;
0058 fConstructed = true;
0059
0060
0061
0062
0063 G4VPhysicalVolume* ghostWorld = GetWorld();
0064 G4LogicalVolume* worldLogical = ghostWorld->GetLogicalVolume();
0065
0066
0067
0068
0069 G4Material* water = G4Material::GetMaterial("G4_WATER");
0070
0071
0072
0073
0074 G4VSolid* paraBox = new G4Box("paraBox", 5.0 * cm, 30.0 * cm, 5.0 * cm);
0075 G4LogicalVolume* paraBoxLogical = new G4LogicalVolume(paraBox, water, "paraBox");
0076 new G4PVPlacement(0, G4ThreeVector(-25.0 * cm, 0., 0.), paraBoxLogical, "paraBox", worldLogical,
0077 false, 0);
0078
0079
0080
0081
0082 G4VSolid* paraMom = new G4Box("paraMom", 20.0 * cm, 40.0 * cm, 20.0 * cm);
0083 G4LogicalVolume* paraMomLogical = new G4LogicalVolume(paraMom, 0, "paraMom");
0084 new G4PVPlacement(0, G4ThreeVector(10.0 * cm, 0., 0.), paraMomLogical, "paraMom", worldLogical,
0085 false, 0);
0086
0087
0088
0089
0090 G4VSolid* paraPara = new G4Box("paraPara", 5.0 * cm, 15.0 * cm, 10.0 * cm);
0091 G4LogicalVolume* paraParaLogical = new G4LogicalVolume(paraPara, water, "paraPara");
0092 RE04ParallelWorldParam* param = new RE04ParallelWorldParam();
0093 new G4PVParameterised("paraPara", paraParaLogical, paraMomLogical, kXAxis, 2, param);
0094 }