42 {
43
44 if (aStep->GetTrack()->GetCurrentStepNumber() <
m_config.MaxSteps) {
46
47 ATH_MSG_WARNING(
"Track finished on its own. Congrats. Moving on with the event.");
49 G4TransportationManager *tm = G4TransportationManager::GetTransportationManager();
50 tm->GetNavigatorForTracking()->SetVerboseLevel(0);
51 tm->GetPropagatorInField()->SetVerboseLevel(0);
52 G4RunManagerKernel *rmk = G4RunManagerKernel::GetRunManagerKernel();
53 rmk->GetTrackingManager()->SetVerboseLevel(0);
54 rmk->GetTrackingManager()->GetSteppingManager()->SetVerboseLevel(0);
55 rmk->GetStackManager()->SetVerboseLevel(0);
56 return;
57 }
else if (aStep->GetTrack()->GetCurrentStepNumber() ==
m_config.MaxSteps) {
58 ATH_MSG_WARNING(
"LooperKiller triggered!! Hold on to your hats!!!!!!!!" );
59 }
60
61 G4TransportationManager *tm = G4TransportationManager::GetTransportationManager();
62 tm->GetNavigatorForTracking()->SetVerboseLevel(
m_config.VerboseLevel);
63 tm->GetPropagatorInField()->SetVerboseLevel(
m_config.VerboseLevel);
64
65 G4RunManagerKernel *rmk = G4RunManagerKernel::GetRunManagerKernel();
66 rmk->GetTrackingManager()->SetVerboseLevel(
m_config.VerboseLevel);
67 rmk->GetTrackingManager()->GetSteppingManager()->SetVerboseLevel(
m_config.VerboseLevel);
68 rmk->GetStackManager()->SetVerboseLevel(
m_config.VerboseLevel);
69
71
75 aStep->GetTrack()->SetTrackStatus(fStopAndKill);
76 tm->GetNavigatorForTracking()->SetVerboseLevel(0);
77 tm->GetPropagatorInField()->SetVerboseLevel(0);
78 rmk->GetTrackingManager()->SetVerboseLevel(0);
79 rmk->GetTrackingManager()->GetSteppingManager()->SetVerboseLevel(0);
80 rmk->GetStackManager()->SetVerboseLevel(0);
81 int pdg_id{0};
82 TrackHelper trackHelper(aStep->GetTrack());
83 if (
m_config.BSM_Only && (trackHelper.IsPrimary() || trackHelper.IsRegisteredSecondary()) ) {
85 if (part) { pdg_id =
part->pdg_id(); }
86 }
88
90 rmk->GetEventManager()->AbortCurrentEvent();
91 rmk->GetEventManager()->GetNonconstCurrentEvent()->SetEventAborted();
92 }
94
95
96 SG::ReadHandle<xAOD::EventInfo> eic("McEventInfo");
97 if (! eic.isValid()){
99 } else {
102 }
103 }
104 }
105 const std::string
name = aStep->GetTrack()->GetDefinition()->GetParticleName();
107 ATH_MSG_INFO (
"Quietly stopped tracking looping " << name
108 << " (trackID " << aStep->GetTrack()->GetTrackID()
109 << ", track pos: "<<aStep->GetTrack()->GetPosition()
110 << ", mom: "<<aStep->GetTrack()->GetMomentum()
111 << ", parentID " << aStep->GetTrack()->GetParentID() << ")");
112 } else {
114 << " (trackID " << aStep->GetTrack()->GetTrackID()
115 << ", track pos: "<<aStep->GetTrack()->GetPosition()
116 << ", mom: "<<aStep->GetTrack()->GetMomentum()
117 << ", parentID " << aStep->GetTrack()->GetParentID() << "). The event will abort now.");
118 }
119 }
120 }
#define ATH_MSG_WARNING(x)
@ Core
Core flags describing the event.
@ Error
The sub-detector issued an error.
GenParticle * GenParticlePtr
bool isBSM(const T &p)
APID: graviton and all Higgs extensions are BSM.