ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
PHG4FullProjSpacalDetector Class Reference

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

+ Inheritance diagram for PHG4FullProjSpacalDetector:
+ Collaboration diagram for PHG4FullProjSpacalDetector:

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 G4LogicalVolumeConstruct_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
 
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 G4LogicalVolumeConstruct_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 G4UserSteppingActionGetSteppingAction ()
 
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
 

Additional Inherited Members

- Static Public Member Functions inherited from PHG4Detector
static G4MaterialGetDetectorMaterial (const std::string &name, const bool quit=true)
 
static G4ElementGetDetectorElement (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
 
G4UserLimitsfiber_core_step_limits = nullptr
 
PHG4GDMLConfiggdml_config = nullptr
 registry for volumes that should not be exported, i.e. fibers
 
SpacalGeom_t_geom = nullptr
 

Detailed Description

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

Member Typedef Documentation

Definition at line 36 of file PHG4FullProjSpacalDetector.h.

View newest version in sPHENIX GitHub at line 36 of file PHG4FullProjSpacalDetector.h

Constructor & Destructor Documentation

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

+ Here is the call graph for this function:

PHG4FullProjSpacalDetector::~PHG4FullProjSpacalDetector ( void  )
inlineoverride

Definition at line 43 of file PHG4FullProjSpacalDetector.h.

View newest version in sPHENIX GitHub at line 43 of file PHG4FullProjSpacalDetector.h

Member Function Documentation

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

+ Here is the call graph for this function:

int PHG4FullProjSpacalDetector::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 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().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int PHG4FullProjSpacalDetector::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 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().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4LogicalVolume * PHG4FullProjSpacalDetector::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 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().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

+ Here is the call graph for this function:

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

+ Here is the caller graph for this function:

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

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

+ Here is the call graph for this function:


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