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

#include <CaloCellContainerSD.h>

Inheritance diagram for CaloCellContainerSD:
Collaboration diagram for CaloCellContainerSD:

Public Member Functions

 CaloCellContainerSD (const std::string &name, const std::string &CaloCellContainerName)
 ~CaloCellContainerSD ()
void Initialize (G4HCofThisEvent *) override final
G4bool ProcessHits (G4Step *, G4TouchableHistory *) override final
void recordCells (TFCSSimulationState &)

Protected Member Functions

CaloCellContainergetCaloCellContainer () const

Protected Attributes

std::string m_caloCellContainerName
CaloCellContainerm_caloCellContainer {}

Detailed Description

Definition at line 18 of file CaloCellContainerSD.h.

Constructor & Destructor Documentation

◆ CaloCellContainerSD()

CaloCellContainerSD::CaloCellContainerSD ( const std::string & name,
const std::string & CaloCellContainerName )

Definition at line 20 of file CaloCellContainerSD.cxx.

22 : G4VSensitiveDetector(name)
23 , m_caloCellContainerName(CaloCellContainerName)
24{
25}
std::string m_caloCellContainerName

◆ ~CaloCellContainerSD()

CaloCellContainerSD::~CaloCellContainerSD ( )
inline

Definition at line 22 of file CaloCellContainerSD.h.

22{}

Member Function Documentation

◆ getCaloCellContainer()

CaloCellContainer * CaloCellContainerSD::getCaloCellContainer ( ) const
protected

Definition at line 61 of file CaloCellContainerSD.cxx.

62{
63 auto* eventManager = G4EventManager::GetEventManager();
64 if (!eventManager) {
65 return nullptr;
66 }
67
68 auto* eventInfo =
69 dynamic_cast<AtlasG4EventUserInfo*>(eventManager->GetUserInformation());
70 if (!eventInfo) {
71 return nullptr;
72 }
73
74 std::shared_ptr<HitCollectionMap> hitCollections = eventInfo->GetHitCollectionMap();
75 auto* builder = hitCollections
76 ? hitCollections->Find<CaloCellContainerBuilder>(m_caloCellContainerName)
77 : nullptr;
78 return builder ? builder->container.get() : nullptr;
79}

◆ Initialize()

void CaloCellContainerSD::Initialize ( G4HCofThisEvent * )
finaloverride

Definition at line 27 of file CaloCellContainerSD.cxx.

28{
30}
CaloCellContainer * m_caloCellContainer
CaloCellContainer * getCaloCellContainer() const

◆ ProcessHits()

G4bool CaloCellContainerSD::ProcessHits ( G4Step * ,
G4TouchableHistory *  )
finaloverride

Definition at line 32 of file CaloCellContainerSD.cxx.

33{
34 // This method needs to be implemented when deriving from G4VSensitiveDetector has no use in this case
35 G4Exception("CaloCellContainerSD", "UndefinedProcessHitsCall", FatalException, "CaloCellContainerSD: Call to undefined ProcessHits.");
36 abort();
37 return true;
38}

◆ recordCells()

void CaloCellContainerSD::recordCells ( TFCSSimulationState & simState)

Definition at line 41 of file CaloCellContainerSD.cxx.

42{
44 // ISF can initialize SDs before the per-G4Event user info is installed.
45 // Refresh from the current event when available to avoid stale caches.
47 }
49 G4Exception("CaloCellContainerSD", "MissingCaloCellContainer", FatalException, "CaloCellContainerSD: Failed to retrieve the event-owned CaloCellContainer.");
50 abort();
51 }
52
53 // Add the energies from the simulation state to the CaloCellContainer
54 for(const auto& icell : simState.cells()) {
55 CaloCell* caloCell =
56 static_cast<CaloCell*>(m_caloCellContainer->findCell(icell.first->calo_hash()));
57 caloCell->addEnergy(icell.second);
58 }
59}
void addEnergy(float energy)
add energy
Definition CaloCell.h:449

Member Data Documentation

◆ m_caloCellContainer

CaloCellContainer* CaloCellContainerSD::m_caloCellContainer {}
protected

Definition at line 38 of file CaloCellContainerSD.h.

38{};

◆ m_caloCellContainerName

std::string CaloCellContainerSD::m_caloCellContainerName
protected

Definition at line 36 of file CaloCellContainerSD.h.


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