ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
|
Fully projective SPACAL built from 2D tapered modules and allow azimuthal tilts. More...
#include <coresoftware/blob/master/simulation/g4simulation/g4detectors/PHG4FullProjTiltedSpacalDetector.h>
Public Types | |
typedef PHG4CylinderGeom_Spacalv3 | SpacalGeom_t |
Public Types inherited from PHG4SpacalDetector | |
enum | { FIBER_CORE = 1, FIBER_CLADING = 0, ABSORBER = -1, SUPPORT = -2, INACTIVE = -100 } |
typedef PHG4CylinderGeom_Spacalv1 | SpacalGeom_t |
Public Member Functions | |
PHG4FullProjTiltedSpacalDetector (PHG4Subsystem *subsys, PHCompositeNode *Node, const std::string &dnam, PHParameters *parameters, const int layer=0) | |
~PHG4FullProjTiltedSpacalDetector (void) override | |
void | ConstructMe (G4LogicalVolume *world) override |
std::pair< G4LogicalVolume *, G4Transform3D > | Construct_AzimuthalSeg () override |
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 (const SpacalGeom_t::geom_tower &tower, G4LogicalVolume *LV_tower) |
a block along z axis built with G4Trd that is slightly tapered in x dimension | |
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. | |
void | Print (const std::string &what="ALL") const override |
PHG4CylinderGeom * | clone_geom () const override |
Public Member Functions inherited from PHG4SpacalDetector | |
PHG4SpacalDetector (PHG4Subsystem *subsys, PHCompositeNode *Node, const std::string &dnam, PHParameters *parameters, const int layer=0, bool init_geom=true) | |
~PHG4SpacalDetector (void) override | |
void | ConstructMe (G4LogicalVolume *world) override |
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 |
int | get_Layer () const |
void | Print (const std::string &what="ALL") const override |
const SpacalGeom_t * | get_geom () const |
PHG4SpacalDisplayAction * | GetDisplayAction () |
void | CosmicSetup (const int i) |
int | CosmicSetup () |
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 () |
Private Member Functions | |
SpacalGeom_t * | get_geom_v3 () |
get the v3 cast of the geometry object | |
const SpacalGeom_t * | get_geom_v3 () const |
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) |
Protected Attributes inherited from PHG4SpacalDetector | |
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 = 0 |
int | absorberactive = 0 |
int | layer = -9999 |
int | m_CosmicSetupFlag = 0 |
std::string | detector_type |
std::string | superdetector |
G4UserLimits * | fiber_core_step_limits = nullptr |
PHG4GDMLConfig * | gdml_config = nullptr |
registry for volumes that should not be exported, i.e. fibers | |
SpacalGeom_t * | _geom = nullptr |
Fully projective SPACAL built from 2D tapered modules and allow azimuthal tilts.
Definition at line 31 of file PHG4FullProjTiltedSpacalDetector.h.
View newest version in sPHENIX GitHub at line 31 of file PHG4FullProjTiltedSpacalDetector.h
Definition at line 34 of file PHG4FullProjTiltedSpacalDetector.h.
View newest version in sPHENIX GitHub at line 34 of file PHG4FullProjTiltedSpacalDetector.h
PHG4FullProjTiltedSpacalDetector::PHG4FullProjTiltedSpacalDetector | ( | PHG4Subsystem * | subsys, |
PHCompositeNode * | Node, | ||
const std::string & | dnam, | ||
PHParameters * | parameters, | ||
const int | layer = 0 |
||
) |
Definition at line 57 of file PHG4FullProjTiltedSpacalDetector.cc.
View newest version in sPHENIX GitHub at line 57 of file PHG4FullProjTiltedSpacalDetector.cc
References PHG4SpacalDetector::_geom, get_geom_v3(), and PHG4CylinderGeom_Spacalv3::ImportParameters().
|
inlineoverride |
Definition at line 40 of file PHG4FullProjTiltedSpacalDetector.h.
View newest version in sPHENIX GitHub at line 40 of file PHG4FullProjTiltedSpacalDetector.h
|
inlineoverridevirtual |
Reimplemented from PHG4SpacalDetector.
Definition at line 66 of file PHG4FullProjTiltedSpacalDetector.h.
View newest version in sPHENIX GitHub at line 66 of file PHG4FullProjTiltedSpacalDetector.h
References get_geom_v3().
|
overridevirtual |
rotation angle
displacement along the width direction, which is the radial direction if tilt = 0
wdith along the approximate radial direction
Reimplemented from PHG4SpacalDetector.
Definition at line 98 of file PHG4FullProjTiltedSpacalDetector.cc.
View newest version in sPHENIX GitHub at line 98 of file PHG4FullProjTiltedSpacalDetector.cc
References PHG4SpacalDisplayAction::AddVolume(), angle, PHG4SpacalDetector::block_vol, PHG4SpacalDetector::calo_vol, PHG4CylinderGeom_Spacalv3::geom_tower::centralX, PHG4CylinderGeom_Spacalv3::geom_tower::centralY, PHG4CylinderGeom_Spacalv3::geom_tower::centralZ, cm, Construct_LightGuide(), Construct_Tower(), hFarBwdBeamLine::enclosure_center, epsilon(), PHG4GDMLConfig::exclude_physical_vol(), PHG4SpacalDetector::gdml_config, PHG4CylinderGeom_Spacalv2::get_assembly_spacing(), PHG4CylinderGeom_Spacalv2::get_azimuthal_n_sec(), PHG4CylinderGeom_Spacalv3::get_divider_width(), get_geom_v3(), 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(), PHFlag::get_StringFlag(), get_thickness(), PHG4Detector::GetDetectorMaterial(), PHG4SpacalDetector::GetDisplayAction(), PHG4Detector::GetName(), G4VPhysicalVolume::GetName(), G4LogicalVolume::GetName(), halfpi, PHG4CylinderGeom_Spacalv3::geom_tower::id, HepGeom::Transform3D::Identity, recoConsts::instance(), PHG4CylinderGeom_Spacalv3::geom_tower::LightguideHeight, M_PI, PHG4CylinderGeom_Spacalv3::geom_tower::NSubtowerX, PHG4CylinderGeom_Spacalv3::geom_tower::NSubtowerY, PHG4Detector::OverlapCheck(), pi, PHG4CylinderGeom_Spacalv3::geom_tower::pRotationAngleX, rad, thickness, nlohmann::to_string(), um, PHG4Detector::Verbosity(), and width.
|
virtual |
a block along z axis built with G4Trd that is slightly tapered in x dimension
Definition at line 672 of file PHG4FullProjTiltedSpacalDetector.cc.
View newest version in sPHENIX GitHub at line 672 of file PHG4FullProjTiltedSpacalDetector.cc
References HepGeom::BasicVector3D< T >::angle(), cm, PHG4CylinderGeom_Spacalv3::geom_tower::compose_fiber_id(), PHG4SpacalDetector::Construct_Fiber(), HepGeom::BasicVector3D< T >::cross(), PHG4GDMLConfig::exclude_physical_vol(), PHG4SpacalDetector::fiber_vol, PHG4SpacalDetector::gdml_config, PHG4CylinderGeom_Spacalv1::get_construction_verbose(), PHG4CylinderGeom_Spacalv1::get_fiber_outer_r(), get_geom_v3(), PHG4Detector::GetName(), PHG4CylinderGeom_Spacalv3::geom_tower::id, HepGeom::BasicVector3D< T >::mag(), PHG4CylinderGeom_Spacalv3::geom_tower::ModuleSkinThickness, 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, v2, HepGeom::BasicVector3D< T >::x(), HepGeom::BasicVector3D< T >::y(), and HepGeom::BasicVector3D< T >::z().
Referenced by Construct_Tower().
|
virtual |
Fully projective spacal with 2D tapered modules. To speed up construction, same-length fiber is used cross one tower.
Definition at line 535 of file PHG4FullProjTiltedSpacalDetector.cc.
View newest version in sPHENIX GitHub at line 535 of file PHG4FullProjTiltedSpacalDetector.cc
References HepGeom::BasicVector3D< T >::angle(), cm, PHG4CylinderGeom_Spacalv3::geom_tower::compose_fiber_id(), PHG4SpacalDetector::Construct_Fiber(), HepGeom::BasicVector3D< T >::cross(), PHG4GDMLConfig::exclude_physical_vol(), PHG4SpacalDetector::fiber_vol, PHG4SpacalDetector::gdml_config, PHG4CylinderGeom_Spacalv1::get_construction_verbose(), PHG4CylinderGeom_Spacalv1::get_fiber_outer_r(), get_geom_v3(), PHG4Detector::GetName(), PHG4CylinderGeom_Spacalv3::geom_tower::id, HepGeom::BasicVector3D< T >::mag(), min, PHG4CylinderGeom_Spacalv3::geom_tower::ModuleSkinThickness, 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, v2, HepGeom::BasicVector3D< T >::x(), HepGeom::BasicVector3D< T >::y(), and HepGeom::BasicVector3D< T >::z().
Referenced by Construct_Tower().
|
virtual |
a block for the light guide along z axis that fit to the tower
Definition at line 841 of file PHG4FullProjTiltedSpacalDetector.cc.
View newest version in sPHENIX GitHub at line 841 of file PHG4FullProjTiltedSpacalDetector.cc
References PHG4SpacalDetector::_geom, PHG4SpacalDisplayAction::AddMaterial(), PHG4SpacalDisplayAction::AddVolume(), cm, PHG4Detector::GetDetectorMaterial(), PHG4SpacalDetector::GetDisplayAction(), PHG4Detector::GetName(), PHG4CylinderGeom_Spacalv3::geom_tower::id, 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, and rad.
Referenced by Construct_AzimuthalSeg().
|
virtual |
a block along z axis built with G4Trd that is slightly tapered in x dimension
Definition at line 772 of file PHG4FullProjTiltedSpacalDetector.cc.
View newest version in sPHENIX GitHub at line 772 of file PHG4FullProjTiltedSpacalDetector.cc
References PHG4SpacalDisplayAction::AddVolume(), cm, cm3, Construct_Fibers(), Construct_Fibers_SameLengthFiberPerTower(), FatalException, G4Exception(), PHG4CylinderGeom_Spacalv1::get_config(), get_geom_v3(), PHG4Detector::GetDetectorMaterial(), PHG4SpacalDetector::GetDisplayAction(), G4LogicalVolume::GetMass(), PHG4Detector::GetName(), gram, PHG4CylinderGeom_Spacalv3::geom_tower::id, PHG4CylinderGeom_Spacalv1::kFullProjective_2DTaper_Tilted, PHG4CylinderGeom_Spacalv1::kFullProjective_2DTaper_Tilted_SameLengthFiberPerTower, message(), 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, and rad.
Referenced by Construct_AzimuthalSeg().
|
overridevirtual |
Implements PHG4Detector.
Definition at line 80 of file PHG4FullProjTiltedSpacalDetector.cc.
View newest version in sPHENIX GitHub at line 80 of file PHG4FullProjTiltedSpacalDetector.cc
References PHG4SpacalDetector::ConstructMe(), get_geom_v3(), and PHG4Detector::GetName().
|
inlineprivate |
get the v3 cast of the geometry object
Definition at line 75 of file PHG4FullProjTiltedSpacalDetector.h.
View newest version in sPHENIX GitHub at line 75 of file PHG4FullProjTiltedSpacalDetector.h
References PHG4SpacalDetector::_geom.
Referenced by clone_geom(), Construct_AzimuthalSeg(), Construct_Fibers(), Construct_Fibers_SameLengthFiberPerTower(), Construct_Tower(), ConstructMe(), PHG4FullProjTiltedSpacalDetector(), and Print().
|
inlineprivate |
Definition at line 83 of file PHG4FullProjTiltedSpacalDetector.h.
View newest version in sPHENIX GitHub at line 83 of file PHG4FullProjTiltedSpacalDetector.h
References PHG4SpacalDetector::_geom.
|
overridevirtual |
Reimplemented from PHG4Detector.
Definition at line 916 of file PHG4FullProjTiltedSpacalDetector.cc.
View newest version in sPHENIX GitHub at line 916 of file PHG4FullProjTiltedSpacalDetector.cc
References get_geom_v3(), PHG4Detector::GetName(), and PHG4CylinderGeom_Spacalv3::Print().