ATLAS Offline Software
Loading...
Searching...
No Matches
ZDC_G4CalibSD.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef ZDCG4CALIBSD_H
6#define ZDCG4CALIBSD_H
7
8#include "G4VSensitiveDetector.hh"
10
14#include "Identifier/Identifier.h"
15#include "ZdcIdentifier/ZdcID.h"
16
17#include <gtest/gtest_prod.h>
18
19class G4Step;
21
22class ZDC_G4CalibSD : public G4VSensitiveDetector
23{
24 FRIEND_TEST( ZDC_G4CalibSDtest, ProcessHits );
25 FRIEND_TEST( ZDC_G4CalibSDtest, EndOfAthenaEvent );
26 FRIEND_TEST( ZDC_G4CalibSDtest, SpecialHit );
27 FRIEND_TEST( ZDC_G4CalibSDtest, SimpleHit );
28public:
29
30 // Constructor
31 ZDC_G4CalibSD(const G4String &a_name, const G4String& hitCollectionName, bool doPID=false);
32
33 // Destructor
34 virtual ~ZDC_G4CalibSD();
35
36 ZDC_G4CalibSD(const ZDC_G4CalibSD&) = delete;
38
39 // Main processing method
40 G4bool ProcessHits(G4Step* a_step,G4TouchableHistory*) override;
41 // For other classes that need to call into us...
42 G4bool SpecialHit(G4Step* a_step, const std::vector<G4double>& a_energies);
43 // End of athena event processing
44 void EndOfAthenaEvent();
45
46
47protected:
48 //Add hit either from ProcessHits or SpecialHit to the collection
49 G4bool SimpleHit( const Identifier& id, const std::vector<double>& energies );
50
51 private:
53 std::map< uint32_t, CaloCalibrationHit* > m_hitMap;
54 std::vector<G4double> m_energies;
55
56 // Count the number of invalid hits.
58 // Are we set up to run with PID hits?
59 G4bool m_doPID;
63};
64
65#endif
Handle class for recording to StoreGate.
This class implements the calculations requires to categorize the energies deposited during the simul...
CaloG4::SimulationEnergies * m_simulationEnergies
std::vector< G4double > m_energies
ZDC_G4CalibSD & operator=(const ZDC_G4CalibSD &)=delete
std::map< uint32_t, CaloCalibrationHit * > m_hitMap
G4bool SimpleHit(const Identifier &id, const std::vector< double > &energies)
ZDC_EscapedEnergyProcessing * m_zdc_eep
G4int m_numberInvalidHits
G4bool SpecialHit(G4Step *a_step, const std::vector< G4double > &a_energies)
FRIEND_TEST(ZDC_G4CalibSDtest, SpecialHit)
virtual ~ZDC_G4CalibSD()
FRIEND_TEST(ZDC_G4CalibSDtest, ProcessHits)
ZDC_G4CalibSD(const G4String &a_name, const G4String &hitCollectionName, bool doPID=false)
FRIEND_TEST(ZDC_G4CalibSDtest, SimpleHit)
G4bool ProcessHits(G4Step *a_step, G4TouchableHistory *) override
FRIEND_TEST(ZDC_G4CalibSDtest, EndOfAthenaEvent)
ZDC_G4CalibSD(const ZDC_G4CalibSD &)=delete
SG::WriteHandle< CaloCalibrationHitContainer > m_HitColl
Identifier m_id