Analysis Software
Documentation for sPHENIX simulation software
|
#include <prototype/blob/master/simulation/g4simulation/g4caloprototype/PHG4SpacalPrototypeDetector.h>
Public Types | |
enum | { FIBER_CORE = 1, FIBER_CLADING = 0, ABSORBER = -1, SUPPORT = -2, INACTIVE = -100 } |
typedef PHG4CylinderGeom_Spacalv3 | SpacalGeom_t |
Public Member Functions | |
PHG4SpacalPrototypeDetector (PHG4Subsystem *subsys, PHCompositeNode *Node, PHParameters *parameters, const std::string &dnam) | |
virtual | ~PHG4SpacalPrototypeDetector (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 PHG4SpacalPrototypeDetector.h.
View newest version in sPHENIX GitHub at line 26 of file PHG4SpacalPrototypeDetector.h
Definition at line 29 of file PHG4SpacalPrototypeDetector.h.
View newest version in sPHENIX GitHub at line 29 of file PHG4SpacalPrototypeDetector.h
anonymous enum |
Definition at line 97 of file PHG4SpacalPrototypeDetector.h.
View newest version in sPHENIX GitHub at line 97 of file PHG4SpacalPrototypeDetector.h
PHG4SpacalPrototypeDetector::PHG4SpacalPrototypeDetector | ( | PHG4Subsystem * | subsys, |
PHCompositeNode * | Node, | ||
PHParameters * | parameters, | ||
const std::string & | dnam | ||
) |
Definition at line 54 of file PHG4SpacalPrototypeDetector.cc.
View newest version in sPHENIX GitHub at line 54 of file PHG4SpacalPrototypeDetector.cc
|
virtual |
Definition at line 72 of file PHG4SpacalPrototypeDetector.cc.
View newest version in sPHENIX GitHub at line 72 of file PHG4SpacalPrototypeDetector.cc
References _geom, clading_step_limits, fiber_core_step_limits, and step_limits.
|
virtual |
Definition at line 376 of file PHG4SpacalPrototypeDetector.cc.
View newest version in sPHENIX GitHub at line 376 of file PHG4SpacalPrototypeDetector.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(), PHG4CylinderGeom_Spacalv2::get_azimuthal_n_sec(), PHG4CylinderGeom_Spacalv1::get_construction_verbose(), PHG4CylinderGeom_Spacalv1::get_length(), PHG4CylinderGeom_Spacalv3::get_max_lightguide_height(), PHG4CylinderGeom_Spacalv1::get_max_radius(), PHG4CylinderGeomv1::get_radius(), PHG4CylinderGeom_Spacalv3::get_sector_tower_map(), PHG4CylinderGeom_Spacalv3::get_sidewall_thickness(), PHG4CylinderGeomv1::get_zmax(), PHG4CylinderGeomv1::get_zmin(), 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::NSubtowerX, PHG4CylinderGeom_Spacalv3::geom_tower::NSubtowerY, PHG4Detector::OverlapCheck(), pi, PHG4CylinderGeom_Spacalv3::geom_tower::pRotationAngleX, Acts::UnitConstants::rad, step_limits, and twopi.
Referenced by ConstructMe().
|
virtual |
Definition at line 576 of file PHG4SpacalPrototypeDetector.cc.
View newest version in sPHENIX GitHub at line 576 of file PHG4SpacalPrototypeDetector.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 638 of file PHG4SpacalPrototypeDetector.cc.
View newest version in sPHENIX GitHub at line 638 of file PHG4SpacalPrototypeDetector.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 837 of file PHG4SpacalPrototypeDetector.cc.
View newest version in sPHENIX GitHub at line 837 of file PHG4SpacalPrototypeDetector.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 777 of file PHG4SpacalPrototypeDetector.cc.
View newest version in sPHENIX GitHub at line 777 of file PHG4SpacalPrototypeDetector.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 107 of file PHG4SpacalPrototypeDetector.cc.
View newest version in sPHENIX GitHub at line 107 of file PHG4SpacalPrototypeDetector.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_Spacalv2::is_azimuthal_seg_visible(), PHG4CylinderGeom_Spacalv1::is_virualize_fiber(), PHG4CylinderGeom_Spacalv1::kFullProjective_2DTaper_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 PHG4SpacalPrototypeDetector.h.
View newest version in sPHENIX GitHub at line 92 of file PHG4SpacalPrototypeDetector.h
References _geom.
Referenced by PHG4SpacalPrototypeSteppingAction::get_zmax(), PHG4SpacalPrototypeSteppingAction::get_zmin(), and PHG4SpacalPrototypeSteppingAction::UserSteppingAction().
int PHG4SpacalPrototypeDetector::IsInCylinderActive | ( | const G4VPhysicalVolume * | volume | ) |
Definition at line 83 of file PHG4SpacalPrototypeDetector.cc.
View newest version in sPHENIX GitHub at line 83 of file PHG4SpacalPrototypeDetector.cc
References ABSORBER, absorberactive, active, block_vol, calo_vol, FIBER_CLADING, FIBER_CORE, fiber_core_vol, fiber_vol, INACTIVE, and SUPPORT.
Referenced by PHG4SpacalPrototypeSteppingAction::UserSteppingAction().
|
virtual |
Reimplemented from PHG4Detector.
Definition at line 626 of file PHG4SpacalPrototypeDetector.cc.
View newest version in sPHENIX GitHub at line 626 of file PHG4SpacalPrototypeDetector.cc
References _geom, assert, PHG4Detector::GetName(), and PHG4CylinderGeom_Spacalv3::Print().
Referenced by ConstructMe(), and PHG4SpacalPrototypeSubsystem::Print().
|
inline |
Definition at line 63 of file PHG4SpacalPrototypeDetector.h.
View newest version in sPHENIX GitHub at line 63 of file PHG4SpacalPrototypeDetector.h
References absorberactive, and i.
Referenced by PHG4SpacalPrototypeSubsystem::InitRunSubsystem().
|
inline |
Definition at line 57 of file PHG4SpacalPrototypeDetector.h.
View newest version in sPHENIX GitHub at line 57 of file PHG4SpacalPrototypeDetector.h
Referenced by PHG4SpacalPrototypeSubsystem::InitRunSubsystem().
|
inline |
Definition at line 69 of file PHG4SpacalPrototypeDetector.h.
View newest version in sPHENIX GitHub at line 69 of file PHG4SpacalPrototypeDetector.h
References detector_type.
|
inline |
Definition at line 77 of file PHG4SpacalPrototypeDetector.h.
View newest version in sPHENIX GitHub at line 77 of file PHG4SpacalPrototypeDetector.h
References perf_headwind::name, and superdetector.
Referenced by PHG4SpacalPrototypeSubsystem::InitRunSubsystem(), and PHG4SpacalPrototypeSteppingAction::SetInterfacePointers().
|
inline |
Definition at line 83 of file PHG4SpacalPrototypeDetector.h.
View newest version in sPHENIX GitHub at line 83 of file PHG4SpacalPrototypeDetector.h
References superdetector.
|
private |
Definition at line 133 of file PHG4SpacalPrototypeDetector.h.
View newest version in sPHENIX GitHub at line 133 of file PHG4SpacalPrototypeDetector.h
Referenced by Construct_AzimuthalSeg(), Construct_Fiber(), Construct_Fibers_SameLengthFiberPerTower(), Construct_LightGuide(), Construct_Tower(), ConstructMe(), get_geom(), Print(), and ~PHG4SpacalPrototypeDetector().
|
protected |
Definition at line 124 of file PHG4SpacalPrototypeDetector.h.
View newest version in sPHENIX GitHub at line 124 of file PHG4SpacalPrototypeDetector.h
Referenced by ConstructMe(), IsInCylinderActive(), and SetAbsorberActive().
|
protected |
Definition at line 123 of file PHG4SpacalPrototypeDetector.h.
View newest version in sPHENIX GitHub at line 123 of file PHG4SpacalPrototypeDetector.h
Referenced by ConstructMe(), IsInCylinderActive(), and SetActive().
|
protected |
map for G4VPhysicalVolume -> towers ID
Definition at line 121 of file PHG4SpacalPrototypeDetector.h.
View newest version in sPHENIX GitHub at line 121 of file PHG4SpacalPrototypeDetector.h
Referenced by Construct_AzimuthalSeg(), and IsInCylinderActive().
|
protected |
map for G4VPhysicalVolume -> Sector ID
Definition at line 118 of file PHG4SpacalPrototypeDetector.h.
View newest version in sPHENIX GitHub at line 118 of file PHG4SpacalPrototypeDetector.h
Referenced by ConstructMe(), and IsInCylinderActive().
|
protected |
Definition at line 129 of file PHG4SpacalPrototypeDetector.h.
View newest version in sPHENIX GitHub at line 129 of file PHG4SpacalPrototypeDetector.h
Referenced by Construct_Fiber(), ConstructMe(), and ~PHG4SpacalPrototypeDetector().
|
protected |
Definition at line 107 of file PHG4SpacalPrototypeDetector.h.
View newest version in sPHENIX GitHub at line 107 of file PHG4SpacalPrototypeDetector.h
Referenced by ConstructMe().
|
protected |
Definition at line 110 of file PHG4SpacalPrototypeDetector.h.
View newest version in sPHENIX GitHub at line 110 of file PHG4SpacalPrototypeDetector.h
Referenced by ConstructMe().
|
protected |
Definition at line 111 of file PHG4SpacalPrototypeDetector.h.
View newest version in sPHENIX GitHub at line 111 of file PHG4SpacalPrototypeDetector.h
Referenced by ConstructMe().
|
protected |
Definition at line 109 of file PHG4SpacalPrototypeDetector.h.
View newest version in sPHENIX GitHub at line 109 of file PHG4SpacalPrototypeDetector.h
Referenced by ConstructMe().
|
protected |
Definition at line 125 of file PHG4SpacalPrototypeDetector.h.
View newest version in sPHENIX GitHub at line 125 of file PHG4SpacalPrototypeDetector.h
Referenced by ConstructMe(), and SetDetectorType().
|
protected |
Definition at line 130 of file PHG4SpacalPrototypeDetector.h.
View newest version in sPHENIX GitHub at line 130 of file PHG4SpacalPrototypeDetector.h
Referenced by Construct_Fiber(), ConstructMe(), and ~PHG4SpacalPrototypeDetector().
|
protected |
Definition at line 112 of file PHG4SpacalPrototypeDetector.h.
View newest version in sPHENIX GitHub at line 112 of file PHG4SpacalPrototypeDetector.h
Referenced by Construct_Fiber(), and IsInCylinderActive().
|
protected |
map for G4VPhysicalVolume -> fiber ID
Definition at line 115 of file PHG4SpacalPrototypeDetector.h.
View newest version in sPHENIX GitHub at line 115 of file PHG4SpacalPrototypeDetector.h
Referenced by Construct_Fibers_SameLengthFiberPerTower(), and IsInCylinderActive().
|
protected |
Definition at line 128 of file PHG4SpacalPrototypeDetector.h.
View newest version in sPHENIX GitHub at line 128 of file PHG4SpacalPrototypeDetector.h
Referenced by Construct_AzimuthalSeg(), Construct_LightGuide(), Construct_Tower(), ConstructMe(), and ~PHG4SpacalPrototypeDetector().
|
protected |
Definition at line 126 of file PHG4SpacalPrototypeDetector.h.
View newest version in sPHENIX GitHub at line 126 of file PHG4SpacalPrototypeDetector.h
Referenced by ConstructMe(), and SuperDetector().