ATLAS Offline Software
CaloCellContainerSD.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef ISF_FASTCALOSIMPARAMETRIZATION_CALOCELLCONTAINERSD_H
6 #define ISF_FASTCALOSIMPARAMETRIZATION_CALOCELLCONTAINERSD_H
7 
8 /* Base class header */
9 #include "G4VSensitiveDetector.hh"
10 /* Athena WriteHandle include */
11 #include "StoreGate/WriteHandle.h"
12 /* Empty cell builder interface include */
14 /* CaloCellContainer include */
16 
17 
18 class G4TouchableHistory;
20 
21 class CaloCellContainerSD : public G4VSensitiveDetector
22 {
23 public:
24  CaloCellContainerSD(const std::string& name, const std::string& CaloCellContainerName, PublicToolHandle<ICaloCellMakerTool> FastHitConvertTool);
26 
27  // Start of *ATHENA* event
28  void StartOfAthenaEvent(const EventContext& ctx);
29 
30  // End of *ATHENA* event
31  void EndOfAthenaEvent(const EventContext& ctx);
32 
33  // Needs to be implemented, but is not used for this SD
34  G4bool ProcessHits(G4Step*, G4TouchableHistory*) override final;
35 
36  // Method to record the cells from a TFCSSimulationState
38 
39 protected:
40  // The empty cell builder tool to initialize an empty calo cell container
41  PublicToolHandle<ICaloCellMakerTool> m_EmptyCellBuilderTool;
42  // The write handle to the CaloCellContainer
44  // Fast hit converter - converts CaloCells into LAr and Tile Hits - takes into account sampling fractions
45  PublicToolHandle<ICaloCellMakerTool> m_FastHitConvertTool;
46 
47 
48 };
49 
50 #endif // ISF_FASTCALOSIMPARAMETRIZATION_CALOCELLCONTAINERSD_H
CaloCellContainerSD::CaloCellContainerSD
CaloCellContainerSD(const std::string &name, const std::string &CaloCellContainerName, PublicToolHandle< ICaloCellMakerTool > FastHitConvertTool)
Definition: CaloCellContainerSD.cxx:17
FastHitConvertTool
Definition: FastHitConvertTool.h:51
CaloCellContainerSD::recordCells
void recordCells(TFCSSimulationState &)
Definition: CaloCellContainerSD.cxx:65
CaloCellContainerSD::m_EmptyCellBuilderTool
PublicToolHandle< ICaloCellMakerTool > m_EmptyCellBuilderTool
Definition: CaloCellContainerSD.h:41
CaloCellContainerSD::m_caloCellContainer
SG::WriteHandle< CaloCellContainer > m_caloCellContainer
Definition: CaloCellContainerSD.h:43
CaloCellContainerSD
Definition: CaloCellContainerSD.h:22
WriteHandle.h
Handle class for recording to StoreGate.
CaloCellContainerSD::m_FastHitConvertTool
PublicToolHandle< ICaloCellMakerTool > m_FastHitConvertTool
Definition: CaloCellContainerSD.h:45
CaloCellContainerSD::ProcessHits
G4bool ProcessHits(G4Step *, G4TouchableHistory *) override final
Definition: CaloCellContainerSD.cxx:57
CaloCellContainerSD::EndOfAthenaEvent
void EndOfAthenaEvent(const EventContext &ctx)
Definition: CaloCellContainerSD.cxx:43
TBMuToCaloAlg_jobOptions.CaloCellContainerName
CaloCellContainerName
Definition: TBMuToCaloAlg_jobOptions.py:9
CaloCellContainerSD::StartOfAthenaEvent
void StartOfAthenaEvent(const EventContext &ctx)
Definition: CaloCellContainerSD.cxx:30
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
CaloCellContainer.h
ICaloCellMakerTool.h
SG::WriteHandle< CaloCellContainer >
CaloCellContainerSD::~CaloCellContainerSD
~CaloCellContainerSD()
Definition: CaloCellContainerSD.h:25
TFCSSimulationState
Definition: TFCSSimulationState.h:32