diff --git a/TileCalorimeter/TileConditions/test/TileDCSComponents_test.cxx b/TileCalorimeter/TileConditions/test/TileDCSComponents_test.cxx
index c70774b4a3bb211927cad70dadf96285a2142307..aec6ba7b680a24c625faeed6b2a13b336528b768 100644
--- a/TileCalorimeter/TileConditions/test/TileDCSComponents_test.cxx
+++ b/TileCalorimeter/TileConditions/test/TileDCSComponents_test.cxx
@@ -209,14 +209,14 @@ void prepareDCSFolder(const std::string& key, const FolderData<T>& folderData) {
 
   std::unique_ptr<CondAttrListCollection> data = std::make_unique<CondAttrListCollection>(true);
 
-  for (const auto coolChannelData : folderData) {
+  for (const auto& coolChannelData : folderData) {
 
     unsigned int coolChannel = coolChannelData.first;
     const auto nameValuePairs = coolChannelData.second;
 
     coral::AttributeList attributeList;
 
-    for (const std::pair<std::string, T> nameValuePair : nameValuePairs) {
+    for (const std::pair<std::string, T>& nameValuePair : nameValuePairs) {
       std::string name = nameValuePair.first;
       T value = nameValuePair.second;
       attributeList.extend<T>(name);
diff --git a/Trigger/TrigConfiguration/TrigConfData/TrigConfData/DataStructure.h b/Trigger/TrigConfiguration/TrigConfData/TrigConfData/DataStructure.h
index da6a9fe0fb60992d3db8dec258d78ce79ea34bd4..856e64e1033aa50728d91cf942ea529b3b69eb6d 100644
--- a/Trigger/TrigConfiguration/TrigConfData/TrigConfData/DataStructure.h
+++ b/Trigger/TrigConfiguration/TrigConfData/TrigConfData/DataStructure.h
@@ -13,6 +13,7 @@
 #include <vector>
 #include <memory>
 #include <type_traits>
+#include <optional>
 #include "boost/property_tree/ptree.hpp"
 
 namespace TrigConf {
diff --git a/Trigger/TrigConfiguration/TrigConfData/src/L1Menu.cxx b/Trigger/TrigConfiguration/TrigConfData/src/L1Menu.cxx
index 3becff35226048a63f09857195565f11dcb2c7b7..282094b00735e03f22ac69b4e13107e7e5a27042 100644
--- a/Trigger/TrigConfiguration/TrigConfData/src/L1Menu.cxx
+++ b/Trigger/TrigConfiguration/TrigConfData/src/L1Menu.cxx
@@ -28,7 +28,7 @@ TrigConf::L1Menu::update()
    try {
       m_name = getAttribute("name");
       // thresholds
-      for( const std::string & path : {"thresholds", "thresholds.legacyCalo" } ) {
+      for( const std::string path : {"thresholds", "thresholds.legacyCalo" } ) {
          for( auto & thrByType : data().get_child( path ) ) {
             const std::string & thrType = thrByType.first;
             if (thrType == "legacyCalo")
@@ -93,7 +93,7 @@ TrigConf::L1Menu::update()
 
    try {
       // algorithms
-      for( const std::string & algoCategory : { "TOPO", "MULTTOPO", "MUTOPO", "R2TOPO" } ) {
+      for( const std::string algoCategory : { "TOPO", "MULTTOPO", "MUTOPO", "R2TOPO" } ) {
          auto & v = m_algorithmsByCategory[algoCategory] = std::vector<TrigConf::L1TopoAlgorithm>();
          if(algoCategory == "MULTTOPO") {
             for( auto & alg : data().get_child( "topoAlgorithms." + algoCategory + ".multiplicityAlgorithms" ) ) {