diff --git a/SimG4CMS/Forward/interface/MtdHitCategory.h b/SimG4CMS/Forward/interface/MtdHitCategory.h new file mode 100644 index 0000000000000..7aa810189b979 --- /dev/null +++ b/SimG4CMS/Forward/interface/MtdHitCategory.h @@ -0,0 +1,13 @@ +#ifndef SimG4CMSForward_MtdHitCategory_h +#define SimG4CMSForward_MtdHitCategory_h + +namespace MtdHitCategory { + static constexpr unsigned int k_idsecOffset = 1; + static constexpr unsigned int k_idloopOffset = 2; + static constexpr unsigned int k_idFromCaloOffset = 3; + static constexpr unsigned int k_idETLfromBack = 4; + static constexpr unsigned int n_categories = + std::max({k_idsecOffset, k_idloopOffset, k_idFromCaloOffset, k_idETLfromBack}); +}; // namespace MtdHitCategory + +#endif diff --git a/SimG4CMS/Forward/interface/MtdSD.h b/SimG4CMS/Forward/interface/MtdSD.h index d58c5e220bcc8..19d651fb84996 100644 --- a/SimG4CMS/Forward/interface/MtdSD.h +++ b/SimG4CMS/Forward/interface/MtdSD.h @@ -2,6 +2,8 @@ #define SimG4CMSForward_MtdSD_h #include "SimG4CMS/Forward/interface/TimingSD.h" +#include "SimG4CMS/Forward/interface/MtdHitCategory.h" + #include "FWCore/Framework/interface/Frameworkfwd.h" #include "FWCore/ParameterSet/interface/ParameterSetfwd.h" @@ -30,11 +32,6 @@ class MtdSD : public TimingSD { void setHitClassID(const G4Step *) override; private: - static constexpr unsigned int k_idsecOffset = 1; - static constexpr unsigned int k_idloopOffset = 2; - static constexpr unsigned int k_idFromCaloOffset = 3; - static constexpr unsigned int k_idETLfromBack = 4; - double energyCut; double energyHistoryCut; diff --git a/SimG4CMS/Forward/src/MtdSD.cc b/SimG4CMS/Forward/src/MtdSD.cc index 4ef7dc731104e..800a78d929257 100644 --- a/SimG4CMS/Forward/src/MtdSD.cc +++ b/SimG4CMS/Forward/src/MtdSD.cc @@ -16,6 +16,8 @@ #include +using namespace MtdHitCategory; + //------------------------------------------------------------------- MtdSD::MtdSD(const std::string& name, const SensitiveDetectorCatalog& clg, diff --git a/SimGeneral/CaloAnalysis/plugins/BuildFile.xml b/SimGeneral/CaloAnalysis/plugins/BuildFile.xml index 3300315764d4a..7b1458cd095ba 100644 --- a/SimGeneral/CaloAnalysis/plugins/BuildFile.xml +++ b/SimGeneral/CaloAnalysis/plugins/BuildFile.xml @@ -23,6 +23,7 @@ + diff --git a/SimGeneral/CaloAnalysis/plugins/MtdTruthAccumulator.cc b/SimGeneral/CaloAnalysis/plugins/MtdTruthAccumulator.cc index 0cc0f9196430e..930a1b5daec5e 100644 --- a/SimGeneral/CaloAnalysis/plugins/MtdTruthAccumulator.cc +++ b/SimGeneral/CaloAnalysis/plugins/MtdTruthAccumulator.cc @@ -59,6 +59,8 @@ #include "Geometry/MTDGeometryBuilder/interface/ProxyMTDTopology.h" #include "Geometry/MTDGeometryBuilder/interface/RectangularMTDTopology.h" +#include "SimG4CMS/Forward/interface/MtdHitCategory.h" + #include namespace { @@ -187,7 +189,7 @@ namespace { if (!vertex_property.simTrack) return; // -- loop over possible trackIdOffsets to save also sim clusters from non-direct hits - for (unsigned int offset = 0; offset < 4; offset++) { + for (unsigned int offset = 0; offset < MtdHitCategory::n_categories + 1; offset++) { auto trackIdx = vertex_property.simTrack->trackId(); trackIdx += offset * (static_cast(PSimHit::k_tidOffset)); IfLogDebug(DEBUG, messageCategoryGraph_)