3 #include <Geant4/G4Box.hh>
4 #include <Geant4/G4Colour.hh>
5 #include <Geant4/G4LogicalVolume.hh>
6 #include <Geant4/G4Material.hh>
7 #include <Geant4/G4NistManager.hh>
8 #include <Geant4/G4PVPlacement.hh>
9 #include <Geant4/G4Region.hh>
10 #include <Geant4/G4String.hh>
11 #include <Geant4/G4SystemOfUnits.hh>
12 #include <Geant4/G4ThreeVector.hh>
13 #include <Geant4/G4Types.hh>
14 #include <Geant4/G4VisAttributes.hh>
28 , tower_cross_section(5.535 *
cm)
29 , segments_per_column(12 * 6)
30 , segments_per_height(12 * 3)
31 ,
length(tower_cross_section * segments_per_column)
32 , height(tower_cross_section * segments_per_height)
33 , absorber_thickness(0.15 *
cm)
34 , scintillator_thickness(0.4 *
cm)
36 , x_position(0.0 *
cm)
37 , y_position(0.0 *
cm)
38 , z_position(400.0 *
cm)
39 , layer_separation(0.0)
40 , AbsorberMaterial(nullptr)
41 , ScintillatorMaterial(nullptr)
61 unsigned int z_index = (
unsigned int) ((z - z_start) / z_width);
67 unsigned int x_index = (
unsigned int) ((x - x_start) / xy_width);
68 unsigned int y_index = (
unsigned int) ((y - y_start) / xy_width);
92 std::cout <<
"PHG4FPbScDetector::Construct - Error: Can not set material" << std::endl;
114 ss <<
"FPbScAbsSolid_" <<
layer;
122 ss <<
"FPbScAbsLogical_" <<
layer;
131 ss <<
"FPbScAbsPhysical_" <<
layer;
135 current_center_position),
138 logicWorld,
false, 0,
false);
145 ss <<
"FPbScScintSolid_" <<
layer;
152 ss <<
"FPbScScintLogical_" <<
layer;
160 ss <<
"FPbScScintPhysical_" <<
layer;
165 logicWorld,
false, 0,
false);
176 std::map<unsigned int, G4VPhysicalVolume*>::iterator vol_iter =
scintillator_physi_.begin();
179 if (vol_iter->second == volume)
190 std::map<unsigned int, G4VPhysicalVolume*>::iterator vol_iter =
scintillator_physi_.begin();
193 if (vol_iter->second == volume)
194 return vol_iter->first;