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

#include <fun4all_eicdetectors/blob/master/simulation/g4simulation/g4lumi/EICG4LumiDetector.h>

+ Inheritance diagram for EICG4LumiDetector:
+ Collaboration diagram for EICG4LumiDetector:

Public Member Functions

 EICG4LumiDetector (PHG4Subsystem *subsys, PHCompositeNode *Node, PHParameters *parameters, const std::string &dnam, const int layer=0)
 constructor
 
virtual ~EICG4LumiDetector () override
 destructor
 
void ConstructMe (G4LogicalVolume *world) override
 construct
 
void Print (const std::string &what="ALL") const override
 
int GetDetId (G4VPhysicalVolume *) const
 
void SuperDetector (const std::string &name)
 
const std::string SuperDetector () const
 
int get_Layer () const
 
void AddLumiWindow (G4ThreeVector size, G4ThreeVector pos, double angle, std::string material, G4LogicalVolume *logicWorld)
 
G4ThreeVector AddLumiExitWindow (G4ThreeVector size, G4ThreeVector pos, double factor, double angle, std::string material, G4LogicalVolume *logicWorld)
 
void AddLumiMag_OuterVessel (G4ThreeVector size, G4ThreeVector pos, std::string material, G4LogicalVolume *logicWorld)
 
void AddLumiMag_MagCore (G4ThreeVector size, G4ThreeVector pos, double Bx, std::string material, G4LogicalVolume *logicWorld)
 
void AddTriangularTrapezoid (G4ThreeVector size, G4ThreeVector pos, double angle, std::string material, G4LogicalVolume *logicWorld)
 
void AddCuboid (G4ThreeVector Wsize, G4ThreeVector Wpos, G4ThreeVector Msize, G4ThreeVector Mpos, double angle, std::string material, G4LogicalVolume *logicWorld)
 
G4LogicalVolumeAddRecCone (G4ThreeVector Wsize, G4ThreeVector Wpos, G4ThreeVector Msize, G4ThreeVector Mpos, G4ThreeVector Tr2size, G4ThreeVector Tr2pos, double angle, std::string material, G4LogicalVolume *logicWorld)
 
void AddExitWindowForV2 (G4ThreeVector size, G4ThreeVector pos_daug, double angle, std::string material, G4LogicalVolume *logicRecCone)
 
void AddLumiTracker (std::string name, int copyNum, G4ThreeVector size, G4ThreeVector pos, G4LogicalVolume *logicRecCone)
 
void AddCAL (std::string name, G4ThreeVector size, G4ThreeVector pos, int total_tower, G4LogicalVolume *logicWorld)
 
G4LogicalVolumeMakeTower (G4double calorSizeXY, G4double calorEMZ)
 
void AddExitWindowForV3 (G4ThreeVector Wsize, G4ThreeVector Wpos, G4ThreeVector Tr2size, G4ThreeVector Tr2pos, std::string material, G4LogicalVolume *logicWorld)
 
PHParametersgetParams ()
 
volume accessors
int IsInDetector (G4VPhysicalVolume *) const
 
int IsInVirtualDetector (G4VPhysicalVolume *) const
 
- 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 Attributes

PHParametersm_Params
 
std::set< G4VPhysicalVolume * > m_ActivePhysicalVolumesSet
 
std::map< G4VPhysicalVolume
*, int
m_VirtualPhysicalVolumesMap
 
std::set< G4VPhysicalVolume * > m_PassivePhysicalVolumesSet
 
int m_Layer
 
std::string m_SuperDetector
 
std::string m_Name
 

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)
 

Detailed Description

Definition at line 55 of file EICG4LumiDetector.h.

View newest version in sPHENIX GitHub at line 55 of file EICG4LumiDetector.h

Constructor & Destructor Documentation

EICG4LumiDetector::EICG4LumiDetector ( PHG4Subsystem subsys,
PHCompositeNode Node,
PHParameters parameters,
const std::string &  dnam,
const int  layer = 0 
)

constructor

Definition at line 65 of file EICG4LumiDetector.cc.

View newest version in sPHENIX GitHub at line 65 of file EICG4LumiDetector.cc

virtual EICG4LumiDetector::~EICG4LumiDetector ( )
inlineoverridevirtual

destructor

Definition at line 62 of file EICG4LumiDetector.h.

View newest version in sPHENIX GitHub at line 62 of file EICG4LumiDetector.h

Member Function Documentation

void EICG4LumiDetector::AddCAL ( std::string  name,
G4ThreeVector  size,
G4ThreeVector  pos,
int  total_tower,
G4LogicalVolume logicWorld 
)

Definition at line 530 of file EICG4LumiDetector.cc.

View newest version in sPHENIX GitHub at line 530 of file EICG4LumiDetector.cc

References G4VisAttributes::GetInvisible(), G4LogicalVolume::GetName(), G4NistManager::Instance(), MakeTower(), PHG4Detector::OverlapCheck(), G4LogicalVolume::SetVisAttributes(), CLHEP::Hep3Vector::x(), CLHEP::Hep3Vector::y(), and CLHEP::Hep3Vector::z().

Referenced by ConstructMe().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void EICG4LumiDetector::AddCuboid ( G4ThreeVector  Wsize,
G4ThreeVector  Wpos,
G4ThreeVector  Msize,
G4ThreeVector  Mpos,
double  angle,
std::string  material,
G4LogicalVolume logicWorld 
)

Definition at line 437 of file EICG4LumiDetector.cc.

View newest version in sPHENIX GitHub at line 437 of file EICG4LumiDetector.cc

References PHG4Detector::GetDetectorMaterial(), m_PassivePhysicalVolumesSet, PHG4Detector::OverlapCheck(), G4VisAttributes::SetForceSolid(), G4LogicalVolume::SetVisAttributes(), CLHEP::Hep3Vector::x(), CLHEP::Hep3Vector::y(), and CLHEP::Hep3Vector::z().

Referenced by ConstructMe().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void EICG4LumiDetector::AddExitWindowForV2 ( G4ThreeVector  size,
G4ThreeVector  pos_daug,
double  angle,
std::string  material,
G4LogicalVolume logicRecCone 
)

Definition at line 478 of file EICG4LumiDetector.cc.

View newest version in sPHENIX GitHub at line 478 of file EICG4LumiDetector.cc

References PHG4Detector::GetDetectorMaterial(), m_PassivePhysicalVolumesSet, PHG4Detector::OverlapCheck(), G4VisAttributes::SetForceSolid(), G4LogicalVolume::SetVisAttributes(), CLHEP::Hep3Vector::x(), CLHEP::Hep3Vector::y(), and CLHEP::Hep3Vector::z().

Referenced by ConstructMe().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void EICG4LumiDetector::AddExitWindowForV3 ( G4ThreeVector  Wsize,
G4ThreeVector  Wpos,
G4ThreeVector  Tr2size,
G4ThreeVector  Tr2pos,
std::string  material,
G4LogicalVolume logicWorld 
)

Definition at line 511 of file EICG4LumiDetector.cc.

View newest version in sPHENIX GitHub at line 511 of file EICG4LumiDetector.cc

References cm, PHG4Detector::GetDetectorMaterial(), m_PassivePhysicalVolumesSet, PHG4Detector::OverlapCheck(), pos(), G4VisAttributes::SetForceSolid(), G4LogicalVolume::SetVisAttributes(), CLHEP::Hep3Vector::x(), CLHEP::Hep3Vector::y(), and CLHEP::Hep3Vector::z().

Referenced by ConstructMe().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4ThreeVector EICG4LumiDetector::AddLumiExitWindow ( G4ThreeVector  size,
G4ThreeVector  pos,
double  factor,
double  angle,
std::string  material,
G4LogicalVolume logicWorld 
)

Definition at line 325 of file EICG4LumiDetector.cc.

View newest version in sPHENIX GitHub at line 325 of file EICG4LumiDetector.cc

References PHG4Detector::GetDetectorMaterial(), m_PassivePhysicalVolumesSet, PHG4Detector::OverlapCheck(), G4VisAttributes::SetForceSolid(), CLHEP::Hep3Vector::x(), CLHEP::Hep3Vector::y(), and CLHEP::Hep3Vector::z().

+ Here is the call graph for this function:

void EICG4LumiDetector::AddLumiMag_MagCore ( G4ThreeVector  size,
G4ThreeVector  pos,
double  Bx,
std::string  material,
G4LogicalVolume logicWorld 
)

Definition at line 367 of file EICG4LumiDetector.cc.

View newest version in sPHENIX GitHub at line 367 of file EICG4LumiDetector.cc

References cm, G4FieldManager::CreateChordFinder(), deg, PHG4Detector::GetDetectorMaterial(), G4VisAttributes::GetInvisible(), m_PassivePhysicalVolumesSet, PHG4Detector::OverlapCheck(), G4FieldManager::SetDetectorField(), CLHEP::Hep3Vector::x(), CLHEP::Hep3Vector::y(), and CLHEP::Hep3Vector::z().

Referenced by ConstructMe().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void EICG4LumiDetector::AddLumiMag_OuterVessel ( G4ThreeVector  size,
G4ThreeVector  pos,
std::string  material,
G4LogicalVolume logicWorld 
)

Definition at line 349 of file EICG4LumiDetector.cc.

View newest version in sPHENIX GitHub at line 349 of file EICG4LumiDetector.cc

References deg, PHG4Detector::GetDetectorMaterial(), m_PassivePhysicalVolumesSet, PHG4Detector::OverlapCheck(), G4VisAttributes::SetForceSolid(), CLHEP::Hep3Vector::x(), CLHEP::Hep3Vector::y(), and CLHEP::Hep3Vector::z().

Referenced by ConstructMe().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void EICG4LumiDetector::AddLumiTracker ( std::string  name,
int  copyNum,
G4ThreeVector  size,
G4ThreeVector  pos,
G4LogicalVolume logicRecCone 
)

Definition at line 493 of file EICG4LumiDetector.cc.

View newest version in sPHENIX GitHub at line 493 of file EICG4LumiDetector.cc

References G4NistManager::Instance(), m_ActivePhysicalVolumesSet, PHG4Detector::OverlapCheck(), G4VisAttributes::SetForceSolid(), G4LogicalVolume::SetVisAttributes(), CLHEP::Hep3Vector::x(), CLHEP::Hep3Vector::y(), and CLHEP::Hep3Vector::z().

Referenced by ConstructMe().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void EICG4LumiDetector::AddLumiWindow ( G4ThreeVector  size,
G4ThreeVector  pos,
double  angle,
std::string  material,
G4LogicalVolume logicWorld 
)

Definition at line 302 of file EICG4LumiDetector.cc.

View newest version in sPHENIX GitHub at line 302 of file EICG4LumiDetector.cc

References cm, PHG4Detector::GetDetectorMaterial(), m_PassivePhysicalVolumesSet, PHG4Detector::OverlapCheck(), G4VisAttributes::SetForceSolid(), CLHEP::Hep3Vector::x(), CLHEP::Hep3Vector::y(), and CLHEP::Hep3Vector::z().

Referenced by ConstructMe().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

G4LogicalVolume * EICG4LumiDetector::AddRecCone ( G4ThreeVector  Wsize,
G4ThreeVector  Wpos,
G4ThreeVector  Msize,
G4ThreeVector  Mpos,
G4ThreeVector  Tr2size,
G4ThreeVector  Tr2pos,
double  angle,
std::string  material,
G4LogicalVolume logicWorld 
)

Definition at line 459 of file EICG4LumiDetector.cc.

View newest version in sPHENIX GitHub at line 459 of file EICG4LumiDetector.cc

References cm, PHG4Detector::GetDetectorMaterial(), m_PassivePhysicalVolumesSet, PHG4Detector::OverlapCheck(), G4VisAttributes::SetForceSolid(), G4LogicalVolume::SetVisAttributes(), CLHEP::Hep3Vector::x(), CLHEP::Hep3Vector::y(), and CLHEP::Hep3Vector::z().

Referenced by ConstructMe().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void EICG4LumiDetector::AddTriangularTrapezoid ( G4ThreeVector  size,
G4ThreeVector  pos,
double  angle,
std::string  material,
G4LogicalVolume logicWorld 
)

Definition at line 390 of file EICG4LumiDetector.cc.

View newest version in sPHENIX GitHub at line 390 of file EICG4LumiDetector.cc

References PHG4Detector::GetDetectorMaterial(), m_PassivePhysicalVolumesSet, PHG4Detector::OverlapCheck(), G4VisAttributes::SetForceSolid(), G4LogicalVolume::SetVisAttributes(), CLHEP::Hep3Vector::x(), x1, x2, x3, CLHEP::Hep3Vector::y(), y1, y2, and y3.

Referenced by ConstructMe().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void EICG4LumiDetector::ConstructMe ( G4LogicalVolume world)
overridevirtual

construct

Implements PHG4Detector.

Definition at line 113 of file EICG4LumiDetector.cc.

View newest version in sPHENIX GitHub at line 113 of file EICG4LumiDetector.cc

References AddCAL(), AddCuboid(), AddExitWindowForV2(), AddExitWindowForV3(), AddLumiMag_MagCore(), AddLumiMag_OuterVessel(), AddLumiTracker(), AddLumiWindow(), AddRecCone(), AddTriangularTrapezoid(), cm, PHParameters::get_double_param(), PHParameters::get_int_param(), PHParameters::get_string_param(), m_Params, rad, tesla, PHG4Detector::Verbosity(), CLHEP::Hep3Vector::x(), CLHEP::Hep3Vector::y(), and CLHEP::Hep3Vector::z().

+ Here is the call graph for this function:

int EICG4LumiDetector::get_Layer ( ) const
inline

Definition at line 80 of file EICG4LumiDetector.h.

View newest version in sPHENIX GitHub at line 80 of file EICG4LumiDetector.h

References m_Layer.

int EICG4LumiDetector::GetDetId ( G4VPhysicalVolume volume) const

Definition at line 101 of file EICG4LumiDetector.cc.

View newest version in sPHENIX GitHub at line 101 of file EICG4LumiDetector.cc

References IsInDetector().

+ Here is the call graph for this function:

PHParameters * EICG4LumiDetector::getParams ( )

Definition at line 296 of file EICG4LumiDetector.cc.

View newest version in sPHENIX GitHub at line 296 of file EICG4LumiDetector.cc

References m_Params.

int EICG4LumiDetector::IsInDetector ( G4VPhysicalVolume volume) const

Definition at line 76 of file EICG4LumiDetector.cc.

View newest version in sPHENIX GitHub at line 76 of file EICG4LumiDetector.cc

References m_ActivePhysicalVolumesSet.

Referenced by GetDetId(), and EICG4LumiSteppingAction::UserSteppingAction().

+ Here is the caller graph for this function:

int EICG4LumiDetector::IsInVirtualDetector ( G4VPhysicalVolume volume) const

Definition at line 89 of file EICG4LumiDetector.cc.

View newest version in sPHENIX GitHub at line 89 of file EICG4LumiDetector.cc

References m_VirtualPhysicalVolumesMap.

Referenced by EICG4LumiSteppingAction::UserSteppingAction().

+ Here is the caller graph for this function:

G4LogicalVolume * EICG4LumiDetector::MakeTower ( G4double  calorSizeXY,
G4double  calorEMZ 
)

Definition at line 575 of file EICG4LumiDetector.cc.

View newest version in sPHENIX GitHub at line 575 of file EICG4LumiDetector.cc

References a, G4Material::AddElement(), G4Material::AddMaterial(), cm3, deg, G4NistManager::FindOrBuildMaterial(), Acts::UnitConstants::g, PHG4Detector::GetDetectorMaterial(), G4VisAttributes::GetInvisible(), Acts::UnitConstants::h, G4NistManager::Instance(), int(), m_ActivePhysicalVolumesSet, m_Name, m_PassivePhysicalVolumesSet, mm, mole, offset, PHG4Detector::OverlapCheck(), perCent, G4VisAttributes::SetForceAuxEdgeVisible(), and G4LogicalVolume::SetVisAttributes().

Referenced by AddCAL().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void EICG4LumiDetector::Print ( const std::string &  what = "ALL") const
overridevirtual

Reimplemented from PHG4Detector.

Definition at line 282 of file EICG4LumiDetector.cc.

View newest version in sPHENIX GitHub at line 282 of file EICG4LumiDetector.cc

References m_Params, and PHParameters::Print().

Referenced by EICG4LumiSubsystem::Print().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void EICG4LumiDetector::SuperDetector ( const std::string &  name)
inline

Definition at line 78 of file EICG4LumiDetector.h.

View newest version in sPHENIX GitHub at line 78 of file EICG4LumiDetector.h

References m_SuperDetector.

Referenced by EICG4LumiSubsystem::InitRunSubsystem(), and EICG4LumiSteppingAction::UserSteppingAction().

+ Here is the caller graph for this function:

const std::string EICG4LumiDetector::SuperDetector ( ) const
inline

Definition at line 79 of file EICG4LumiDetector.h.

View newest version in sPHENIX GitHub at line 79 of file EICG4LumiDetector.h

References m_SuperDetector.

Member Data Documentation

std::set<G4VPhysicalVolume *> EICG4LumiDetector::m_ActivePhysicalVolumesSet
private

Definition at line 113 of file EICG4LumiDetector.h.

View newest version in sPHENIX GitHub at line 113 of file EICG4LumiDetector.h

Referenced by AddLumiTracker(), IsInDetector(), and MakeTower().

int EICG4LumiDetector::m_Layer
private

Definition at line 119 of file EICG4LumiDetector.h.

View newest version in sPHENIX GitHub at line 119 of file EICG4LumiDetector.h

Referenced by get_Layer().

std::string EICG4LumiDetector::m_Name
private

Definition at line 122 of file EICG4LumiDetector.h.

View newest version in sPHENIX GitHub at line 122 of file EICG4LumiDetector.h

Referenced by MakeTower().

PHParameters* EICG4LumiDetector::m_Params
private

Definition at line 110 of file EICG4LumiDetector.h.

View newest version in sPHENIX GitHub at line 110 of file EICG4LumiDetector.h

Referenced by ConstructMe(), getParams(), and Print().

std::set<G4VPhysicalVolume *> EICG4LumiDetector::m_PassivePhysicalVolumesSet
private
std::string EICG4LumiDetector::m_SuperDetector
private

Definition at line 120 of file EICG4LumiDetector.h.

View newest version in sPHENIX GitHub at line 120 of file EICG4LumiDetector.h

Referenced by SuperDetector().

std::map<G4VPhysicalVolume *, int> EICG4LumiDetector::m_VirtualPhysicalVolumesMap
private

Definition at line 115 of file EICG4LumiDetector.h.

View newest version in sPHENIX GitHub at line 115 of file EICG4LumiDetector.h

Referenced by IsInVirtualDetector().


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