ATLAS Offline Software
ZDC_G4CalibSD.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 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 #include "IdDict/IdDictDefs.h"
17 
18 #include <gtest/gtest_prod.h>
19 
20 class G4Step;
22 
23 class ZDC_G4CalibSD : public G4VSensitiveDetector
24 {
25  FRIEND_TEST( ZDC_G4CalibSDtest, ProcessHits );
26  FRIEND_TEST( ZDC_G4CalibSDtest, EndOfAthenaEvent );
27  FRIEND_TEST( ZDC_G4CalibSDtest, SpecialHit );
28  FRIEND_TEST( ZDC_G4CalibSDtest, SimpleHit );
29 public:
30 
31  // Constructor
32  ZDC_G4CalibSD(const G4String &a_name, const G4String& hitCollectionName, bool doPID=false);
33 
34  // Destructor
35  virtual ~ZDC_G4CalibSD();
36 
37  ZDC_G4CalibSD(const ZDC_G4CalibSD&) = delete;
39 
40  // Main processing method
41  G4bool ProcessHits(G4Step* a_step,G4TouchableHistory*) override;
42  // For other classes that need to call into us...
43  G4bool SpecialHit(G4Step* a_step, const std::vector<G4double>& a_energies);
44  // End of athena event processing
45  void EndOfAthenaEvent();
46 
47 
48 protected:
49  //Add hit either from ProcessHits or SpecialHit to the collection
50  G4bool SimpleHit( const Identifier& id, const std::vector<double>& energies );
51 
52  private:
54  std::map< uint32_t, CaloCalibrationHit* > m_hitMap;
55  std::vector<G4double> m_energies;
56 
57  // Count the number of invalid hits.
59  // Are we set up to run with PID hits?
60  G4bool m_doPID;
64 };
65 
66 #endif
ZDC_G4CalibSD::m_id
Identifier m_id
Definition: ZDC_G4CalibSD.h:61
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:63
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:53
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:58
ZDC_G4CalibSD::m_hitMap
std::map< uint32_t, CaloCalibrationHit * > m_hitMap
Definition: ZDC_G4CalibSD.h:54
ZDC_G4CalibSD
Definition: ZDC_G4CalibSD.h:24
IdDictDefs.h
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:62
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:60
ZdcID.h
SG::WriteHandle< CaloCalibrationHitContainer >
ZDC_G4CalibSD::m_energies
std::vector< G4double > m_energies
Definition: ZDC_G4CalibSD.h:55
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