diff --git a/Control/AthenaMonitoring/AthenaMonitoring/AthenaMonManager.h b/Control/AthenaMonitoring/AthenaMonitoring/AthenaMonManager.h
index 006522c53a626c8a6ac9bebc88af657d94e86e42..5241118f4732a11eaf4ee4d3f3297dc65eeef986 100755
--- a/Control/AthenaMonitoring/AthenaMonitoring/AthenaMonManager.h
+++ b/Control/AthenaMonitoring/AthenaMonitoring/AthenaMonManager.h
@@ -93,6 +93,7 @@ class AthenaMonManager : public AthAlgorithm {
 
       virtual StatusCode initialize();
       virtual StatusCode execute();
+      virtual StatusCode stop();
       virtual StatusCode finalize();
 
       virtual StatusCode beginRun();
@@ -127,7 +128,7 @@ class AthenaMonManager : public AthAlgorithm {
    private:
       // Use private implementation idiom for more flexible development.
       class Imp;
-      Imp *d;
+      Imp *m_d;
 };
 
 #endif
diff --git a/Control/AthenaMonitoring/AthenaMonitoring/ManagedMonitorToolBase.h b/Control/AthenaMonitoring/AthenaMonitoring/ManagedMonitorToolBase.h
index 5da30d77d85d73bfad344bb1e4e98e9baf4f75b3..d97d44c16a3e937579f475be325f7243bf662ae9 100755
--- a/Control/AthenaMonitoring/AthenaMonitoring/ManagedMonitorToolBase.h
+++ b/Control/AthenaMonitoring/AthenaMonitoring/ManagedMonitorToolBase.h
@@ -703,19 +703,19 @@ class ManagedMonitorToolBase : public AthAlgTool, virtual public IMonitorToolBas
    protected:
       std::map< Interval_t, std::vector< MgmtParams<TH1> > > m_templateHistograms;
       // Runs over the vector of managed histograms, register clonned histogram and saves it to a file.
-      StatusCode regManagedHistograms(std::vector< MgmtParams<TH1> >& m_templateHistograms);
+      StatusCode regManagedHistograms(std::vector< MgmtParams<TH1> >& templateHistograms);
 
       std::map< Interval_t, std::vector< MgmtParams<TGraph> > > m_templateGraphs;
       // Runs over the vector of managed graphs, register clonned graph and saves it to a file.
-      StatusCode regManagedGraphs(std::vector< MgmtParams<TGraph> >& m_templateGraphs);
+      StatusCode regManagedGraphs(std::vector< MgmtParams<TGraph> >& templateGraphs);
 
       std::map< Interval_t, std::vector< MgmtParams<TTree> > > m_templateTrees;
       // Runs over the vector of managed trees, register clonned tree and saves it to a file.
-      StatusCode regManagedTrees(std::vector< MgmtParams<TTree> >& m_templateTrees);
+      StatusCode regManagedTrees(std::vector< MgmtParams<TTree> >& templateTrees);
 
       std::map< Interval_t, std::vector< MgmtParams<LWHist> > > m_templateLWHistograms;
       // Runs over the vector of managed histograms and register them (just a helper method).
-      StatusCode regManagedLWHistograms(std::vector< MgmtParams<LWHist> >& m_templateLWHistograms);
+      StatusCode regManagedLWHistograms(std::vector< MgmtParams<LWHist> >& templateLWHistograms);
 
       std::vector<std::string> m_vTrigChainNames, m_vTrigGroupNames;
       StatusCode parseList(const std::string&, std::vector<std::string>&);
@@ -750,7 +750,7 @@ class ManagedMonitorToolBase : public AthAlgTool, virtual public IMonitorToolBas
 
          protected:
             void copyString( char* to, const std::string& from );
-            const int charArrSize;
+            const int m_charArrSize;
             TTree* m_metadata;
             char* m_nameData;
             //char* m_levelData;
@@ -824,6 +824,18 @@ class ManagedMonitorToolBase : public AthAlgTool, virtual public IMonitorToolBas
 
       bool endOfEventsBlock, endOfLowStat, endOfLumiBlock, endOfRun;
 
+      bool newLowStatIntervalFlag() const { return newLowStatInterval; }
+      bool newMedStatIntervalFlag() const { return newMedStatInterval; }
+      bool newHigStatIntervalFlag() const { return newHigStatInterval; }
+      bool newLowStatFlag() const { return newLowStat; }
+      bool newLumiBlockFlag() const { return newLumiBlock; }
+      bool newRunFlag() const { return newRun; }
+      bool newEventsBlockFlag() const { return newEventsBlock; }
+      bool endOfEventsBlockFlag() const { return endOfEventsBlock; }
+      bool endOfLowStatFlag() const { return endOfLowStat; }
+      bool endOfLumiBlockFlag() const { return endOfLumiBlock; }
+      bool endOfRunFlag() const { return endOfRun; }
+
       typedef std::map<std::string,OutputMetadata*> MDMap_t;
       MDMap_t m_metadataMap;
 
@@ -887,12 +899,12 @@ class ManagedMonitorToolBase : public AthAlgTool, virtual public IMonitorToolBas
       bool m_hasRetrievedLumiTool;
       bool m_bookHistogramsInitial;
       bool m_useLumi;
-      int m_cycleNum;
+      //int m_cycleNum;
       std::set<Interval_t> m_supportedIntervalsForRebooking;
 
       // Use private implementation idiom for more flexible development.
       class Imp;
-      Imp * d;
+      Imp * m_d;
 
 };
 
diff --git a/Control/AthenaMonitoring/AthenaMonitoring/MonitorToolBase.h b/Control/AthenaMonitoring/AthenaMonitoring/MonitorToolBase.h
index 76668d2cf468a54ec15e2aece7cf7c419ea8a6c4..9a4346c4763a191cd1f018a95d19747d333c937b 100755
--- a/Control/AthenaMonitoring/AthenaMonitoring/MonitorToolBase.h
+++ b/Control/AthenaMonitoring/AthenaMonitoring/MonitorToolBase.h
@@ -82,7 +82,7 @@ class MonitorToolBase : public AthAlgTool,
   // multiple StreamNames
   std::vector<std::string>            m_THistSvc_streamnameMapping;
   std::map<std::string,std::string>   m_map_THistSvc_streamnames;
-  bool setupStreamMap;
+  bool m_setupStreamMap;
   
   std::string m_THistSvc_refStream;
   
diff --git a/Control/AthenaMonitoring/cmt/requirements b/Control/AthenaMonitoring/cmt/requirements
index 4918e1c935a1f58ea96a266e05e9bd717aecd64e..e095466620efe7b07b2ee5a213efaa77c37d4191 100755
--- a/Control/AthenaMonitoring/cmt/requirements
+++ b/Control/AthenaMonitoring/cmt/requirements
@@ -32,8 +32,8 @@ apply_pattern cmake_add_command command="find_package(ROOT COMPONENTS MathCore)"
 #macro_remove AtlasCxxPolicy_pp_cppflags "-DNDEBUG"
 #For testing that we don't have any alignment problems:
 #macro_append AtlasCxxPolicy_pp_cppflags "-Wpadded"
-macro_append cppflags "-std=c++0x"
-macro_append cpplinkflags "-std=c++0x"
+#macro_append cppflags "-std=c++0x"
+#macro_append cpplinkflags "-std=c++0x"
 end_private
 
 apply_pattern declare_joboptions files="*.py"
diff --git a/Control/AthenaMonitoring/python/DQMonFlags.py b/Control/AthenaMonitoring/python/DQMonFlags.py
index 161a246c517d2427daea24a24ed689b1ea28ecd9..e518d8de82af5a79bb6167af7edd3e924914db5d 100644
--- a/Control/AthenaMonitoring/python/DQMonFlags.py
+++ b/Control/AthenaMonitoring/python/DQMonFlags.py
@@ -234,7 +234,7 @@ class doStreamAwareMon(JobProperty):
     """ Switch for stream-aware monitoring """
     statusOn=True
     allowedTypes=['bool']
-    StoredValue=False
+    StoredValue=True
 list+=[doStreamAwareMon]
 
 class monType(JobProperty):
diff --git a/Control/AthenaMonitoring/share/AtlasReadyFilterTool_jobOptions.py b/Control/AthenaMonitoring/share/AtlasReadyFilterTool_jobOptions.py
index c05eacabd4ec01c77602a6003f5dd25c647f6556..8ec92fcebbef9b1be5d0ef926eafffefa6e23d63 100644
--- a/Control/AthenaMonitoring/share/AtlasReadyFilterTool_jobOptions.py
+++ b/Control/AthenaMonitoring/share/AtlasReadyFilterTool_jobOptions.py
@@ -1,3 +1,5 @@
+include.block('AthenaMonitoring/AtlasReadyFilterTool_jobOptions.py')
+
 # Set up the ATLAS Ready filter tool
 from AthenaCommon.Logging import logging
 
diff --git a/Control/AthenaMonitoring/share/DQMonFlagsConfig_jobOptions.py b/Control/AthenaMonitoring/share/DQMonFlagsConfig_jobOptions.py
index 6e0258c0d3c1faab993a95a769883ca6fb904e29..7b803200f17d16c500e79149cd7283a82a20d5e4 100644
--- a/Control/AthenaMonitoring/share/DQMonFlagsConfig_jobOptions.py
+++ b/Control/AthenaMonitoring/share/DQMonFlagsConfig_jobOptions.py
@@ -259,17 +259,53 @@ if DQMonFlags.doStreamAwareMon:
    # So set them as false by default. Turn them on as needed
    LArMonFlags.doLArRODMonTool=False            # savannah bug report #83390
    LArMonFlags.doLArRawMonitorSignal=False
+   LArMonFlags.doLArRawChannelMon=False
+   LArMonFlags.doLArCollisionTimeMon=False
+   LArMonFlags.doLArAffectedRegions=False
+   LArMonFlags.doLArHVCorrectionMonTool=False
+   LArMonFlags.doLArCoverage=False
+   doCaloCellVecMon=False
+
+   # The following are ON except for certain streams
+   LArMonFlags.doLArDigitMon=True
+   LArMonFlags.doLArNoisyROMon=True
 
    # All monitoring turned on for express stream (except LArRawChannelMon)
    # HIP runs will use the express settings for MinBias, MinBiasOverlay, HardProbes, bulk, and UPC
