Analysis Software
Documentation for sPHENIX simulation software
|
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 |
Private Attributes | |
PHParameters * | m_Params = nullptr |
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 Member Functions inherited from PHG4SpacalDetector | |
void | AddTowerGeometryNode () |
void | AddCellGeometryNode () |
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 |
int | m_CellBinning = PHG4CellDefs::undefined |
int | m_NumLayers = -1 |
int | m_NumPhiBins = -1 |
int | m_NumEtaBins = -1 |
double | m_Emin = 1e-6 |
double | m_EtaMin = NAN |
double | m_PhiMin = NAN |
double | m_EtaStep = NAN |
double | m_PhiStep = NAN |
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 |
RawTowerGeomContainer * | m_RawTowerGeomContainer = nullptr |
std::string | m_TowerGeomNodeName |
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 55 of file PHG4FullProjTiltedSpacalDetector.cc.
View newest version in sPHENIX GitHub at line 55 of file PHG4FullProjTiltedSpacalDetector.cc
References PHG4SpacalDetector::_geom, assert, 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 109 of file PHG4FullProjTiltedSpacalDetector.cc.
View newest version in sPHENIX GitHub at line 109 of file PHG4FullProjTiltedSpacalDetector.cc
References PHG4SpacalDisplayAction::AddVolume(), assert, PHG4SpacalDetector::block_vol, PHG4SpacalDetector::calo_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, PHG4GDMLConfig::exclude_physical_vol(), PHG4SpacalDetector::gdml_config, PHG4CylinderGeom_Spacalv2::get_assembly_spacing(), PHG4CylinderGeom_Spacalv2::get_azimuthal_n_sec(), PHG4CylinderGeom_Spacalv1::get_construction_verbose(), 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(), PHG4Detector::GetDetectorMaterial(), PHG4SpacalDetector::GetDisplayAction(), PHG4Detector::GetName(), PHG4CylinderGeom_Spacalv3::geom_tower::id, recoConsts::instance(), 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, thickness, to_string(), Acts::UnitConstants::um, PHG4Detector::Verbosity(), and width.
|
virtual |
a block along z axis built with G4Trd that is slightly tapered in x dimension
Definition at line 683 of file PHG4FullProjTiltedSpacalDetector.cc.
View newest version in sPHENIX GitHub at line 683 of file PHG4FullProjTiltedSpacalDetector.cc
References assert, Acts::UnitConstants::cm, PHG4CylinderGeom_Spacalv3::geom_tower::compose_fiber_id(), PHG4SpacalDetector::Construct_Fiber(), 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, 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 |
Fully projective spacal with 2D tapered modules. To speed up construction, same-length fiber is used cross one tower.
Definition at line 546 of file PHG4FullProjTiltedSpacalDetector.cc.
View newest version in sPHENIX GitHub at line 546 of file PHG4FullProjTiltedSpacalDetector.cc
References assert, Acts::UnitConstants::cm, PHG4CylinderGeom_Spacalv3::geom_tower::compose_fiber_id(), PHG4SpacalDetector::Construct_Fiber(), 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, 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 850 of file PHG4FullProjTiltedSpacalDetector.cc.
View newest version in sPHENIX GitHub at line 850 of file PHG4FullProjTiltedSpacalDetector.cc
References PHG4SpacalDetector::_geom, PHG4SpacalDisplayAction::AddMaterial(), PHG4SpacalDisplayAction::AddVolume(), assert, Acts::UnitConstants::cm, double(), 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 Acts::UnitConstants::rad.
Referenced by Construct_AzimuthalSeg().
|
virtual |
a block along z axis built with G4Trd that is slightly tapered in x dimension
Definition at line 783 of file PHG4FullProjTiltedSpacalDetector.cc.
View newest version in sPHENIX GitHub at line 783 of file PHG4FullProjTiltedSpacalDetector.cc
References PHG4SpacalDisplayAction::AddVolume(), assert, Acts::UnitConstants::cm, Acts::UnitConstants::cm3, Construct_Fibers(), Construct_Fibers_SameLengthFiberPerTower(), PHG4CylinderGeom_Spacalv1::get_config(), get_geom_v3(), PHG4Detector::GetDetectorMaterial(), PHG4SpacalDetector::GetDisplayAction(), PHG4Detector::GetName(), PHG4CylinderGeom_Spacalv3::geom_tower::id, PHG4CylinderGeom_Spacalv1::kFullProjective_2DTaper_Tilted, PHG4CylinderGeom_Spacalv1::kFullProjective_2DTaper_Tilted_SameLengthFiberPerTower, gtest_output_test::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 Acts::UnitConstants::rad.
Referenced by Construct_AzimuthalSeg().
|
overridevirtual |
Implements PHG4Detector.
Definition at line 79 of file PHG4FullProjTiltedSpacalDetector.cc.
View newest version in sPHENIX GitHub at line 79 of file PHG4FullProjTiltedSpacalDetector.cc
References PHG4SpacalDetector::AddCellGeometryNode(), PHG4SpacalDetector::AddTowerGeometryNode(), PHG4SpacalDetector::ConstructMe(), Acts::UnitConstants::e, get_geom_v3(), PHParameters::get_int_param(), PHG4Detector::GetName(), and m_Params.
|
inlineprivate |
get the v3 cast of the geometry object
Definition at line 76 of file PHG4FullProjTiltedSpacalDetector.h.
View newest version in sPHENIX GitHub at line 76 of file PHG4FullProjTiltedSpacalDetector.h
References PHG4SpacalDetector::_geom, and assert.
Referenced by clone_geom(), Construct_AzimuthalSeg(), Construct_Fibers(), Construct_Fibers_SameLengthFiberPerTower(), Construct_Tower(), ConstructMe(), PHG4FullProjTiltedSpacalDetector(), and Print().
|
inlineprivate |
Definition at line 84 of file PHG4FullProjTiltedSpacalDetector.h.
View newest version in sPHENIX GitHub at line 84 of file PHG4FullProjTiltedSpacalDetector.h
References PHG4SpacalDetector::_geom, and assert.
|
overridevirtual |
Reimplemented from PHG4Detector.
Definition at line 925 of file PHG4FullProjTiltedSpacalDetector.cc.
View newest version in sPHENIX GitHub at line 925 of file PHG4FullProjTiltedSpacalDetector.cc
References get_geom_v3(), PHG4Detector::GetName(), and PHG4CylinderGeom_Spacalv3::Print().
|
private |
Definition at line 72 of file PHG4FullProjTiltedSpacalDetector.h.
View newest version in sPHENIX GitHub at line 72 of file PHG4FullProjTiltedSpacalDetector.h
Referenced by ConstructMe().