diff --git a/MuonSpectrometer/MuonIdHelpers/MuonIdHelpers/MuonIdHelper.h b/MuonSpectrometer/MuonIdHelpers/MuonIdHelpers/MuonIdHelper.h index 42957bdb24ac825f39b18a2c51a32e6c48afedff..4d06d0d6c83ed45230f638976cb56ab2f017e51e 100644 --- a/MuonSpectrometer/MuonIdHelpers/MuonIdHelpers/MuonIdHelper.h +++ b/MuonSpectrometer/MuonIdHelpers/MuonIdHelpers/MuonIdHelper.h @@ -309,7 +309,11 @@ protected: void addStationID(Identifier& id, int stationName, int stationEta, int stationPhi, int technology) const; void addStationID(ExpandedIdentifier& id, int stationName, int stationEta, int stationPhi, int technology) const; - + + inline void resetAndSet(const IdDictFieldImplementation & dict, const int new_val, Identifier& id ) const { + dict.reset(id); + dict.pack(new_val,id); + } private: // Copy constructor - do not use! MuonIdHelper(const MuonIdHelper& other) = delete; diff --git a/MuonSpectrometer/MuonIdHelpers/src/CscIdHelper.cxx b/MuonSpectrometer/MuonIdHelpers/src/CscIdHelper.cxx index fca77b6ca4bd015af53061b7549012d824d6ab7d..8353a2a9099c7b2dcc618456ee807f4129c0ed6a 100644 --- a/MuonSpectrometer/MuonIdHelpers/src/CscIdHelper.cxx +++ b/MuonSpectrometer/MuonIdHelpers/src/CscIdHelper.cxx @@ -880,10 +880,10 @@ Identifier CscIdHelper::channelID(const std::string& stationNameStr, int station Identifier CscIdHelper::channelID(const Identifier& id, int chamberLayer, int wireLayer, int measuresPhi, int strip) const { Identifier result(id); - m_cla_impl.pack(chamberLayer, result); - m_lay_impl.pack(wireLayer, result); - m_mea_impl.pack(measuresPhi, result); - m_str_impl.pack(strip, result); + resetAndSet(m_cla_impl, chamberLayer, result); + resetAndSet(m_lay_impl, wireLayer, result); + resetAndSet(m_mea_impl, measuresPhi, result); + resetAndSet(m_str_impl, strip, result); return result; } Identifier CscIdHelper::channelID(const Identifier& id, int chamberLayer, int wireLayer, int measuresPhi, int strip, bool& isValid) const { diff --git a/MuonSpectrometer/MuonIdHelpers/src/MdtIdHelper.cxx b/MuonSpectrometer/MuonIdHelpers/src/MdtIdHelper.cxx index 5ce6f808b2f02283477dcefd7bf8fa8320186a27..520232cd613d2b9dc587d01d5c970ea5b93194de 100644 --- a/MuonSpectrometer/MuonIdHelpers/src/MdtIdHelper.cxx +++ b/MuonSpectrometer/MuonIdHelpers/src/MdtIdHelper.cxx @@ -301,8 +301,8 @@ Identifier MdtIdHelper::multilayerID(const Identifier& channelID) const { } Identifier MdtIdHelper::multilayerID(const Identifier& moduleID, int multilayer) const { - Identifier result(moduleID); - m_mla_impl.pack(multilayer, result); + Identifier result{moduleID}; + resetAndSet(m_mla_impl, multilayer, result); return result; } @@ -712,9 +712,9 @@ Identifier MdtIdHelper::channelID(const std::string& stationNameStr, int station Identifier MdtIdHelper::channelID(const Identifier& id, int multilayer, int tubeLayer, int tube) const { Identifier result(id); - m_mla_impl.pack(multilayer, result); - m_lay_impl.pack(tubeLayer, result); - m_tub_impl.pack(tube, result); + resetAndSet(m_mla_impl, multilayer, result); + resetAndSet(m_lay_impl, tubeLayer, result); + resetAndSet(m_tub_impl, tube, result); return result; } Identifier MdtIdHelper::channelID(const Identifier& id, int multilayer, int tubeLayer, int tube, bool& isValid) const { diff --git a/MuonSpectrometer/MuonIdHelpers/src/MmIdHelper.cxx b/MuonSpectrometer/MuonIdHelpers/src/MmIdHelper.cxx index b5396811e746a4880f90bc24e4e55ca581da7411..15eecafe9d99e1d6702a2a552e6f5feedb1ec828 100644 --- a/MuonSpectrometer/MuonIdHelpers/src/MmIdHelper.cxx +++ b/MuonSpectrometer/MuonIdHelpers/src/MmIdHelper.cxx @@ -284,7 +284,7 @@ Identifier MmIdHelper::multilayerID(const Identifier& channelID) const { /*******************************************************************************/ Identifier MmIdHelper::multilayerID(const Identifier& moduleID, int multilayer) const { Identifier result(moduleID); - m_mplet_impl.pack(multilayer, result); + resetAndSet(m_mplet_impl, multilayer, result); return result; } Identifier MmIdHelper::multilayerID(const Identifier& moduleID, int multilayer, bool& isValid) const { @@ -695,11 +695,10 @@ Identifier MmIdHelper::channelID(const std::string& stationNameStr, int stationE /*******************************************************************************/ Identifier MmIdHelper::channelID(const Identifier& id, int multilayer, int gasGap, int channel) const { - Identifier result(id); - m_mplet_impl.pack(multilayer, result); - m_gap_impl.pack(gasGap, result); - m_cha_impl.pack(channel, result); - + Identifier result{id}; + resetAndSet(m_mplet_impl, multilayer, result); + resetAndSet(m_gap_impl, gasGap, result); + resetAndSet(m_cha_impl, channel, result); return result; } Identifier MmIdHelper::channelID(const Identifier& id, int multilayer, int gasGap, int channel, bool& isValid) const { diff --git a/MuonSpectrometer/MuonIdHelpers/src/RpcIdHelper.cxx b/MuonSpectrometer/MuonIdHelpers/src/RpcIdHelper.cxx index a599f4c093e0ac600b64bda926b53e06d3013231..35d16b029b219fd4e0ebf7ebf384a29a28f98712 100644 --- a/MuonSpectrometer/MuonIdHelpers/src/RpcIdHelper.cxx +++ b/MuonSpectrometer/MuonIdHelpers/src/RpcIdHelper.cxx @@ -844,7 +844,7 @@ Identifier RpcIdHelper::elementID(const std::string& stationNameStr, int station Identifier RpcIdHelper::elementID(const Identifier& id, int doubletR) const { Identifier result(id); - m_dbr_impl.pack(doubletR, result); + resetAndSet(m_dbr_impl, doubletR, result); return result; } @@ -897,8 +897,8 @@ Identifier RpcIdHelper::panelID(const Identifier& channelID) const { Identifier RpcIdHelper::panelID(const Identifier& padID, int gasGap, int measuresPhi) const { Identifier result(padID); - m_gap_impl.pack(gasGap, result); - m_mea_impl.pack(measuresPhi, result); + resetAndSet(m_gap_impl, gasGap, result); + resetAndSet(m_mea_impl, measuresPhi, result); return result; } Identifier RpcIdHelper::panelID(const Identifier& padID, int gasGap, int measuresPhi, bool& isValid) const { @@ -944,7 +944,7 @@ Identifier RpcIdHelper::gapID(const Identifier& panelID) const { Identifier RpcIdHelper::gapID(const Identifier& padID, int gasGap) const { Identifier result(padID); - m_gap_impl.pack(gasGap, result); + resetAndSet(m_gap_impl, gasGap, result); return result; } Identifier RpcIdHelper::gapID(const Identifier& padID, int gasGap, bool& isValid) const { @@ -996,11 +996,11 @@ Identifier RpcIdHelper::channelID(const std::string& stationNameStr, int station Identifier RpcIdHelper::channelID(const Identifier& id, int doubletZ, int doubletPhi, int gasGap, int measuresPhi, int strip) const { // pack fields independently Identifier result(id); - m_dbz_impl.pack(doubletZ, result); - m_dbp_impl.pack(doubletPhi, result); - m_gap_impl.pack(gasGap, result); - m_mea_impl.pack(measuresPhi, result); - m_str_impl.pack(strip, result); + resetAndSet(m_dbz_impl, doubletZ, result); + resetAndSet(m_dbp_impl, doubletPhi, result); + resetAndSet(m_gap_impl, gasGap, result); + resetAndSet(m_mea_impl, measuresPhi, result); + resetAndSet(m_str_impl, strip, result); return result; } Identifier RpcIdHelper::channelID(const Identifier& id, int doubletZ, int doubletPhi, int gasGap, int measuresPhi, int strip, @@ -1062,8 +1062,8 @@ Identifier RpcIdHelper::padID(int stationName, int stationEta, int stationPhi, i Identifier RpcIdHelper::padID(const Identifier& id, int doubletZ, int doubletPhi) const { // pack fields independently Identifier result(id); - m_dbz_impl.pack(doubletZ, result); - m_dbp_impl.pack(doubletPhi, result); + resetAndSet(m_dbz_impl, doubletZ, result); + resetAndSet(m_dbp_impl, doubletPhi, result); return result; } Identifier RpcIdHelper::padID(const Identifier& id, int doubletZ, int doubletPhi, bool& isValid) const { diff --git a/MuonSpectrometer/MuonIdHelpers/src/TgcIdHelper.cxx b/MuonSpectrometer/MuonIdHelpers/src/TgcIdHelper.cxx index ebb69df535f0158e22b105bdcd83c139d4c25c13..bb355a82fcd7626dca7b25921646a9070361fbed 100644 --- a/MuonSpectrometer/MuonIdHelpers/src/TgcIdHelper.cxx +++ b/MuonSpectrometer/MuonIdHelpers/src/TgcIdHelper.cxx @@ -603,9 +603,9 @@ Identifier TgcIdHelper::channelID(const std::string& stationNameStr, int station Identifier TgcIdHelper::channelID(const Identifier& id, int gasGap, int isStrip, int channel) const { Identifier result(id); - m_gap_impl.pack(gasGap, result); - m_ist_impl.pack(isStrip, result); - m_cha_impl.pack(channel, result); + resetAndSet(m_gap_impl, gasGap, result); + resetAndSet(m_ist_impl, isStrip, result); + resetAndSet(m_cha_impl, channel, result); return result; } Identifier TgcIdHelper::channelID(const Identifier& id, int gasGap, int isStrip, int channel, bool& isValid) const { diff --git a/MuonSpectrometer/MuonIdHelpers/src/sTgcIdHelper.cxx b/MuonSpectrometer/MuonIdHelpers/src/sTgcIdHelper.cxx index 7c97876763566e25912296828a0ad6d01815ebda..a1a0aefddf43428df87e401172d832d0cf047e3f 100644 --- a/MuonSpectrometer/MuonIdHelpers/src/sTgcIdHelper.cxx +++ b/MuonSpectrometer/MuonIdHelpers/src/sTgcIdHelper.cxx @@ -295,7 +295,7 @@ Identifier sTgcIdHelper::multilayerID(const Identifier& channelID) const { /*******************************************************************************/ Identifier sTgcIdHelper::multilayerID(const Identifier& moduleID, int multilayer) const { Identifier result(moduleID); - m_mplet_impl.pack(multilayer, result); + resetAndSet(m_mplet_impl, multilayer, result); return result; } Identifier sTgcIdHelper::multilayerID(const Identifier& moduleID, int multilayer, bool& isValid) const { @@ -847,10 +847,10 @@ Identifier sTgcIdHelper::channelID(const std::string& stationNameStr, int statio /*******************************************************************************/ Identifier sTgcIdHelper::channelID(const Identifier& id, int multilayer, int gasGap, int channelType, int channel) const { Identifier result = parentID(id); - m_mplet_impl.pack(multilayer, result); - m_gap_impl.pack(gasGap, result); - m_typ_impl.pack(channelType, result); - m_cha_impl.pack(channel, result); + resetAndSet(m_mplet_impl, multilayer, result); + resetAndSet(m_gap_impl, gasGap, result); + resetAndSet(m_typ_impl, channelType, result); + resetAndSet(m_cha_impl, channel, result); return result; } Identifier sTgcIdHelper::channelID(const Identifier& id, int multilayer, int gasGap, int channelType, int channel, bool& isValid) const { @@ -910,9 +910,9 @@ Identifier sTgcIdHelper::padID(const std::string& stationNameStr, int stationEta Identifier sTgcIdHelper::padID(const Identifier& id, int multilayer, int gasGap, int channelType, int padEta, int padPhi) const { Identifier result(id); if (channelType != Pad) return result; - m_mplet_impl.pack(multilayer, result); - m_gap_impl.pack(gasGap, result); - m_typ_impl.pack(channelType, result); + resetAndSet(m_mplet_impl, multilayer, result); + resetAndSet(m_gap_impl, gasGap, result); + resetAndSet(m_typ_impl, channelType, result); int channel = (padPhi - 1) * PadEtaMax + padEta; m_cha_impl.pack(channel, result);