File indexing completed on 2026-09-14 08:29:02
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029 #ifndef PAR04PARALLELFASTSENSITIVEDETECTOR_HH
0030 #define PAR04PARALLELFASTSENSITIVEDETECTOR_HH
0031
0032 #include "Par04Hit.hh" // for Par04Hit (ptr only), Par04...
0033
0034 #include "G4SystemOfUnits.hh" // for m
0035 #include "G4ThreeVector.hh" // for G4ThreeVector
0036 #include "G4VFastSimSensitiveDetector.hh" // for G4VFastSimSensitiveDetector
0037 #include "G4VSensitiveDetector.hh" // for G4VSensitiveDetector
0038
0039 #include <CLHEP/Units/SystemOfUnits.h> // for m, pi
0040 #include <G4String.hh> // for G4String
0041 #include <G4Types.hh> // for G4bool, G4int
0042 #include <unordered_map>
0043 class G4FastHit;
0044 class G4FastTrack;
0045 class G4HCofThisEvent;
0046 class G4Step;
0047 class G4TouchableHistory;
0048
0049
0050
0051
0052
0053
0054
0055 class Par04ParallelFastSensitiveDetector : public G4VSensitiveDetector,
0056 public G4VFastSimSensitiveDetector
0057 {
0058 public:
0059 Par04ParallelFastSensitiveDetector(G4String aName);
0060 Par04ParallelFastSensitiveDetector(G4String aName, G4int aNbOfLayers, G4int aNbOfSlices);
0061 virtual ~Par04ParallelFastSensitiveDetector();
0062
0063 virtual void Initialize(G4HCofThisEvent* HCE) final;
0064
0065 virtual G4bool ProcessHits(G4Step* aStep, G4TouchableHistory* aROhist) final;
0066 virtual G4bool ProcessHits(const G4FastHit* aHit, const G4FastTrack* aTrack,
0067 G4TouchableHistory* aROhist) final;
0068 virtual void EndOfEvent(G4HCofThisEvent* aHC) final;
0069
0070 private:
0071
0072 Par04HitsCollection* fHitsCollection = nullptr;
0073 std::unordered_map<G4int, std::unique_ptr<Par04Hit>> fHitsMap;
0074
0075 G4int fHitCollectionID = -1;
0076
0077 G4int fNbOfLayers = 1;
0078 G4int fNbOfSlices = 1;
0079 };
0080
0081 #endif