8#ifndef SIMCORE_ECALSD_H_
9#define SIMCORE_ECALSD_H_
15#include "SimCore/G4User/TrackMap.h"
17#include "SimCore/SDs/SensitiveDetector.h"
21#include "G4Polyhedra.hh"
22#include "G4Polyhedron.hh"
24#include "G4StepPoint.hh"
60 virtual bool isSensDet(G4LogicalVolume* vol)
const override {
61 auto region = vol->GetRegion();
62 if (region and region->GetName().contains(
"CalorimeterRegion")) {
63 return vol->GetName().contains(
"Si");
60 virtual bool isSensDet(G4LogicalVolume* vol)
const override {
…}
73 G4bool
ProcessHits(G4Step* aStep, G4TouchableHistory* ROhist)
override;
87 std::map<ldmx::EcalID, ldmx::SimCalorimeterHit>
hits_;
Class that translates raw positions of ECal module hits into cells in a hexagonal readout.
Class that defines an ECal detector ID with a cell number.
Class which stores simulated calorimeter hit information.
Class which implements the user tracking action.
Implements an event buffer system for storing event data.
Class encapsulating parameters for configuring a processor.
Handle to the conditions system, provided at construction to classes which require it.
ECal sensitive detector that uses an EcalHexReadout to create the hits.
static const std::string COLLECTION_NAME
Name of output collection of hits.
bool compressHitContribs_
compress hit contribs
std::map< ldmx::EcalID, ldmx::SimCalorimeterHit > hits_
map of hits to add to the event (will be squashed)
virtual bool isSensDet(G4LogicalVolume *vol) const override
Should the input volume be consider apart of this sensitive detector?
EcalSD(const std::string &name, simcore::ConditionsInterface &ci, const framework::config::Parameters &p)
Class constructor.
virtual void saveHits(framework::Event &event) override
Add our hits to the event bus.
bool enableHitContribs_
enable hit contribs
int max_origin_track_id_
maximum track ID to be considered an "origin"
G4bool ProcessHits(G4Step *aStep, G4TouchableHistory *ROhist) override
Process steps to create hits.
virtual ~EcalSD()=default
Class destructor.
virtual void OnFinishedEvent() override
Clear the map of hits we have accumulated.
Dynamically loaded Geant4 SensitiveDetector for saving hits in specific volumes within the simulation...
Dynamically loadable photonuclear models either from SimCore or external libraries implementing this ...