-   if (rec.triggerStream()=='express' or 
+   if (rec.triggerStream()=='express' or rec.triggerStream()=='Main' or
        (rec.doHIP() and rec.triggerStream() in ['MinBias', 'MinBiasOverlay', 'HardProbes', 'bulk', 'UPC'])):
-      LArMonFlags.doLArRawChannelMon=False
+      LArMonFlags.doLArCollisionTimeMon=True
+      LArMonFlags.doLArAffectedRegions=True
+      LArMonFlags.doLArHVCorrectionMonTool=True
+      LArMonFlags.doLArCoverage=True
       LArMonFlags.doLArRODMonTool=True          # savannah bug report #83390
+      if (rec.triggerStream()=='express'):
+         doCaloCellVecMon=True
 
    elif (rec.triggerStream()=='CosmicCalo'):
+      LArMonFlags.doLArRawChannelMon=True
       LArMonFlags.doLArRawMonitorSignal=True
+      LArMonFlags.doLArAffectedRegions=True
+      LArMonFlags.doLArHVCorrectionMonTool=True
+      LArMonFlags.doLArCoverage=True
+      LArMonFlags.doLArDigitMon=False
+      doCaloCellVecMon=True
       HLTMonFlags.doBjet=False
+      HLTMonFlags.doEgamma=False
+      HLTMonFlags.doTau=False
+      HLTMonFlags.doJet=False
+      HLTMonFlags.doCalo=False
+      HLTMonFlags.doMuon=False
+      DQMonFlags.doTauMon=False
+      DQMonFlags.doPixelMon=False
+      DQMonFlags.doMuonRawMon=False
+      DQMonFlags.doMuonTrackMon=False
+      DQMonFlags.doMuonAlignMon=False
+      DQMonFlags.doMuonCombinedMon=False
+      DQMonFlags.doMuonSegmentMon=False
+      DQMonFlags.doMuonPhysicsMon=False
+      DQMonFlags.doMuonTrkPhysMon=False
+      DQMonFlags.doTRTMon=False
       DQMonFlags.doJetTagMon=False
    elif (rec.triggerStream()=='JetTauEtmiss'):
       DQMonFlags.doEgammaMon=False
@@ -334,16 +370,10 @@ if DQMonFlags.doStreamAwareMon:
       DQMonFlags.doMuonPhysicsMon=False
       DQMonFlags.doCaloMon=False
       DQMonFlags.doJetTagMon=False
-      LArMonFlags.doLArRawChannelMon=False
-      LArMonFlags.doLArCollisionTimeMon=False
-      LArMonFlags.doLArAffectedRegions=False
       #LArMonFlags.doLArFEBMon=False
-      LArMonFlags.doLArHVCorrectionMonTool=False
-      LArMonFlags.doLArCoverage=False
-      LArMonFlags.doLArDigitMon=False
-      LArMonFlags.doLArNoisyROMon=False
+      #LArMonFlags.doLArDigitMon=False
+      #LArMonFlags.doLArNoisyROMon=False
    elif (rec.triggerStream()=='ZeroBias'):
-      DQMonFlags.doEgammaMon=False
       DQMonFlags.doTauMon=False
       HLTMonFlags.doBjet=False
       HLTMonFlags.doEgamma=False
@@ -361,19 +391,34 @@ if DQMonFlags.doStreamAwareMon:
       DQMonFlags.doMuonTrkPhysMon=False
       DQMonFlags.doTRTMon=False
       DQMonFlags.doJetTagMon=False
-      LArMonFlags.doLArRawChannelMon=False
-      LArMonFlags.doLArCollisionTimeMon=False
-      LArMonFlags.doLArAffectedRegions=False
+      #LArMonFlags.doLArRawChannelMon=False
+      #LArMonFlags.doLArCollisionTimeMon=False
+      #LArMonFlags.doLArAffectedRegions=False
       #LArMonFlags.doLArFEBMon=False
-      LArMonFlags.doLArHVCorrectionMonTool=False
-      LArMonFlags.doLArCoverage=False
-      LArMonFlags.doLArDigitMon=False
-      LArMonFlags.doLArNoisyROMon=False
-      LArMonFlags.doLArRODMonTool=True          # savannah bug report #83390
+      #LArMonFlags.doLArHVCorrectionMonTool=False
+      #LArMonFlags.doLArCoverage=False
+      #LArMonFlags.doLArDigitMon=False
+      #LArMonFlags.doLArNoisyROMon=False
+      #LArMonFlags.doLArRODMonTool=True          # savannah bug report #83390
+
+   elif (rec.triggerStream()=='L1Calo'):
+      HLTMonFlags.doBjet=False
+      HLTMonFlags.doMuon=False
+      DQMonFlags.doPixelMon=False
+      DQMonFlags.doMuonRawMon=False
+      DQMonFlags.doMuonTrackMon=False
+      DQMonFlags.doMuonAlignMon=False
+      DQMonFlags.doMuonCombinedMon=False
+      DQMonFlags.doMuonSegmentMon=False
+      DQMonFlags.doMuonPhysicsMon=False
+      DQMonFlags.doMuonTrkPhysMon=False
+      DQMonFlags.doTRTMon=False
+      DQMonFlags.doJetTagMon=False
 
    # Default stream-aware settings for unspecified streams
    # Only run a select few set of tools
    else:
+      #LArMonFlags.doLArRawChannelMon=False
       DQMonFlags.doEgammaMon=False
       DQMonFlags.doJetMon=False
       DQMonFlags.doMissingEtMon=False
@@ -392,8 +437,12 @@ if DQMonFlags.doStreamAwareMon:
 else:
    local_logger.info("Stream-Aware monitoring is turned OFF")
 
-# disabled until further notice 20140401 - PUEO
-# DQMonFlags.doMuonRawMon=False
+# If data type is '*comm' disable ATLAS Ready filter by default
+if (rec.projectName.get_Value().endswith('_comm') and 
+    not DQMonFlags.disableAtlasReadyFilter()
+    ):
+   local_logger.info("This is a commissioning project tag, will attempt to disable ATLAS Ready filter for monitoring tools. To really enable it, use DQMonFlags.disableAtlasReadyFilter.set_Value_and_Lock(False).")
+   DQMonFlags.disableAtlasReadyFilter=True
 
 DQMonFlags.lock_JobProperties()
 DQMonFlags.print_JobProperties()
diff --git a/Control/AthenaMonitoring/share/DataQualitySteering_jobOptions.py b/Control/AthenaMonitoring/share/DataQualitySteering_jobOptions.py
index 1f80b7d5685491fbde24b15045f8326d2c0dbea4..5547f1bfcb0c6d2b6fa197b362eacaf63baa0e2d 100644
--- a/Control/AthenaMonitoring/share/DataQualitySteering_jobOptions.py
+++ b/Control/AthenaMonitoring/share/DataQualitySteering_jobOptions.py
@@ -4,7 +4,7 @@
 # $Id: DataQualitySteering_jobOptions.py,v 1.15 2009-05-05 08:20:08 sschaetz Exp $
 # ********************************************************************************
 
-# disable InDetPerformanceMonitoring, JetMonitoring until further notice 
+# disable TRTEleMon until further notice
 # - PUEO 20140401
 TRTELEMON=False
 
@@ -255,9 +255,9 @@ if DQMonFlags.doMonitoring():
       # monitoring tool
       if hasattr(tool, 'FilterTools'):
          # if express: use ATLAS Ready filter
-         local_logger.warning('Processing for tool %s', tool)
+         local_logger.debug('Setting up filters for tool %s', tool)
          if rec.triggerStream()=='express':
-            local_logger.warning('Stream is express and we will add ready tool')
+            local_logger.info('Stream is express and we will add ready tool for %s', tool)
             tool.FilterTools += [monAtlasReadyFilterTool]
          # give all the tools the trigger translator
          if DQMonFlags.useTrigger():
diff --git a/Control/AthenaMonitoring/src/AthenaMonManager.cxx b/Control/AthenaMonitoring/src/AthenaMonManager.cxx
index 4f40bd905e7de4355508f5040cdbc6aaca2f5d1d..06a9b5fb042b09ba62b949f382cb36af135b822a 100755
--- a/Control/AthenaMonitoring/src/AthenaMonManager.cxx
+++ b/Control/AthenaMonitoring/src/AthenaMonManager.cxx
@@ -40,142 +40,147 @@
 #include <vector>
 
 class AthenaMonManager::Imp {
-   public:
-      Imp(AthenaMonManager*man,const std::string& name) :  m_theManager(man),
-							   m_sgAudSvc(0),
-							   m_isPrimaryManager(false),
-							   m_everyNevents(-1),
-							   m_eventCounter(-1),
-							   m_fileKeyProp(name),
-							   m_manualDataTypeSetupProp(false),
-							   m_dataTypeProp("userDefined"),
-							   m_environmentProp("user"),
-							   m_LBsLowStatProp(10),
-							   m_LBsMedStatProp(30),
-							   m_LBsHigStatProp(90),
-							   m_manualRunLBProp(false),
-							   m_runProp(0),
-							   m_lumiBlockProp(0),
-							   m_nMonGroupCopies(0),
-							   m_nActiveLWHists(0),
-							   m_doResourceMon(false) {}
-      ~Imp()
-      {
-	      std::map<IMonitorToolBase*,ToolBench*>::iterator it, itE;
-
-	      for (it=m_toolbenchmarks.begin(),itE=m_toolbenchmarks.end();it!=itE;++it) {
-	          delete it->second;
-	      }
-
-	      m_toolbenchmarks.clear();
-      }
-
-      //These were protected before we moved to a private implementation:
-      typedef std::map<std::string,TObject*>  ObjMap_t;
-      ObjMap_t     m_objMap;
-
-      typedef std::map<std::string,LWHist*>  ObjMapLW_t;
-      ObjMapLW_t   m_objMapLW;
-
-      AthenaMonManager * m_theManager;
-      ISGAudSvc * m_sgAudSvc;
-
-      bool         m_isPrimaryManager;
-
-      long         m_everyNevents;
-      long         m_eventCounter;
-
-      std::string  m_fileKeyProp;
-
-      bool         m_manualDataTypeSetupProp;
-      std::string  m_dataTypeProp;
-      std::string  m_environmentProp;
-      unsigned int m_LBsLowStatProp, m_LBsMedStatProp, m_LBsHigStatProp;
-
-      bool         m_manualRunLBProp;
-
-      unsigned int m_runProp;
-      unsigned int m_lumiBlockProp;
-
-      unsigned m_nMonGroupCopies;
-      long m_nActiveLWHists;
-
-      //NB: The LW hist leak checker is now also looking for
-      //inappropriate usage of MonGroup copy constructors (temporary
-      //until we outlaw copy/assignment of MonGroups):
-      class LWHistLeakChecker {
-	Imp * m_d;
+public:
+    Imp(AthenaMonManager*man,const std::string& name) :  m_theManager(man),
+        m_sgAudSvc(0),
+        m_isPrimaryManager(false),
+        m_everyNevents(-1),
+        m_eventCounter(-1),
+        m_fileKeyProp(name),
+        m_manualDataTypeSetupProp(false),
+        m_dataTypeProp("userDefined"),
+        m_environmentProp("user"),
+        m_LBsLowStatProp(10),
+        m_LBsMedStatProp(30),
+        m_LBsHigStatProp(90),
+        m_manualRunLBProp(false),
+        m_runProp(0),
+        m_lumiBlockProp(0),
+        m_nMonGroupCopies(0),
+        m_nActiveLWHists(0),
+        m_doResourceMon(false) {}
+    ~Imp()
+    {
+        std::map<IMonitorToolBase*,ToolBench*>::iterator it, itE;
+
+        for (it=m_toolbenchmarks.begin(),itE=m_toolbenchmarks.end(); it!=itE; ++it) {
+            delete it->second;
+        }
+
+        m_toolbenchmarks.clear();
+    }
+
+    //These were protected before we moved to a private implementation:
+    typedef std::map<std::string,TObject*>  ObjMap_t;
+    ObjMap_t     m_objMap;
+
+    typedef std::map<std::string,LWHist*>  ObjMapLW_t;
+    ObjMapLW_t   m_objMapLW;
+
+    AthenaMonManager * m_theManager;
+    ISGAudSvc * m_sgAudSvc;
+
+    bool         m_isPrimaryManager;
+
+    long         m_everyNevents;
+    long         m_eventCounter;
+
+    std::string  m_fileKeyProp;
+
+    bool         m_manualDataTypeSetupProp;
+    std::string  m_dataTypeProp;
+    std::string  m_environmentProp;
+    unsigned int m_LBsLowStatProp, m_LBsMedStatProp, m_LBsHigStatProp;
+
+    bool         m_manualRunLBProp;
+
+    unsigned int m_runProp;
+    unsigned int m_lumiBlockProp;
+
+    unsigned m_nMonGroupCopies;
+    long m_nActiveLWHists;
+
+    //NB: The LW hist leak checker is now also looking for
+    //inappropriate usage of MonGroup copy constructors (temporary
+    //until we outlaw copy/assignment of MonGroups):
+    class LWHistLeakChecker {
+        Imp * m_d;
         long m_initVal;
-	unsigned m_mgcopies_initval;
-      public:
+        unsigned m_mgcopies_initval;
+    public:
         LWHistLeakChecker(Imp*d) : m_d(d), m_initVal(LWHistStats::nActiveLWHists()),
-				   m_mgcopies_initval(ManagedMonitorToolBase::MonGroup::ncopies()) {}
+            m_mgcopies_initval(ManagedMonitorToolBase::MonGroup::ncopies()) {}
         ~LWHistLeakChecker()
-	{ m_d->m_nActiveLWHists += LWHistStats::nActiveLWHists()-m_initVal;
-	  m_d->m_nMonGroupCopies += ManagedMonitorToolBase::MonGroup::ncopies()-m_mgcopies_initval; }
-      };
-
-      template<class T> void toolAudStart(const T&tool) { if (m_sgAudSvc) m_sgAudSvc->setFakeCurrentAlg(m_theManager->name()+"_MT_"+tool->name()); }
-      void toolAudEnd() { if (m_sgAudSvc) m_sgAudSvc->clearFakeCurrentAlg(); }
-
-  bool m_doResourceMon;
-  class ToolBench{
-  public:
-    ToolBench(IMonitorToolBase * t) :  m_theTool(t) {}
-    const IMonitorToolBase * m_theTool;
-    AthMonBench m_bench_alginit_retrieve;
-    AthMonBench m_bench_algexec_fillHists;//NB: includes call to preselector
-    AthMonBench m_bench_algexec_checkHists;
-    AthMonBench m_bench_algexec_bookHists;
-    //NB: So far we don't check the call to runStat()
-    AthMonBench m_bench_algfin_finalHists;
-    AthMonBench m_bench_algfin_checkHists;
-    AthMonBench m_bench_algfin_convertLWHists;
-    void report(AthenaMonManager*a) {
-      MSG::Level l(AthMonBench::s_resourceMonThreshold);
-      a->msg(l)<<"Init ResourceSummary ["<<m_theTool->name()<<"] --> load/create/initialize : "<<m_bench_alginit_retrieve<<endreq;
-      m_bench_algexec_checkHists.setUnitCount();
-      m_bench_algexec_bookHists.setUnitCount();
-      a->msg(l)<<"Exec ResourceSummary ["<<m_theTool->name()<<"] --> book : "<<m_bench_algexec_bookHists<<endreq;
-      a->msg(l)<<"Exec ResourceSummary ["<<m_theTool->name()<<"] --> check : "<<m_bench_algexec_checkHists<<endreq;
-      a->msg(l)<<"Exec ResourceSummary ["<<m_theTool->name()<<"] --> fill : "<<m_bench_algexec_fillHists<<endreq;
-      a->msg(l)<<"Fin ResourceSummary ["<<m_theTool->name()<<"] --> finalHists : "<<m_bench_algfin_finalHists<<endreq;
-      a->msg(l)<<"Fin ResourceSummary ["<<m_theTool->name()<<"] --> checkHists(fromFinalize==true) : "<<m_bench_algfin_checkHists<<endreq;
-      a->msg(l)<<"Fin ResourceSummary ["<<m_theTool->name()<<"] --> final LWHist conversion+writeout : "<<m_bench_algfin_convertLWHists<<endreq;
+        {   m_d->m_nActiveLWHists += LWHistStats::nActiveLWHists()-m_initVal;
+            m_d->m_nMonGroupCopies += ManagedMonitorToolBase::MonGroup::ncopies()-m_mgcopies_initval;
+        }
+    };
+
+    template<class T> void toolAudStart(const T&tool) {
+        if (m_sgAudSvc) m_sgAudSvc->setFakeCurrentAlg(m_theManager->name()+"_MT_"+tool->name());
     }
+    void toolAudEnd() {
+        if (m_sgAudSvc) m_sgAudSvc->clearFakeCurrentAlg();
+    }
+
+    bool m_doResourceMon;
+    class ToolBench {
+    public:
+        ToolBench(IMonitorToolBase * t) :  m_theTool(t) {}
+        const IMonitorToolBase * m_theTool;
+        AthMonBench m_bench_alginit_retrieve;
+        AthMonBench m_bench_algexec_fillHists;//NB: includes call to preselector
+        AthMonBench m_bench_algexec_checkHists;
+        AthMonBench m_bench_algexec_bookHists;
+        //NB: So far we don't check the call to runStat()
+        AthMonBench m_bench_algfin_finalHists;
+        AthMonBench m_bench_algfin_checkHists;
+        AthMonBench m_bench_algfin_convertLWHists;
+        void report(AthenaMonManager*a) {
+            MSG::Level l(AthMonBench::s_resourceMonThreshold);
+            a->msg(l)<<"Init ResourceSummary ["<<m_theTool->name()<<"] --> load/create/initialize : "<<m_bench_alginit_retrieve<<endreq;
+            m_bench_algexec_checkHists.setUnitCount();
+            m_bench_algexec_bookHists.setUnitCount();
+            a->msg(l)<<"Exec ResourceSummary ["<<m_theTool->name()<<"] --> book : "<<m_bench_algexec_bookHists<<endreq;
+            a->msg(l)<<"Exec ResourceSummary ["<<m_theTool->name()<<"] --> check : "<<m_bench_algexec_checkHists<<endreq;
+            a->msg(l)<<"Exec ResourceSummary ["<<m_theTool->name()<<"] --> fill : "<<m_bench_algexec_fillHists<<endreq;
+            a->msg(l)<<"Fin ResourceSummary ["<<m_theTool->name()<<"] --> finalHists : "<<m_bench_algfin_finalHists<<endreq;
+            a->msg(l)<<"Fin ResourceSummary ["<<m_theTool->name()<<"] --> checkHists(fromFinalize==true) : "<<m_bench_algfin_checkHists<<endreq;
+            a->msg(l)<<"Fin ResourceSummary ["<<m_theTool->name()<<"] --> final LWHist conversion+writeout : "<<m_bench_algfin_convertLWHists<<endreq;
+        }
 
-  };
-  std::map<IMonitorToolBase*,ToolBench*> m_toolbenchmarks;
-  ToolBench* getToolBench(IMonitorToolBase* t) {
-    std::map<IMonitorToolBase*,ToolBench*>::iterator it = m_toolbenchmarks.find(t);
-    if (it==m_toolbenchmarks.end()) {
-      ToolBench*tb =new ToolBench(t);
-      m_toolbenchmarks[t] = tb;
-      return tb;
+    };
+    std::map<IMonitorToolBase*,ToolBench*> m_toolbenchmarks;
+    ToolBench* getToolBench(IMonitorToolBase* t) {
+        std::map<IMonitorToolBase*,ToolBench*>::iterator it = m_toolbenchmarks.find(t);
+        if (it==m_toolbenchmarks.end()) {
+            ToolBench*tb =new ToolBench(t);
+            m_toolbenchmarks[t] = tb;
+            return tb;
+        }
+        return it->second;
     }
-    return it->second;
-  }
 
-      // The data below should be truly global for a job, and inheriting classes should
-      // not have the option of modifying them.
-      // The data are set from the corresponding m_* properties of the first AthenaMonManager
-      // in the Athena algorithm chain (this manager sets s_staticDataAreInit to true).
+    // The data below should be truly global for a job, and inheriting classes should
+    // not have the option of modifying them.
+    // The data are set from the corresponding m_* properties of the first AthenaMonManager
+    // in the Athena algorithm chain (this manager sets s_staticDataAreInit to true).
 
-      static ISvcLocator*    s_svcLocator;
+    static ISvcLocator*    s_svcLocator;
 
-      static bool            s_staticDataAreInit;
+    static bool            s_staticDataAreInit;
 
-      static std::string     s_dataTypeStr;
-      static std::string     s_environmentStr;
-      static DataType_t      s_dataType;
-      static Environment_t   s_environment;
+    static std::string     s_dataTypeStr;
+    static std::string     s_environmentStr;
+    static DataType_t      s_dataType;
+    static Environment_t   s_environment;
 
-      static unsigned int s_lumiBlock;
-      static unsigned int s_run;
-      static unsigned int s_fill;
-      static unsigned int s_LBsLowStat;
-      static unsigned int s_LBsMedStat;
-      static unsigned int s_LBsHigStat;
+    static unsigned int s_lumiBlock;
+    static unsigned int s_run;
+    static unsigned int s_fill;
+    static unsigned int s_LBsLowStat;
+    static unsigned int s_LBsMedStat;
+    static unsigned int s_LBsHigStat;
 };
 
 ISvcLocator* AthenaMonManager::Imp::s_svcLocator(0);
@@ -195,7 +200,7 @@ unsigned int  AthenaMonManager::Imp::s_LBsMedStat(0);
 unsigned int  AthenaMonManager::Imp::s_LBsHigStat(0);
 namespace {
 
-   std::string strToLower( const std::string& str );
+std::string strToLower( const std::string& str );
 
 } // unnamed namespace
 
@@ -204,42 +209,42 @@ namespace {
 // *********************************************************************
 
 AthenaMonManager::
-   AthenaMonManager( const std::string& name, ISvcLocator* pSvcLocator )
-   : AthAlgorithm( name, pSvcLocator ), m_THistSvc(0), d(new Imp(this, name))
+AthenaMonManager( const std::string& name, ISvcLocator* pSvcLocator )
+    : AthAlgorithm( name, pSvcLocator ), m_THistSvc(0), m_d(new Imp(this, name))
 {
-   declareProperty( "AthenaMonTools", m_monTools );
-   declareProperty( "CheckEveryNoEvents", d->m_everyNevents );
-   declareProperty( "FileKey", d->m_fileKeyProp );
-   declareProperty( "ManualDataTypeSetup", d->m_manualDataTypeSetupProp );
-   declareProperty( "DataType", d->m_dataTypeProp );
-   declareProperty( "Environment", d->m_environmentProp );
-   declareProperty( "LBsInLowStatInterval", d->m_LBsLowStatProp );
-   declareProperty( "LBsInMediumStatInterval", d->m_LBsMedStatProp );
-   declareProperty( "LBsInHighStatInterval", d->m_LBsHigStatProp );
-   declareProperty( "ManualRunLBSetup", d->m_manualRunLBProp );
-   declareProperty( "Run", d->m_runProp );
-   declareProperty( "LumiBlock", d->m_lumiBlockProp );
-
-   if( Imp::s_svcLocator==0 )
-      Imp::s_svcLocator = pSvcLocator;
+    declareProperty( "AthenaMonTools", m_monTools );
+    declareProperty( "CheckEveryNoEvents", m_d->m_everyNevents );
+    declareProperty( "FileKey", m_d->m_fileKeyProp );
+    declareProperty( "ManualDataTypeSetup", m_d->m_manualDataTypeSetupProp );
+    declareProperty( "DataType", m_d->m_dataTypeProp );
+    declareProperty( "Environment", m_d->m_environmentProp );
+    declareProperty( "LBsInLowStatInterval", m_d->m_LBsLowStatProp );
+    declareProperty( "LBsInMediumStatInterval", m_d->m_LBsMedStatProp );
+    declareProperty( "LBsInHighStatInterval", m_d->m_LBsHigStatProp );
+    declareProperty( "ManualRunLBSetup", m_d->m_manualRunLBProp );
+    declareProperty( "Run", m_d->m_runProp );
+    declareProperty( "LumiBlock", m_d->m_lumiBlockProp );
+
+    if( Imp::s_svcLocator==0 )
+        Imp::s_svcLocator = pSvcLocator;
 }
 
 
 AthenaMonManager::
 ~AthenaMonManager()
 {
-  if (d->m_nActiveLWHists)
-    msg(MSG::WARNING) << d->m_nActiveLWHists<< " LW histograms were created but never deleted" << endreq;
-  /*
-  if (d->m_nMonGroupCopies)
-    msg(MSG::WARNING) << "Usage of MonGroup copy constructor or assignment operator detected in associated tools "
-		      << d->m_nMonGroupCopies<<" time(s). This usually happens when tools pass MonGroup's around by"
-		      <<" value. This behaviour will be forbidden at the compilation stage soon, so please fix your packages!" << endreq;
-  */
-  delete d;
-
-   // If it is known that ManagedMonitorToolBase objects are deleted _after_ this object,
-   // then one should call setMonManager(0) on each of them.
+    if (m_d->m_nActiveLWHists)
+        msg(MSG::WARNING) << m_d->m_nActiveLWHists<< " LW histograms were created but never deleted" << endreq;
+    /*
+    if (m_d->m_nMonGroupCopies)
+      msg(MSG::WARNING) << "Usage of MonGroup copy constructor or assignment operator detected in associated tools "
+    	      << m_d->m_nMonGroupCopies<<" time(s). This usually happens when tools pass MonGroup's around by"
+    	      <<" value. This behaviour will be forbidden at the compilation stage soon, so please fix your packages!" << endreq;
+    */
+    delete m_d;
+
+    // If it is known that ManagedMonitorToolBase objects are deleted _after_ this object,
+    // then one should call setMonManager(0) on each of them.
 }
 
 
@@ -247,36 +252,36 @@ AthenaMonManager::Environment_t
 AthenaMonManager::
 envStringToEnum( const std::string& str )
 {
-   std::string lcstr( strToLower(str) );
-
-   if( lcstr == "user" )
-      return user;
-   else if( lcstr == "nooutput" )
-      return noOutput;
-   else if( lcstr == "online" )
-      return online;
-   else if( lcstr == "tier0" )
-      return tier0;
-   else if( lcstr == "tier0raw" )
-      return tier0Raw;
-   else if( lcstr == "tier0esd" )
-      return tier0ESD;
-   else if( lcstr == "aod" )
-      return AOD;
-   else if( lcstr == "altprod" )
-      return altprod;
-
-   if( Imp::s_svcLocator!=0 ) {
-      IMessageSvc* ms(0);
-      StatusCode sc = Imp::s_svcLocator->service( "MessageSvc", ms, true );
-      if( sc.isSuccess() ) {
-         MsgStream log( ms, "AthenaMonManager::envStringToEnum()" );
-         log << MSG::WARNING << "Unknown AthenaMonManager::Environment_t \""
-            << str << "\", returning \"user\"" << endreq;
-      }
-   }
-
-   return user;
+    std::string lcstr( strToLower(str) );
+
+    if( lcstr == "user" )
+        return user;
+    else if( lcstr == "nooutput" )
+        return noOutput;
+    else if( lcstr == "online" )
+        return online;
+    else if( lcstr == "tier0" )
+        return tier0;
+    else if( lcstr == "tier0raw" )
+        return tier0Raw;
+    else if( lcstr == "tier0esd" )
+        return tier0ESD;
+    else if( lcstr == "aod" )
+        return AOD;
+    else if( lcstr == "altprod" )
+        return altprod;
+
+    if( Imp::s_svcLocator!=0 ) {
+        IMessageSvc* ms(0);
+        StatusCode sc = Imp::s_svcLocator->service( "MessageSvc", ms, true );
+        if( sc.isSuccess() ) {
+            MsgStream log( ms, "AthenaMonManager::envStringToEnum()" );
+            log << MSG::WARNING << "Unknown AthenaMonManager::Environment_t \""
+                << str << "\", returning \"user\"" << endreq;
+        }
+    }
+
+    return user;
 }
 
 
@@ -284,30 +289,30 @@ AthenaMonManager::DataType_t
 AthenaMonManager::
 dataTypeStringToEnum( const std::string& str )
 {
-   std::string lcstr( strToLower(str) );
-
-   if( lcstr == "userdefined" )
-      return userDefined;
-   else if( lcstr == "montecarlo" )
-      return monteCarlo;
-   else if( lcstr == "collisions" )
-      return collisions;
-   else if( lcstr == "cosmics" )
-      return cosmics;
-   else if( lcstr == "heavyioncollisions" )
-      return heavyIonCollisions;
-
-   if( Imp::s_svcLocator!=0 ) {
-      IMessageSvc* ms(0);
-      StatusCode sc = Imp::s_svcLocator->service( "MessageSvc", ms, true );
-      if( sc.isSuccess() ) {
-         MsgStream log( ms, "AthenaMonManager::dataTypeStringToEnum()" );
-         log << MSG::WARNING << "Unknown AthenaMonManager::DataType_t \""
-            << str << "\", returning \"userDefined\"" << endreq;
-      }
-   }
-
-   return userDefined;
+    std::string lcstr( strToLower(str) );
+
+    if( lcstr == "userdefined" )
+        return userDefined;
+    else if( lcstr == "montecarlo" )
+        return monteCarlo;
+    else if( lcstr == "collisions" )
+        return collisions;
+    else if( lcstr == "cosmics" )
+        return cosmics;
+    else if( lcstr == "heavyioncollisions" )
+        return heavyIonCollisions;
+
+    if( Imp::s_svcLocator!=0 ) {
+        IMessageSvc* ms(0);
+        StatusCode sc = Imp::s_svcLocator->service( "MessageSvc", ms, true );
+        if( sc.isSuccess() ) {
+            MsgStream log( ms, "AthenaMonManager::dataTypeStringToEnum()" );
+            log << MSG::WARNING << "Unknown AthenaMonManager::DataType_t \""
+                << str << "\", returning \"userDefined\"" << endreq;
+        }
+    }
+
+    return userDefined;
 }
 
 
@@ -315,18 +320,24 @@ AthenaMonManager::Environment_t
 AthenaMonManager::
 environment()
 {
-   return Imp::s_environment;
+    return Imp::s_environment;
 }
 
-unsigned int AthenaMonManager::getLBsLowStat() { return Imp::s_LBsLowStat; }
-unsigned int AthenaMonManager::getLBsMedStat() { return Imp::s_LBsMedStat; }
-unsigned int AthenaMonManager::getLBsHigStat() { return Imp::s_LBsHigStat; }
+unsigned int AthenaMonManager::getLBsLowStat() {
+    return Imp::s_LBsLowStat;
+}
+unsigned int AthenaMonManager::getLBsMedStat() {
+    return Imp::s_LBsMedStat;
+}
+unsigned int AthenaMonManager::getLBsHigStat() {
+    return Imp::s_LBsHigStat;
+}
 
 AthenaMonManager::DataType_t
 AthenaMonManager::
 dataType()
 {
-   return Imp::s_dataType;
+    return Imp::s_dataType;
 }
 
 
@@ -334,7 +345,7 @@ unsigned int
 AthenaMonManager::
 lumiBlockNumber()
 {
-   return Imp::s_lumiBlock;
+    return Imp::s_lumiBlock;
 }
 
 
@@ -342,7 +353,7 @@ unsigned int
 AthenaMonManager::
 runNumber()
 {
-   return Imp::s_run;
+    return Imp::s_run;
 }
 
 
@@ -350,7 +361,7 @@ unsigned int
 AthenaMonManager::
 fillNumber()
 {
-   return Imp::s_fill;
+    return Imp::s_fill;
 }
 
 
@@ -358,107 +369,107 @@ StatusCode
 AthenaMonManager::
 initialize()
 {
-   Imp::LWHistLeakChecker lc(d);
-
-   //typedef std::vector<IMonitorToolBase*> MonList_t;
-   //typedef MonList_t::iterator            MonIter_t;
-
-   if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "AthenaMonManager::initialize():" << endreq;
-
-   if (Imp::s_svcLocator->service("SGAudSvc", d->m_sgAudSvc, false/*do not create*/).isFailure())
-     d->m_sgAudSvc=0;
-
-
-   d->m_doResourceMon = msgLvl(AthMonBench::s_resourceMonThreshold);
-
-   StatusCode sc;
-   sc.setChecked();
-
-   sc = service( "THistSvc", m_THistSvc, true );
-   if( !sc.isSuccess() ) {
-      msg(MSG::ERROR) << "!! Unable to locate the THistSvc service !!" << endreq;
-      return sc;
-   }
-
-   if( !Imp::s_staticDataAreInit ) {
-      if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "  --> Initializing static data" << endreq;
-
-      if (msgLvl(MSG::DEBUG)) { 
-         msg(MSG::DEBUG) << "      * \"ManualDataTypeSetup\" = " << d->m_manualDataTypeSetupProp << endreq;
-      }
-
-      if( d->m_manualDataTypeSetupProp ) {
-         Imp::s_dataTypeStr = d->m_dataTypeProp;
-         Imp::s_dataType = dataTypeStringToEnum( d->m_dataTypeProp );
-      }
-      else {
-         Imp::s_dataTypeStr = d->m_dataTypeProp;
-         Imp::s_dataType = dataTypeStringToEnum( d->m_dataTypeProp );
-      }
-
-      if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "      * \"DataType\" = " << Imp::s_dataType << endreq;
- 
-      Imp::s_environmentStr = d->m_environmentProp;
-      Imp::s_environment = envStringToEnum( d->m_environmentProp );
-
-      if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "      * \"Environment\" = " << Imp::s_environment << endreq;
-
-      Imp::s_LBsLowStat = d->m_LBsLowStatProp;
-      Imp::s_LBsMedStat = d->m_LBsMedStatProp;
-      Imp::s_LBsHigStat = d->m_LBsHigStatProp;
-      if (msgLvl(MSG::DEBUG)) { 
-         msg(MSG::DEBUG) << "      * \"LBsInLowStatInterval\" = " << Imp::s_LBsLowStat << endreq;
-         msg(MSG::DEBUG) << "      * \"LBsInMediumStatInterval\" = " << Imp::s_LBsMedStat << endreq;
-         msg(MSG::DEBUG) << "      * \"LBsInHighStatInterval\" = " << Imp::s_LBsHigStat << endreq;
-      }
-
-      d->m_isPrimaryManager = true;
-      Imp::s_staticDataAreInit = true;
-
-      if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "      * \"ManualRunLBSetup\" = " << d->m_manualRunLBProp << endreq;
-
-      if( d->m_manualRunLBProp ) {
-         Imp::s_run = d->m_runProp;
-         Imp::s_lumiBlock = d->m_lumiBlockProp;
-         if (msgLvl(MSG::DEBUG)) 
-            msg(MSG::DEBUG) << "          --> using run = " << Imp::s_run << ", lumiBlock = " << Imp::s_lumiBlock << endreq;
-      } else {
-         if (msgLvl(MSG::DEBUG)) 
-            msg(MSG::DEBUG) << "          --> using run = " << Imp::s_run << ", lumiBlock = " << Imp::s_lumiBlock << endreq;
-      }
-   }
-
-   // Ensure consistency among all managers
-   d->m_dataTypeProp    = Imp::s_dataTypeStr;
-   d->m_environmentProp = Imp::s_environmentStr;
-
-   // Provide a virtual Algorithm with a subset of the properties
-   IJobOptionsSvc* joSvc = 0;
-   sc = service( "JobOptionsSvc", joSvc );
-   if( !sc.isSuccess() ) {
-      msg(MSG::ERROR) << "!! Unable to locate the JobOptionsSvc service !!" << endreq;
-      return sc;
-   }
-   ATH_MSG_DEBUG("  --> Found service \"JobOptionsSvc\"");
-
-   std::string client = name() + std::string("Properties");
-   ATH_MSG_DEBUG("  --> Adding properties under name \"" << client << "\"");
-   StatusCode sc1 = joSvc->addPropertyToCatalogue( client, StringProperty("FileKey",d->m_fileKeyProp) );
-   StatusCode sc2 = joSvc->addPropertyToCatalogue( client, StringProperty("DataType",d->m_dataTypeProp) );
-   StatusCode sc3 = joSvc->addPropertyToCatalogue( client, StringProperty("Environment",d->m_environmentProp) );
-   joSvc->release();
-   if( !(sc1.isSuccess() && sc2.isSuccess() && sc3.isSuccess()) ) {
-      msg(MSG::ERROR) << "!! Unable to add properties to JobOptionsSvc service !!" << endreq;
-      return StatusCode::FAILURE;
-   }
-   ATH_MSG_DEBUG("  --> Added Properties");
-
-   //Determine (globally for now), whether or not LW histograms use a
-   //ROOT backend (necessary for online monitoring, and perhaps for
-   //debugging):
-   bool root_backend_for_lwhists = (environment()==AthenaMonManager::online);
-   if( root_backend_for_lwhists != LWHistControls::hasROOTBackend() )
-     LWHistControls::setROOTBackend(root_backend_for_lwhists);
+    Imp::LWHistLeakChecker lc(m_d);
+
+    //typedef std::vector<IMonitorToolBase*> MonList_t;
+    //typedef MonList_t::iterator            MonIter_t;
+
+    if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "AthenaMonManager::initialize():" << endreq;
+
+    if (Imp::s_svcLocator->service("SGAudSvc", m_d->m_sgAudSvc, false/*do not create*/).isFailure())
+        m_d->m_sgAudSvc=0;
+
+
+    m_d->m_doResourceMon = msgLvl(AthMonBench::s_resourceMonThreshold);
+
+    StatusCode sc;
+    sc.setChecked();
+
+    sc = service( "THistSvc", m_THistSvc, true );
+    if( !sc.isSuccess() ) {
+        msg(MSG::ERROR) << "!! Unable to locate the THistSvc service !!" << endreq;
+        return sc;
+    }
+
+    if( !Imp::s_staticDataAreInit ) {
+        if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "  --> Initializing static data" << endreq;
+
+        if (msgLvl(MSG::DEBUG)) {
+            msg(MSG::DEBUG) << "      * \"ManualDataTypeSetup\" = " << m_d->m_manualDataTypeSetupProp << endreq;
+        }
+
+        if( m_d->m_manualDataTypeSetupProp ) {
+            Imp::s_dataTypeStr = m_d->m_dataTypeProp;
+            Imp::s_dataType = dataTypeStringToEnum( m_d->m_dataTypeProp );
+        }
+        else {
+            Imp::s_dataTypeStr = m_d->m_dataTypeProp;
+            Imp::s_dataType = dataTypeStringToEnum( m_d->m_dataTypeProp );
+        }
+
+        if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "      * \"DataType\" = " << Imp::s_dataType << endreq;
+
+        Imp::s_environmentStr = m_d->m_environmentProp;
+        Imp::s_environment = envStringToEnum( m_d->m_environmentProp );
+
+        if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "      * \"Environment\" = " << Imp::s_environment << endreq;
+
+        Imp::s_LBsLowStat = m_d->m_LBsLowStatProp;
+        Imp::s_LBsMedStat = m_d->m_LBsMedStatProp;
+        Imp::s_LBsHigStat = m_d->m_LBsHigStatProp;
+        if (msgLvl(MSG::DEBUG)) {
+            msg(MSG::DEBUG) << "      * \"LBsInLowStatInterval\" = " << Imp::s_LBsLowStat << endreq;
+            msg(MSG::DEBUG) << "      * \"LBsInMediumStatInterval\" = " << Imp::s_LBsMedStat << endreq;
+            msg(MSG::DEBUG) << "      * \"LBsInHighStatInterval\" = " << Imp::s_LBsHigStat << endreq;
+        }
+
+        m_d->m_isPrimaryManager = true;
+        Imp::s_staticDataAreInit = true;
+
+        if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "      * \"ManualRunLBSetup\" = " << m_d->m_manualRunLBProp << endreq;
+
+        if( m_d->m_manualRunLBProp ) {
+            Imp::s_run = m_d->m_runProp;
+            Imp::s_lumiBlock = m_d->m_lumiBlockProp;
+            if (msgLvl(MSG::DEBUG))
+                msg(MSG::DEBUG) << "          --> using run = " << Imp::s_run << ", lumiBlock = " << Imp::s_lumiBlock << endreq;
+        } else {
+            if (msgLvl(MSG::DEBUG))
+                msg(MSG::DEBUG) << "          --> using run = " << Imp::s_run << ", lumiBlock = " << Imp::s_lumiBlock << endreq;
+        }
+    }
+
+    // Ensure consistency among all managers
+    m_d->m_dataTypeProp    = Imp::s_dataTypeStr;
+    m_d->m_environmentProp = Imp::s_environmentStr;
+
+    // Provide a virtual Algorithm with a subset of the properties
+    IJobOptionsSvc* joSvc = 0;
+    sc = service( "JobOptionsSvc", joSvc );
+    if( !sc.isSuccess() ) {
+        msg(MSG::ERROR) << "!! Unable to locate the JobOptionsSvc service !!" << endreq;
+        return sc;
+    }
+    ATH_MSG_DEBUG("  --> Found service \"JobOptionsSvc\"");
+
+    std::string client = name() + std::string("Properties");
+    ATH_MSG_DEBUG("  --> Adding properties under name \"" << client << "\"");
+    StatusCode sc1 = joSvc->addPropertyToCatalogue( client, StringProperty("FileKey",m_d->m_fileKeyProp) );
+    StatusCode sc2 = joSvc->addPropertyToCatalogue( client, StringProperty("DataType",m_d->m_dataTypeProp) );
+    StatusCode sc3 = joSvc->addPropertyToCatalogue( client, StringProperty("Environment",m_d->m_environmentProp) );
+    joSvc->release();
+    if( !(sc1.isSuccess() && sc2.isSuccess() && sc3.isSuccess()) ) {
+        msg(MSG::ERROR) << "!! Unable to add properties to JobOptionsSvc service !!" << endreq;
+        return StatusCode::FAILURE;
+    }
+    ATH_MSG_DEBUG("  --> Added Properties");
+
+    //Determine (globally for now), whether or not LW histograms use a
+    //ROOT backend (necessary for online monitoring, and perhaps for
+    //debugging):
+    bool root_backend_for_lwhists = (environment()==AthenaMonManager::online);
+    if( root_backend_for_lwhists != LWHistControls::hasROOTBackend() )
+        LWHistControls::setROOTBackend(root_backend_for_lwhists);
 
 //    if( m_monTools.size() > 0 ) {
 //       sc = m_monTools.retrieve();
@@ -469,40 +480,40 @@ initialize()
 //       if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "  --> Retrieved AthenaMonTools" << endreq;
 //    }
 
-   d->m_eventCounter = d->m_everyNevents;
-
-   ToolHandleArray<IMonitorToolBase>::iterator monToolsEnd = m_monTools.end();
-   for( ToolHandleArray<IMonitorToolBase>::iterator i = m_monTools.begin(); i != monToolsEnd; ++i ) {
-      ToolHandle<IMonitorToolBase>& tool = *i;
-      d->toolAudStart(tool);
-      AthMonBench bench_tmp;
-      if (d->m_doResourceMon)
-	      bench_tmp.startMeasurement();
-      StatusCode sc_toolret = tool.retrieve();
-      if (d->m_doResourceMon)
-	      bench_tmp.finishMeasurement();
-      d->toolAudEnd();
-      if( sc_toolret.isFailure() ) {
-         msg(MSG::ERROR) << "Failed to retrieve monitoring tool " << tool << endreq;
-         return StatusCode::FAILURE;
-      }
-      else {
-         msg(MSG::INFO) << "Retrieved tool " << tool << endreq;
-      }
-      IMonitorToolBase* mon = tool.operator->();
-      ManagedMonitorToolBase* managed = dynamic_cast<ManagedMonitorToolBase*>( mon );
-      if( managed != 0 ) {
-         managed->setMonManager( this );
-      }
-      if (d->m_doResourceMon) {
-	      Imp::ToolBench* tb = d->getToolBench(mon);
-	      tb->m_bench_alginit_retrieve = bench_tmp;
-      }
-      
-   }
-   if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "  --> Exiting successfully" << endreq;
-
-   return StatusCode::SUCCESS;
+    m_d->m_eventCounter = m_d->m_everyNevents;
+
+    ToolHandleArray<IMonitorToolBase>::iterator monToolsEnd = m_monTools.end();
+    for( ToolHandleArray<IMonitorToolBase>::iterator i = m_monTools.begin(); i != monToolsEnd; ++i ) {
+        ToolHandle<IMonitorToolBase>& tool = *i;
+        m_d->toolAudStart(tool);
+        AthMonBench bench_tmp;
+        if (m_d->m_doResourceMon)
+            bench_tmp.startMeasurement();
+        StatusCode sc_toolret = tool.retrieve();
+        if (m_d->m_doResourceMon)
+            bench_tmp.finishMeasurement();
+        m_d->toolAudEnd();
+        if( sc_toolret.isFailure() ) {
+            msg(MSG::ERROR) << "Failed to retrieve monitoring tool " << tool << endreq;
+            return StatusCode::FAILURE;
+        }
+        else {
+            msg(MSG::INFO) << "Retrieved tool " << tool << endreq;
+        }
+        IMonitorToolBase* mon = tool.operator->();
+        ManagedMonitorToolBase* managed = dynamic_cast<ManagedMonitorToolBase*>( mon );
+        if( managed != 0 ) {
+            managed->setMonManager( this );
+        }
+        if (m_d->m_doResourceMon) {
+            Imp::ToolBench* tb = m_d->getToolBench(mon);
+            tb->m_bench_alginit_retrieve = bench_tmp;
+        }
+
+    }
+    if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "  --> Exiting successfully" << endreq;
+
+    return StatusCode::SUCCESS;
 }
 
 
@@ -510,107 +521,107 @@ StatusCode
 AthenaMonManager::
 execute()
 {
-   Imp::LWHistLeakChecker lc(d);
-   if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "AthenaMonManager::execute():" << endreq;
-
-   StatusCode sc;
-   sc.setChecked();  
-
-   if( !d->m_manualRunLBProp ) {
-      if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "  --> Calling setEventInfo()" << endreq;
-      setEventInfo();
-   }
-
-   ToolHandleArray<IMonitorToolBase>::iterator monToolsEnd = m_monTools.end();
-   for( ToolHandleArray<IMonitorToolBase>::iterator i = m_monTools.begin(); i != monToolsEnd; ++i ) {
-      ToolHandle<IMonitorToolBase>& tool = *i;
-      d->toolAudStart(tool);
-      AthMonBench bench_tmp;
-      if (d->m_doResourceMon)
-	      bench_tmp.startMeasurement();
-      if( tool->preSelector() ) {
-          //if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "  --> The tool is preSelector" << endreq;
-
-          // Uncomment to test luminosity tools
-          // I don't know where exactly it must be placed exactly
-          // Yuriy - start
-          /*
-          IMonitorToolBase* mon = tool.operator->();
-          ManagedMonitorToolBase* managed = dynamic_cast<ManagedMonitorToolBase*>( mon );
-
-          float avgmu = managed->lbAverageInteractionsPerCrossing();
-          if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << " Test, Average mu: " << avgmu << endreq;
-
-          float instmu = managed->lbInteractionsPerCrossing();
-          if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << " Test, Instantaneous mu: " << instmu << endreq;
-
-          float avglumi = managed->lbAverageLuminosity();
-          if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << " Test, Average lumi: " << avglumi << endreq;
-
-          float instlumi = managed->lbLuminosityPerBCID();
-          if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << " Test, Instantaneous lumi: " << instlumi << endreq;
-
-          double duration = managed->lbDuration();
-          if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << " Test, Lumiblock duration: " << duration << endreq;
-
-          double live = managed->livefractionPerBCID();
-          if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << " Test, lumiinst livefraction: " << live << endreq;
-
-          float lumilive = managed->lbAverageLivefraction();
-          if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << " Test, lumiavg livefraction: " << lumilive << endreq;
-
-          double lumiweight = managed->lbLumiWeight();
-          if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << " Test, Lumiblock weight: " << lumiweight << endreq;
-          */
-          // Yuriy - end
-
-          sc = tool->fillHists();
-
-          if( !sc.isSuccess() ) {
-              if (msgLvl(MSG::WARNING)) msg(MSG::WARNING) << "IMonitorToolBase::fillHists() unsuccessful" << endreq;
-          }
-      }
-
-
-      if (d->m_doResourceMon) {
-	      bench_tmp.finishMeasurement();
-	      Imp::ToolBench* tb =  d->getToolBench(tool.operator->());
-	      tb->m_bench_algexec_fillHists += bench_tmp;//fixme: count events and subdivide
-          if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "  --> m_doResourceMon is True" << endreq;
-      }
-      d->toolAudEnd();
-   }
-   if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "  --> Done calling IMonitorToolBase::fillHists()" << endreq;
-
-   if( d->m_eventCounter > 0 ) {
-      d->m_eventCounter--;
-   }
-   else if( d->m_eventCounter == 0 ) {
-      for( ToolHandleArray<IMonitorToolBase>::iterator i = m_monTools.begin(); i != monToolsEnd; ++i ) {
-         ToolHandle<IMonitorToolBase>& tool = *i;
-         d->toolAudStart(tool);
-	     AthMonBench bench_tmp;
-
-	     if (d->m_doResourceMon)
-	         bench_tmp.startMeasurement();
-         sc = tool->checkHists(false);
-	     if (d->m_doResourceMon) {
-	         bench_tmp.finishMeasurement();
-	         Imp::ToolBench* tb =  d->getToolBench(tool.operator->());
-	         tb->m_bench_algexec_checkHists += bench_tmp;//fixme: count events and subdivide
-	     }
-         if( !sc.isSuccess() ) {
-            if (msgLvl(MSG::WARNING)) msg(MSG::WARNING) << "IMonitorToolBase::checkHists() unsuccessful" << endreq;
-         }
-        d->toolAudEnd();
-      }
-      if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "  --> Done calling IMonitorToolBase::checkHists()" << endreq;
+    Imp::LWHistLeakChecker lc(m_d);
+    if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "AthenaMonManager::execute():" << endreq;
+
+    StatusCode sc;
+    sc.setChecked();
+
+    if( !m_d->m_manualRunLBProp ) {
+        if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "  --> Calling setEventInfo()" << endreq;
+        setEventInfo();
+    }
+
+    ToolHandleArray<IMonitorToolBase>::iterator monToolsEnd = m_monTools.end();
+    for( ToolHandleArray<IMonitorToolBase>::iterator i = m_monTools.begin(); i != monToolsEnd; ++i ) {
+        ToolHandle<IMonitorToolBase>& tool = *i;
+        m_d->toolAudStart(tool);
+        AthMonBench bench_tmp;
+        if (m_d->m_doResourceMon)
+            bench_tmp.startMeasurement();
+        if( tool->preSelector() ) {
+            //if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "  --> The tool is preSelector" << endreq;
+
+            // Uncomment to test luminosity tools
+            // I don't know where exactly it must be placed exactly
+            // Yuriy - start
+            /*
+            IMonitorToolBase* mon = tool.operator->();
+            ManagedMonitorToolBase* managed = dynamic_cast<ManagedMonitorToolBase*>( mon );
+
+            float avgmu = managed->lbAverageInteractionsPerCrossing();
+            if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << " Test, Average mu: " << avgmu << endreq;
+
+            float instmu = managed->lbInteractionsPerCrossing();
+            if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << " Test, Instantaneous mu: " << instmu << endreq;
+
+            float avglumi = managed->lbAverageLuminosity();
+            if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << " Test, Average lumi: " << avglumi << endreq;
+
+            float instlumi = managed->lbLuminosityPerBCID();
+            if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << " Test, Instantaneous lumi: " << instlumi << endreq;
+
+            double duration = managed->lbDuration();
+            if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << " Test, Lumiblock duration: " << duration << endreq;
 
-      d->m_eventCounter = d->m_everyNevents;
-   }
-   if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "  --> Exiting successfully" << endreq;
+            double live = managed->livefractionPerBCID();
+            if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << " Test, lumiinst livefraction: " << live << endreq;
+
+            float lumilive = managed->lbAverageLivefraction();
+            if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << " Test, lumiavg livefraction: " << lumilive << endreq;
+
+            double lumiweight = managed->lbLumiWeight();
+            if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << " Test, Lumiblock weight: " << lumiweight << endreq;
+            */
+            // Yuriy - end
+
+            sc = tool->fillHists();
+
+            if( !sc.isSuccess() ) {
+                if (msgLvl(MSG::WARNING)) msg(MSG::WARNING) << "IMonitorToolBase::fillHists() unsuccessful" << endreq;
+            }
+        }
+
+
+        if (m_d->m_doResourceMon) {
+            bench_tmp.finishMeasurement();
+            Imp::ToolBench* tb =  m_d->getToolBench(tool.operator->());
+            tb->m_bench_algexec_fillHists += bench_tmp;//fixme: count events and subdivide
+            if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "  --> m_doResourceMon is True" << endreq;
+        }
+        m_d->toolAudEnd();
+    }
+    if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "  --> Done calling IMonitorToolBase::fillHists()" << endreq;
+
+    if( m_d->m_eventCounter > 0 ) {
+        m_d->m_eventCounter--;
+    }
+    else if( m_d->m_eventCounter == 0 ) {
+        for( ToolHandleArray<IMonitorToolBase>::iterator i = m_monTools.begin(); i != monToolsEnd; ++i ) {
+            ToolHandle<IMonitorToolBase>& tool = *i;
+            m_d->toolAudStart(tool);
+            AthMonBench bench_tmp;
+
+            if (m_d->m_doResourceMon)
+                bench_tmp.startMeasurement();
+            sc = tool->checkHists(false);
+            if (m_d->m_doResourceMon) {
+                bench_tmp.finishMeasurement();
+                Imp::ToolBench* tb =  m_d->getToolBench(tool.operator->());
+                tb->m_bench_algexec_checkHists += bench_tmp;//fixme: count events and subdivide
+            }
+            if( !sc.isSuccess() ) {
+                if (msgLvl(MSG::WARNING)) msg(MSG::WARNING) << "IMonitorToolBase::checkHists() unsuccessful" << endreq;
+            }
+            m_d->toolAudEnd();
+        }
+        if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "  --> Done calling IMonitorToolBase::checkHists()" << endreq;
 
-   return StatusCode::SUCCESS;
+        m_d->m_eventCounter = m_d->m_everyNevents;
+    }
+    if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "  --> Exiting successfully" << endreq;
+
+    return StatusCode::SUCCESS;
 }
 
 
@@ -618,50 +629,57 @@ StatusCode
 AthenaMonManager::
 finalize()
 {
-   Imp::LWHistLeakChecker lc(d);
-   if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "AthenaMonManager::finalize():" << endreq;
-
-   StatusCode sc;
-   sc.setChecked();
-
-   ToolHandleArray<IMonitorToolBase>::iterator monToolsEnd = m_monTools.end();
-   for( ToolHandleArray<IMonitorToolBase>::iterator i = m_monTools.begin(); i != monToolsEnd; ++i ) {
-      ToolHandle<IMonitorToolBase>& tool = *i;
-      d->toolAudStart(tool);
-      Imp::ToolBench* tb =  d->m_doResourceMon ? d->getToolBench(tool.operator->()) : 0;
-      if (tb)
-	tb->m_bench_algfin_finalHists.startMeasurement();
-      sc = tool->finalHists();
-      if (tb)
-	tb->m_bench_algfin_finalHists.finishMeasurement();
-      if( !sc.isSuccess() ) {
-         if (msgLvl(MSG::WARNING)) msg(MSG::WARNING) << "IMonitorToolBase::finalHists() unsuccessful" << endreq;
-      }
-      if (tb)
-	tb->m_bench_algfin_checkHists.startMeasurement();
-      sc = tool->checkHists(true);
-      if (tb)
-	tb->m_bench_algfin_checkHists.finishMeasurement();
-      if( !sc.isSuccess() ) {
-         if (msgLvl(MSG::WARNING)) msg(MSG::WARNING) << "IMonitorToolBase::checkHists() unsuccessful" << endreq;
-      }
-      if (tb)
-	tb->m_bench_algfin_convertLWHists.startMeasurement();
-      sc = tool->convertLWHists();
-      if (tb)
-	tb->m_bench_algfin_convertLWHists.finishMeasurement();
-      if( !sc.isSuccess() ) {
-         if (msgLvl(MSG::WARNING)) msg(MSG::WARNING) << "IMonitorToolBase::convertLWHists() unsuccessful" << endreq;
-      }
-      if (tb)
-	tb->report(this);
-      d->toolAudEnd();
-   }
-   if (msgLvl(MSG::DEBUG)) {
-      msg(MSG::DEBUG) << "  --> Done calling IMonitorToolBase::finalHists() and IMonitorToolBase::checkHists()" << endreq;
-      msg(MSG::DEBUG) << "  --> Exiting successfully" << endreq;
-   }
-   return StatusCode::SUCCESS;
+    return StatusCode::SUCCESS;
+}
+
+StatusCode
+AthenaMonManager::
+stop()
+{
+    Imp::LWHistLeakChecker lc(m_d);
+    if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "AthenaMonManager::finalize():" << endreq;
+
+    StatusCode sc;
+    sc.setChecked();
+
+    ToolHandleArray<IMonitorToolBase>::iterator monToolsEnd = m_monTools.end();
+    for( ToolHandleArray<IMonitorToolBase>::iterator i = m_monTools.begin(); i != monToolsEnd; ++i ) {
+        ToolHandle<IMonitorToolBase>& tool = *i;
+        m_d->toolAudStart(tool);
+        Imp::ToolBench* tb =  m_d->m_doResourceMon ? m_d->getToolBench(tool.operator->()) : 0;
+        if (tb)
+            tb->m_bench_algfin_finalHists.startMeasurement();
+        sc = tool->finalHists();
+        if (tb)
+            tb->m_bench_algfin_finalHists.finishMeasurement();
+        if( !sc.isSuccess() ) {
+            if (msgLvl(MSG::WARNING)) msg(MSG::WARNING) << "IMonitorToolBase::finalHists() unsuccessful" << endreq;
+        }
+        if (tb)
+            tb->m_bench_algfin_checkHists.startMeasurement();
+        sc = tool->checkHists(true);
+        if (tb)
+            tb->m_bench_algfin_checkHists.finishMeasurement();
+        if( !sc.isSuccess() ) {
+            if (msgLvl(MSG::WARNING)) msg(MSG::WARNING) << "IMonitorToolBase::checkHists() unsuccessful" << endreq;
+        }
+        if (tb)
+            tb->m_bench_algfin_convertLWHists.startMeasurement();
+        sc = tool->convertLWHists();
+        if (tb)
+            tb->m_bench_algfin_convertLWHists.finishMeasurement();
+        if( !sc.isSuccess() ) {
+            if (msgLvl(MSG::WARNING)) msg(MSG::WARNING) << "IMonitorToolBase::convertLWHists() unsuccessful" << endreq;
+        }
+        if (tb)
+            tb->report(this);
+        m_d->toolAudEnd();
+    }
+    if (msgLvl(MSG::DEBUG)) {
+        msg(MSG::DEBUG) << "  --> Done calling IMonitorToolBase::finalHists() and IMonitorToolBase::checkHists()" << endreq;
+        msg(MSG::DEBUG) << "  --> Exiting successfully" << endreq;
+    }
+    return StatusCode::SUCCESS;
 }
 
 
@@ -669,36 +687,36 @@ StatusCode
 AthenaMonManager::
 beginRun()
 {
-   Imp::LWHistLeakChecker lc(d);
-   if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "AthenaMonManager::beginRun():" << endreq;
-
-   StatusCode sc;
-   sc.setChecked();
-
-   ToolHandleArray<IMonitorToolBase>::iterator monToolsEnd = m_monTools.end();
-   for( ToolHandleArray<IMonitorToolBase>::iterator i = m_monTools.begin(); i != monToolsEnd; ++i ) {
-      ToolHandle<IMonitorToolBase>& tool = *i;
-      d->toolAudStart(tool);
-      AthMonBench bench_tmp;
-      if (d->m_doResourceMon)
-	bench_tmp.startMeasurement();
-      sc = tool->bookHists();
-      if (d->m_doResourceMon) {
-	bench_tmp.finishMeasurement();
-	Imp::ToolBench* tb =  d->getToolBench(tool.operator->());
-	tb->m_bench_algexec_bookHists += bench_tmp;
-      }
-      if( !sc.isSuccess() ) {
-         if (msgLvl(MSG::WARNING)) msg(MSG::WARNING) << "IMonitorToolBase::bookHists() unsuccessful" << endreq;
-      }
-      d->toolAudEnd();
-   }
-   if (msgLvl(MSG::DEBUG)) {
-      msg(MSG::DEBUG) << "  --> Done calling IMonitorToolBase::bookHists()" << endreq;
-      msg(MSG::DEBUG) << "  --> Exiting successfully" << endreq;
-   }
-
-   return StatusCode::SUCCESS;
+    Imp::LWHistLeakChecker lc(m_d);
+    if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "AthenaMonManager::beginRun():" << endreq;
+
+    StatusCode sc;
+    sc.setChecked();
+
+    ToolHandleArray<IMonitorToolBase>::iterator monToolsEnd = m_monTools.end();
+    for( ToolHandleArray<IMonitorToolBase>::iterator i = m_monTools.begin(); i != monToolsEnd; ++i ) {
+        ToolHandle<IMonitorToolBase>& tool = *i;
+        m_d->toolAudStart(tool);
+        AthMonBench bench_tmp;
+        if (m_d->m_doResourceMon)
+            bench_tmp.startMeasurement();
+        sc = tool->bookHists();
+        if (m_d->m_doResourceMon) {
+            bench_tmp.finishMeasurement();
+            Imp::ToolBench* tb =  m_d->getToolBench(tool.operator->());
+            tb->m_bench_algexec_bookHists += bench_tmp;
+        }
+        if( !sc.isSuccess() ) {
+            if (msgLvl(MSG::WARNING)) msg(MSG::WARNING) << "IMonitorToolBase::bookHists() unsuccessful" << endreq;
+        }
+        m_d->toolAudEnd();
+    }
+    if (msgLvl(MSG::DEBUG)) {
+        msg(MSG::DEBUG) << "  --> Done calling IMonitorToolBase::bookHists()" << endreq;
+        msg(MSG::DEBUG) << "  --> Exiting successfully" << endreq;
+    }
+
+    return StatusCode::SUCCESS;
 }
 
 
@@ -706,27 +724,27 @@ StatusCode
 AthenaMonManager::
 endRun()
 {
-   Imp::LWHistLeakChecker lc(d);
-   if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "AthenaMonManager::endRun():" << endreq;
-
-   StatusCode sc;
-   sc.setChecked();
-
-   ToolHandleArray<IMonitorToolBase>::iterator monToolsEnd = m_monTools.end();
-   for( ToolHandleArray<IMonitorToolBase>::iterator i = m_monTools.begin(); i != monToolsEnd; ++i ) {
-      ToolHandle<IMonitorToolBase>& tool = *i;
-      d->toolAudStart(tool);
-      sc = tool->runStat();
-      if( !sc.isSuccess() ) {
-         if (msgLvl(MSG::WARNING)) msg(MSG::WARNING) << "IMonitorToolBase::runStat() unsuccessful" << endreq;
-      }
-      d->toolAudEnd();
-   }
-   if (msgLvl(MSG::DEBUG)) {
-      msg(MSG::DEBUG) << "  --> Done calling IMonitorToolBase::runStat()" << endreq;
-      msg(MSG::DEBUG) << "  --> Exiting successfully" << endreq;
-   }
-   return StatusCode::SUCCESS;
+    Imp::LWHistLeakChecker lc(m_d);
+    if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "AthenaMonManager::endRun():" << endreq;
+
+    StatusCode sc;
+    sc.setChecked();
+
+    ToolHandleArray<IMonitorToolBase>::iterator monToolsEnd = m_monTools.end();
+    for( ToolHandleArray<IMonitorToolBase>::iterator i = m_monTools.begin(); i != monToolsEnd; ++i ) {
+        ToolHandle<IMonitorToolBase>& tool = *i;
+        m_d->toolAudStart(tool);
+        sc = tool->runStat();
+        if( !sc.isSuccess() ) {
+            if (msgLvl(MSG::WARNING)) msg(MSG::WARNING) << "IMonitorToolBase::runStat() unsuccessful" << endreq;
+        }
+        m_d->toolAudEnd();
+    }
+    if (msgLvl(MSG::DEBUG)) {
+        msg(MSG::DEBUG) << "  --> Done calling IMonitorToolBase::runStat()" << endreq;
+        msg(MSG::DEBUG) << "  --> Exiting successfully" << endreq;
+    }
+    return StatusCode::SUCCESS;
 }
 
 
@@ -734,7 +752,7 @@ std::string
 AthenaMonManager::
 fileKey() const
 {
-   return d->m_fileKeyProp;
+    return m_d->m_fileKeyProp;
 }
 
 
@@ -742,8 +760,8 @@ void
 AthenaMonManager::
 passOwnership( TObject* h, const std::string& key )
 {
-   Imp::ObjMap_t::value_type valToInsert( key, h );
-   d->m_objMap.insert( valToInsert );
+    Imp::ObjMap_t::value_type valToInsert( key, h );
+    m_d->m_objMap.insert( valToInsert );
 }
 
 
@@ -751,8 +769,8 @@ void
 AthenaMonManager::
 passOwnership( LWHist* h, const std::string& key )
 {
-   Imp::ObjMapLW_t::value_type valToInsert( key, h );
-   d->m_objMapLW.insert( valToInsert );
+    Imp::ObjMapLW_t::value_type valToInsert( key, h );
+    m_d->m_objMapLW.insert( valToInsert );
 }
 
 
@@ -761,8 +779,8 @@ LWHist *
 AthenaMonManager::
 ownedLWHistOfKey(const std::string& key) const
 {
-  Imp::ObjMapLW_t::iterator iLW = d->m_objMapLW.find( key );
-  return iLW == d->m_objMapLW.end() ? 0 : iLW->second;
+    Imp::ObjMapLW_t::iterator iLW = m_d->m_objMapLW.find( key );
+    return iLW == m_d->m_objMapLW.end() ? 0 : iLW->second;
 }
 
 
@@ -770,7 +788,7 @@ void
 AthenaMonManager::
 writeAndDeleteLWHist( LWHist*lwh  )
 {
-  writeAndDeleteLWHist(LWHistAthMonWrapper::key(lwh),LWHistAthMonWrapper::streamName(lwh));
+    writeAndDeleteLWHist(LWHistAthMonWrapper::key(lwh),LWHistAthMonWrapper::streamName(lwh));
 }
 
 
@@ -781,8 +799,8 @@ writeAndDeleteLWHist( const std::string& key, const std::string& streamName )
 //     std::cout<<"writeAndDeleteLWHist... maybe"<<std::endl;
     //If is owned LWHist we write it in a root file and deletes it + returns it's (now deallocated) address.
 
-    Imp::ObjMapLW_t::iterator iLW = d->m_objMapLW.find( key );
-    if( iLW != d->m_objMapLW.end() )
+    Imp::ObjMapLW_t::iterator iLW = m_d->m_objMapLW.find( key );
+    if( iLW != m_d->m_objMapLW.end() )
     {
         //Fixme: add private helper method actualWriteAndDelete(TH1*), to use by both...
         LWHist * lwhist =iLW->second;
@@ -821,7 +839,7 @@ writeAndDeleteLWHist( const std::string& key, const std::string& streamName )
                     if (msgLvl(MSG::WARNING)) msg(MSG::WARNING) << "AthenaMonManager::WriteAndDeleteHist(): Failure to deReg( TObject* )" << endreq;
                 }
 
-                d->m_objMapLW.erase( iLW );
+                m_d->m_objMapLW.erase( iLW );
                 lwhist->setOwnsROOTHisto(true);//Since we deregistered
                 LWHistAthMonWrapper::deleteLWHist(lwhist);
                 lwhist=0;
@@ -840,8 +858,8 @@ writeAndResetLWHist( const std::string& key, const std::string& streamName )
 //     std::cout<<"writeAndDeleteLWHist... maybe"<<std::endl;
     //If is owned LWHist we write it in a root file and deletes it + returns it's (now deallocated) address.
 
-    Imp::ObjMapLW_t::iterator iLW = d->m_objMapLW.find( key );
-    if( iLW != d->m_objMapLW.end() )
+    Imp::ObjMapLW_t::iterator iLW = m_d->m_objMapLW.find( key );
+    if( iLW != m_d->m_objMapLW.end() )
     {
         //Fixme: add private helper method actualWriteAndDelete(TH1*), to use by both...
         LWHist * lwhist =iLW->second;
@@ -880,7 +898,7 @@ writeAndResetLWHist( const std::string& key, const std::string& streamName )
                     if (msgLvl(MSG::WARNING)) msg(MSG::WARNING) << "AthenaMonManager::WriteAndDeleteHist(): Failure to deReg( TObject* )" << endreq;
                 }
 
-                d->m_objMapLW.erase( iLW );
+                m_d->m_objMapLW.erase( iLW );
                 lwhist->setOwnsROOTHisto(true);//Since we deregistered
 
                 //LWHistAthMonWrapper::deleteLWHist(lwhist);
@@ -905,36 +923,36 @@ void
 AthenaMonManager::
 writeAndDelete( const std::string& key )
 {
-   // If is owned TObject, we deregister from THistSvc, write it in a
-   // root file, and delete it.
-
-   Imp::ObjMap_t::iterator i = d->m_objMap.find( key );
-   if( i != d->m_objMap.end() ) {
-      TObject* o = i->second;
-      TH1* h = dynamic_cast<TH1*>( o );
-      if( h != 0 ) {
-         // By default, ROOT does its own bookkeeping of references to
-         // histograms, and this leads to a significant amount of time
-         // spent in the TObject d'tor when there are >= O(1000) TDirectories.
-         // So, turn this bookkeeping off when deleting these histograms.
-         bool doRecursiveReferenceDelete = gROOT->MustClean();
-         gROOT->SetMustClean(false);
-         TDirectory* dir = h->GetDirectory();
-         TDirectory* g = gDirectory;
-         if( dir ) 
-            dir->cd();
-         h->Write();
-         g->cd();
-
-         StatusCode sc = m_THistSvc->deReg( h );
-         if( !sc.isSuccess() ) {
-            if (msgLvl(MSG::WARNING)) msg(MSG::WARNING) << "AthenaMonManager::WriteAndDeleteHist(): Failure to deReg( TObject* )" << endreq;
-         }
-         delete o;
-         gROOT->SetMustClean(doRecursiveReferenceDelete);
-         d->m_objMap.erase( key );
-      }
-   }
+    // If is owned TObject, we deregister from THistSvc, write it in a
+    // root file, and delete it.
+
+    Imp::ObjMap_t::iterator i = m_d->m_objMap.find( key );
+    if( i != m_d->m_objMap.end() ) {
+        TObject* o = i->second;
+        TH1* h = dynamic_cast<TH1*>( o );
+        if( h != 0 ) {
+            // By default, ROOT does its own bookkeeping of references to
+            // histograms, and this leads to a significant amount of time
+            // spent in the TObject d'tor when there are >= O(1000) TDirectories.
+            // So, turn this bookkeeping off when deleting these histograms.
+            bool doRecursiveReferenceDelete = gROOT->MustClean();
+            gROOT->SetMustClean(false);
+            TDirectory* dir = h->GetDirectory();
+            TDirectory* g = gDirectory;
+            if( dir )
+                dir->cd();
+            h->Write();
+            g->cd();
+
+            StatusCode sc = m_THistSvc->deReg( h );
+            if( !sc.isSuccess() ) {
+                if (msgLvl(MSG::WARNING)) msg(MSG::WARNING) << "AthenaMonManager::WriteAndDeleteHist(): Failure to deReg( TObject* )" << endreq;
+            }
+            delete o;
+            gROOT->SetMustClean(doRecursiveReferenceDelete);
+            m_d->m_objMap.erase( key );
+        }
+    }
 }
 
 // *********************************************************************
@@ -943,25 +961,25 @@ writeAndDelete( const std::string& key )
 
 void
 AthenaMonManager::
-setEventInfo() 
+setEventInfo()
 {
-   if( d->m_isPrimaryManager ) {
-      const DataHandle<EventInfo> evt;
-      const DataHandle<EventInfo> evtEnd;
-      StatusCode sc = evtStore()->retrieve( evt, evtEnd );
-
-      if( !sc.isSuccess() ) {
-         msg(MSG::ERROR) << "!! Unable to retrieve Event from StoreGate !!" << endreq;
-         return;
-      }
+    if( m_d->m_isPrimaryManager ) {
+        const DataHandle<EventInfo> evt;
+        const DataHandle<EventInfo> evtEnd;
+        StatusCode sc = evtStore()->retrieve( evt, evtEnd );
+
+        if( !sc.isSuccess() ) {
+            msg(MSG::ERROR) << "!! Unable to retrieve Event from StoreGate !!" << endreq;
+            return;
+        }
 
-      Imp::s_run = evt->event_ID()->run_number();
-      Imp::s_lumiBlock = evt->event_ID()->lumi_block();
+        Imp::s_run = evt->event_ID()->run_number();
+        Imp::s_lumiBlock = evt->event_ID()->lumi_block();
 
-      if (msgLvl(MSG::DEBUG))
-          msg(MSG::DEBUG) << "          --> setEventInfo: run = " << Imp::s_run << ", lumiBlock = " << Imp::s_lumiBlock << endreq;
+        if (msgLvl(MSG::DEBUG))
+            msg(MSG::DEBUG) << "          --> setEventInfo: run = " << Imp::s_run << ", lumiBlock = " << Imp::s_lumiBlock << endreq;
 
-   }
+    }
 }
 
 
@@ -970,16 +988,16 @@ setEventInfo()
 // *********************************************************************
 namespace {
 
-   std::string strToLower( const std::string& str )
-   {
-      std::string lstr(str);
-      std::string::const_iterator  from   = str.begin();
-      std::string::const_iterator  strend = str.end();
-      std::string::iterator        to     = lstr.begin();
-      while( from != strend ) {
-         *to++ = tolower(*from++);
-      }
-      return lstr;
-   }
+std::string strToLower( const std::string& str )
+{
+    std::string lstr(str);
+    std::string::const_iterator  from   = str.begin();
+    std::string::const_iterator  strend = str.end();
+    std::string::iterator        to     = lstr.begin();
+    while( from != strend ) {
+        *to++ = tolower(*from++);
+    }
+    return lstr;
+}
 
 } // unnamed namespace
diff --git a/Control/AthenaMonitoring/src/ManagedMonitorToolBase.cxx b/Control/AthenaMonitoring/src/ManagedMonitorToolBase.cxx
index a45881df8c3a37e547ed035587c2c47da4a20933..f4e4b7226eb3b3a74bdb85330a1c649a37a3a56f 100755
--- a/Control/AthenaMonitoring/src/ManagedMonitorToolBase.cxx
+++ b/Control/AthenaMonitoring/src/ManagedMonitorToolBase.cxx
@@ -182,7 +182,7 @@ ISvcLocator* ManagedMonitorToolBase::Imp::s_svcLocator(0);
 namespace {
 
    std::string strToLower( const std::string& str );
-   std::string strToUpper( const std::string& str );
+   //std::string strToUpper( const std::string& str );
 
 } // unnamed namespace
 
@@ -418,8 +418,8 @@ ManagedMonitorToolBase( const std::string & type, const std::string & name,
    , m_hasRetrievedLumiTool(false)
    , m_bookHistogramsInitial(false)
    , m_useLumi(false)
-   , m_cycleNum(0)
-   , d(new Imp(this))
+    //, m_cycleNum(0)
+   , m_d(new Imp(this))
 {
 //   ManagedMonitorToolBase_resetHistStatistics(this);
    declareInterface<IMonitorToolBase>(this);
@@ -478,7 +478,7 @@ ManagedMonitorToolBase::
          i != mdend; ++i ) {
       delete (i->second);
    }
-   delete d;
+   delete m_d;
 }
 
 
@@ -652,7 +652,7 @@ StatusCode
 ManagedMonitorToolBase::
 initialize()
 {
-   d->m_warnAboutMissingInitialize = false;
+   m_d->m_warnAboutMissingInitialize = false;
 
    StatusCode sc = AthAlgTool::initialize();
    if( !sc.isSuccess() )
@@ -660,7 +660,7 @@ initialize()
 
    ATH_MSG_DEBUG("ManagedMonitorToolBase::initialize():");
    
-   d->m_doResourceMon = msgLvl(AthMonBench::s_resourceMonThreshold);
+   m_d->m_doResourceMon = msgLvl(AthMonBench::s_resourceMonThreshold);
 
    sc = m_THistSvc.retrieve();
    if( !sc.isSuccess() ) {
@@ -793,8 +793,8 @@ ManagedMonitorToolBase::
 fillHists()
 {
 
-   if (d->m_warnAboutMissingInitialize) {
-       d->m_warnAboutMissingInitialize = false;
+   if (m_d->m_warnAboutMissingInitialize) {
+       m_d->m_warnAboutMissingInitialize = false;
        msg(MSG::WARNING) << "ManagedMonitorToolBase::initialize() never called from reimplementation!" << endreq;
    }
 
@@ -870,13 +870,13 @@ fillHists()
 
       // Process histograms from the previous lumiBlock/run
       if( m_nEvents != 1 ) {
-	     d->benchPreProcHistograms();
+	     m_d->benchPreProcHistograms();
          sc0 = procHistograms();
-	     d->benchPostProcHistograms();
+	     m_d->benchPostProcHistograms();
          sc0.setChecked();
       }
       // Re-book new histograms
-      d->benchPreBookHistograms();
+      m_d->benchPreBookHistograms();
 
       if (!m_bookHistogramsInitial) {
           sc1 = bookHistograms();
@@ -897,7 +897,7 @@ fillHists()
       
       sc3 = bookHistogramsRecurrent( );
       
-      d->benchPostBookHistograms();
+      m_d->benchPostBookHistograms();
       sc1.setChecked();
       sc3.setChecked();
    }
@@ -919,10 +919,10 @@ fillHists()
        || (m_vTrigChainNames.size()>0 && trigChainsArePassed(m_vTrigChainNames))
        || (m_vTrigGroupNames.size()>0 && trigChainsArePassed(m_vTrigGroupNames))) ) {
      ATH_MSG_DEBUG("Passed trigger, presumably");
-      d->benchPreFillHistograms();
+      m_d->benchPreFillHistograms();
       StatusCode sc3 = fillHistograms();
       m_haveClearedLastEventBlock = true;
-      d->benchPostFillHistograms();
+      m_d->benchPostFillHistograms();
       sc3.setChecked();
       ++m_nEvents;
    } else { ATH_MSG_DEBUG("Failed trigger, presumably"); }
@@ -979,7 +979,7 @@ registerMetadata(const std::string& streamName, const std::string& hName,
 
 StatusCode 
 ManagedMonitorToolBase::
-regManagedHistograms(std::vector< MgmtParams<TH1> >& m_templateHistograms)
+regManagedHistograms(std::vector< MgmtParams<TH1> >& templateHistograms)
 {
       // The method registers histograms with the THistSvc and saves them to file.
 
@@ -995,7 +995,7 @@ regManagedHistograms(std::vector< MgmtParams<TH1> >& m_templateHistograms)
       //     m_manager->writeAndDelete( genericName );
       bool allIsOk = true;  
    
-      for( std::vector< MgmtParams<TH1> >::iterator it = m_templateHistograms.begin(); it != m_templateHistograms.end(); ++it ) {
+      for( std::vector< MgmtParams<TH1> >::iterator it = templateHistograms.begin(); it != templateHistograms.end(); ++it ) {
           MonGroup group = (*it).m_group;
 
           // Get a handle to the histogram
@@ -1083,12 +1083,12 @@ THistSvc_deReg_fixTGraph( TFile* file, TGraph* theGraph, std::string& directoryN
 
 StatusCode 
 ManagedMonitorToolBase::
-regManagedGraphs(std::vector< MgmtParams<TGraph> >& m_templateGraphs)
+regManagedGraphs(std::vector< MgmtParams<TGraph> >& templateGraphs)
 {
       // See the description for the regManagedHistograms method
       bool allIsOk = true;  
    
-      for( std::vector< MgmtParams<TGraph> >::iterator it = m_templateGraphs.begin(); it != m_templateGraphs.end(); ++it ) {
+      for( std::vector< MgmtParams<TGraph> >::iterator it = templateGraphs.begin(); it != templateGraphs.end(); ++it ) {
           MonGroup group = (*it).m_group;
 
           // Get a handle to the graph
@@ -1155,12 +1155,12 @@ regManagedGraphs(std::vector< MgmtParams<TGraph> >& m_templateGraphs)
 
 StatusCode 
 ManagedMonitorToolBase::
-regManagedTrees(std::vector< MgmtParams<TTree> >& m_templateTrees)
+regManagedTrees(std::vector< MgmtParams<TTree> >& templateTrees)
 {
       // See the description for the regManagedHistograms method
       bool allIsOk = true;  
    
-      for( std::vector< MgmtParams<TTree> >::iterator it = m_templateTrees.begin(); it != m_templateTrees.end(); ++it ) {
+      for( std::vector< MgmtParams<TTree> >::iterator it = templateTrees.begin(); it != templateTrees.end(); ++it ) {
           MonGroup group = (*it).m_group;
 
           // Get a handle to the original tree
@@ -1209,12 +1209,12 @@ regManagedTrees(std::vector< MgmtParams<TTree> >& m_templateTrees)
 
 StatusCode
 ManagedMonitorToolBase::
-regManagedLWHistograms(std::vector<MgmtParams<LWHist> >& m_templateLWHistograms)
+regManagedLWHistograms(std::vector<MgmtParams<LWHist> >& templateLWHistograms)
 {
     StatusCode sc1;
     sc1.setChecked();
 
-    for( std::vector< MgmtParams<LWHist> >::iterator it = m_templateLWHistograms.begin(); it != m_templateLWHistograms.end(); ++it ) {
+    for( std::vector< MgmtParams<LWHist> >::iterator it = templateLWHistograms.begin(); it != templateLWHistograms.end(); ++it ) {
         // Get histogram group
         MonGroup group = (*it).m_group;
 
@@ -1235,7 +1235,7 @@ finalHists()
    // This assumes that the end of a file will naturally end a run, which is not always true.
    // A merging application run afterwards should be able to put parts of a run together.
    if( m_nEvents != 1 ) {
-     d->benchPreProcHistograms();
+     m_d->benchPreProcHistograms();
 
      // Set end flags for the LowStat, LumiBlock and Run variables.
      // This is needed to be used in the procHistograms method below.
@@ -1245,10 +1245,12 @@ finalHists()
      endOfRun = true;
 
      StatusCode sc = procHistograms();
-     
+
+/*
      StatusCode sc1( StatusCode::SUCCESS );
      sc1.setChecked();
 
+#if 0
      for (const auto interval: m_supportedIntervalsForRebooking) {
        //sc1 = regManagedHistograms(m_templateHistograms[interval], false);
        //sc1 = regManagedGraphs(m_templateGraphs[interval], false);
@@ -1258,8 +1260,9 @@ finalHists()
        //sc1 = regManagedLWHistograms(m_templateLWHistograms[interval], false, true);
        sc1.setChecked();
      }
+*/
 
-     d->benchPostProcHistograms();
+     m_d->benchPostProcHistograms();
      return sc;
    }
    return StatusCode::SUCCESS;
@@ -1370,7 +1373,7 @@ regHist( TH1* h, const MonGroup& group )
        MonGroup group_unmanaged( this, group.system(), group.interval(), ATTRIB_UNMANAGED, group.chain(), group.merge());
 
        if (m_supportedIntervalsForRebooking.count(group.interval())) {
-	       m_templateHistograms[group.interval()].push_back( MgmtParams<TH1>(h, group_unmanaged) );
+         m_templateHistograms[group.interval()].push_back( MgmtParams<TH1>(h, group_unmanaged) );
        } else {
 	       ATH_MSG_ERROR("Attempt to book managed histogram " << h->GetName() << " with invalid interval type " << intervalEnumToString(group.interval()));
 	       return StatusCode::FAILURE;
@@ -1910,7 +1913,7 @@ lbDuration()
 
 ManagedMonitorToolBase::OutputMetadata::
    OutputMetadata( TTree* metadata )
-   : charArrSize(100)
+   : m_charArrSize(100)
    , m_metadata(metadata)
    , m_nameData(0)
    //, m_levelData(0)
@@ -1918,11 +1921,11 @@ ManagedMonitorToolBase::OutputMetadata::
    , m_triggerData(0)
    , m_mergeData(0)
 {
-   m_nameData = new char[charArrSize];
-   //m_levelData = new char[charArrSize];
-   m_intervalData = new char[charArrSize];
-   m_triggerData = new char[charArrSize];
-   m_mergeData = new char[charArrSize];
+   m_nameData = new char[m_charArrSize];
+   //m_levelData = new char[m_charArrSize];
+   m_intervalData = new char[m_charArrSize];
+   m_triggerData = new char[m_charArrSize];
+   m_mergeData = new char[m_charArrSize];
    m_metadata->Branch( "Name", m_nameData, "Name/C" );
    //m_metadata->Branch( "LevelOfDetail", m_levelData, "LevelOfDetail/C" );
    m_metadata->Branch( "Interval", m_intervalData, "Interval/C" );
@@ -1974,8 +1977,8 @@ copyString( char* to, const std::string& from )
 {
    int i = 0;
    const char* f = from.c_str();
-   while( (++i < charArrSize) && ((*to++ = *f++) != 0) ) {};
-   if( i == charArrSize ) {
+   while( (++i < m_charArrSize) && ((*to++ = *f++) != 0) ) {};
+   if( i == m_charArrSize ) {
       *to = 0;
    }
 }
@@ -2302,6 +2305,7 @@ namespace {
    }
 
 
+#if 0
    std::string strToUpper( const std::string& str )
    {
       std::string ustr(str);
@@ -2313,6 +2317,7 @@ namespace {
       }
       return ustr;
    }
+#endif
 
 } // unnamed namespace
 
diff --git a/Control/AthenaMonitoring/src/MonitorToolBase.cxx b/Control/AthenaMonitoring/src/MonitorToolBase.cxx
index 952f1ada4f321a0a30b97de1b533a2f7ac90e5f8..97200e62f479bbce4c3710744ad5fbc06c9fee33 100755
--- a/Control/AthenaMonitoring/src/MonitorToolBase.cxx
+++ b/Control/AthenaMonitoring/src/MonitorToolBase.cxx
@@ -32,7 +32,7 @@ MonitorToolBase::MonitorToolBase(const std::string & type,
     , m_rootsvc(0)
     , m_isBooked(false)
     , m_path("/stat")
-    , setupStreamMap(false)
+    , m_setupStreamMap(false)
     , m_LogFileName("my.default")
     , m_FormatString("")
     , m_preScale(1)
@@ -71,7 +71,7 @@ MonitorToolBase::getStreamName(unsigned int number, bool useDefault /* =true */
 {
   std::string str="empty"; // no trailing slash, histogram will be temporary
   
-  if( ! setupStreamMap)
+  if( ! m_setupStreamMap)
     if( ! this->setupOutputStreams().isSuccess())
       {
 	MsgStream log(msgSvc(), name ());
@@ -98,7 +98,7 @@ MonitorToolBase::getStreamName(std::string stream, bool useDefault /* = true */
 {
   std::string str="empty"; // no trailing slash, histogram will be temporary
   
-  if( ! setupStreamMap)
+  if( ! m_setupStreamMap)
     if( ! this->setupOutputStreams().isSuccess() )
       {
 	MsgStream log(msgSvc(), name ());
@@ -184,7 +184,7 @@ MonitorToolBase::setupOutputStreams(std::vector<std::string> Mapping
 	    << endreq;
     }
   // don't call again
-  setupStreamMap=true;
+  m_setupStreamMap=true;
   
   return StatusCode::SUCCESS;
 }