Analysis Software
Documentation for sPHENIX simulation software
|
#include <prototype/blob/master/simulation/g4simulation/g4caloprototype/PHG4SpacalPrototype4Detector.h>
Public Types | |
enum | { FIBER_CORE = 1, FIBER_CLADING = 0, ABSORBER = -1, SUPPORT = -2, INACTIVE = -100 } |
typedef PHG4CylinderGeom_Spacalv3 | SpacalGeom_t |
Public Member Functions | |
PHG4SpacalPrototype4Detector (PHG4Subsystem *subsys, PHCompositeNode *Node, PHParameters *parameters, const std::string &dnam) | |
virtual | ~PHG4SpacalPrototype4Detector (void) |
virtual void | ConstructMe (G4LogicalVolume *world) |
virtual std::pair < G4LogicalVolume *, G4Transform3D > | Construct_AzimuthalSeg () |
virtual G4LogicalVolume * | Construct_Tower (const SpacalGeom_t::geom_tower &tower) |
a block along z axis built with G4Trd that is slightly tapered in x dimension | |
virtual G4LogicalVolume * | Construct_LightGuide (const SpacalGeom_t::geom_tower &tower, const int index_x, const int index_y) |
a block for the light guide along z axis that fit to the tower | |
virtual int | Construct_Fibers_SameLengthFiberPerTower (const SpacalGeom_t::geom_tower &tower, G4LogicalVolume *LV_tower) |
Fully projective spacal with 2D tapered modules. To speed up construction, same-length fiber is used cross one tower. | |
virtual G4LogicalVolume * | Construct_Fiber (const G4double length, const std::string &id) |
void | SetActive (const int i=1) |
void | SetAbsorberActive (const int i=1) |
void | SetDetectorType (const std::string &typ) |
int | IsInCylinderActive (const G4VPhysicalVolume *) |
void | SuperDetector (const std::string &name) |
const std::string | SuperDetector () const |
virtual void | Print (const std::string &what="ALL") const |
const SpacalGeom_t * | get_geom () const |
Public Member Functions inherited from PHG4Detector | |
PHG4Detector ()=delete | |
constructor | |
PHG4Detector (PHG4Subsystem *subsys, PHCompositeNode *Node, const std::string &nam) | |
virtual | ~PHG4Detector (void) |
destructor | |
virtual void | Construct (G4LogicalVolume *world) final |
construct method | |
virtual void | PostConstruction () |
Optional PostConstruction call after all geometry is constructed. | |
virtual void | Verbosity (const int v) |
virtual int | Verbosity () const |
virtual G4UserSteppingAction * | GetSteppingAction () |
virtual std::string | GetName () const |
virtual void | OverlapCheck (const bool chk) |
virtual bool | OverlapCheck () const |
virtual int | DisplayVolume (G4VSolid *volume, G4LogicalVolume *logvol, G4RotationMatrix *rotm=nullptr) |
virtual int | DisplayVolume (G4LogicalVolume *checksolid, G4LogicalVolume *logvol, G4RotationMatrix *rotm=nullptr) |
virtual PHCompositeNode * | topNode () |
virtual PHG4Subsystem * | GetMySubsystem () |
Protected Attributes | |
PHParameters * | construction_params |
G4VSolid * | cylinder_solid |
G4LogicalVolume * | cylinder_logic |
G4VPhysicalVolume * | cylinder_physi |
std::map< const G4VPhysicalVolume *, int > | fiber_core_vol |
std::map< const G4VPhysicalVolume *, int > | fiber_vol |
map for G4VPhysicalVolume -> fiber ID | |
std::map< const G4VPhysicalVolume *, int > | calo_vol |
map for G4VPhysicalVolume -> Sector ID | |
std::map< const G4VPhysicalVolume *, int > | block_vol |
map for G4VPhysicalVolume -> towers ID | |
int | active |
int | absorberactive |
std::string | detector_type |
std::string | superdetector |
G4UserLimits * | step_limits |
G4UserLimits * | clading_step_limits |
G4UserLimits * | fiber_core_step_limits |
Private Attributes | |
SpacalGeom_t * | _geom |
Additional Inherited Members | |
Static Public Member Functions inherited from PHG4Detector | |
static G4Material * | GetDetectorMaterial (const std::string &name, const bool quit=true) |
static G4Element * | GetDetectorElement (const std::string &name, const bool quit=true) |
Definition at line 26 of file PHG4SpacalPrototype4Detector.h.
View newest version in sPHENIX GitHub at line 26 of file PHG4SpacalPrototype4Detector.h
Definition at line 29 of file PHG4SpacalPrototype4Detector.h.
View newest version in sPHENIX GitHub at line 29 of file PHG4SpacalPrototype4Detector.h
anonymous enum |
Definition at line 97 of file PHG4SpacalPrototype4Detector.h.
View newest version in sPHENIX GitHub at line 97 of file PHG4SpacalPrototype4Detector.h
PHG4SpacalPrototype4Detector::PHG4SpacalPrototype4Detector | ( | PHG4Subsystem * | subsys, |
PHCompositeNode * | Node, | ||
PHParameters * | parameters, | ||
const std::string & | dnam | ||
) |
Definition at line 58 of file PHG4SpacalPrototype4Detector.cc.
View newest version in sPHENIX GitHub at line 58 of file PHG4SpacalPrototype4Detector.cc
References construction_params, PHParameters::get_int_param(), SetAbsorberActive(), SetActive(), and SuperDetector().
|
virtual |
Definition at line 79 of file PHG4SpacalPrototype4Detector.cc.
View newest version in sPHENIX GitHub at line 79 of file PHG4SpacalPrototype4Detector.cc
References _geom, clading_step_limits, fiber_core_step_limits, and step_limits.
|
virtual |
rotation angle
displacement along the width direction, which is the radial direction if tilt = 0
wdith along the approximate radial direction
Definition at line 383 of file PHG4SpacalPrototype4Detector.cc.
View newest version in sPHENIX GitHub at line 383 of file PHG4SpacalPrototype4Detector.cc
References _geom, assert, block_vol, PHG4CylinderGeom_Spacalv3::geom_tower::centralX, PHG4CylinderGeom_Spacalv3::geom_tower::centralY, PHG4CylinderGeom_Spacalv3::geom_tower::centralZ, Acts::UnitConstants::cm, Construct_LightGuide(), Construct_Tower(), G4BEAMLINE::enclosure_center, PHG4CylinderGeom_Spacalv2::get_assembly_spacing(), PHG4CylinderGeom_Spacalv2::get_azimuthal_n_sec(), PHG4CylinderGeom_Spacalv2::get_azimuthal_tilt(), PHG4CylinderGeom_Spacalv1::get_construction_verbose(), PHG4CylinderGeom_Spacalv3::get_divider_width(), PHG4CylinderGeom_Spacalv1::get_length(), PHG4CylinderGeom_Spacalv3::get_max_phi_bin_in_sec(), PHG4CylinderGeom_Spacalv1::get_max_radius(), PHG4CylinderGeomv1::get_radius(), PHG4CylinderGeom_Spacalv3::get_sector_tower_map(), PHG4CylinderGeom_Spacalv3::get_sidewall_outer_torr(), PHG4CylinderGeom_Spacalv3::get_sidewall_thickness(), PHG4CylinderGeomv1::get_thickness(), PHG4CylinderGeomv1::get_zmax(), PHG4CylinderGeomv1::get_zmin(), PHG4Detector::GetName(), PHG4CylinderGeom_Spacalv3::geom_tower::id, PHG4CylinderGeom_Spacalv3::geom_tower::LightguideHeight, PHG4CylinderGeom_Spacalv3::geom_tower::NSubtowerX, PHG4CylinderGeom_Spacalv3::geom_tower::NSubtowerY, PHG4Detector::OverlapCheck(), pi, PHG4CylinderGeom_Spacalv3::geom_tower::pRotationAngleX, Acts::UnitConstants::rad, physmon_simulation::s, thickness, to_string(), Acts::UnitConstants::um, PHG4Detector::Verbosity(), and width.
Referenced by ConstructMe().
|
virtual |
Definition at line 825 of file PHG4SpacalPrototype4Detector.cc.
View newest version in sPHENIX GitHub at line 825 of file PHG4SpacalPrototype4Detector.cc
References _geom, assert, clading_step_limits, Acts::UnitConstants::cm, fiber_core_step_limits, fiber_core_vol, PHG4CylinderGeom_Spacalv1::get_construction_verbose(), PHG4CylinderGeom_Spacalv1::get_fiber_clading_mat(), PHG4CylinderGeom_Spacalv1::get_fiber_core_diameter(), PHG4CylinderGeom_Spacalv1::get_fiber_core_mat(), PHG4CylinderGeom_Spacalv1::get_fiber_outer_r(), PHG4Detector::GetName(), PHG4CylinderGeom_Spacalv1::is_virualize_fiber(), PHG4Detector::OverlapCheck(), PHG4Utils::SetColour(), and twopi.
Referenced by Construct_Fibers_SameLengthFiberPerTower().
|
virtual |
Fully projective spacal with 2D tapered modules. To speed up construction, same-length fiber is used cross one tower.
Definition at line 887 of file PHG4SpacalPrototype4Detector.cc.
View newest version in sPHENIX GitHub at line 887 of file PHG4SpacalPrototype4Detector.cc
References _geom, assert, Acts::UnitConstants::cm, PHG4CylinderGeom_Spacalv3::geom_tower::compose_fiber_id(), Construct_Fiber(), fiber_vol, PHG4CylinderGeom_Spacalv1::get_construction_verbose(), PHG4CylinderGeom_Spacalv1::get_fiber_outer_r(), PHG4Detector::GetName(), PHG4CylinderGeom_Spacalv3::geom_tower::id, Acts::UnitConstants::min, PHG4CylinderGeom_Spacalv3::geom_tower::ModuleSkinThickness, perf_headwind::name, PHG4CylinderGeom_Spacalv3::geom_tower::NFiberX, PHG4CylinderGeom_Spacalv3::geom_tower::NFiberY, PHG4Detector::OverlapCheck(), PHG4CylinderGeom_Spacalv3::geom_tower::pAlp1, PHG4CylinderGeom_Spacalv3::geom_tower::pAlp2, PHG4CylinderGeom_Spacalv3::geom_tower::pDx1, PHG4CylinderGeom_Spacalv3::geom_tower::pDx2, PHG4CylinderGeom_Spacalv3::geom_tower::pDx3, PHG4CylinderGeom_Spacalv3::geom_tower::pDx4, PHG4CylinderGeom_Spacalv3::geom_tower::pDy1, PHG4CylinderGeom_Spacalv3::geom_tower::pDy2, PHG4CylinderGeom_Spacalv3::geom_tower::pDz, PHG4CylinderGeom_Spacalv3::geom_tower::pPhi, PHG4CylinderGeom_Spacalv3::geom_tower::pTheta, v1, and v2.
Referenced by Construct_Tower().
|
virtual |
a block for the light guide along z axis that fit to the tower
Definition at line 1086 of file PHG4SpacalPrototype4Detector.cc.
View newest version in sPHENIX GitHub at line 1086 of file PHG4SpacalPrototype4Detector.cc
References _geom, assert, Acts::UnitConstants::cm, double(), PHG4Detector::GetName(), PHG4CylinderGeom_Spacalv3::geom_tower::id, PHG4CylinderGeom_Spacalv2::is_azimuthal_seg_visible(), PHG4CylinderGeom_Spacalv1::is_virualize_fiber(), PHG4CylinderGeom_Spacalv3::geom_tower::LightguideHeight, PHG4CylinderGeom_Spacalv3::geom_tower::LightguideMaterial, PHG4CylinderGeom_Spacalv3::geom_tower::LightguideTaperRatio, PHG4CylinderGeom_Spacalv3::geom_tower::NSubtowerX, PHG4CylinderGeom_Spacalv3::geom_tower::NSubtowerY, PHG4CylinderGeom_Spacalv3::geom_tower::pAlp1, PHG4CylinderGeom_Spacalv3::geom_tower::pDx1, PHG4CylinderGeom_Spacalv3::geom_tower::pDx2, PHG4CylinderGeom_Spacalv3::geom_tower::pDy1, PHG4CylinderGeom_Spacalv3::geom_tower::pDz, PHG4CylinderGeom_Spacalv3::geom_tower::pPhi, PHG4CylinderGeom_Spacalv3::geom_tower::pTheta, Acts::UnitConstants::rad, PHG4Utils::SetColour(), and step_limits.
Referenced by Construct_AzimuthalSeg().
|
virtual |
a block along z axis built with G4Trd that is slightly tapered in x dimension
Definition at line 1026 of file PHG4SpacalPrototype4Detector.cc.
View newest version in sPHENIX GitHub at line 1026 of file PHG4SpacalPrototype4Detector.cc
References _geom, assert, Acts::UnitConstants::cm, Construct_Fibers_SameLengthFiberPerTower(), PHG4CylinderGeom_Spacalv1::get_absorber_mat(), PHG4CylinderGeom_Spacalv1::get_construction_verbose(), PHG4Detector::GetName(), PHG4CylinderGeom_Spacalv3::geom_tower::id, PHG4CylinderGeom_Spacalv3::geom_tower::identify(), PHG4CylinderGeom_Spacalv2::is_azimuthal_seg_visible(), PHG4CylinderGeom_Spacalv1::is_virualize_fiber(), PHG4CylinderGeom_Spacalv3::geom_tower::pAlp1, PHG4CylinderGeom_Spacalv3::geom_tower::pAlp2, PHG4CylinderGeom_Spacalv3::geom_tower::pDx1, PHG4CylinderGeom_Spacalv3::geom_tower::pDx2, PHG4CylinderGeom_Spacalv3::geom_tower::pDx3, PHG4CylinderGeom_Spacalv3::geom_tower::pDx4, PHG4CylinderGeom_Spacalv3::geom_tower::pDy1, PHG4CylinderGeom_Spacalv3::geom_tower::pDy2, PHG4CylinderGeom_Spacalv3::geom_tower::pDz, PHG4CylinderGeom_Spacalv3::geom_tower::pPhi, PHG4CylinderGeom_Spacalv3::geom_tower::pTheta, Acts::UnitConstants::rad, and step_limits.
Referenced by Construct_AzimuthalSeg().
|
virtual |
Implements PHG4Detector.
Definition at line 114 of file PHG4SpacalPrototype4Detector.cc.
View newest version in sPHENIX GitHub at line 114 of file PHG4SpacalPrototype4Detector.cc
References _geom, absorberactive, active, PHG4CylinderGeomContainer::AddLayerGeom(), PHCompositeNode::addNode(), assert, calo_vol, clading_step_limits, Acts::UnitConstants::cm, Construct_AzimuthalSeg(), construction_params, cylinder_logic, cylinder_physi, cylinder_solid, Acts::UnitConstants::degree, detector_type, fiber_core_step_limits, PHNodeIterator::findFirst(), PHG4CylinderGeom_Spacalv2::get_azimuthal_n_sec(), PHG4CylinderGeom_Spacalv1::get_construction_verbose(), PHParameters::get_double_param(), PHG4CylinderGeom_Spacalv1::get_fiber_core_step_size(), PHG4CylinderGeom_Spacalv1::get_length(), PHG4CylinderGeom_Spacalv3::get_max_lightguide_height(), PHG4CylinderGeomv2::get_nscint(), PHG4CylinderGeomv1::get_radius(), PHG4CylinderGeom_Spacalv1::get_sector_map(), PHParameters::get_string_param(), PHG4CylinderGeomv1::get_thickness(), PHG4CylinderGeom_Spacalv1::get_xpos(), PHG4CylinderGeom_Spacalv1::get_ypos(), PHG4CylinderGeomv1::get_zmax(), PHG4CylinderGeomv1::get_zmin(), PHG4CylinderGeom_Spacalv1::get_zpos(), findNode::getClass(), PHG4Detector::GetName(), PHG4CylinderGeomContainer::identify(), PHG4CylinderGeom_Spacalv3::ImportParameters(), PHG4CylinderGeom_Spacalv1::is_virualize_fiber(), PHG4CylinderGeom_Spacalv1::kFullProjective_2DTaper_Tilted_SameLengthFiberPerTower, perf_headwind::name, PHG4Detector::OverlapCheck(), Print(), PHG4CylinderGeom_Spacalv1::set_config(), PHG4CylinderGeomv2::set_nscint(), PHG4Utils::SetColour(), step_limits, PHG4CylinderGeom_Spacalv3::subtower_consistency_check(), superdetector, PHG4Detector::topNode(), and twopi.
|
inline |
Definition at line 92 of file PHG4SpacalPrototype4Detector.h.
View newest version in sPHENIX GitHub at line 92 of file PHG4SpacalPrototype4Detector.h
References _geom.
Referenced by PHG4SpacalPrototype4SteppingAction::get_zmax(), and PHG4SpacalPrototype4SteppingAction::get_zmin().
int PHG4SpacalPrototype4Detector::IsInCylinderActive | ( | const G4VPhysicalVolume * | volume | ) |
Definition at line 90 of file PHG4SpacalPrototype4Detector.cc.
View newest version in sPHENIX GitHub at line 90 of file PHG4SpacalPrototype4Detector.cc
References ABSORBER, absorberactive, active, block_vol, calo_vol, FIBER_CLADING, FIBER_CORE, fiber_core_vol, fiber_vol, INACTIVE, and SUPPORT.
Referenced by PHG4SpacalPrototype4SteppingAction::UserSteppingAction().
|
virtual |
Reimplemented from PHG4Detector.
Definition at line 875 of file PHG4SpacalPrototype4Detector.cc.
View newest version in sPHENIX GitHub at line 875 of file PHG4SpacalPrototype4Detector.cc
References _geom, assert, PHG4Detector::GetName(), and PHG4CylinderGeom_Spacalv3::Print().
Referenced by ConstructMe(), and PHG4SpacalPrototype4Subsystem::Print().
|
inline |
Definition at line 63 of file PHG4SpacalPrototype4Detector.h.
View newest version in sPHENIX GitHub at line 63 of file PHG4SpacalPrototype4Detector.h
References absorberactive, and i.
Referenced by PHG4SpacalPrototype4Subsystem::InitRunSubsystem(), and PHG4SpacalPrototype4Detector().
|
inline |
Definition at line 57 of file PHG4SpacalPrototype4Detector.h.
View newest version in sPHENIX GitHub at line 57 of file PHG4SpacalPrototype4Detector.h
Referenced by PHG4SpacalPrototype4Subsystem::InitRunSubsystem(), and PHG4SpacalPrototype4Detector().
|
inline |
Definition at line 69 of file PHG4SpacalPrototype4Detector.h.
View newest version in sPHENIX GitHub at line 69 of file PHG4SpacalPrototype4Detector.h
References detector_type.
|
inline |
Definition at line 77 of file PHG4SpacalPrototype4Detector.h.
View newest version in sPHENIX GitHub at line 77 of file PHG4SpacalPrototype4Detector.h
References perf_headwind::name, and superdetector.
Referenced by PHG4SpacalPrototype4Subsystem::InitRunSubsystem(), and PHG4SpacalPrototype4SteppingAction::SetInterfacePointers().
|
inline |
Definition at line 83 of file PHG4SpacalPrototype4Detector.h.
View newest version in sPHENIX GitHub at line 83 of file PHG4SpacalPrototype4Detector.h
References superdetector.
Referenced by PHG4SpacalPrototype4Detector().
|
private |
Definition at line 133 of file PHG4SpacalPrototype4Detector.h.
View newest version in sPHENIX GitHub at line 133 of file PHG4SpacalPrototype4Detector.h
Referenced by Construct_AzimuthalSeg(), Construct_Fiber(), Construct_Fibers_SameLengthFiberPerTower(), Construct_LightGuide(), Construct_Tower(), ConstructMe(), get_geom(), Print(), and ~PHG4SpacalPrototype4Detector().
|
protected |
Definition at line 124 of file PHG4SpacalPrototype4Detector.h.
View newest version in sPHENIX GitHub at line 124 of file PHG4SpacalPrototype4Detector.h
Referenced by ConstructMe(), IsInCylinderActive(), and SetAbsorberActive().
|
protected |
Definition at line 123 of file PHG4SpacalPrototype4Detector.h.
View newest version in sPHENIX GitHub at line 123 of file PHG4SpacalPrototype4Detector.h
Referenced by ConstructMe(), IsInCylinderActive(), and SetActive().
|
protected |
map for G4VPhysicalVolume -> towers ID
Definition at line 121 of file PHG4SpacalPrototype4Detector.h.
View newest version in sPHENIX GitHub at line 121 of file PHG4SpacalPrototype4Detector.h
Referenced by Construct_AzimuthalSeg(), and IsInCylinderActive().
|
protected |
map for G4VPhysicalVolume -> Sector ID
Definition at line 118 of file PHG4SpacalPrototype4Detector.h.
View newest version in sPHENIX GitHub at line 118 of file PHG4SpacalPrototype4Detector.h
Referenced by ConstructMe(), and IsInCylinderActive().
|
protected |
Definition at line 129 of file PHG4SpacalPrototype4Detector.h.
View newest version in sPHENIX GitHub at line 129 of file PHG4SpacalPrototype4Detector.h
Referenced by Construct_Fiber(), ConstructMe(), and ~PHG4SpacalPrototype4Detector().
|
protected |
Definition at line 107 of file PHG4SpacalPrototype4Detector.h.
View newest version in sPHENIX GitHub at line 107 of file PHG4SpacalPrototype4Detector.h
Referenced by ConstructMe(), and PHG4SpacalPrototype4Detector().
|
protected |
Definition at line 110 of file PHG4SpacalPrototype4Detector.h.
View newest version in sPHENIX GitHub at line 110 of file PHG4SpacalPrototype4Detector.h
Referenced by ConstructMe().
|
protected |
Definition at line 111 of file PHG4SpacalPrototype4Detector.h.
View newest version in sPHENIX GitHub at line 111 of file PHG4SpacalPrototype4Detector.h
Referenced by ConstructMe().
|
protected |
Definition at line 109 of file PHG4SpacalPrototype4Detector.h.
View newest version in sPHENIX GitHub at line 109 of file PHG4SpacalPrototype4Detector.h
Referenced by ConstructMe().
|
protected |
Definition at line 125 of file PHG4SpacalPrototype4Detector.h.
View newest version in sPHENIX GitHub at line 125 of file PHG4SpacalPrototype4Detector.h
Referenced by ConstructMe(), and SetDetectorType().
|
protected |
Definition at line 130 of file PHG4SpacalPrototype4Detector.h.
View newest version in sPHENIX GitHub at line 130 of file PHG4SpacalPrototype4Detector.h
Referenced by Construct_Fiber(), ConstructMe(), and ~PHG4SpacalPrototype4Detector().
|
protected |
Definition at line 112 of file PHG4SpacalPrototype4Detector.h.
View newest version in sPHENIX GitHub at line 112 of file PHG4SpacalPrototype4Detector.h
Referenced by Construct_Fiber(), and IsInCylinderActive().
|
protected |
map for G4VPhysicalVolume -> fiber ID
Definition at line 115 of file PHG4SpacalPrototype4Detector.h.
View newest version in sPHENIX GitHub at line 115 of file PHG4SpacalPrototype4Detector.h
Referenced by Construct_Fibers_SameLengthFiberPerTower(), and IsInCylinderActive().
|
protected |
Definition at line 128 of file PHG4SpacalPrototype4Detector.h.
View newest version in sPHENIX GitHub at line 128 of file PHG4SpacalPrototype4Detector.h
Referenced by Construct_LightGuide(), Construct_Tower(), ConstructMe(), and ~PHG4SpacalPrototype4Detector().
|
protected |
Definition at line 126 of file PHG4SpacalPrototype4Detector.h.
View newest version in sPHENIX GitHub at line 126 of file PHG4SpacalPrototype4Detector.h
Referenced by ConstructMe(), and SuperDetector().