From 1af0083c8b550f22dcf003318b3669dc7697cf9f Mon Sep 17 00:00:00 2001
From: Chengdong Fu <fucd@ihep.ac.cn>
Date: Mon, 21 Nov 2022 21:47:30 +0800
Subject: [PATCH] remove hits while passing neutral particle
---
Simulation/DetSimSD/src/GenericTrackerSensitiveDetector.cpp | 3 ++-
Simulation/DetSimSD/src/TrackerCombineSensitiveDetector.cpp | 2 ++
2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/Simulation/DetSimSD/src/GenericTrackerSensitiveDetector.cpp b/Simulation/DetSimSD/src/GenericTrackerSensitiveDetector.cpp
index d250079e..5e9ba1a6 100644
--- a/Simulation/DetSimSD/src/GenericTrackerSensitiveDetector.cpp
+++ b/Simulation/DetSimSD/src/GenericTrackerSensitiveDetector.cpp
@@ -23,10 +23,11 @@ void GenericTrackerSensitiveDetector::Initialize(G4HCofThisEvent* HCE){
}
G4bool GenericTrackerSensitiveDetector::ProcessHits(G4Step* step, G4TouchableHistory*){
-
G4TouchableHandle touchPost = step->GetPostStepPoint()->GetTouchableHandle();
G4TouchableHandle touchPre = step->GetPreStepPoint()->GetTouchableHandle();
dd4hep::sim::Geant4StepHandler h(step);
+ if (fabs(h.trackDef()->GetPDGCharge()) < 0.01) return true;
+
dd4hep::Position prePos = h.prePos();
dd4hep::Position postPos = h.postPos();
dd4hep::Position direction = postPos - prePos;
diff --git a/Simulation/DetSimSD/src/TrackerCombineSensitiveDetector.cpp b/Simulation/DetSimSD/src/TrackerCombineSensitiveDetector.cpp
index 0d53d3b9..591c3cf3 100644
--- a/Simulation/DetSimSD/src/TrackerCombineSensitiveDetector.cpp
+++ b/Simulation/DetSimSD/src/TrackerCombineSensitiveDetector.cpp
@@ -23,6 +23,8 @@ void TrackerCombineSensitiveDetector::Initialize(G4HCofThisEvent* HCE){
G4bool TrackerCombineSensitiveDetector::ProcessHits(G4Step* step, G4TouchableHistory*){
dd4hep::sim::Geant4StepHandler h(step);
+ if (fabs(h.trackDef()->GetPDGCharge()) < 0.01) return true;
+
bool return_code = false;
if ( userData.current == -1 ) userData.start(getCellID(step), step, h.pre);
else if ( !userData.track || userData.current != h.track->GetTrackID() ) {
--
GitLab