diff --git a/Trigger/TrigMonitoring/TrigCostMonitor/TrigCostMonitor/TrigCostRun.h b/Trigger/TrigMonitoring/TrigCostMonitor/TrigCostMonitor/TrigCostRun.h
index ecc52598aec67abaf35e5c91f32443faa73ea4d2..59808ed621cfadb19f8e604c8893dcb574e252ec 100644
--- a/Trigger/TrigMonitoring/TrigCostMonitor/TrigCostMonitor/TrigCostRun.h
+++ b/Trigger/TrigMonitoring/TrigCostMonitor/TrigCostMonitor/TrigCostRun.h
@@ -83,7 +83,7 @@ private:
 
      bool ReadConfig(ServiceHandle<StoreGateSvc> &storeGate);
      bool ReadConfigDB(ServiceHandle<StoreGateSvc> &storeGate, 
-                       const TrigMonEvent* trigMonEvent,
+                       std::set<const TrigMonEvent*> trigMonEvents,
                        ToolHandle<Trig::ITrigNtTool> &confTool);
 
      bool ReadEvent (ServiceHandle<StoreGateSvc> &storeGate, 
diff --git a/Trigger/TrigMonitoring/TrigCostMonitor/src/TrigCostRun.cxx b/Trigger/TrigMonitoring/TrigCostMonitor/src/TrigCostRun.cxx
index 971753a2446ccf93a162014b7eef150838a8044f..f96442bc7afb1d069fbc6aeda84e58415da3ba55 100644
--- a/Trigger/TrigMonitoring/TrigCostMonitor/src/TrigCostRun.cxx
+++ b/Trigger/TrigMonitoring/TrigCostMonitor/src/TrigCostRun.cxx
@@ -91,10 +91,10 @@ StatusCode TrigCostRun::initialize()
   ATH_MSG_DEBUG("Retrieved : " << m_tools);
 
   CHECK(m_toolsSave.retrieve());
-  ATH_MSG_DEBUG("Retrieved " << m_toolsSave << endreq);
+  ATH_MSG_DEBUG("Retrieved " << m_toolsSave << endmsg);
 
   CHECK(m_toolConf.retrieve());
-  ATH_MSG_DEBUG("Retrieved " << m_toolConf << endreq);
+  ATH_MSG_DEBUG("Retrieved " << m_toolConf << endmsg);
 
   //
   // Pass global configuration pointer to sub-tools
@@ -355,7 +355,8 @@ bool TrigCostRun::ReadHLTResult::ProcessEvent(ServiceHandle<StoreGateSvc> &store
   //  - read TrigMonEvent  collection
   //  - read TrigMonConfig collection
   //
-  
+  if(outputLevel <= MSG::DEBUG) log() << MSG::DEBUG << "In ProcessEvent" << endmsg;
+
   if (doLevel == false) return false;
   
   vecConfig.clear();
@@ -380,6 +381,8 @@ bool TrigCostRun::ReadHLTResult::ProcessEvent(ServiceHandle<StoreGateSvc> &store
   const bool gotConfigSG = ReadConfig(storeGate);
   // If gotConfigSG is false, we will try again to read in from the DB configs for cost mon events stored in this dummy-export-event
 
+  if(outputLevel <= MSG::DEBUG) log() << MSG::DEBUG << "gotConfigSG = " << gotConfigSG << endmsg;
+
   ReadEvent(storeGate, gotConfigSG, confTool);
   
   return true;
@@ -393,27 +396,27 @@ bool TrigCostRun::ReadHLTResult::ReadResult(ServiceHandle<StoreGateSvc> &storeGa
   // Find HLTResult and extract application id
   //  
   if(!storeGate->contains<HLT::HLTResult>(keyResult)) {
-    if(outputLevel <= MSG::DEBUG) log() << MSG::DEBUG << "StoreGate does not contain HLTResult: " << keyResult << endreq;
+    if(outputLevel <= MSG::DEBUG) log() << MSG::DEBUG << "StoreGate does not contain HLTResult: " << keyResult << endmsg;
     return false;
   }
 
   const HLT::HLTResult *hlt_result = 0;
   if(storeGate->retrieve<HLT::HLTResult>(hlt_result, keyResult).isFailure() || !hlt_result) {
-    log() << MSG::WARNING << "Failed to retrieve HLTResult: " << keyResult << endreq;
+    log() << MSG::WARNING << "Failed to retrieve HLTResult: " << keyResult << endmsg;
     return false;
   }
   else {
-    if(outputLevel <= MSG::DEBUG) log() << MSG::DEBUG << "Found HLTResult: " << keyResult << endreq;
+    if(outputLevel <= MSG::DEBUG) log() << MSG::DEBUG << "Found HLTResult: " << keyResult << endmsg;
   }
 
   if(hlt_result->isHLTResultTruncated()) {
-    if(outputLevel <= MSG::DEBUG) log() << MSG::DEBUG << "HLTResult is truncated" << endreq;
+    if(outputLevel <= MSG::DEBUG) log() << MSG::DEBUG << "HLTResult is truncated" << endmsg;
     ++countTrunc;
   }
 
   const std::vector<uint32_t>& navData = hlt_result->getNavigationResult();
   if(navData.empty()) {
-    if(outputLevel <= MSG::DEBUG) log() << MSG::DEBUG << "Navigation data is empty" << endreq;
+    if(outputLevel <= MSG::DEBUG) log() << MSG::DEBUG << "Navigation data is empty" << endmsg;
     return false;
   }
   
@@ -421,14 +424,14 @@ bool TrigCostRun::ReadHLTResult::ReadResult(ServiceHandle<StoreGateSvc> &storeGa
     ScopeResumePauseTimer scopeTimer(timerNavig, false);
     
     if(!navigation->deserialize(navData)) {
-      log() << MSG::WARNING << "Failed to deserialize navigation" << endreq;
+      log() << MSG::WARNING << "Failed to deserialize navigation" << endmsg;
       return false;
     }
   }
 
   const std::vector<uint32_t> &extraData = hlt_result->getExtras();
   if(extraData.empty()) {
-    if(outputLevel <= MSG::DEBUG) log() << MSG::DEBUG << "Extra data is empty" << endreq;
+    if(outputLevel <= MSG::DEBUG) log() << MSG::DEBUG << "Extra data is empty" << endmsg;
     return true;
   }
   
@@ -438,34 +441,34 @@ bool TrigCostRun::ReadHLTResult::ReadResult(ServiceHandle<StoreGateSvc> &storeGa
   StringSerializer().deserialize(extraData, appName); 
   
   if(appName.empty()) {    
-    if(outputLevel <= MSG::DEBUG) log() << MSG::DEBUG << "Application name is empty" << endreq;
+    if(outputLevel <= MSG::DEBUG) log() << MSG::DEBUG << "Application name is empty" << endmsg;
     return true;
   }
 
   if(hlt_result->getHLTLevel() == HLT::L2) {
     if(hltLevel != "L2") {
-      log() << MSG::WARNING << "HLT level error: " << hltLevel << "!=" << hlt_result->getHLTLevel() << endreq;
+      log() << MSG::WARNING << "HLT level error: " << hltLevel << "!=" << hlt_result->getHLTLevel() << endmsg;
     }
   }
   else if(hlt_result->getHLTLevel() == HLT::EF) {
     if(hltLevel != "EF") {
-      log() << MSG::WARNING << "HLT level error: " << hltLevel << "!=" << hlt_result->getHLTLevel() << endreq;
+      log() << MSG::WARNING << "HLT level error: " << hltLevel << "!=" << hlt_result->getHLTLevel() << endmsg;
     }
   }
   else if(hlt_result->getHLTLevel() == HLT::HLT) {
     if(hltLevel != "HLT") {
-      log() << MSG::WARNING << "HLT level error: " << hltLevel << "!=" << hlt_result->getHLTLevel() << endreq;
+      log() << MSG::WARNING << "HLT level error: " << hltLevel << "!=" << hlt_result->getHLTLevel() << endmsg;
     }
   }
   else {
-    log() << MSG::WARNING << "Unknown level for HLTResult: " << hlt_result->getHLTLevel() << endreq;
+    log() << MSG::WARNING << "Unknown level for HLTResult: " << hlt_result->getHLTLevel() << endmsg;
   }
 
   //
   // Append application ID with level string
   //
   appName = "APP_"+hltLevel+":"+appName;
-  if(outputLevel <= MSG::DEBUG) log() << MSG::DEBUG << "Extracted App Name: " << appName << endreq;
+  if(outputLevel <= MSG::DEBUG) log() << MSG::DEBUG << "Extracted App Name: " << appName << endmsg;
 
   //
   // Save a map between application name and application id (hashed name) in global config
@@ -495,16 +498,16 @@ bool TrigCostRun::ReadHLTResult::ReadConfig(ServiceHandle<StoreGateSvc> &storeGa
     ScopeResumePauseTimer scopeTimer(timerNavig, false);
 
     if(!storeGate->contains<TrigMonConfigCollection>(keyConfig)) {
-      if(outputLevel <= MSG::DEBUG) log() << MSG::DEBUG  << "TrigMonConfigCollection does not exist: " << keyConfig << endreq;
+      if(outputLevel <= MSG::DEBUG) log() << MSG::DEBUG  << "TrigMonConfigCollection does not exist: " << keyConfig << endmsg;
       return false;
     }
     
     if(storeGate->retrieve(configCol, keyConfig).isFailure() || !configCol) {
-      log() << MSG::WARNING << "Failed to retrieve TrigMonConfigCollection: " << keyConfig << endreq;
+      log() << MSG::WARNING << "Failed to retrieve TrigMonConfigCollection: " << keyConfig << endmsg;
       return false;
     }
     
-    if(outputLevel <= MSG::DEBUG) log() << MSG::DEBUG << "Found TrigMonConfigCollection: " << keyConfig << " size=" << configCol->size() << endreq;
+    if(outputLevel <= MSG::DEBUG) log() << MSG::DEBUG << "Found TrigMonConfigCollection: " << keyConfig << " size=" << configCol->size() << endmsg;
   }
 
   for(TrigMonConfigCollection::const_iterator it = configCol->begin(); it != configCol->end(); ++it) {
@@ -522,7 +525,7 @@ bool TrigCostRun::ReadHLTResult::ReadConfig(ServiceHandle<StoreGateSvc> &storeGa
     const std::vector<uint32_t> &ids = ptr->getVarId();
     if(!std::count(ids.begin(), ids.end(), appId)) {
       ptr->add<TrigConfVar>(TrigConfVar(appName, appId));
-      if(outputLevel <= MSG::DEBUG) log() << MSG::DEBUG << "Attaching App Name map to Config " << appName << " = " << appId << endreq;
+      if(outputLevel <= MSG::DEBUG) log() << MSG::DEBUG << "Attaching App Name map to Config " << appName << " = " << appId << endmsg;
     }
 
     //
@@ -532,7 +535,7 @@ bool TrigCostRun::ReadHLTResult::ReadConfig(ServiceHandle<StoreGateSvc> &storeGa
 
     log() << MSG::INFO << "ExtractConfig M:" <<  ptr->getMasterKey() 
           << " L1:" << ptr->getLV1PrescaleKey() << " HLT:" << ptr->getHLTPrescaleKey() 
-          << " Lumi:" << ptr->getLumi() << endreq;
+          << " Lumi:" << ptr->getLumi() << endmsg;
   }
   
   //
@@ -545,7 +548,7 @@ bool TrigCostRun::ReadHLTResult::ReadConfig(ServiceHandle<StoreGateSvc> &storeGa
 
 //---------------------------------------------------------------------------------------
 bool TrigCostRun::ReadHLTResult::ReadConfigDB(ServiceHandle<StoreGateSvc> &storeGate, 
-  const TrigMonEvent* trigMonEvent,
+  std::set<const TrigMonEvent*> trigMonEvents,
   ToolHandle<Trig::ITrigNtTool> &confTool) {
   //
   // Read in trig config from data base
@@ -555,33 +558,48 @@ bool TrigCostRun::ReadHLTResult::ReadConfigDB(ServiceHandle<StoreGateSvc> &store
   // the D3PD maker
   //
 
-  TrigMonConfig* trigMonConfig = new TrigMonConfig();
+  // Write me to storegate so that I can get picked up by the ntuple tools
+  TrigMonConfigCollection* trigMonConfigCollection = new TrigMonConfigCollection();
+
+  // Look at all events in this container event which come from a different LB
+  for (const TrigMonEvent* trigMonEvent : trigMonEvents) {
+    if(outputLevel <= MSG::DEBUG) log() << MSG::DEBUG << " Get config for event " << trigMonEvent->getEvent() << " lumi " << trigMonEvents->getLumi() << endmsg;
 
-  trigMonConfig->setEventID(trigMonEvent->getEvent(),
-                  trigMonEvent->getLumi(),
-                  trigMonEvent->getRun(),
-                  trigMonEvent->getSec(),
-                  trigMonEvent->getNanoSec());
+    TrigMonConfig* trigMonConfig = new TrigMonConfig();
 
-  if(outputLevel <= MSG::DEBUG) log() << MSG::DEBUG << "ProcessConfig - Attempting load from DB " << endreq;
+    // Set the vital stats needed to identify the correct config
+    trigMonConfig->setEventID(trigMonEvent->getEvent(),
+                    trigMonEvent->getLumi(),
+                    trigMonEvent->getRun(),
+                    trigMonEvent->getSec(),
+                    trigMonEvent->getNanoSec());
 
-  confTool->SetOption(2); //2 = DBAccess
-  confTool->Fill(trigMonConfig);
+    confTool->SetOption(2); //2 = DBAccess
+    if (!confTool->Fill(trigMonConfig)) {    // false indicates nothing changed
+      if(outputLevel <= MSG::DEBUG) log() << MSG::DEBUG << "   Keys did not change in this LB, no need to update. (SMK:" << trigMonConfig->getMasterKey() << " L1:" << trigMonConfig->getLV1PrescaleKey() << " HLT:" << trigMonConfig->getHLTPrescaleKey() << ")" << endmsg;
+      delete trigMonConfig;
+      continue;
+    }
 
-  // Have we already saved this config?
-  std::pair<int,int> prescaleKeys( trigMonConfig->getLV1PrescaleKey(), trigMonConfig->getHLTPrescaleKey() );
-  if ( exportedConfigs.find(prescaleKeys) != exportedConfigs.end() ) {
-    if(outputLevel <= MSG::DEBUG) log() << MSG::DEBUG << "Already exported for L1 " 
-      << trigMonConfig->getLV1PrescaleKey() << " HLT " << trigMonConfig->getHLTPrescaleKey() << endreq;
-    delete trigMonConfig;
-    return true;
+    if(outputLevel <= MSG::DEBUG) log() << MSG::DEBUG << "   Loaded from DB-fetcher SMK:" << trigMonConfig->getMasterKey() << " L1:" << trigMonConfig->getLV1PrescaleKey() << " HLT:" << trigMonConfig->getHLTPrescaleKey() << endmsg;
+
+    // Have we already saved this config? Note this is set in the next fn so we could end up with dupes here (not harmful)
+    std::pair<int,int> prescaleKeys( trigMonConfig->getLV1PrescaleKey(), trigMonConfig->getHLTPrescaleKey() );
+    if ( exportedConfigs.find(prescaleKeys) != exportedConfigs.end() ) {
+      if(outputLevel <= MSG::DEBUG) log() << MSG::DEBUG << "   Already exported for L1 " << trigMonConfig->getLV1PrescaleKey() << " HLT " << trigMonConfig->getHLTPrescaleKey() << endmsg;
+      delete trigMonConfig;
+      continue;
+    }
+
+    // Add to the export list
+    if(outputLevel <= MSG::DEBUG) log() << MSG::DEBUG << "   Adding to SG" << endmsg;
+    trigMonConfigCollection->push_back(trigMonConfig);
   }
 
-  // Write me to storegate so that I can get picked up by the ntuple tools
-  TrigMonConfigCollection* trigMonConfigCollection = new TrigMonConfigCollection();
-  trigMonConfigCollection->push_back(trigMonConfig);
+
   if(storeGate->record(trigMonConfigCollection, keyConfig).isFailure()) {
-    log() << MSG::ERROR << "Failed to write TrigMonEventCollection: " << keyConfig << endreq;
+    log() << MSG::ERROR << "Failed to write TrigMonEventCollection: " << keyConfig << endmsg;
+    for (TrigMonConfig* trigMonConfig : *trigMonConfigCollection) delete trigMonConfig;
     delete trigMonConfigCollection;
     return false;
   }
@@ -594,6 +612,7 @@ bool TrigCostRun::ReadHLTResult::ReadConfigDB(ServiceHandle<StoreGateSvc> &store
 bool TrigCostRun::ReadHLTResult::ReadEvent(ServiceHandle<StoreGateSvc> &storeGate, 
   const bool gotConfigSG,
   ToolHandle<Trig::ITrigNtTool> &confTool) {
+  if(outputLevel <= MSG::DEBUG) log() << MSG::DEBUG  << "In ReadEvent" << endmsg;
 
   if (doLevel == false) return false;
   
@@ -606,12 +625,12 @@ bool TrigCostRun::ReadHLTResult::ReadEvent(ServiceHandle<StoreGateSvc> &storeGat
     ScopeResumePauseTimer scopeTimer(timerNavig, false);
 
     if(!storeGate->contains<TrigMonEventCollection>(keyEvent)) {
-      if(outputLevel <= MSG::DEBUG) log() << MSG::DEBUG  << "TrigMonEventCollection does not exist: " << keyEvent << endreq;
+      if(outputLevel <= MSG::DEBUG) log() << MSG::DEBUG  << "TrigMonEventCollection does not exist: " << keyEvent << endmsg;
       return false;
     }
     
     if(storeGate->retrieve(eventCol, keyEvent).isFailure() || !eventCol) {
-      log() << MSG::WARNING << "Failed to retrieve TrigMonEventCollection: " << keyEvent << endreq;
+      log() << MSG::WARNING << "Failed to retrieve TrigMonEventCollection: " << keyEvent << endmsg;
       return false;
     }
   }
@@ -621,12 +640,33 @@ bool TrigCostRun::ReadHLTResult::ReadEvent(ServiceHandle<StoreGateSvc> &storeGat
   std::vector<std::string> &vars = globalConfig->getVarName();
   std::vector<uint32_t>    &vals = globalConfig->getVarId();
 
+  // If we did not get config data from the bytestream - fetch it for all the events we have in this carrier "event"
+  if (!gotConfigSG) {
+    std::set<uint32_t> lumiBlocks; // Only need one event per LB as a LB must have the same HLT config
+    std::set<const TrigMonEvent*> eventsToGetConfig; // Set of events we need to see if we have the config loaded for
+    for(TrigMonEventCollection::const_iterator it = eventCol->begin(); it != eventCol->end(); ++it) {
+      TrigMonEvent *ptr = *it;
+      if(!ptr) continue;
+      if(outputLevel <= MSG::DEBUG) log() << MSG::DEBUG << "Check Conf for event " << ptr->getEvent() << " lumi " << ptr->getLumi() << "? -> ";
+
+      if (lumiBlocks.find(ptr->getLumi()) != lumiBlocks.end()) {
+        if(outputLevel <= MSG::DEBUG) log() << MSG::DEBUG << "No already have an event from lumi " << ptr->getLumi() << endmsg;
+        continue;
+      }
+
+      eventsToGetConfig.insert(ptr);
+      lumiBlocks.insert(ptr->getLumi());
+      if(outputLevel <= MSG::DEBUG) log() << MSG::DEBUG << "Yes checking this event" << endmsg;
+    }
+    // Read in all the configs for these events
+    ReadConfigDB(storeGate, eventsToGetConfig, confTool);
+  }
+
+  // Second loop - read events
   for(TrigMonEventCollection::const_iterator it = eventCol->begin(); it != eventCol->end(); ++it) {
     TrigMonEvent *ptr = *it;
     if(!ptr) continue;
-
-    // If we didn't export configs from the HLT itself, then check if we need to get the config for this event
-    if (!gotConfigSG) ReadConfigDB(storeGate, ptr, confTool);
+    if(outputLevel <= MSG::DEBUG) log() << MSG::DEBUG << "Extracting Cost Data for event " << ptr->getEvent() << endmsg;
 
     // Add my HLT node
     ptr->addWord(appId); //Backward compatability
@@ -651,18 +691,18 @@ bool TrigCostRun::ReadHLTResult::ReadEvent(ServiceHandle<StoreGateSvc> &storeGat
     for (unsigned i=0; i < ptr->getVarKey().size(); ++i) {
       if (ptr->getVarKey().at(i) == Trig::kEventLumiBlockLength) {
         _haveLumiLength = true;
-        if(outputLevel <= MSG::DEBUG) log() << MSG::DEBUG << "Lumi length already stored in event" << endreq;
+        if(outputLevel <= MSG::DEBUG) log() << MSG::DEBUG << "Lumi length already stored in event" << endmsg;
         break;
       }
     }
 
     if (_haveLumiLength == false) {
       if (m_readLumiBlock.getTriedSetup() == false) {
-        log() << MSG::INFO << "Reading lumi length" << endreq;
+        log() << MSG::INFO << "Reading lumi length" << endmsg;
         m_readLumiBlock.updateLumiBlocks( ptr->getRun() );
       }
       ptr->addVar(Trig::kEventLumiBlockLength, m_readLumiBlock.getLumiBlockLength(ptr->getLumi())); // 43 is lumi block length
-      if(outputLevel <= MSG::DEBUG) log() << MSG::DEBUG << "Decorating Event:" << ptr->getEvent() << "  LB:"<< ptr->getLumi()<<" with LB Length " << m_readLumiBlock.getLumiBlockLength( ptr->getLumi()) << endreq;
+      if(outputLevel <= MSG::DEBUG) log() << MSG::DEBUG << "Decorating Event:" << ptr->getEvent() << "  LB:"<< ptr->getLumi()<<" with LB Length " << m_readLumiBlock.getLumiBlockLength( ptr->getLumi()) << endmsg;
       std::string _msg = m_readLumiBlock.infos();
       if (_msg.size()) log() << MSG::INFO << _msg;
       std::string _dbg = m_readLumiBlock.debug();
@@ -695,10 +735,10 @@ void TrigCostRun::ReadHLTResult::PrintInit()
   // Print summary counters
   //
   log() << MSG::INFO
-	<< "  " << hltLevel << ": HLTResult key     = " << keyResult << endreq
-	<< "  " << hltLevel << ": TrigMonConfig key = " << keyConfig << endreq
-	<< "  " << hltLevel << ": TrigMonEvent  key = " << keyEvent  << endreq
-	<< "  " << hltLevel << ": Enabled = "           << (doLevel ? "Yes" : "NO")  << endreq;
+	<< "  " << hltLevel << ": HLTResult key     = " << keyResult << endmsg
+	<< "  " << hltLevel << ": TrigMonConfig key = " << keyConfig << endmsg
+	<< "  " << hltLevel << ": TrigMonEvent  key = " << keyEvent  << endmsg
+	<< "  " << hltLevel << ": Enabled = "           << (doLevel ? "Yes" : "NO")  << endmsg;
 }
 
 //---------------------------------------------------------------------------------------
@@ -711,7 +751,7 @@ void TrigCostRun::ReadHLTResult::PrintEvent()
   // Print current events in memory
   //
   log() << MSG::INFO << "Extracted TrigMonEventCollection: " << keyEvent 
-	<< " with: " << vecEvent.size() << " event(s)" << endreq; 
+	<< " with: " << vecEvent.size() << " event(s)" << endmsg; 
 
   static unsigned _nPrinted = 0;
   for(unsigned i = 0; i < vecEvent.size(); ++i) {
@@ -733,10 +773,10 @@ void TrigCostRun::ReadHLTResult::PrintSummary()
   // Print summary counters
   //
   log() << MSG::INFO
-	<< "  " << hltLevel << ": POST_HLT: # of valid     HLT results = " << countValid   << endreq
-	<< "  " << hltLevel << ": POST_HLT: # of invalid   HLT results = " << countInvalid << endreq
-	<< "  " << hltLevel << ": POST_HLT: # of truncated HLT results = " << countTrunc   << endreq
-	<< "  " << hltLevel << ": POST_HLT: # of read TrigMonEvent     = " << countEvent   << endreq
-        << "  " << hltLevel << ": POST_HLT: # of read TrigMonCostEvent = " << countCostEvent << "(In which scale tools were run)" << endreq
-	<< "  " << hltLevel << ": POST_HLT: # of read TrigMonConfig    = " << countConfig  << endreq;
+	<< "  " << hltLevel << ": POST_HLT: # of valid     HLT results = " << countValid   << endmsg
+	<< "  " << hltLevel << ": POST_HLT: # of invalid   HLT results = " << countInvalid << endmsg
+	<< "  " << hltLevel << ": POST_HLT: # of truncated HLT results = " << countTrunc   << endmsg
+	<< "  " << hltLevel << ": POST_HLT: # of read TrigMonEvent     = " << countEvent   << endmsg
+        << "  " << hltLevel << ": POST_HLT: # of read TrigMonCostEvent = " << countCostEvent << "(In which scale tools were run)" << endmsg
+	<< "  " << hltLevel << ": POST_HLT: # of read TrigMonConfig    = " << countConfig  << endmsg;
 }
diff --git a/Trigger/TrigMonitoring/TrigCostMonitor/src/TrigNtConfTool.cxx b/Trigger/TrigMonitoring/TrigCostMonitor/src/TrigNtConfTool.cxx
index e4d144683b11f316e3986a7fd8646423ce2d57af..fe8c90cafd8f5efb59693380d93ca735b6cd29aa 100644
--- a/Trigger/TrigMonitoring/TrigCostMonitor/src/TrigNtConfTool.cxx
+++ b/Trigger/TrigMonitoring/TrigCostMonitor/src/TrigNtConfTool.cxx
@@ -444,12 +444,11 @@ bool Trig::TrigNtConfTool::ReadFromDB(TrigMonConfig &confg, unsigned run, unsign
 {
   
   // Do we need to update? (note that if we do, this also sets m_currentKey)
-  if (GetKeysChangedFromDB(run, lumi) == false) {
-    return false; // Nothing to do
-  }
-
+  const bool getChanged = GetKeysChangedFromDB(run, lumi);
   confg.setTriggerKeys(m_currentKey.getSMK(), m_currentKey.getLV1_PS(), m_currentKey.getHLT_PS());
 
+  if (getChanged == false) return false; // Nothing to do
+
   std::stringstream _ss1, _ss2, _ss3;
   _ss1 << m_currentKey.getSMK();
   _ss1 >> m_triggerMenuSetup;