30 #include <Geant4/G4LogicalVolume.hh>
31 #include <Geant4/G4Material.hh>
32 #include <Geant4/G4PVPlacement.hh>
33 #include <Geant4/G4PhysicalConstants.hh>
34 #include <Geant4/G4String.hh>
35 #include <Geant4/G4SystemOfUnits.hh>
36 #include <Geant4/G4ThreeVector.hh>
37 #include <Geant4/G4Transform3D.hh>
38 #include <Geant4/G4Tubs.hh>
39 #include <Geant4/G4Types.hh>
40 #include <Geant4/G4UserLimits.hh>
53 const std::string &dnam,
66 std::cout <<
"PHG4SpacalDetector::Constructor - Fatal Error - invalid geometry object!" << std::endl;
128 std::cout <<
"PHG4SpacalDetector::Construct::" <<
GetName()
129 <<
" - Start. Print Geometry:" << std::endl;
135 std::cout <<
"PHG4SpacalDetector::Construct - ERROR - not yet support unsymmetric system. Let me know if you need it. - Jin" << std::endl;
141 std::cout <<
"PHG4SpacalDetector::Construct - ERROR - zmin >= zmax!" << std::endl;
152 assert(cylinder_mat);
170 std::cout <<
"PHG4SpacalDetector::Construct::" <<
GetName()
171 <<
" - start constructing " <<
_geom->
get_sector_map().size() <<
" sectors in total. " << std::endl;
181 const int sec = val.first;
182 const double rot = val.second;
186 std::ostringstream
name;
187 name <<
GetName() <<
"_sec" << sec;
192 G4String(name.str()), logicWorld,
false, sec,
198 G4String(name.str()), cylinder_logic,
false, sec,
210 std::ostringstream geonode;
226 geonode.str(),
"PHObject");
238 std::ostringstream geonode;
254 geonode.str(),
"PHObject");
266 std::cout <<
"PHG4SpacalDetector::Construct::" <<
GetName()
267 <<
" - Completed. Print Geometry:" << std::endl;
272 std::pair<G4LogicalVolume *, G4Transform3D>
280 assert(cylinder_mat);
300 std::ostringstream
name;
301 name <<
GetName() <<
"_fiber_" << fiber_count;
304 G4String(name.str()), sec_logic,
false, fiber_count,
317 std::cout <<
"PHG4SpacalDetector::Construct_AzimuthalSeg::" <<
GetName()
318 <<
" - constructed " << fiber_count <<
" fibers" << std::endl;
323 <<
"fiber_length = " << fiber_length /
cm << std::endl;
325 <<
"z_step = " << z_step << std::endl;
330 <<
"_geom->get_azimuthal_distance() = "
375 false, 0, overlapcheck_fiber);
383 std::cout <<
"PHG4SpacalDetector::Print::" <<
GetName() <<
" - Print Geometry:" << std::endl;