Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
PHG4FullProjTiltedSpacalDetector Class Reference

Fully projective SPACAL built from 2D tapered modules and allow azimuthal tilts. More...

#include <coresoftware/blob/master/simulation/g4simulation/g4detectors/PHG4FullProjTiltedSpacalDetector.h>

+ Inheritance diagram for PHG4FullProjTiltedSpacalDetector:
+ Collaboration diagram for PHG4FullProjTiltedSpacalDetector:

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
 
PHG4CylinderGeomclone_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_tget_geom () const
 
PHG4SpacalDisplayActionGetDisplayAction ()
 
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 PHCompositeNodetopNode ()
 
virtual PHG4SubsystemGetMySubsystem ()
 

Private Member Functions

SpacalGeom_tget_geom_v3 ()
 get the v3 cast of the geometry object
 
const SpacalGeom_tget_geom_v3 () const
 

Private Attributes

PHParametersm_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
 
PHG4GDMLConfiggdml_config = nullptr
 registry for volumes that should not be exported, i.e. fibers
 
SpacalGeom_t_geom = nullptr
 
RawTowerGeomContainerm_RawTowerGeomContainer = nullptr
 
std::string m_TowerGeomNodeName
 

Detailed Description

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

Member Typedef Documentation

Definition at line 34 of file PHG4FullProjTiltedSpacalDetector.h.

View newest version in sPHENIX GitHub at line 34 of file PHG4FullProjTiltedSpacalDetector.h

Constructor & Destructor Documentation

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().

+ Here is the call graph for this function:

PHG4FullProjTiltedSpacalDetector::~PHG4FullProjTiltedSpacalDetector ( void  )
inlineoverride

Definition at line 40 of file PHG4FullProjTiltedSpacalDetector.h.

View newest version in sPHENIX GitHub at line 40 of file PHG4FullProjTiltedSpacalDetector.h

Member Function Documentation

PHG4CylinderGeom* PHG4FullProjTiltedSpacalDetector::clone_geom ( ) const
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().

+ Here is the call graph for this function:

std::pair< G4LogicalVolume *, G4Transform3D > PHG4FullProjTiltedSpacalDetector::Construct_AzimuthalSeg ( )
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.

+ Here is the call graph for this function:

int PHG4FullProjTiltedSpacalDetector::Construct_Fibers ( const SpacalGeom_t::geom_tower tower,
G4LogicalVolume *  LV_tower 
)
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().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int PHG4FullProjTiltedSpacalDetector::Construct_Fibers_SameLengthFiberPerTower ( const SpacalGeom_t::geom_tower tower,
G4LogicalVolume *  LV_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().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4LogicalVolume * PHG4FullProjTiltedSpacalDetector::Construct_LightGuide ( const SpacalGeom_t::geom_tower tower,
const int  index_x,
const int  index_y 
)
virtual
G4LogicalVolume * PHG4FullProjTiltedSpacalDetector::Construct_Tower ( const SpacalGeom_t::geom_tower tower)
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().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void PHG4FullProjTiltedSpacalDetector::ConstructMe ( G4LogicalVolume *  world)
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.

+ Here is the call graph for this function:

SpacalGeom_t* PHG4FullProjTiltedSpacalDetector::get_geom_v3 ( )
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().

+ Here is the caller graph for this function:

const SpacalGeom_t* PHG4FullProjTiltedSpacalDetector::get_geom_v3 ( ) const
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.

void PHG4FullProjTiltedSpacalDetector::Print ( const std::string &  what = "ALL") const
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().

+ Here is the call graph for this function:

Member Data Documentation

PHParameters* PHG4FullProjTiltedSpacalDetector::m_Params = nullptr
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().


The documentation for this class was generated from the following files: