ATLAS Offline Software
Loading...
Searching...
No Matches
TruthStrategyManager Class Reference

Singleton class for creating truth incidents. More...

#include <TruthStrategyManager.h>

Collaboration diagram for TruthStrategyManager:

Public Member Functions

bool CreateTruthIncident (const G4Step *, int subDetVolLevel) const
 Returns true if any of the truth strategies return true.
void SetISFTruthSvc (ISF::ITruthSvc *truthSvc)
 Define which ISF TruthService to use.
void SetISFGeoIDSvc (ISF::IGeoIDSvc *geoIDSvc)
 Define which ISF GeoIDSvc to use.

Static Public Member Functions

static const TruthStrategyManagerGetStrategyManager ()
 Retrieve the (const) singleton instance.
static TruthStrategyManager &GetStrategyManager_nc ATLAS_NOT_THREAD_SAFE ()
 Retrieve the (non-const) singleton instance.

Private Member Functions

 TruthStrategyManager ()
 TruthStrategyManager (const TruthStrategyManager &)=delete
TruthStrategyManageroperator= (const TruthStrategyManager &)=delete

Private Attributes

ISF::ITruthSvcm_truthSvc
 ISF Services the TruthStrategyManager talks to.
ISF::IGeoIDSvcm_geoIDSvc

Detailed Description

Singleton class for creating truth incidents.

This class is gradually being refactored out of existence.

Definition at line 22 of file TruthStrategyManager.h.

Constructor & Destructor Documentation

◆ TruthStrategyManager() [1/2]

TruthStrategyManager::TruthStrategyManager ( )
private

Definition at line 36 of file TruthStrategyManager.cxx.

37 : m_truthSvc(nullptr)
38 , m_geoIDSvc(nullptr)
39{
40}
ISF::ITruthSvc * m_truthSvc
ISF Services the TruthStrategyManager talks to.
ISF::IGeoIDSvc * m_geoIDSvc

◆ TruthStrategyManager() [2/2]

TruthStrategyManager::TruthStrategyManager ( const TruthStrategyManager & )
privatedelete

Member Function Documentation

◆ ATLAS_NOT_THREAD_SAFE()

TruthStrategyManager &GetStrategyManager_nc TruthStrategyManager::ATLAS_NOT_THREAD_SAFE ( )
static

Retrieve the (non-const) singleton instance.

◆ CreateTruthIncident()

bool TruthStrategyManager::CreateTruthIncident ( const G4Step * aStep,
int subDetVolLevel ) const

Returns true if any of the truth strategies return true.

Definition at line 64 of file TruthStrategyManager.cxx.

65{
67
68 auto* atlasG4EvtUserInfo = static_cast<AtlasG4EventUserInfo*> (G4EventManager::GetEventManager()->GetConstCurrentEvent()->GetUserInformation());
69
70 // This is pretty ugly and but necessary because the Geant4TruthIncident
71 // requires an ISFParticle at this point.
72 // TODO: cleanup Geant4TruthIncident to not require an ISFParticle instance any longer
73 const Amg::Vector3D myPos(0,0,0);
74 const Amg::Vector3D myMom(0,0,0);
75 const double myMass = 0.0;
76 const double myCharge = 0.0;
77 const int myPdgCode = 0;
78 const int mystatus = 3333;
79 const double myTime =0.;
80 const int myID = HepMC::UNDEFINED_ID;
82 ISF::ISFParticle myISFParticle(myPos, myMom, myMass, myCharge, myPdgCode, mystatus, myTime, origin, myID);
83
84 iGeant4::Geant4TruthIncident truth(aStep, myISFParticle, geoID, atlasG4EvtUserInfo);
85
86 m_truthSvc->registerTruthIncident(truth);
87 return false;
88}
static AtlasDetDescr::AtlasRegion nextGeoId(const G4Step *aStep, int truthVolLevel, ISF::IGeoIDSvc *geoIDSvc)
Eigen::Matrix< double, 3, 1 > Vector3D
AtlasRegion
A simple enum of ATLAS regions and sub-detectors.
Definition AtlasRegion.h:21
constexpr int UNDEFINED_ID
std::pair< AtlasDetDescr::AtlasRegion, ISF::SimSvcID > DetRegionSvcIDPair
the datatype to be used to store each individual particle hop
Definition ISFParticle.h:30
@ fUndefinedSimID
Definition SimSvcID.h:32

◆ GetStrategyManager()

const TruthStrategyManager & TruthStrategyManager::GetStrategyManager ( )
static

Retrieve the (const) singleton instance.

Definition at line 42 of file TruthStrategyManager.cxx.

43{
44 static const TruthStrategyManager theMgr;
45 return theMgr;
46}

◆ operator=()

TruthStrategyManager & TruthStrategyManager::operator= ( const TruthStrategyManager & )
privatedelete

◆ SetISFGeoIDSvc()

void TruthStrategyManager::SetISFGeoIDSvc ( ISF::IGeoIDSvc * geoIDSvc)

Define which ISF GeoIDSvc to use.

Definition at line 59 of file TruthStrategyManager.cxx.

60{
61 m_geoIDSvc = geoIDSvc;
62}

◆ SetISFTruthSvc()

void TruthStrategyManager::SetISFTruthSvc ( ISF::ITruthSvc * truthSvc)

Define which ISF TruthService to use.

Definition at line 53 of file TruthStrategyManager.cxx.

54{
55 m_truthSvc = truthSvc;
56}

Member Data Documentation

◆ m_geoIDSvc

ISF::IGeoIDSvc* TruthStrategyManager::m_geoIDSvc
private

Definition at line 49 of file TruthStrategyManager.h.

◆ m_truthSvc

ISF::ITruthSvc* TruthStrategyManager::m_truthSvc
private

ISF Services the TruthStrategyManager talks to.

Definition at line 48 of file TruthStrategyManager.h.


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