diff --git a/CaloFuture/CaloFutureDAQ/src/CaloFutureFillRawBuffer.cpp b/CaloFuture/CaloFutureDAQ/src/CaloFutureFillRawBuffer.cpp
index 76618b595198a1088974496076913f6911883ef8..46b72377a08bd842c2c182b182f3a7cd35efb149 100644
--- a/CaloFuture/CaloFutureDAQ/src/CaloFutureFillRawBuffer.cpp
+++ b/CaloFuture/CaloFutureDAQ/src/CaloFutureFillRawBuffer.cpp
@@ -30,8 +30,8 @@
 
 namespace LHCb::Calo {
 
-  class FillRawBuffer : public LHCb::Algorithm::Consumer<void( const LHCb::CaloAdcs&, const DeCalorimeter& ),
-                                                         LHCb::DetDesc::usesConditions<DeCalorimeter>> {
+  class FillRawBuffer : public Algorithm::Consumer<void( const LHCb::CaloAdcs&, const DeCalorimeter& ),
+                                                   Algorithm::Traits::usesConditions<DeCalorimeter>> {
 
   public:
     // Standard constructor
diff --git a/Det/CaloDet/src/component/CaloDetTestAlgorithm.cpp b/Det/CaloDet/src/component/CaloDetTestAlgorithm.cpp
index 7641c87983f01e30d26e922bad6f0d7fae8e2d0b..4d4e448662bca1454a22dbd2ea3c74da11d38da6 100644
--- a/Det/CaloDet/src/component/CaloDetTestAlgorithm.cpp
+++ b/Det/CaloDet/src/component/CaloDetTestAlgorithm.cpp
@@ -26,7 +26,7 @@ namespace LHCb {
    *  @date   14/12/2001
    */
   struct CaloDetTestAlgorithm
-      : public Algorithm::Consumer<void( const DeCalorimeter& ), DetDesc::usesConditions<DeCalorimeter>> {
+      : public Algorithm::Consumer<void( const DeCalorimeter& ), Algorithm::Traits::usesConditions<DeCalorimeter>> {
 
     CaloDetTestAlgorithm( const std::string& name, ISvcLocator* svcloc )
         : Consumer( name, svcloc, {KeyValue{"DetDataLocation", ""}} ) {}
diff --git a/Det/CaloDet/src/component/DeCaloCalib.cpp b/Det/CaloDet/src/component/DeCaloCalib.cpp
index e3a8da410fcca814323b9828ad1f01b4fa277a7c..eeb84a33e40c1717a06c5aafc40942961f8b9202 100644
--- a/Det/CaloDet/src/component/DeCaloCalib.cpp
+++ b/Det/CaloDet/src/component/DeCaloCalib.cpp
@@ -36,8 +36,9 @@ namespace LHCb {
    *
    * 2007-08-22 : Olivier DESCHAMPS
    */
-  class DeCaloCalib : public Algorithm::Consumer<void( const DeCalorimeter& ),
-                                                 DetDesc::usesBaseAndConditions<GaudiTupleAlg, DeCalorimeter>> {
+  class DeCaloCalib
+      : public Algorithm::Consumer<void( const DeCalorimeter& ),
+                                   Algorithm::Traits::usesBaseAndConditions<GaudiTupleAlg, DeCalorimeter>> {
   public:
     DeCaloCalib( const std::string& name, ISvcLocator* pSvcLocator )
         : Consumer( name, pSvcLocator, {KeyValue{"DetectorName", ""}} ) {}
diff --git a/Det/CaloDet/src/component/DeCaloTiming.cpp b/Det/CaloDet/src/component/DeCaloTiming.cpp
index a690b54d8236a041d828f3a56385f6b9b22165bb..23ea957f210b97e73d311d3a172482d64d528c7c 100644
--- a/Det/CaloDet/src/component/DeCaloTiming.cpp
+++ b/Det/CaloDet/src/component/DeCaloTiming.cpp
@@ -28,8 +28,9 @@ namespace LHCb {
    * @author Olivier DESCHAMPS
    * @date   2007-08-22
    */
-  class DeCaloTiming : public Algorithm::Consumer<void( const DeCalorimeter& ),
-                                                  DetDesc::usesBaseAndConditions<GaudiTupleAlg, DeCalorimeter>> {
+  class DeCaloTiming
+      : public Algorithm::Consumer<void( const DeCalorimeter& ),
+                                   Algorithm::Traits::usesBaseAndConditions<GaudiTupleAlg, DeCalorimeter>> {
   public:
     DeCaloTiming( const std::string& name, ISvcLocator* pSvcLocator )
         : Consumer( name, pSvcLocator, {KeyValue{"DetectorName", ""}} ) {}
diff --git a/Det/DetCond/examples/FunctionalConditionAccessor.cpp b/Det/DetCond/examples/FunctionalConditionAccessor.cpp
index dcd402ae500236be8ae9d449d78eeee405f773b1..37b9956398e8f38e0aca99ba935ac06b2f000b0e 100644
--- a/Det/DetCond/examples/FunctionalConditionAccessor.cpp
+++ b/Det/DetCond/examples/FunctionalConditionAccessor.cpp
@@ -31,7 +31,7 @@ namespace LHCb::DetCond::Examples::Functional {
 
   // Example of algorithm accessing conditions
   struct CondAccessExample
-      : Gaudi::Functional::Consumer<void( const YAML::Node& ), LHCb::DetDesc::usesConditions<YAML::Node>> {
+      : Gaudi::Functional::Consumer<void( const YAML::Node& ), LHCb::Algorithm::Traits::usesConditions<YAML::Node>> {
     // constructor
     CondAccessExample( const std::string& name, ISvcLocator* loc )
         : Consumer{name, loc, {KeyValue{"CondPath", ConditionPath}}} {}
@@ -46,8 +46,8 @@ namespace LHCb::DetCond::Examples::Functional {
     }
   };
 
-  struct CondAccessExampleJSON
-      : Gaudi::Functional::Consumer<void( const nlohmann::json& ), LHCb::DetDesc::usesConditions<nlohmann::json>> {
+  struct CondAccessExampleJSON : Gaudi::Functional::Consumer<void( const nlohmann::json& ),
+                                                             LHCb::Algorithm::Traits::usesConditions<nlohmann::json>> {
     // constructor
     CondAccessExampleJSON( const std::string& name, ISvcLocator* loc )
         : Consumer{name, loc, {KeyValue{"CondPath", ConditionPath}}} {}
@@ -64,7 +64,7 @@ namespace LHCb::DetCond::Examples::Functional {
 
   // Example of algorithm accessing conditions
   struct CondAccessExampleYamlNoProp
-      : Gaudi::Functional::Consumer<void( const EventContext& ), DetDesc::usesConditions<>> {
+      : Gaudi::Functional::Consumer<void( const EventContext& ), Algorithm::Traits::usesConditions<>> {
     // constructor
     CondAccessExampleYamlNoProp( const std::string& name, ISvcLocator* loc ) : Consumer{name, loc} {}
 
@@ -107,7 +107,7 @@ namespace LHCb::DetCond::Examples::Functional {
    *  - deriving a condition from a derived condition (kind of recursive derivation)
    */
   struct CondAccessExampleWithDerivation
-      : Algorithm::Consumer<void( const MyData&, const MyData& ), DetDesc::usesConditions<MyData>> {
+      : Algorithm::Consumer<void( const MyData&, const MyData& ), Algorithm::Traits::usesConditions<MyData>> {
     CondAccessExampleWithDerivation( const std::string& name, ISvcLocator* loc )
         : Consumer{name, loc, {KeyValue{"Level1", "DerivedCondition1"}, KeyValue{"Level2", "DerivedCondition2"}}} {}
 
@@ -144,7 +144,7 @@ namespace LHCb::DetCond::Examples::Functional {
   using MyDataSIMD = details::MyData<LHCb::SIMD::FP<float>>;
 
   struct CondAccessExampleWithDerivationSIMD
-      : Algorithm::Consumer<void( const MyDataSIMD& ), DetDesc::usesConditions<MyDataSIMD>> {
+      : Algorithm::Consumer<void( const MyDataSIMD& ), Algorithm::Traits::usesConditions<MyDataSIMD>> {
 
     CondAccessExampleWithDerivationSIMD( const std::string& name, ISvcLocator* loc )
         : Consumer{name, loc, {KeyValue{"Cond", "DerivedConditionSIMD"}}} {}
@@ -194,7 +194,7 @@ namespace LHCb::DetCond::Examples::Functional {
   } // namespace
 
   struct CondAccessExampleWithSharedDerivation
-      : Algorithm::Consumer<void( const MyData&, const MyData& ), DetDesc::usesConditions<MyData>> {
+      : Algorithm::Consumer<void( const MyData&, const MyData& ), Algorithm::Traits::usesConditions<MyData>> {
     CondAccessExampleWithSharedDerivation( const std::string& name, ISvcLocator* loc )
         : Consumer{name, loc, {KeyValue{"Level1", "DerivedCondition1"}, KeyValue{"Level2", "DerivedCondition2"}}} {}
 
@@ -235,7 +235,7 @@ namespace LHCb::DetCond::Examples::Functional {
     double                  pi() { return m_pi; };
   };
   struct CondAccessExampleWithDerivationAndBase
-      : Algorithm::Consumer<void( const MyData& ), DetDesc::usesBaseAndConditions<MyAlgorithm, MyData>> {
+      : Algorithm::Consumer<void( const MyData& ), Algorithm::Traits::usesBaseAndConditions<MyAlgorithm, MyData>> {
     CondAccessExampleWithDerivationAndBase( const std::string& name, ISvcLocator* loc )
         : Consumer{name, loc, {KeyValue{"Target", "DerivedCondition"}}} {}
 
diff --git a/Det/DetDescChecks/src/MaterialBudgetAlg.cpp b/Det/DetDescChecks/src/MaterialBudgetAlg.cpp
old mode 100755
new mode 100644
index 51c2b51245b225564c7b249f29680e8d0be71be4..bcadbdfbe8cb86c2756f38a97a9ea0251ab0bc9e
--- a/Det/DetDescChecks/src/MaterialBudgetAlg.cpp
+++ b/Det/DetDescChecks/src/MaterialBudgetAlg.cpp
@@ -80,9 +80,9 @@ namespace DetDesc {
    *  - zref      reference z position (at which xbinref and ybinref
    *                         are given)
    */
-  class MaterialBudget
-      : public LHCb::Algorithm::Consumer<void( const DetectorElement& ),
-                                         LHCb::DetDesc::usesBaseAndConditions<GaudiHistoAlg, DetectorElement>> {
+  class MaterialBudget : public LHCb::Algorithm::Consumer<
+                             void( const DetectorElement& ),
+                             LHCb::Algorithm::Traits::usesBaseAndConditions<GaudiHistoAlg, DetectorElement>> {
   public:
     MaterialBudget( const std::string& name, ISvcLocator* pSvcLocator )
         : Consumer( name, pSvcLocator, {KeyValue{"DELHCbPath", LHCb::standard_geometry_top}} ) {}
diff --git a/Det/LHCbDet/src/InteractionRegionExample.cpp b/Det/LHCbDet/src/InteractionRegionExample.cpp
index cbd316658ac33ae587931ae3038bbc9c99863c68..ca0e831f6839bed85293cee0b905eb55bd52ca37 100644
--- a/Det/LHCbDet/src/InteractionRegionExample.cpp
+++ b/Det/LHCbDet/src/InteractionRegionExample.cpp
@@ -25,8 +25,9 @@
 namespace LHCb::DetDesc::Examples {
 
   // Example of algorithm accessing conditions
-  struct InteractionRegionExample : Algorithm::Consumer<void( const LHCb::Conditions::InteractionRegion& ),
-                                                        DetDesc::usesConditions<LHCb::Conditions::InteractionRegion>> {
+  struct InteractionRegionExample
+      : Algorithm::Consumer<void( const LHCb::Conditions::InteractionRegion& ),
+                            Algorithm::Traits::usesConditions<LHCb::Conditions::InteractionRegion>> {
     // constructor
     InteractionRegionExample( const std::string& name, ISvcLocator* loc )
         : Consumer{name, loc, {KeyValue{"IRPath", "IR"}}} {}
diff --git a/Det/LbDD4hep/src/DetectorTests.cpp b/Det/LbDD4hep/src/DetectorTests.cpp
index 26e995eb309855cda52ee280f5acace9ebc6b60a..4b0dd5421dfbcf92901bacc8d5caa7bf21ae4a51 100644
--- a/Det/LbDD4hep/src/DetectorTests.cpp
+++ b/Det/LbDD4hep/src/DetectorTests.cpp
@@ -67,7 +67,7 @@ namespace LHCb::Det::LbDD4hep::Tests {
 
   template <typename DET>
   using base_type = Algorithm::Consumer<void( const details::TestDervCond<DET>& ),
-                                        LHCb::DetDesc::usesConditions<details::TestDervCond<DET>>>;
+                                        LHCb::Algorithm::Traits::usesConditions<details::TestDervCond<DET>>>;
 
   template <typename DET>
   using KeyValue = typename base_type<DET>::KeyValue;
diff --git a/Det/Magnet/src/MagFieldReader.cpp b/Det/Magnet/src/MagFieldReader.cpp
index b5abeb050ec311ca7c37b9c270b66d9b8ccf31f0..aada575c0ddcb6b5a5d2e73b2fb60031c43d30aa 100644
--- a/Det/Magnet/src/MagFieldReader.cpp
+++ b/Det/Magnet/src/MagFieldReader.cpp
@@ -28,8 +28,9 @@
  *  @date   08/05/2002
  */
 
-class MagFieldReader : public LHCb::Algorithm::Consumer<void( const DeMagnet& ),
-                                                        LHCb::DetDesc::usesBaseAndConditions<GaudiTupleAlg, DeMagnet>> {
+class MagFieldReader
+    : public LHCb::Algorithm::Consumer<void( const DeMagnet& ),
+                                       LHCb::Algorithm::Traits::usesBaseAndConditions<GaudiTupleAlg, DeMagnet>> {
 public:
   MagFieldReader( const std::string& name, ISvcLocator* pSvcLocator )
       : Consumer( name, pSvcLocator, {KeyValue{"Magnet", LHCb::Det::Magnet::det_path}} ) {}
diff --git a/Det/Magnet/tests/src/component/TestMagFieldSvc.cpp b/Det/Magnet/tests/src/component/TestMagFieldSvc.cpp
index 579ac9af8dc82d1b9324b9f5f6e8838955b576ba..a8d400a2df0198306ed921d11e4e799ff4b73777 100644
--- a/Det/Magnet/tests/src/component/TestMagFieldSvc.cpp
+++ b/Det/Magnet/tests/src/component/TestMagFieldSvc.cpp
@@ -44,7 +44,8 @@ struct MagFielSvcTester final : LHCb::Algorithm::Producer<int()> {
 
 DECLARE_COMPONENT( MagFielSvcTester )
 
-struct DeMagnetTester : LHCb::Algorithm::Consumer<void( const DeMagnet& ), LHCb::DetDesc::usesConditions<DeMagnet>> {
+struct DeMagnetTester
+    : LHCb::Algorithm::Consumer<void( const DeMagnet& ), LHCb::Algorithm::Traits::usesConditions<DeMagnet>> {
 
   DeMagnetTester( const std::string& name, ISvcLocator* loc )
       : Consumer{name, loc, {KeyValue{"Magnet", LHCb::Det::Magnet::det_path}}} {}
diff --git a/Det/UTDet/tests/src/component/TestDEUT.cpp b/Det/UTDet/tests/src/component/TestDEUT.cpp
index ab246d04ebd28bd627787588cb04a07be4602ac4..b6882cc767a278de61bd42e9da448043595ec456 100644
--- a/Det/UTDet/tests/src/component/TestDEUT.cpp
+++ b/Det/UTDet/tests/src/component/TestDEUT.cpp
@@ -14,7 +14,7 @@
 #include <DetDesc/GenericConditionAccessorHolder.h>
 
 struct DeUTTester
-    : LHCb::Algorithm::Consumer<void( const DeUTDetector& ), LHCb::DetDesc::usesConditions<DeUTDetector>> {
+    : LHCb::Algorithm::Consumer<void( const DeUTDetector& ), LHCb::Algorithm::Traits::usesConditions<DeUTDetector>> {
 
   DeUTTester( const std::string& name, ISvcLocator* loc )
       : Consumer{name, loc, {KeyValue{"DeUT", DeUTDetLocation::location()}}} {}
diff --git a/Det/VPDet/src/component/legacy/VeloMotionSystemFromYaml.cpp b/Det/VPDet/src/component/legacy/VeloMotionSystemFromYaml.cpp
index a11dafabf1ec2feae218c13a3e6fbc327e4c1aa0..52041710cfe00597ebbb555d9e564f25e86780bd 100644
--- a/Det/VPDet/src/component/legacy/VeloMotionSystemFromYaml.cpp
+++ b/Det/VPDet/src/component/legacy/VeloMotionSystemFromYaml.cpp
@@ -137,7 +137,8 @@ namespace LHCb {
     };
     DECLARE_COMPONENT( VeloMotionSystemFromYaml )
 
-    struct TestBeamSpot : LHCb::Algorithm::Consumer<void( const DeVP& ), LHCb::DetDesc::usesConditions<DeVP>> {
+    struct TestBeamSpot
+        : LHCb::Algorithm::Consumer<void( const DeVP& ), LHCb::Algorithm::Traits::usesConditions<DeVP>> {
       TestBeamSpot( const std::string& name, ISvcLocator* pSvcLocator )
           : Consumer( name, pSvcLocator, KeyValue( "DeVP", DeVPLocation::Default ) ) {}
 
diff --git a/Event/RecreatePIDTools/src/ChargedProtoAddInfo.cpp b/Event/RecreatePIDTools/src/ChargedProtoAddInfo.cpp
index 6d1a85ec4dfbc6c6a9d9a9c290b353d337fef089..ebdb6c7199c29105e59f08ab980409001290bfa0 100644
--- a/Event/RecreatePIDTools/src/ChargedProtoAddInfo.cpp
+++ b/Event/RecreatePIDTools/src/ChargedProtoAddInfo.cpp
@@ -16,7 +16,7 @@
 namespace LHCb::Rec::ProtoParticle::Charged {
 
   class AddInfo final
-      : public Algorithm::Consumer<void( DetectorElement const& ), DetDesc::usesConditions<DetectorElement>> {
+      : public Algorithm::Consumer<void( DetectorElement const& ), Algorithm::Traits::usesConditions<DetectorElement>> {
   public:
     AddInfo( const std::string& name, ISvcLocator* pSvcLocator )
         : Consumer( name, pSvcLocator, {"StandardGeometryTop", LHCb::standard_geometry_top} ) {}
diff --git a/Event/RecreatePIDTools/src/FutureNeutralProtoPAlg.cpp b/Event/RecreatePIDTools/src/FutureNeutralProtoPAlg.cpp
index 0e2c25ceccf2f4e55ba247ab36287336df01b957..8451856c1d99a1abeb297ae135020c56655773ae 100644
--- a/Event/RecreatePIDTools/src/FutureNeutralProtoPAlg.cpp
+++ b/Event/RecreatePIDTools/src/FutureNeutralProtoPAlg.cpp
@@ -60,7 +60,7 @@ namespace LHCb {
                                                      const CaloHypos&, const CaloHypos&, const CaloHypos&,
                                                      const TrackMatchTable&, const DeCalorimeter&,
                                                      const DeCalorimeter& ),
-                                                 DetDesc::usesConditions<DeCalorimeter, DeCalorimeter>> {
+                                                 Algorithm::Traits::usesConditions<DeCalorimeter, DeCalorimeter>> {
 
   public:
     /// Standard constructor
diff --git a/Kernel/LHCbAlgs/tests/src/LbAppInitTester.cpp b/Kernel/LHCbAlgs/tests/src/LbAppInitTester.cpp
index ffa1ea60c3212d4ee24d1ade7b34ac71f2982c0d..e2f95ea8bb7fdea19ebc4efe58902294183de79f 100644
--- a/Kernel/LHCbAlgs/tests/src/LbAppInitTester.cpp
+++ b/Kernel/LHCbAlgs/tests/src/LbAppInitTester.cpp
@@ -13,7 +13,8 @@
 #include <sstream>
 
 namespace LHCbTests {
-  struct LbAppInitTester : LHCb::Algorithm::Consumer<void(), LHCb::DetDesc::usesBaseAndConditions<LbAppInit>> {
+  struct LbAppInitTester
+      : LHCb::Algorithm::Consumer<void(), LHCb::Algorithm::Traits::usesBaseAndConditions<LbAppInit>> {
     using Consumer::Consumer;
 
     void operator()() const override {
diff --git a/Muon/MuonDAQ/src/components/MuonDigitToRawBuffer.cpp b/Muon/MuonDAQ/src/components/MuonDigitToRawBuffer.cpp
index 59f7e670783aca84a0bf1667b0d37524c21a1f24..37ddb822712581cb256e0af754e1e87a6613c3df 100644
--- a/Muon/MuonDAQ/src/components/MuonDigitToRawBuffer.cpp
+++ b/Muon/MuonDAQ/src/components/MuonDigitToRawBuffer.cpp
@@ -64,7 +64,7 @@ namespace LHCb {
    *  @date   2004-01-19
    */
   class MuonDigitToRawBuffer : public Algorithm::Consumer<void( MuonDigits const&, DeMuonDetector const& ),
-                                                          DetDesc::usesConditions<DeMuonDetector>> {
+                                                          Algorithm::Traits::usesConditions<DeMuonDetector>> {
   public:
     MuonDigitToRawBuffer( std::string const& name, ISvcLocator* pSvcLocator )
         : Consumer{name,
diff --git a/Muon/MuonDAQ/src/components/MuonDigitToTell40RawBuffer.cpp b/Muon/MuonDAQ/src/components/MuonDigitToTell40RawBuffer.cpp
index 9f6000728f198a8b4f51d225f64f3da8d25fe035..a8c9d606d3737f8ab16cb41ab33ed42ae1ec204a 100644
--- a/Muon/MuonDAQ/src/components/MuonDigitToTell40RawBuffer.cpp
+++ b/Muon/MuonDAQ/src/components/MuonDigitToTell40RawBuffer.cpp
@@ -73,7 +73,7 @@ using namespace Muon::DAQ;
 class MuonDigitToTell40RawBuffer
     : public LHCb::Algorithm::Consumer<void( LHCb::RawEvent const&, LHCb::MuonDigits const&, DeMuonDetector const&,
                                              MapTell40 const& ),
-                                       LHCb::DetDesc::usesConditions<DeMuonDetector, MapTell40>> {
+                                       LHCb::Algorithm::Traits::usesConditions<DeMuonDetector, MapTell40>> {
 public:
   MuonDigitToTell40RawBuffer( const std::string& name, ISvcLocator* pSvcLocator )
       : Consumer( name, pSvcLocator,
diff --git a/Muon/MuonDAQ/src/components/MuonRawInUpgradeToHits.cpp b/Muon/MuonDAQ/src/components/MuonRawInUpgradeToHits.cpp
index 68b6ef7a10c47fe122623def321519ac8d255db5..eb52cfe23b1b0300260db60c4d84aed37614a815 100644
--- a/Muon/MuonDAQ/src/components/MuonRawInUpgradeToHits.cpp
+++ b/Muon/MuonDAQ/src/components/MuonRawInUpgradeToHits.cpp
@@ -158,10 +158,10 @@ namespace LHCb::MuonUpgrade::DAQ {
   // Implementation file for class : RawToHits
   //-----------------------------------------------------------------------------
   class RawToHits final
-      : public Algorithm::Transformer<MuonHitContainer( const EventContext&, const RawBank::View&, const RawBank::View&,
-                                                        const DeMuonDetector&, const ComputeTilePosition&,
-                                                        const Tell40LinksMap& ),
-                                      DetDesc::usesConditions<DeMuonDetector, ComputeTilePosition, Tell40LinksMap>> {
+      : public Algorithm::Transformer<
+            MuonHitContainer( const EventContext&, const RawBank::View&, const RawBank::View&, const DeMuonDetector&,
+                              const ComputeTilePosition&, const Tell40LinksMap& ),
+            Algorithm::Traits::usesConditions<DeMuonDetector, ComputeTilePosition, Tell40LinksMap>> {
   public:
     RawToHits( const std::string& name, ISvcLocator* pSvcLocator );
 
diff --git a/Muon/MuonDAQ/src/components/MuonRawToHits.cpp b/Muon/MuonDAQ/src/components/MuonRawToHits.cpp
index e62a75fa9c2133c4c693e5cda4ac910e551dd762..4960994256ea045ea373d479bee9de8a2521186a 100644
--- a/Muon/MuonDAQ/src/components/MuonRawToHits.cpp
+++ b/Muon/MuonDAQ/src/components/MuonRawToHits.cpp
@@ -195,7 +195,7 @@ namespace LHCb::Muon::DAQ {
   class RawToHits final
       : public LHCb::Algorithm::Transformer<MuonHitContainer( const EventContext&, const RawBank::View&,
                                                               const DeMuonDetector&, const ComputeTilePosition& ),
-                                            DetDesc::usesConditions<DeMuonDetector, ComputeTilePosition>> {
+                                            Algorithm::Traits::usesConditions<DeMuonDetector, ComputeTilePosition>> {
   public:
     /// Standard constructor
     RawToHits( const std::string& name, ISvcLocator* pSvcLocator );
diff --git a/Muon/MuonDAQ/src/components/MuonRawToTell40Infos.cpp b/Muon/MuonDAQ/src/components/MuonRawToTell40Infos.cpp
index d677175bd651b3b00f7784f00017103ce8c0f851..ad32b3067e7965c3bd6dea4f9b77211b250ef992 100644
--- a/Muon/MuonDAQ/src/components/MuonRawToTell40Infos.cpp
+++ b/Muon/MuonDAQ/src/components/MuonRawToTell40Infos.cpp
@@ -49,7 +49,7 @@ namespace LHCb::MuonUpgrade::DAQ {
       : public Algorithm::Transformer<MuonTell40PciInfos( const RawBank::View&, const RawBank::View&,
                                                           const RawBank::View&, const DeMuonDetector&,
                                                           const Tell40LinksMap&, const LHCb::ODIN& odin ),
-                                      DetDesc::usesConditions<DeMuonDetector, Tell40LinksMap>> {
+                                      Algorithm::Traits::usesConditions<DeMuonDetector, Tell40LinksMap>> {
   public:
     RawToTell40Infos( const std::string& name, ISvcLocator* pSvcLocator );
 
diff --git a/Muon/MuonDAQ/src/components/MuonTell40Decoding.cpp b/Muon/MuonDAQ/src/components/MuonTell40Decoding.cpp
index 169da4261a52963d6014a1d9ccea837bb62e1f4d..cdde0de6b4e1bf58ddb301125fe3f7062807207d 100644
--- a/Muon/MuonDAQ/src/components/MuonTell40Decoding.cpp
+++ b/Muon/MuonDAQ/src/components/MuonTell40Decoding.cpp
@@ -57,7 +57,7 @@ namespace {
 
 class MuonTell40Decoding
     : public LHCb::Algorithm::Consumer<void( RawEvent const&, MuonDigits const&, DeMuonDetector const& ),
-                                       LHCb::DetDesc::usesConditions<DeMuonDetector>> {
+                                       LHCb::Algorithm::Traits::usesConditions<DeMuonDetector>> {
 public:
   MuonTell40Decoding( const std::string& name, ISvcLocator* pSvcLocator )
       : Consumer( name, pSvcLocator,
diff --git a/Rich/RichDetectors/src/component/RichDetectorTests.cpp b/Rich/RichDetectors/src/component/RichDetectorTests.cpp
index 8a360f414584431a7eba8f1420bffc1fcf2a09f4..8fc1a16313e35f553f77042668331fbaeec9e690 100644
--- a/Rich/RichDetectors/src/component/RichDetectorTests.cpp
+++ b/Rich/RichDetectors/src/component/RichDetectorTests.cpp
@@ -48,7 +48,7 @@ namespace Rich::Future {
 
   class TestDBAccess final
       : public LHCb::Algorithm::Consumer<void( const DR1&, const DR2& ),
-                                         LHCb::DetDesc::usesBaseAndConditions<AlgBase<>, DR1, DR2>> {
+                                         LHCb::Algorithm::Traits::usesBaseAndConditions<AlgBase<>, DR1, DR2>> {
   public:
     TestDBAccess( const std::string& name, ISvcLocator* pSvcLocator )
         : Consumer( name, pSvcLocator,                                    //
@@ -90,11 +90,12 @@ namespace Rich::Future {
   } // namespace
 
   class TestDerivedElem final
-      : public LHCb::Algorithm::Consumer<void( const TestDervCondA<DR1>&, const TestDervCondA<DR2>&, //
-                                               const TestDervCondB<DR1>&, const TestDervCondB<DR2>& ),
-                                         LHCb::DetDesc::usesBaseAndConditions<AlgBase<>,                              //
-                                                                              TestDervCondA<DR1>, TestDervCondA<DR2>, //
-                                                                              TestDervCondB<DR1>, TestDervCondB<DR2>>> {
+      : public LHCb::Algorithm::Consumer<
+            void( const TestDervCondA<DR1>&, const TestDervCondA<DR2>&, //
+                  const TestDervCondB<DR1>&, const TestDervCondB<DR2>& ),
+            LHCb::Algorithm::Traits::usesBaseAndConditions<AlgBase<>,                              //
+                                                           TestDervCondA<DR1>, TestDervCondA<DR2>, //
+                                                           TestDervCondB<DR1>, TestDervCondB<DR2>>> {
   public:
     TestDerivedElem( const std::string& name, ISvcLocator* pSvcLocator )
         : Consumer( name, pSvcLocator,                                  //
@@ -127,15 +128,16 @@ namespace Rich::Future {
   };
 
   class TestDerivedDetObjects final
-      : public LHCb::Algorithm::Consumer<void( const Detector::Rich1&,  //
-                                               const Detector::Rich2&,  //
-                                               const Detector::PDInfo&, //
-                                               const Rich::Utils::MirrorFinder& ),
-                                         LHCb::DetDesc::usesBaseAndConditions<AlgBase<>,        //
-                                                                              Detector::Rich1,  //
-                                                                              Detector::Rich2,  //
-                                                                              Detector::PDInfo, //
-                                                                              const Rich::Utils::MirrorFinder&>> {
+      : public LHCb::Algorithm::Consumer<
+            void( const Detector::Rich1&,  //
+                  const Detector::Rich2&,  //
+                  const Detector::PDInfo&, //
+                  const Rich::Utils::MirrorFinder& ),
+            LHCb::Algorithm::Traits::usesBaseAndConditions<AlgBase<>,        //
+                                                           Detector::Rich1,  //
+                                                           Detector::Rich2,  //
+                                                           Detector::PDInfo, //
+                                                           const Rich::Utils::MirrorFinder&>> {
   public:
     /// Standard constructor
     TestDerivedDetObjects( const std::string& name, ISvcLocator* pSvcLocator )
@@ -173,7 +175,7 @@ namespace Rich::Future {
   class TestRadiatorIntersections final
       : public LHCb::Algorithm::Consumer<
             void( const Detector::Rich1&, const Detector::Rich2& ),
-            LHCb::DetDesc::usesBaseAndConditions<AlgBase<>, Detector::Rich1, Detector::Rich2>> {
+            LHCb::Algorithm::Traits::usesBaseAndConditions<AlgBase<>, Detector::Rich1, Detector::Rich2>> {
   public:
     /// Standard constructor
     TestRadiatorIntersections( const std::string& name, ISvcLocator* pSvcLocator )
@@ -222,9 +224,9 @@ namespace Rich::Future {
   };
 
   // Example of algorithm accessing conditions
-  struct TestConds
-      : LHCb::Algorithm::Consumer<void( const Rich::Detector::Condition& ),
-                                  LHCb::DetDesc::usesBaseAndConditions<AlgBase<>, Rich::Detector::Condition>> {
+  struct TestConds : LHCb::Algorithm::Consumer<
+                         void( const Rich::Detector::Condition& ),
+                         LHCb::Algorithm::Traits::usesBaseAndConditions<AlgBase<>, Rich::Detector::Condition>> {
     // constructor
     TestConds( const std::string& name, ISvcLocator* loc )
         : Consumer{name, loc, {KeyValue{"CondPath", Tel40CableMapping::ConditionPaths[0]}}} {}
@@ -240,10 +242,10 @@ namespace Rich::Future {
   };
 
   // Test RICH decoding and SmartIDs
-  struct TestDecodeAndIDs
-      : LHCb::Algorithm::Consumer<void( const DAQ::DecodedData&, //
-                                        const Rich::Utils::RichSmartIDs& ),
-                                  LHCb::DetDesc::usesBaseAndConditions<AlgBase<>, Rich::Utils::RichSmartIDs>> {
+  struct TestDecodeAndIDs : LHCb::Algorithm::Consumer<
+                                void( const DAQ::DecodedData&, //
+                                      const Rich::Utils::RichSmartIDs& ),
+                                LHCb::Algorithm::Traits::usesBaseAndConditions<AlgBase<>, Rich::Utils::RichSmartIDs>> {
     // Standard constructor
     TestDecodeAndIDs( const std::string& name, ISvcLocator* pSvcLocator )
         : Consumer( name, pSvcLocator,
diff --git a/Rich/RichFutureDAQ/src/component/RichRawBankDecoder.cpp b/Rich/RichFutureDAQ/src/component/RichRawBankDecoder.cpp
index c6cb1be97bab68a42e62e9287674131b9159ec83..9375e76fca17a87a7572a65375aaf8b15c6f3ef6 100644
--- a/Rich/RichFutureDAQ/src/component/RichRawBankDecoder.cpp
+++ b/Rich/RichFutureDAQ/src/component/RichRawBankDecoder.cpp
@@ -112,10 +112,10 @@ namespace Rich::Future {
                                                      const Detector::PDInfo&,    //
                                                      const Tel40CableMapping&,   //
                                                      const PDMDBDecodeMapping& ),
-                                            LHCb::DetDesc::usesBaseAndConditions<AlgBase<>,         //
-                                                                                 Detector::PDInfo,  //
-                                                                                 Tel40CableMapping, //
-                                                                                 PDMDBDecodeMapping>> {
+                                            LHCb::Algorithm::Traits::usesBaseAndConditions<AlgBase<>,         //
+                                                                                           Detector::PDInfo,  //
+                                                                                           Tel40CableMapping, //
+                                                                                           PDMDBDecodeMapping>> {
   public:
     // framework