ATLAS Offline Software
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 
13 #include "StoreGate/WriteHandle.h"
14 #include "Identifier/Identifier.h"
15 #include "ZdcIdentifier/ZdcID.h"
16 
17 #include <gtest/gtest_prod.h>
18 
19 class G4Step;
21 
22 class 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 );
28 public:
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 
47 protected:
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
ZDC_G4CalibSD::m_id
Identifier m_id
Definition: ZDC_G4CalibSD.h:60
ZDC_G4CalibSD::ZDC_G4CalibSD
ZDC_G4CalibSD(const ZDC_G4CalibSD &)=delete
ZDC_G4CalibSD::FRIEND_TEST
FRIEND_TEST(ZDC_G4CalibSDtest, SpecialHit)
CaloCalibrationHitContainer
Definition: CaloCalibrationHitContainer.h:25
ZDC_G4CalibSD::m_zdc_eep
ZDC_EscapedEnergyProcessing * m_zdc_eep
Definition: ZDC_G4CalibSD.h:62
ZDC_G4CalibSD::SimpleHit
G4bool SimpleHit(const Identifier &id, const std::vector< double > &energies)
Definition: ZDC_G4CalibSD.cxx:59
CaloCalibrationHit.h
ZDC_G4CalibSD::~ZDC_G4CalibSD
virtual ~ZDC_G4CalibSD()
Definition: ZDC_G4CalibSD.cxx:20
ZDC_G4CalibSD::m_HitColl
SG::WriteHandle< CaloCalibrationHitContainer > m_HitColl
Definition: ZDC_G4CalibSD.h:52
ZDC_G4CalibSD::ZDC_G4CalibSD
ZDC_G4CalibSD(const G4String &a_name, const G4String &hitCollectionName, bool doPID=false)
Definition: ZDC_G4CalibSD.cxx:14
CaloG4::SimulationEnergies
Definition: SimulationEnergies.h:47
ZDC_G4CalibSD::m_numberInvalidHits
G4int m_numberInvalidHits
Definition: ZDC_G4CalibSD.h:57
ZDC_G4CalibSD::m_hitMap
std::map< uint32_t, CaloCalibrationHit * > m_hitMap
Definition: ZDC_G4CalibSD.h:53
ZDC_G4CalibSD
Definition: ZDC_G4CalibSD.h:23
ZDC_EscapedEnergyProcessing.h
WriteHandle.h
Handle class for recording to StoreGate.
ZDC_G4CalibSD::EndOfAthenaEvent
void EndOfAthenaEvent()
Definition: ZDC_G4CalibSD.cxx:125
ZDC_G4CalibSD::FRIEND_TEST
FRIEND_TEST(ZDC_G4CalibSDtest, EndOfAthenaEvent)
ZDC_G4CalibSD::FRIEND_TEST
FRIEND_TEST(ZDC_G4CalibSDtest, ProcessHits)
ZDC_G4CalibSD::operator=
ZDC_G4CalibSD & operator=(const ZDC_G4CalibSD &)=delete
ZDC_EscapedEnergyProcessing
Definition: ZDC_EscapedEnergyProcessing.h:33
ZDC_G4CalibSD::m_simulationEnergies
CaloG4::SimulationEnergies * m_simulationEnergies
Definition: ZDC_G4CalibSD.h:61
ZDC_G4CalibSD::SpecialHit
G4bool SpecialHit(G4Step *a_step, const std::vector< G4double > &a_energies)
Definition: ZDC_G4CalibSD.cxx:115
ZDC_G4CalibSD::m_doPID
G4bool m_doPID
Definition: ZDC_G4CalibSD.h:59
ZdcID.h
SG::WriteHandle< CaloCalibrationHitContainer >
ZDC_G4CalibSD::m_energies
std::vector< G4double > m_energies
Definition: ZDC_G4CalibSD.h:54
ZDC_G4CalibSD::FRIEND_TEST
FRIEND_TEST(ZDC_G4CalibSDtest, SimpleHit)
ZDC_G4CalibSD::ProcessHits
G4bool ProcessHits(G4Step *a_step, G4TouchableHistory *) override
Definition: ZDC_G4CalibSD.cxx:30
SimulationEnergies.h
Identifier
Definition: IdentifierFieldParser.cxx:14