ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
|
#include <coresoftware/blob/master/simulation/g4simulation/g4detectors/PHG4FullProjSpacalDetector.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 | |
PHG4FullProjSpacalDetector (PHG4Subsystem *subsys, PHCompositeNode *Node, const std::string &dnam, PHParameters *parameters, const int layer=0) | |
~PHG4FullProjSpacalDetector (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 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. This class is obsolete and for comparison study only. Use PHG4FullProjTiltedSpacalDetector instead. It loads Chris Cullen 2D spacal design July 2015 by default.
Definition at line 33 of file PHG4FullProjSpacalDetector.h.
View newest version in sPHENIX GitHub at line 33 of file PHG4FullProjSpacalDetector.h
Definition at line 36 of file PHG4FullProjSpacalDetector.h.
View newest version in sPHENIX GitHub at line 36 of file PHG4FullProjSpacalDetector.h
PHG4FullProjSpacalDetector::PHG4FullProjSpacalDetector | ( | PHG4Subsystem * | subsys, |
PHCompositeNode * | Node, | ||
const std::string & | dnam, | ||
PHParameters * | parameters, | ||
const int | layer = 0 |
||
) |
Definition at line 51 of file PHG4FullProjSpacalDetector.cc.
View newest version in sPHENIX GitHub at line 51 of file PHG4FullProjSpacalDetector.cc
References PHG4SpacalDetector::_geom, get_geom_v3(), and PHG4CylinderGeom_Spacalv3::ImportParameters().
|
inlineoverride |
Definition at line 43 of file PHG4FullProjSpacalDetector.h.
View newest version in sPHENIX GitHub at line 43 of file PHG4FullProjSpacalDetector.h
|
inlineoverridevirtual |
Reimplemented from PHG4SpacalDetector.
Definition at line 65 of file PHG4FullProjSpacalDetector.h.
View newest version in sPHENIX GitHub at line 65 of file PHG4FullProjSpacalDetector.h
References get_geom_v3().
|
overridevirtual |
Reimplemented from PHG4SpacalDetector.
Definition at line 96 of file PHG4FullProjSpacalDetector.cc.
View newest version in sPHENIX GitHub at line 96 of file PHG4FullProjSpacalDetector.cc
References PHG4SpacalDisplayAction::AddVolume(), PHG4SpacalDetector::block_vol, PHG4SpacalDetector::calo_vol, PHG4CylinderGeom_Spacalv3::geom_tower::centralX, PHG4CylinderGeom_Spacalv3::geom_tower::centralY, PHG4CylinderGeom_Spacalv3::geom_tower::centralZ, cm, Construct_Tower(), PHG4GDMLConfig::exclude_physical_vol(), PHG4SpacalDetector::gdml_config, PHG4CylinderGeom_Spacalv2::get_assembly_spacing(), PHG4CylinderGeom_Spacalv2::get_azimuthal_n_sec(), get_geom_v3(), PHG4CylinderGeom_Spacalv1::get_length(), 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(), halfpi, PHG4CylinderGeom_Spacalv3::geom_tower::id, HepGeom::Transform3D::Identity, recoConsts::instance(), PHG4Detector::OverlapCheck(), pi, PHG4CylinderGeom_Spacalv3::geom_tower::pRotationAngleX, rad, and twopi.
|
virtual |
a block along z axis built with G4Trd that is slightly tapered in x dimension
Definition at line 392 of file PHG4FullProjSpacalDetector.cc.
View newest version in sPHENIX GitHub at line 392 of file PHG4FullProjSpacalDetector.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 254 of file PHG4FullProjSpacalDetector.cc.
View newest version in sPHENIX GitHub at line 254 of file PHG4FullProjSpacalDetector.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 along z axis built with G4Trd that is slightly tapered in x dimension
Definition at line 493 of file PHG4FullProjSpacalDetector.cc.
View newest version in sPHENIX GitHub at line 493 of file PHG4FullProjSpacalDetector.cc
References PHG4SpacalDisplayAction::AddVolume(), cm, Construct_Fibers(), Construct_Fibers_SameLengthFiberPerTower(), FatalException, G4Exception(), PHG4CylinderGeom_Spacalv1::get_config(), get_geom_v3(), PHG4Detector::GetDetectorMaterial(), PHG4SpacalDetector::GetDisplayAction(), PHG4Detector::GetName(), PHG4CylinderGeom_Spacalv3::geom_tower::id, PHG4CylinderGeom_Spacalv1::kFullProjective_2DTaper, PHG4CylinderGeom_Spacalv1::kFullProjective_2DTaper_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 78 of file PHG4FullProjSpacalDetector.cc.
View newest version in sPHENIX GitHub at line 78 of file PHG4FullProjSpacalDetector.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 PHG4FullProjSpacalDetector.h.
View newest version in sPHENIX GitHub at line 75 of file PHG4FullProjSpacalDetector.h
References PHG4SpacalDetector::_geom.
Referenced by clone_geom(), Construct_AzimuthalSeg(), Construct_Fibers(), Construct_Fibers_SameLengthFiberPerTower(), Construct_Tower(), ConstructMe(), PHG4FullProjSpacalDetector(), and Print().
|
inlineprivate |
Definition at line 83 of file PHG4FullProjSpacalDetector.h.
View newest version in sPHENIX GitHub at line 83 of file PHG4FullProjSpacalDetector.h
References PHG4SpacalDetector::_geom.
|
overridevirtual |
Reimplemented from PHG4Detector.
Definition at line 557 of file PHG4FullProjSpacalDetector.cc.
View newest version in sPHENIX GitHub at line 557 of file PHG4FullProjSpacalDetector.cc
References get_geom_v3(), PHG4Detector::GetName(), and PHG4CylinderGeom_Spacalv3::Print().