diff --git a/InnerDetector/InDetRecTools/InDetTrackSelectionTool/Root/InDetAccessor.h b/InnerDetector/InDetRecTools/InDetTrackSelectionTool/Root/InDetAccessor.h index 2988113d4a50d2ed93b2ec1e484108bb3edb584d..4f79d083614e6bff4c636492e426130eb6db4683 100644 --- a/InnerDetector/InDetRecTools/InDetTrackSelectionTool/Root/InDetAccessor.h +++ b/InnerDetector/InDetRecTools/InDetTrackSelectionTool/Root/InDetAccessor.h @@ -114,10 +114,10 @@ namespace InDetAccessor { // summary accessor template <typename T_TrkHelper> - uint8_t getSummary(const T_TrkHelper helper, asg::AsgMessaging &msgHelper, xAOD::SummaryType sumType); + uint8_t getSummary(const T_TrkHelper & helper, asg::AsgMessaging &msgHelper, xAOD::SummaryType sumType); template <> - inline uint8_t getSummary(const TrackParticleHelper helper, asg::AsgMessaging &msgHelper, xAOD::SummaryType summaryType) { + inline uint8_t getSummary(const TrackParticleHelper & helper, asg::AsgMessaging &msgHelper, xAOD::SummaryType summaryType) { uint8_t summaryValue = 0; if (!helper.track().summaryValue(summaryValue, summaryType)) { IDTRKSEL_MSG_DEBUG( "Failed to get SummaryType " << std::to_string(summaryType) << " from xAOD::TrackParticle summary. A value of zero will be used instead." ); @@ -128,7 +128,7 @@ namespace InDetAccessor { #ifndef XAOD_ANALYSIS template <> - inline uint8_t getSummary(const TrkTrackHelper helper, asg::AsgMessaging &msgHelper, xAOD::SummaryType summaryType) { + inline uint8_t getSummary(const TrkTrackHelper & helper, asg::AsgMessaging &msgHelper, xAOD::SummaryType summaryType) { Int_t summaryTypeInt = static_cast<Int_t>(summaryType); Int_t checkSummaryValue = helper.summary().get( static_cast<Trk::SummaryType>(summaryTypeInt) ); if (checkSummaryValue < 0) { @@ -152,16 +152,16 @@ namespace InDetAccessor { // fit quality accessor template <typename Trk_Helper> - double getFitChiSquare(const Trk_Helper helper, asg::AsgMessaging &msgHelper); + double getFitChiSquare(const Trk_Helper & helper, asg::AsgMessaging &msgHelper); template <> - inline double getFitChiSquare(const TrackParticleHelper helper, asg::AsgMessaging &) { + inline double getFitChiSquare(const TrackParticleHelper & helper, asg::AsgMessaging &) { return helper.track().chiSquared(); } #ifndef XAOD_ANALYSIS template <> - inline double getFitChiSquare(const TrkTrackHelper helper, asg::AsgMessaging &msgHelper) { + inline double getFitChiSquare(const TrkTrackHelper & helper, asg::AsgMessaging &msgHelper) { if (!helper.track().fitQuality()) { IDTRKSEL_MSG_WARNING( "Zero pointer to fit quality received." ); return std::nan(""); @@ -171,16 +171,16 @@ namespace InDetAccessor { #endif template <typename TrkHelper> - double getFitNDoF(const TrkHelper helper, asg::AsgMessaging &msgHelper); + double getFitNDoF(const TrkHelper & helper, asg::AsgMessaging &msgHelper); template <> - inline double getFitNDoF(const TrackParticleHelper helper, asg::AsgMessaging &) { + inline double getFitNDoF(const TrackParticleHelper & helper, asg::AsgMessaging &) { return helper.track().numberDoF(); } #ifndef XAOD_ANALYSIS template <> - inline double getFitNDoF(const TrkTrackHelper helper, asg::AsgMessaging &msgHelper) { + inline double getFitNDoF(const TrkTrackHelper & helper, asg::AsgMessaging &msgHelper) { if (!helper.track().fitQuality()) { IDTRKSEL_MSG_WARNING( "Zero pointer to fit quality received." ); return std::nan(""); @@ -192,10 +192,10 @@ namespace InDetAccessor { // eProbabilityHT accessor template <typename Trk_Helper> - float getEProbabilityHT(const Trk_Helper helper, asg::AsgMessaging &msgHelper); + float getEProbabilityHT(const Trk_Helper & helper, asg::AsgMessaging &msgHelper); template <> - inline float getEProbabilityHT(const TrackParticleHelper helper, asg::AsgMessaging &msgHelper) { + inline float getEProbabilityHT(const TrackParticleHelper & helper, asg::AsgMessaging &msgHelper) { float eProbHT =0.f; if (!helper.track().summaryValue(eProbHT, xAOD::SummaryType::eProbabilityHT)) { IDTRKSEL_MSG_DEBUG( "Failed to get eProbabilityHT from xAOD::TrackParticle summary. A value of zero will be used instead." ); @@ -206,7 +206,7 @@ namespace InDetAccessor { #ifndef XAOD_ANALYSIS template <> - inline float getEProbabilityHT(const TrkTrackHelper helper, asg::AsgMessaging &msgHelper) { + inline float getEProbabilityHT(const TrkTrackHelper & helper, asg::AsgMessaging &msgHelper) { float eProbHT; if (!helper.hasSummaryOrError(msgHelper)) { eProbHT = 0.f; @@ -225,7 +225,7 @@ namespace InDetAccessor { //defining parameters accessor template <short index> - inline double getDefiningParameters(TrackParticleHelper helper, asg::AsgMessaging &) { + inline double getDefiningParameters(TrackParticleHelper helper, asg::AsgMessaging &) { static_assert(index<5); double param = helper.track().definingParameters()[index]; if (index==1) { @@ -238,7 +238,8 @@ namespace InDetAccessor { #ifndef XAOD_ANALYSIS template <short index> - inline double getDefiningParameters(TrkTrackHelper helper, asg::AsgMessaging &msgHelper) { + //cppcheck-suppress passedByValue + inline double getDefiningParameters(TrkTrackHelper helper, asg::AsgMessaging &msgHelper) { assert(index<5); return helper.hasPerigeeOrError(msgHelper) ? helper.perigee()->parameters()[index] : std::nan(""); } @@ -246,33 +247,33 @@ namespace InDetAccessor { // defining parameters covariance accessor template <typename Trk_Helper> - inline double getDefiningParametersCov(Trk_Helper helper, [[maybe_unused]] asg::AsgMessaging &msgHelper, unsigned int index_i, unsigned int index_j); + inline double getDefiningParametersCov(Trk_Helper & helper, [[maybe_unused]] asg::AsgMessaging &msgHelper, unsigned int index_i, unsigned int index_j); template <> - inline double getDefiningParametersCov(TrackParticleHelper helper, [[maybe_unused]] asg::AsgMessaging &msgHelper, unsigned int index_i, unsigned int index_j) { + inline double getDefiningParametersCov(TrackParticleHelper & helper, [[maybe_unused]] asg::AsgMessaging &msgHelper, unsigned int index_i, unsigned int index_j) { assert( index_i<5 && index_j<5); return helper.track().definingParametersCovMatrix()(index_i, index_j); } #ifndef XAOD_ANALYSIS template <> - inline double getDefiningParametersCov(TrkTrackHelper helper, asg::AsgMessaging &msgHelper, unsigned int index_i, unsigned int index_j) { + inline double getDefiningParametersCov(TrkTrackHelper & helper, asg::AsgMessaging &msgHelper, unsigned int index_i, unsigned int index_j) { assert( index_i<5 && index_j<5); return helper.hasPerigeeOrError(msgHelper) ? (*helper.perigee()->covariance())(index_i, index_j) : std::nan(""); } #endif template <typename Trk_Helper> - inline Int_t getNumberOfUsedHitsdEdx(Trk_Helper helper, asg::AsgMessaging &msgHelper); + inline Int_t getNumberOfUsedHitsdEdx(Trk_Helper & helper, asg::AsgMessaging &msgHelper); template <> - inline Int_t getNumberOfUsedHitsdEdx(TrackParticleHelper helper, [[maybe_unused]] asg::AsgMessaging &msgHelper) { + inline Int_t getNumberOfUsedHitsdEdx(TrackParticleHelper & helper, [[maybe_unused]] asg::AsgMessaging &msgHelper) { return helper.track().numberOfUsedHitsdEdx(); } #ifndef XAOD_ANALYSIS template <> - inline Int_t getNumberOfUsedHitsdEdx(TrkTrackHelper helper, asg::AsgMessaging &msgHelper) { + inline Int_t getNumberOfUsedHitsdEdx(TrkTrackHelper & helper, asg::AsgMessaging &msgHelper) { int n_used_hits; if (!helper.hasSummaryOrError(msgHelper)) { n_used_hits=0; @@ -290,16 +291,16 @@ namespace InDetAccessor { #endif template <typename Trk_Helper> - inline Int_t getNumberOfIBLOverflowsdEdx(Trk_Helper helper, asg::AsgMessaging &msgHelper); + inline Int_t getNumberOfIBLOverflowsdEdx(Trk_Helper & helper, asg::AsgMessaging &msgHelper); template <> - inline Int_t getNumberOfIBLOverflowsdEdx(TrackParticleHelper helper, [[maybe_unused]] asg::AsgMessaging &msgHelper) { + inline Int_t getNumberOfIBLOverflowsdEdx(TrackParticleHelper & helper, [[maybe_unused]] asg::AsgMessaging &msgHelper) { return helper.track().numberOfUsedHitsdEdx(); } #ifndef XAOD_ANALYSIS template <> - inline Int_t getNumberOfIBLOverflowsdEdx(TrkTrackHelper helper, asg::AsgMessaging &msgHelper) { + inline Int_t getNumberOfIBLOverflowsdEdx(TrkTrackHelper & helper, asg::AsgMessaging &msgHelper) { int n_overflow_hits; if (!helper.hasSummaryOrError(msgHelper)) { n_overflow_hits=0; @@ -320,10 +321,10 @@ namespace InDetAccessor { std::tuple<uint8_t,uint8_t> getSiHitsTopBottom( const Trk::Track& track, asg::AsgMessaging &msgHelper); template <typename Trk_Helper> - inline std::tuple<uint8_t,uint8_t> getSiHitsTopBottom(Trk_Helper helper, asg::AsgMessaging &msgHelper); + inline std::tuple<uint8_t,uint8_t> getSiHitsTopBottom(Trk_Helper & helper, asg::AsgMessaging &msgHelper); template <> - inline std::tuple<uint8_t,uint8_t> getSiHitsTopBottom(TrackParticleHelper helper, asg::AsgMessaging &msgHelper) { + inline std::tuple<uint8_t,uint8_t> getSiHitsTopBottom(TrackParticleHelper & helper, asg::AsgMessaging &msgHelper) { const Trk::Track* trkTrack = helper.track().track(); if (!trkTrack) { IDTRKSEL_MSG_WARNING( "xAOD::TrackParticle has a null pointer to a Trk::Track." ); @@ -336,7 +337,7 @@ namespace InDetAccessor { } template <> - inline std::tuple<uint8_t,uint8_t> getSiHitsTopBottom(TrkTrackHelper helper, asg::AsgMessaging &msgHelper) { + inline std::tuple<uint8_t,uint8_t> getSiHitsTopBottom(TrkTrackHelper & helper, asg::AsgMessaging &msgHelper) { return getSiHitsTopBottom(helper.track(),msgHelper); } #endif diff --git a/InnerDetector/InDetRecTools/InDetTrackSelectionTool/util/InDetTrackSelectionToolTester.cxx b/InnerDetector/InDetRecTools/InDetTrackSelectionTool/util/InDetTrackSelectionToolTester.cxx index a1261c039ef2c8a981a69b72951436e16825cc95..70d6c2415f655a59b4ee527e805aae3d95adf5a3 100644 --- a/InnerDetector/InDetRecTools/InDetTrackSelectionTool/util/InDetTrackSelectionToolTester.cxx +++ b/InnerDetector/InDetRecTools/InDetTrackSelectionTool/util/InDetTrackSelectionToolTester.cxx @@ -32,6 +32,8 @@ struct HistFamily public: HistFamily(const string&); void fill(const xAOD::TrackParticle&, const xAOD::Vertex*); + HistFamily(const HistFamily &) = delete; + HistFamily & operator =(const HistFamily &) = delete; private: TH2* h_pt = nullptr; // these show eta dependence TH2* h_si_hits_phys = nullptr;