From 8d16a25f36238c9757a075deee8f13d15c8a8e90 Mon Sep 17 00:00:00 2001
From: John Chapman <John.Chapman@cern.ch>
Date: Wed, 9 Apr 2025 09:04:15 +0200
Subject: [PATCH] further standardisation of syntax

---
 .../GeneratorFilters/xAODBSignalFilter.h      | 79 +++++++++----------
 .../xAODChargedTracksFilter.h                 | 12 +--
 .../xAODChargedTracksWeightFilter.h           | 20 ++---
 .../GeneratorFilters/xAODDecayTimeFilter.h    | 16 ++--
 .../xAODDecaysFinalStateFilter.h              | 45 +++++------
 .../src/xAODBSignalFilter.cxx                 | 11 +--
 .../src/xAODChargedTracksFilter.cxx           | 13 +--
 .../src/xAODChargedTracksWeightFilter.cxx     | 12 +--
 .../src/xAODDecayTimeFilter.cxx               | 13 +--
 .../src/xAODDecaysFinalStateFilter.cxx        | 13 +--
 10 files changed, 91 insertions(+), 143 deletions(-)

diff --git a/Generators/GeneratorFilters/GeneratorFilters/xAODBSignalFilter.h b/Generators/GeneratorFilters/GeneratorFilters/xAODBSignalFilter.h
index 17e3331a127..fb21ab88a55 100644
--- a/Generators/GeneratorFilters/GeneratorFilters/xAODBSignalFilter.h
+++ b/Generators/GeneratorFilters/GeneratorFilters/xAODBSignalFilter.h
@@ -33,12 +33,11 @@ class xAODBSignalFilter : public GenFilter
 {
 
 public:
+  using GenFilter::GenFilter;
 
-  xAODBSignalFilter(const std::string& name, ISvcLocator* pSvcLocator);
-  //
-  virtual StatusCode filterInitialize();
-  virtual StatusCode filterEvent();
-  virtual StatusCode filterFinalize();
+  virtual StatusCode filterInitialize() override final;
+  virtual StatusCode filterEvent() override final;
+  virtual StatusCode filterFinalize() override final;
 
 private:
 
@@ -46,44 +45,44 @@ private:
 
   // ** Declare the algorithm's properties **
   // ** For cuts on final particle pT and eta **
-  BooleanProperty m_localLVL1MuonCutOn{this, "LVL1MuonCutOn", false};
-  BooleanProperty m_localLVL2MuonCutOn{this, "LVL2MuonCutOn", false};
-  BooleanProperty m_localLVL2ElectronCutOn{this, "LVL2ElectronCutOn", false};
-  DoubleProperty m_localLVL1MuonCutPT{this, "LVL1MuonCutPT", 0.0};
-  DoubleProperty m_localLVL1MuonCutEta{this, "LVL1MuonCutEta", 102.5};
-  DoubleProperty m_localLVL2MuonCutPT{this, "LVL2MuonCutPT", 0.0};
-  DoubleProperty m_localLVL2MuonCutEta{this, "LVL2MuonCutEta", 102.5};
-  DoubleProperty m_localLVL2ElectronCutPT{this, "LVL2ElectronCutPT", 0.0};
-  DoubleProperty m_localLVL2ElectronCutEta{this, "LVL2ElectronCutEta", 102.5};
-  BooleanProperty m_cuts_f_e_on{this, "Cuts_Final_e_switch", false};
-  DoubleProperty m_cuts_f_e_pT{this, "Cuts_Final_e_pT", 0.};
-  DoubleProperty m_cuts_f_e_eta{this, "Cuts_Final_e_eta", 2.5}; // FIXME why is this default different from the rest of the eta cuts?
-  BooleanProperty m_cuts_f_mu_on{this, "Cuts_Final_mu_switch", false};
-  DoubleProperty m_cuts_f_mu_pT{this, "Cuts_Final_mu_pT", 0.};
-  DoubleProperty m_cuts_f_mu_eta{this, "Cuts_Final_mu_eta", 102.5};
-  BooleanProperty m_cuts_f_had_on{this, "Cuts_Final_hadrons_switch", false};
-  DoubleProperty m_cuts_f_had_pT{this, "Cuts_Final_hadrons_pT", 0.};
-  DoubleProperty m_cuts_f_had_eta{this, "Cuts_Final_hadrons_eta", 102.5};
-  BooleanProperty m_cuts_f_gam_on{this, "Cuts_Final_gamma_switch", false};
-  DoubleProperty m_cuts_f_gam_pT{this, "Cuts_Final_gamma_pT",  0.};
-  DoubleProperty m_cuts_f_gam_eta{this, "Cuts_Final_gamma_eta", 102.5};
-  BooleanProperty m_cuts_f_K0_on{this, "Cuts_Final_K0_switch", false};
-  DoubleProperty  m_cuts_f_K0_pT{this, "Cuts_Final_K0_pT", 0.};
-  DoubleProperty m_cuts_f_K0_eta{this, "Cuts_Final_K0_eta", 102.5};
+  Gaudi::Property<bool> m_localLVL1MuonCutOn{this, "LVL1MuonCutOn", false};
+  Gaudi::Property<bool> m_localLVL2MuonCutOn{this, "LVL2MuonCutOn", false};
+  Gaudi::Property<bool> m_localLVL2ElectronCutOn{this, "LVL2ElectronCutOn", false};
+  Gaudi::Property<double> m_localLVL1MuonCutPT{this, "LVL1MuonCutPT", 0.0};
+  Gaudi::Property<double> m_localLVL1MuonCutEta{this, "LVL1MuonCutEta", 102.5};
+  Gaudi::Property<double> m_localLVL2MuonCutPT{this, "LVL2MuonCutPT", 0.0};
+  Gaudi::Property<double> m_localLVL2MuonCutEta{this, "LVL2MuonCutEta", 102.5};
+  Gaudi::Property<double> m_localLVL2ElectronCutPT{this, "LVL2ElectronCutPT", 0.0};
+  Gaudi::Property<double> m_localLVL2ElectronCutEta{this, "LVL2ElectronCutEta", 102.5};
+  Gaudi::Property<bool> m_cuts_f_e_on{this, "Cuts_Final_e_switch", false};
+  Gaudi::Property<double> m_cuts_f_e_pT{this, "Cuts_Final_e_pT", 0.};
+  Gaudi::Property<double> m_cuts_f_e_eta{this, "Cuts_Final_e_eta", 2.5}; // FIXME why is this default different from the rest of the eta cuts?
+  Gaudi::Property<bool> m_cuts_f_mu_on{this, "Cuts_Final_mu_switch", false};
+  Gaudi::Property<double> m_cuts_f_mu_pT{this, "Cuts_Final_mu_pT", 0.};
+  Gaudi::Property<double> m_cuts_f_mu_eta{this, "Cuts_Final_mu_eta", 102.5};
+  Gaudi::Property<bool> m_cuts_f_had_on{this, "Cuts_Final_hadrons_switch", false};
+  Gaudi::Property<double> m_cuts_f_had_pT{this, "Cuts_Final_hadrons_pT", 0.};
+  Gaudi::Property<double> m_cuts_f_had_eta{this, "Cuts_Final_hadrons_eta", 102.5};
+  Gaudi::Property<bool> m_cuts_f_gam_on{this, "Cuts_Final_gamma_switch", false};
+  Gaudi::Property<double> m_cuts_f_gam_pT{this, "Cuts_Final_gamma_pT",  0.};
+  Gaudi::Property<double> m_cuts_f_gam_eta{this, "Cuts_Final_gamma_eta", 102.5};
+  Gaudi::Property<bool> m_cuts_f_K0_on{this, "Cuts_Final_K0_switch", false};
+  Gaudi::Property<double>  m_cuts_f_K0_pT{this, "Cuts_Final_K0_pT", 0.};
+  Gaudi::Property<double> m_cuts_f_K0_eta{this, "Cuts_Final_K0_eta", 102.5};
   // ** Declare the signal B-meson/hadron PDGid **
-  IntegerProperty m_B_pdgid{this, "B_PDGCode", 0};       // pdgID of the mother
+  Gaudi::Property<int> m_B_pdgid{this, "B_PDGCode", 0};       // pdgID of the mother
   // ** Declare properties for mass filter **
-  BooleanProperty m_InvMass_switch{this, "InvMass_switch", false};
-  IntegerProperty m_InvMass_PartId1{this, "InvMass_PartId1", 13}; // pdgID of the couple used for mass cuts
-  IntegerProperty m_InvMass_PartId2{this, "InvMass_PartId2", -13}; // pdgID of the couple used for mass cuts
-  DoubleProperty m_InvMass_PartFakeMass1{this, "InvMass_PartFakeMass1", -1.};
-  DoubleProperty m_InvMass_PartFakeMass2{this, "InvMass_PartFakeMass2", -1.};
+  Gaudi::Property<bool> m_InvMass_switch{this, "InvMass_switch", false};
+  Gaudi::Property<int> m_InvMass_PartId1{this, "InvMass_PartId1", 13}; // pdgID of the couple used for mass cuts
+  Gaudi::Property<int> m_InvMass_PartId2{this, "InvMass_PartId2", -13}; // pdgID of the couple used for mass cuts
+  Gaudi::Property<double> m_InvMass_PartFakeMass1{this, "InvMass_PartFakeMass1", -1.};
+  Gaudi::Property<double> m_InvMass_PartFakeMass2{this, "InvMass_PartFakeMass2", -1.};
   // Mass range for invariant mass cut
-  DoubleProperty m_InvMassMin{this, "InvMassMin", 0.0};
-  DoubleProperty m_InvMassMax{this, "InvMassMax", 14000000.0};
-  BooleanProperty m_TotalInvMass_switch{this, "TotalInvMass_switch", false};
-  DoubleProperty m_TotalInvMassMin{this, "TotalInvMassMin", 0.0};
-  DoubleProperty m_TotalInvMassMax{this, "TotalInvMassMax", 14000000.0};
+  Gaudi::Property<double> m_InvMassMin{this, "InvMassMin", 0.0};
+  Gaudi::Property<double> m_InvMassMax{this, "InvMassMax", 14000000.0};
+  Gaudi::Property<bool> m_TotalInvMass_switch{this, "TotalInvMass_switch", false};
+  Gaudi::Property<double> m_TotalInvMassMin{this, "TotalInvMassMin", 0.0};
+  Gaudi::Property<double> m_TotalInvMassMax{this, "TotalInvMassMax", 14000000.0};
   SG::ReadHandleKey<xAOD::TruthParticleContainer> m_truthPartContKey{this, "TruthParticleContainerKey", "TruthGen"};
 
   // Event counters
diff --git a/Generators/GeneratorFilters/GeneratorFilters/xAODChargedTracksFilter.h b/Generators/GeneratorFilters/GeneratorFilters/xAODChargedTracksFilter.h
index 90dc84e0ead..ace42c38e82 100644
--- a/Generators/GeneratorFilters/GeneratorFilters/xAODChargedTracksFilter.h
+++ b/Generators/GeneratorFilters/GeneratorFilters/xAODChargedTracksFilter.h
@@ -16,23 +16,23 @@
 /// Filter events based on presence of charged tracks
 class xAODChargedTracksFilter : public GenFilter {
 public:
+  using GenFilter::GenFilter;
 
-  xAODChargedTracksFilter(const std::string& name, ISvcLocator* pSvcLocator);
-  virtual StatusCode filterInitialize() override;
-  virtual StatusCode filterEvent() override;
+  virtual StatusCode filterInitialize() override final;
+  virtual StatusCode filterEvent() override final;
 
 private:
 
   SG::ReadHandleKey<xAOD::TruthParticleContainer> m_truthPartContKey{this, "TruthParticleContainerKey", "TruthGen"};
 
   // Minimum pT for a track to count
-  DoubleProperty m_Ptmin{this, "Ptcut", 50.0};
+  Gaudi::Property<double> m_Ptmin{this, "Ptcut", 50.0};
 
   // Maximum |pseudorapidity| for a track to count
-  DoubleProperty m_EtaRange{this, "Etacut", 2.5};
+  Gaudi::Property<double> m_EtaRange{this, "Etacut", 2.5};
 
   // Minimum number of tracks
-  DoubleProperty m_NTracks{this, "NTracks", 40};
+  Gaudi::Property<double> m_NTracks{this, "NTracks", 40};
 
 };
 
diff --git a/Generators/GeneratorFilters/GeneratorFilters/xAODChargedTracksWeightFilter.h b/Generators/GeneratorFilters/GeneratorFilters/xAODChargedTracksWeightFilter.h
index a4363d99ccd..0a0eca02f51 100644
--- a/Generators/GeneratorFilters/GeneratorFilters/xAODChargedTracksWeightFilter.h
+++ b/Generators/GeneratorFilters/GeneratorFilters/xAODChargedTracksWeightFilter.h
@@ -19,11 +19,11 @@ namespace CLHEP {
 /// Filter events based on presence of charged tracks
 class xAODChargedTracksWeightFilter : public GenFilter {
 public:
+  using GenFilter::GenFilter;
 
-  xAODChargedTracksWeightFilter(const std::string& name, ISvcLocator* pSvcLocator);
-  StatusCode filterInitialize();
-  StatusCode filterEvent();
-  StatusCode filterFinalize();
+  virtual StatusCode filterInitialize() override final;
+  virtual StatusCode filterEvent() override final;
+  virtual StatusCode filterFinalize() override final;
 
   struct Spline {
      /// Linear spline representation of a function used to calculate weights
@@ -71,22 +71,22 @@ private:
   SG::ReadHandleKey<xAOD::TruthParticleContainer> m_truthPartContKey{this, "TruthParticleContainerKey", "TruthGen"};
 
   // Minimum pT for a track to count
-  DoubleProperty m_Ptmin{this, "Ptcut", 50.0};
+  Gaudi::Property<double> m_Ptmin{this, "Ptcut", 50.0};
 
   // Maximum |pseudorapidity| for a track to count
-  DoubleProperty m_EtaRange{this, "Etacut", 2.5};
+  Gaudi::Property<double> m_EtaRange{this, "Etacut", 2.5};
 
   // Minimum number of tracks
-  IntegerProperty m_nchmin{this, "NchMin", 0};
+  Gaudi::Property<int> m_nchmin{this, "NchMin", 0};
 
   // Maximum number of tracks
-  IntegerProperty m_nchmax{this, "NchMax", 20};
+  Gaudi::Property<int> m_nchmax{this, "NchMax", 20};
 
   Spline m_spline;
 
   /// Spline points
-  DoubleArrayProperty m_weight_fun_x{this, "SplineX", {}};
-  DoubleArrayProperty m_weight_fun_y{this, "SplineY", {}};
+  Gaudi::Property<std::vector<double>> m_weight_fun_x{this, "SplineX", {}};
+  Gaudi::Property<std::vector<double>> m_weight_fun_y{this, "SplineY", {}};
 
   double m_min_weight{};
 
diff --git a/Generators/GeneratorFilters/GeneratorFilters/xAODDecayTimeFilter.h b/Generators/GeneratorFilters/GeneratorFilters/xAODDecayTimeFilter.h
index 243514b8fec..5d063b5ad99 100644
--- a/Generators/GeneratorFilters/GeneratorFilters/xAODDecayTimeFilter.h
+++ b/Generators/GeneratorFilters/GeneratorFilters/xAODDecayTimeFilter.h
@@ -23,22 +23,22 @@ namespace CLHEP {
 
 class xAODDecayTimeFilter : public GenFilter {
 public:
+  using GenFilter::GenFilter;
 
-  xAODDecayTimeFilter(const std::string& name, ISvcLocator* pSvcLocator);
-  virtual StatusCode filterInitialize();
-  virtual StatusCode filterEvent();
+  virtual StatusCode filterInitialize() override final;
+  virtual StatusCode filterEvent() override final;
 
 private:
    CLHEP::HepRandomEngine* getRandomEngine(const std::string& streamName,
                                           const EventContext& ctx) const;
 
   double tau(const xAOD::TruthParticle* ptr) const;
-  FloatProperty m_lifetimeLow{this, "LifetimeLow", std::numeric_limits<float>::lowest(), "proper decay time value in ps"};
-  FloatProperty m_lifetimeHigh{this, "LifetimeHigh", std::numeric_limits<float>::max(), "proper decay time value in ps"};
-  FloatProperty m_seedlifetime{this, "Seedlifetime", std::numeric_limits<float>::lowest(), "proper decay time value in ps"};
+  Gaudi::Property<float> m_lifetimeLow{this, "LifetimeLow", std::numeric_limits<float>::lowest(), "proper decay time value in ps"};
+  Gaudi::Property<float> m_lifetimeHigh{this, "LifetimeHigh", std::numeric_limits<float>::max(), "proper decay time value in ps"};
+  Gaudi::Property<float> m_seedlifetime{this, "Seedlifetime", std::numeric_limits<float>::lowest(), "proper decay time value in ps"};
   ServiceHandle<IAthRNGSvc> m_rndmSvc{this, "RndmSvc", "AthRNGSvc"};
-  BooleanProperty m_flatlifetime{this, "Flatlifetime", false, "proper decay time value in ps"};
-  IntegerArrayProperty m_particleID{this, "PDGs", {}};
+  Gaudi::Property<bool> m_flatlifetime{this, "Flatlifetime", false, "proper decay time value in ps"};
+  Gaudi::Property<std::vector<int>> m_particleID{this, "PDGs", {}};
   SG::ReadHandleKey<xAOD::TruthParticleContainer> m_truthPartContKey{this, "TruthParticleContainerKey", "TruthGen"};
 };
 
diff --git a/Generators/GeneratorFilters/GeneratorFilters/xAODDecaysFinalStateFilter.h b/Generators/GeneratorFilters/GeneratorFilters/xAODDecaysFinalStateFilter.h
index 99188169b02..360e78dce31 100644
--- a/Generators/GeneratorFilters/GeneratorFilters/xAODDecaysFinalStateFilter.h
+++ b/Generators/GeneratorFilters/GeneratorFilters/xAODDecaysFinalStateFilter.h
@@ -25,44 +25,35 @@
 class xAODDecaysFinalStateFilter : public GenFilter {
 
 public:
+  using GenFilter::GenFilter;
 
-  /// Constructor
-  xAODDecaysFinalStateFilter(const std::string& name, ISvcLocator* pSvcLocator);
-
-  /// Destructor
-  virtual ~xAODDecaysFinalStateFilter() { }
-
-  /// Initialize
-  virtual StatusCode filterInitialize();
-
-  /// Do the filtering
-  virtual StatusCode filterEvent();
-
+  virtual StatusCode filterInitialize() override final;
+  virtual StatusCode filterEvent() override final;
 
 private:
 
   // list of allowed resonances from which decay products are counted
-  IntegerArrayProperty m_PDGAllowedParents{this, "PDGAllowedParents", {}};
+  Gaudi::Property<std::vector<int>> m_PDGAllowedParents{this, "PDGAllowedParents", {}};
 
   // required (exact) number of quarks, electrons, muons, taus,
   // charged leptons (of any flavor), neutrinos and photons from decays
-  IntegerProperty m_NQuarks{this, "NQuarks", -1};
-  IntegerProperty m_NElectrons{this, "NElectrons", -1};
-  IntegerProperty m_NMuons{this, "NMuons", -1};
-  IntegerProperty m_NTaus{this, "NTaus", -1};
-  IntegerProperty m_NChargedLeptons{this, "NChargedLeptons", -1};
-  IntegerProperty m_NNeutrinos{this, "NNeutrinos", -1};
-  IntegerProperty m_NPhotons{this, "NPhotons", -1};
+  Gaudi::Property<int> m_NQuarks{this, "NQuarks", -1};
+  Gaudi::Property<int> m_NElectrons{this, "NElectrons", -1};
+  Gaudi::Property<int> m_NMuons{this, "NMuons", -1};
+  Gaudi::Property<int> m_NTaus{this, "NTaus", -1};
+  Gaudi::Property<int> m_NChargedLeptons{this, "NChargedLeptons", -1};
+  Gaudi::Property<int> m_NNeutrinos{this, "NNeutrinos", -1};
+  Gaudi::Property<int> m_NPhotons{this, "NPhotons", -1};
 
   // required minimal number of quarks, electrons, muons, taus,
   // charged leptons (of any flavor), neutrinos and photons from decays
-  IntegerProperty m_MinNQuarks{this, "MinNQuarks", 0};
-  IntegerProperty m_MinNElectrons{this, "MinNElectrons", 0};
-  IntegerProperty m_MinNMuons{this, "MinNMuons", 0};
-  IntegerProperty m_MinNTaus{this, "MinNTaus", 0};
-  IntegerProperty m_MinNChargedLeptons{this, "MinNChargedLeptons", 0};
-  IntegerProperty m_MinNNeutrinos{this, "MinNNeutrinos", 0};
-  IntegerProperty m_MinNPhotons{this, "MinNPhotons", 0};
+  Gaudi::Property<int> m_MinNQuarks{this, "MinNQuarks", 0};
+  Gaudi::Property<int> m_MinNElectrons{this, "MinNElectrons", 0};
+  Gaudi::Property<int> m_MinNMuons{this, "MinNMuons", 0};
+  Gaudi::Property<int> m_MinNTaus{this, "MinNTaus", 0};
+  Gaudi::Property<int> m_MinNChargedLeptons{this, "MinNChargedLeptons", 0};
+  Gaudi::Property<int> m_MinNNeutrinos{this, "MinNNeutrinos", 0};
+  Gaudi::Property<int> m_MinNPhotons{this, "MinNPhotons", 0};
   SG::ReadHandleKey<xAOD::TruthParticleContainer> m_truthPartContKey{this, "TruthParticleContainerKey", "TruthGen"};
 
 };
diff --git a/Generators/GeneratorFilters/src/xAODBSignalFilter.cxx b/Generators/GeneratorFilters/src/xAODBSignalFilter.cxx
index 8ccde57f9f1..e1f57f8eaad 100644
--- a/Generators/GeneratorFilters/src/xAODBSignalFilter.cxx
+++ b/Generators/GeneratorFilters/src/xAODBSignalFilter.cxx
@@ -29,13 +29,9 @@
 
 #include <sstream>
 
-xAODBSignalFilter::xAODBSignalFilter(const std::string &name, ISvcLocator *pSvcLocator) : GenFilter(name, pSvcLocator)
-{
-}
-
 StatusCode xAODBSignalFilter::filterInitialize()
 {
-    ATH_CHECK(m_truthPartContKey.initialize());
+    CHECK(m_truthPartContKey.initialize());
     return StatusCode::SUCCESS;
 }
 
@@ -59,10 +55,7 @@ StatusCode xAODBSignalFilter::filterEvent()
 // Retrieve TruthGen container from xAOD Gen slimmer, contains all particles witout barcode_zero and
 // duplicated barcode ones
     SG::ReadHandle<xAOD::TruthParticleContainer> xTruthParticleContainer{m_truthPartContKey};
-    if (!xTruthParticleContainer.isValid()) {
-      ATH_MSG_ERROR("No TruthParticle collection with name " << "TruthGen" << " found in StoreGate!");
-      return StatusCode::FAILURE;
-    }
+    CHECK(xTruthParticleContainer.isValid());
 
 bool acceptEvent = true;
 unsigned int nPart = xTruthParticleContainer->size();  
diff --git a/Generators/GeneratorFilters/src/xAODChargedTracksFilter.cxx b/Generators/GeneratorFilters/src/xAODChargedTracksFilter.cxx
index c1a6275b262..1afefc91b15 100644
--- a/Generators/GeneratorFilters/src/xAODChargedTracksFilter.cxx
+++ b/Generators/GeneratorFilters/src/xAODChargedTracksFilter.cxx
@@ -6,15 +6,9 @@
 #include "TruthUtils/HepMCHelpers.h"
 
 
-xAODChargedTracksFilter::xAODChargedTracksFilter(const std::string& name, ISvcLocator* pSvcLocator)
-  : GenFilter(name, pSvcLocator)
-{
-}
-
-
 StatusCode xAODChargedTracksFilter::filterInitialize()
 {
-    ATH_CHECK(m_truthPartContKey.initialize());
+    CHECK(m_truthPartContKey.initialize());
     return StatusCode::SUCCESS;
 }
 
@@ -24,10 +18,7 @@ StatusCode xAODChargedTracksFilter::filterEvent() {
   // Retrieve TruthGen container from xAOD Gen slimmer, contains all particles witout barcode_zero and
   // duplicated barcode ones
   SG::ReadHandle<xAOD::TruthParticleContainer> xTruthParticleContainer{m_truthPartContKey};
-  if (!xTruthParticleContainer.isValid()) {
-    ATH_MSG_ERROR("No TruthParticle collection with name " << "TruthGen" << " found in StoreGate!");
-    return StatusCode::FAILURE;
-  }
+  CHECK(xTruthParticleContainer.isValid());
 
 
   int nChargedTracks = 0;
diff --git a/Generators/GeneratorFilters/src/xAODChargedTracksWeightFilter.cxx b/Generators/GeneratorFilters/src/xAODChargedTracksWeightFilter.cxx
index d99eaad3ba0..2a35aa47a6b 100644
--- a/Generators/GeneratorFilters/src/xAODChargedTracksWeightFilter.cxx
+++ b/Generators/GeneratorFilters/src/xAODChargedTracksWeightFilter.cxx
@@ -10,14 +10,9 @@
 
 using Point = xAODChargedTracksWeightFilter::Spline::Point;
 
-xAODChargedTracksWeightFilter::xAODChargedTracksWeightFilter(const std::string& name, ISvcLocator* pSvcLocator)
-    : GenFilter(name, pSvcLocator)
-{
-}
-
 StatusCode xAODChargedTracksWeightFilter::filterInitialize() {
 
-    ATH_CHECK(m_truthPartContKey.initialize());
+    CHECK(m_truthPartContKey.initialize());
     CHECK(m_rndmSvc.retrieve());
 
     if(m_nchmin < 0) m_nchmin = 0;
@@ -70,10 +65,7 @@ StatusCode xAODChargedTracksWeightFilter::filterEvent() {
     // Retrieve TruthGen container from xAOD Gen slimmer, contains all particles witout barcode_zero and
     // duplicated barcode ones
     SG::ReadHandle<xAOD::TruthParticleContainer> xTruthParticleContainer{m_truthPartContKey};
-    if (!xTruthParticleContainer.isValid()) {
-      ATH_MSG_ERROR("No TruthParticle collection with name " << "TruthGen" << " found in StoreGate!");
-      return StatusCode::FAILURE;
-    }
+    CHECK(xTruthParticleContainer.isValid());
 
     const EventContext& ctx = Gaudi::Hive::currentContext();
     CLHEP::HepRandomEngine* rndmGen = this->getRandomEngine(name(), ctx);
diff --git a/Generators/GeneratorFilters/src/xAODDecayTimeFilter.cxx b/Generators/GeneratorFilters/src/xAODDecayTimeFilter.cxx
index 41e8e857a5f..446d9b27787 100644
--- a/Generators/GeneratorFilters/src/xAODDecayTimeFilter.cxx
+++ b/Generators/GeneratorFilters/src/xAODDecayTimeFilter.cxx
@@ -8,14 +8,8 @@
 #include <limits>       // std::numeric_limits
 
 
-xAODDecayTimeFilter::xAODDecayTimeFilter(const std::string& name, ISvcLocator* pSvcLocator)
-  : GenFilter(name, pSvcLocator)
-{
-}
-
-
 StatusCode xAODDecayTimeFilter::filterInitialize() {
-  ATH_CHECK(m_truthPartContKey.initialize());
+  CHECK(m_truthPartContKey.initialize());
   CHECK(m_rndmSvc.retrieve());
   ATH_MSG_INFO("lifetimeLow=" << m_lifetimeLow);
   ATH_MSG_INFO("lifetimeHigh=" << m_lifetimeHigh);
@@ -46,10 +40,7 @@ StatusCode xAODDecayTimeFilter::filterEvent() {
   // Retrieve TruthGen container from xAOD Gen slimmer, contains all particles witout barcode_zero and
   // duplicated barcode ones
   SG::ReadHandle<xAOD::TruthParticleContainer> xTruthParticleContainer{m_truthPartContKey};
-  if (!xTruthParticleContainer.isValid()) {
-    ATH_MSG_ERROR("No TruthParticle collection with name " << m_truthPartContKey.key() << " found in StoreGate!");
-    return StatusCode::FAILURE;
-  }
+  CHECK(xTruthParticleContainer.isValid());
 
   int nPassPDG = 0;
   bool passed = true;
diff --git a/Generators/GeneratorFilters/src/xAODDecaysFinalStateFilter.cxx b/Generators/GeneratorFilters/src/xAODDecaysFinalStateFilter.cxx
index 770dbf58daf..8792e9e496a 100644
--- a/Generators/GeneratorFilters/src/xAODDecaysFinalStateFilter.cxx
+++ b/Generators/GeneratorFilters/src/xAODDecaysFinalStateFilter.cxx
@@ -36,14 +36,8 @@
 #include <cmath>
 
 
-xAODDecaysFinalStateFilter::xAODDecaysFinalStateFilter(const std::string& name, ISvcLocator* pSvcLocator)
-  : GenFilter(name,pSvcLocator)
-{
- }
-
-
 StatusCode xAODDecaysFinalStateFilter::filterInitialize() {
-    ATH_CHECK(m_truthPartContKey.initialize());
+    CHECK(m_truthPartContKey.initialize());
     return StatusCode::SUCCESS;
 }
 
@@ -60,10 +54,7 @@ StatusCode xAODDecaysFinalStateFilter::filterEvent() {
     // Retrieve TruthGen container from xAOD Gen slimmer, contains all particles witout barcode_zero and
     // duplicated barcode ones
     SG::ReadHandle<xAOD::TruthParticleContainer> xTruthParticleContainer{m_truthPartContKey};
-    if (!xTruthParticleContainer.isValid()) {
-      ATH_MSG_ERROR("No TruthParticle collection with name " << m_truthPartContKey.key() << " found in StoreGate!");
-      return StatusCode::FAILURE;
-    }
+    CHECK(xTruthParticleContainer.isValid());
 
 
     // Loop over all particles in the event and build up the grid
-- 
GitLab