ATLAS Offline Software
TRTSensitiveDetector.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef TRT_G4_SD_TRTSensitiveDetector_h
6 #define TRT_G4_SD_TRTSensitiveDetector_h
7 
8 // Base class
9 #include "G4VSensitiveDetector.hh"
10 
13 #include <gtest/gtest_prod.h>
14 
15 class TRTParameters;
18 
19 class G4HCofThisEvent;
20 class G4Step;
21 class G4TouchableHistory;
22 
23 class TRTSensitiveDetector : public G4VSensitiveDetector
24 {
25  FRIEND_TEST( TRTSensitiveDetectortest, ProcessHits );
26  FRIEND_TEST( TRTSensitiveDetectortest, AddHit );
27 
30 
31  public:
32  TRTSensitiveDetector(const std::string& name, const std::string& hitCollectionName, int setVerboseLevel=0);
33  ~TRTSensitiveDetector() { /* don't own any of the pointers... */ }
34 
35  void Initialize(G4HCofThisEvent*) override final;
36  G4bool ProcessHits(G4Step*, G4TouchableHistory*) override final;
37 
39  void DeleteObjects();
40 
44  template <class... Args> void AddHit(Args&&... args){ m_HitColl->Emplace( args... ); }
45 
46  private:
48  //FIXME all class variables should have an "m_" prefix.
49 
51  int m_printMessages; // FIXME not used anywhere?
53  G4VProcess* m_phot;
63  double m_boundaryZ;
64 
67  int m_hitID;
73  double m_preStepX;
74  double m_preStepY;
75  double m_preStepZ;
76  double m_postStepX;
77  double m_postStepY;
78  double m_postStepZ;
79  double m_globalTime;
80 
82  // The hits collection
83  std::string m_HitCollName;
84  TRTUncompressedHitCollection* m_HitColl{nullptr}; //pUncompressedHitCollection;
85 
86  const TRTParameters* m_pParameters;
87 
90 
91  // Gas switches
92  G4Material *m_pMaterialXe;
93  G4Material *m_pMaterialKr;
94  G4Material *m_pMaterialAr;
95 };
96 
97 #endif //TRT_G4_SD_TRTSensitiveDetector_h
TRTSensitiveDetector::m_energyDepositInKeV
double m_energyDepositInKeV
Definition: TRTSensitiveDetector.h:72
TRTProcessingOfEndCapHits
Definition: TRTProcessingOfEndCapHits.h:16
TRTSensitiveDetector::m_pProcessingOfBarrelHits
TRTProcessingOfBarrelHits * m_pProcessingOfBarrelHits
Definition: TRTSensitiveDetector.h:88
python.CaloAddPedShiftConfig.args
args
Definition: CaloAddPedShiftConfig.py:47
TRTSensitiveDetector::m_HitCollName
std::string m_HitCollName
Other member variables.
Definition: TRTSensitiveDetector.h:83
TRTSensitiveDetector::m_energyDepositCorrectionKr
double m_energyDepositCorrectionKr
Definition: TRTSensitiveDetector.h:59
TRTSensitiveDetector::m_pMaterialAr
G4Material * m_pMaterialAr
Definition: TRTSensitiveDetector.h:94
TRTSensitiveDetector::FRIEND_TEST
FRIEND_TEST(TRTSensitiveDetectortest, ProcessHits)
TRTSensitiveDetector::m_energyThreshold
double m_energyThreshold
Definition: TRTSensitiveDetector.h:54
AtlasHitsVector
Definition: AtlasHitsVector.h:32
TRTSensitiveDetector::m_energyDeposit
double m_energyDeposit
Definition: TRTSensitiveDetector.h:71
TRTSensitiveDetector::DeleteObjects
void DeleteObjects()
Called by TRTRunAction::EndOfRunAction ...
Definition: TRTSensitiveDetector.cxx:343
TRTSensitiveDetector::m_probabilityThresholdAr
double m_probabilityThresholdAr
Definition: TRTSensitiveDetector.h:61
TRTSensitiveDetector::m_hitsWithZeroEnergyDeposit
int m_hitsWithZeroEnergyDeposit
Definition: TRTSensitiveDetector.h:52
TRTSensitiveDetector
Definition: TRTSensitiveDetector.h:24
Args
Definition: test_lwtnn_fastgraph.cxx:12
TRTSensitiveDetector::m_pProcessingOfEndCapHits
TRTProcessingOfEndCapHits * m_pProcessingOfEndCapHits
Definition: TRTSensitiveDetector.h:89
TRTSensitiveDetector::m_energyThresholdAr
double m_energyThresholdAr
Definition: TRTSensitiveDetector.h:60
TRTSensitiveDetector::m_probabilityThresholdKr
double m_probabilityThresholdKr
Definition: TRTSensitiveDetector.h:58
TRTSensitiveDetector::m_partLink
HepMcParticleLink m_partLink
Definition: TRTSensitiveDetector.h:68
AtlasHitsVector::Emplace
void Emplace(Args &&... args)
Definition: AtlasHitsVector.h:80
TRTSensitiveDetector::~TRTSensitiveDetector
~TRTSensitiveDetector()
Definition: TRTSensitiveDetector.h:33
TRTSensitiveDetector::m_postStepX
double m_postStepX
Definition: TRTSensitiveDetector.h:76
TRTSensitiveDetector::m_energyDepositCorrectionAr
double m_energyDepositCorrectionAr
Definition: TRTSensitiveDetector.h:62
TRTSensitiveDetector::m_pMaterialKr
G4Material * m_pMaterialKr
Definition: TRTSensitiveDetector.h:93
TRTSensitiveDetector::m_globalTime
double m_globalTime
Definition: TRTSensitiveDetector.h:79
TRTSensitiveDetector::m_kineticEnergy
double m_kineticEnergy
Definition: TRTSensitiveDetector.h:70
TRTSensitiveDetector::m_postStepY
double m_postStepY
Definition: TRTSensitiveDetector.h:77
TRTSensitiveDetector::m_pMaterialXe
G4Material * m_pMaterialXe
Definition: TRTSensitiveDetector.h:92
TRTSensitiveDetector::m_probabilityThreshold
double m_probabilityThreshold
Definition: TRTSensitiveDetector.h:55
TRTSensitiveDetector::m_preStepX
double m_preStepX
Definition: TRTSensitiveDetector.h:73
TRTSensitiveDetector::m_boundaryZ
double m_boundaryZ
Definition: TRTSensitiveDetector.h:63
TRTProcessingOfBarrelHits
Definition: TRTProcessingOfBarrelHits.h:16
TRTSensitiveDetector::FRIEND_TEST
FRIEND_TEST(TRTSensitiveDetectortest, AddHit)
TRTSensitiveDetector::m_energyThresholdKr
double m_energyThresholdKr
Definition: TRTSensitiveDetector.h:57
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
TRTSensitiveDetector::ProcessHits
G4bool ProcessHits(G4Step *, G4TouchableHistory *) override final
Definition: TRTSensitiveDetector.cxx:226
TRTSensitiveDetector::m_pParameters
const TRTParameters * m_pParameters
Definition: TRTSensitiveDetector.h:86
TRTSensitiveDetector::m_preStepY
double m_preStepY
Definition: TRTSensitiveDetector.h:74
TRTSensitiveDetector::m_postStepZ
double m_postStepZ
Definition: TRTSensitiveDetector.h:78
TRTUncompressedHitCollection.h
TRTSensitiveDetector::m_HitColl
TRTUncompressedHitCollection * m_HitColl
Definition: TRTSensitiveDetector.h:84
TRTSensitiveDetector::m_energyDepositCorrection
double m_energyDepositCorrection
Definition: TRTSensitiveDetector.h:56
TRTSensitiveDetector::m_preStepZ
double m_preStepZ
Definition: TRTSensitiveDetector.h:75
TRTSensitiveDetector::Initialize
void Initialize(G4HCofThisEvent *) override final
Definition: TRTSensitiveDetector.cxx:169
TRTSensitiveDetector::InitializeHitProcessing
void InitializeHitProcessing()
Definition: TRTSensitiveDetector.cxx:75
TRTSensitiveDetector::m_particleEncoding
int m_particleEncoding
Definition: TRTSensitiveDetector.h:69
checker_macros.h
Define macros for attributes used to control the static checker.
TRTSensitiveDetector::m_printMessages
int m_printMessages
Configuration paremeters.
Definition: TRTSensitiveDetector.h:51
TRTSensitiveDetector::m_hitID
int m_hitID
Properties of current TRTUncompressedHit, set by TRTProcessingOfBarrelHits and TRTProcessingOfEndCapH...
Definition: TRTSensitiveDetector.h:67
TRTSensitiveDetector::m_phot
G4VProcess * m_phot
Definition: TRTSensitiveDetector.h:53
TRTSensitiveDetector::AddHit
void AddHit(Args &&... args)
Templated method to stuff a single hit into the sensitive detector class.
Definition: TRTSensitiveDetector.h:44
TRTSensitiveDetector::TRTSensitiveDetector
TRTSensitiveDetector(const std::string &name, const std::string &hitCollectionName, int setVerboseLevel=0)
Definition: TRTSensitiveDetector.cxx:42