diff --git a/InnerDetector/InDetExample/InDetRecExample/share/InDetMonitoringPixel.py b/InnerDetector/InDetExample/InDetRecExample/share/InDetMonitoringPixel.py
index 67206c47adb1ac418341dff799cf3c384c98626a..48ce0c7eb18445de0671c1e420a5b6004fb542ef 100644
--- a/InnerDetector/InDetExample/InDetRecExample/share/InDetMonitoringPixel.py
+++ b/InnerDetector/InDetExample/InDetRecExample/share/InDetMonitoringPixel.py
@@ -29,7 +29,7 @@ if doAllHits:
 
                                   do2DMaps            = True,       #Turn on/off the sets of 2D module maps                                             
                                   doModules           = doAllHitsModules, #Turn on/off the sets of 1744 module histograms (for dqmf)
-                                  doFEChipSummary     = False,      #Turn on/off the 1744 module FE chip summary histograms (low memory version of doModules)
+                                  doFEChipSummary     = doAllHitsModules, #Turn on/off the 1744 module FE chip summary histograms (low memory version of doModules)
                                   doLowOccupancy      = False,      #Turn on/off histograms with binning for cosmics/single beam                        
                                   doHighOccupancy     = True,       #Turn on/off histograms with binning for collisions                                 
                                   doRodSim            = False,      #Turn on/off histograms specific for the rod simulator                              
diff --git a/InnerDetector/InDetMonitoring/PixelMonitoring/CMakeLists.txt b/InnerDetector/InDetMonitoring/PixelMonitoring/CMakeLists.txt
index 07df6d799bc796538a3756d3291f1d72fb6e0078..38fc50c2cd73de3c07282f09c232e7efd590ffc2 100644
--- a/InnerDetector/InDetMonitoring/PixelMonitoring/CMakeLists.txt
+++ b/InnerDetector/InDetMonitoring/PixelMonitoring/CMakeLists.txt
@@ -28,6 +28,7 @@ atlas_depends_on_subdirs(
    InnerDetector/InDetDetDescr/PixelCabling
    InnerDetector/InDetRecEvent/InDetRIO_OnTrack
    Tools/LWHists
+   Tools/PathResolver
    Tracking/TrkEvent/TrkParameters
    Tracking/TrkEvent/TrkSpacePoint
    Tracking/TrkEvent/TrkTrackSummary
@@ -44,7 +45,5 @@ atlas_add_component( PixelMonitoring
    GaudiKernel InDetRawData InDetPrepRawData LumiBlockCompsLib TrkTrack
    AthenaPoolUtilities GeoPrimitives EventInfo EventPrimitives InDetIdentifier
    InDetReadoutGeometry InDetRIO_OnTrack LWHists TrkParameters TrkSpacePoint
-   TrkTrackSummary TrkToolInterfaces PixelCablingLib PixelGeoModelLib )
+   TrkTrackSummary TrkToolInterfaces PixelCablingLib PixelGeoModelLib PathResolver )
 
-# Install files from the package:
-atlas_install_runtime( share/*.csv )
diff --git a/InnerDetector/InDetMonitoring/PixelMonitoring/PixelMonitoring/PixelMainMon.h b/InnerDetector/InDetMonitoring/PixelMonitoring/PixelMonitoring/PixelMainMon.h
index 1c1eefd06c490a6e8aaf2bc82a823ee453ac46e0..e1de89c9f8063b9f63785e9ba29f9decd1df17ba 100755
--- a/InnerDetector/InDetMonitoring/PixelMonitoring/PixelMonitoring/PixelMainMon.h
+++ b/InnerDetector/InDetMonitoring/PixelMonitoring/PixelMonitoring/PixelMainMon.h
@@ -100,12 +100,12 @@ class IBLStave{
 
 class PixLayerDBM{
    public:
-   enum PixLayerDBMID {kECA0 = 0, kECA1, kECA2, kECC0, kECC1, kECC2, kB0, kB1, kB2, kDBMA, kDBMC, kIBL, COUNT};
+   enum PixLayerDBMID {kECA = 0, kECC, kB0, kB1, kB2, kDBMA, kDBMC, kIBL, COUNT};
 };
 
 class PixLayerIBL2D3DDBM{
    public:
-   enum PixLayerIBL2D3DDBMID {kECA0 = 0, kECA1, kECA2, kECC0, kECC1, kECC2, kB0, kB1, kB2, kDBMA, kDBMC, kIBL, kIBL2D, kIBL3D, COUNT};
+   enum PixLayerIBL2D3DDBMID {kECA = 0, kECC, kB0, kB1, kB2, kDBMA, kDBMC, kIBL, kIBL2D, kIBL3D, COUNT};
 };
 
 class PixelMainMon:public ManagedMonitorToolBase 
@@ -184,7 +184,6 @@ private:
    ToolHandle<ILuminosityTool> m_lumiTool;
 
    //IPixelByteStreamErrorsSvc* m_ErrorSvc;
-   //ToolHandle<Trk::ITrackSummaryTool> m_trkSummaryTool;
 
    //ActiveStoreSvc* m_activeStore;
    //StoreGateSvc* m_StoreGate;
@@ -236,11 +235,15 @@ private:
       "ECA", "ECC", "B0", "B1", "B2",
       "IBL", "IBL2D", "IBL3D"
    };
+   std::string m_modLabel_PixLayerDBM[PixLayerDBM::COUNT] = {
+     "ECA", "ECC",
+     "B0",   "B1",   "B2",
+     "DBMA", "DBMC", "IBL"
+   };
    std::string m_modLabel_PixLayerIBL2D3DDBM[PixLayerIBL2D3DDBM::COUNT] = {
-      "ECA0", "ECA1", "ECA2",
-      "ECC0", "ECC1", "ECC2",
-      "B0",   "B1",   "B2",
-      "DBMA", "DBMC", "IBL", "IBL2D", "IBL3D"
+     "ECA", "ECC",
+     "B0",   "B1",   "B2",
+     "DBMA", "DBMC", "IBL", "IBL2D", "IBL3D"
    };
    std::string m_modLabel_PixLayerDisk[PixLayerDisk::COUNT] = {
       "ECA0", "ECA1", "ECA2",
@@ -482,7 +485,7 @@ private:
    TH1F_LW*              m_cluster_row_width;
    TH1F_LW*              m_cluster_col_width_mod[PixLayerIBL2D3D::COUNT];
    TH1F_LW*              m_cluster_row_width_mod[PixLayerIBL2D3D::COUNT];
-   TH1F_LW*              m_cluster_groupsize_mod[PixLayerIBL2D3D::COUNT];
+   TH1F_LW*              m_cluster_groupsize_mod[PixLayerIBL2D3DDBM::COUNT];
    TH1F_LW*              m_cluster_LVL1A;
    TH1F_LW*              m_cluster_LVL1A1d_mod[PixLayer::COUNT];
    TProfile_LW*          m_clusterSize_eta;
diff --git a/InnerDetector/InDetMonitoring/PixelMonitoring/share/coolingPipeMap.csv b/InnerDetector/InDetMonitoring/PixelMonitoring/share/coolingPipeMap.csv
deleted file mode 100644
index 4abce0c6121a30132ea820553333529386d56a15..0000000000000000000000000000000000000000
--- a/InnerDetector/InDetMonitoring/PixelMonitoring/share/coolingPipeMap.csv
+++ /dev/null
@@ -1,14 +0,0 @@
-1 LI_S01_A_ENV_TTa28 LI_S01_C_ENV_TTa30
-2 LI_S02_C_ENV_TTb28 LI_S02_A_ENV_TTb30
-3 LI_S03_A_ENV_TTc28 LI_S03_C_ENV_TTc30
-4 LI_S04_C_ENV_TTd28 LI_S04_A_ENV_TTd30
-5 LI_S05_A_ENV_TTe28 LI_S05_C_ENV_TTe30
-6 LI_S06_C_ENV_TTf28 LI_S06_A_ENV_TTf30
-7 LI_S07_A_ENV_TTg28 LI_S07_C_ENV_TTg30
-8 LI_S08_C_ENV_TTh28 LI_S08_A_ENV_TTh30
-9 LI_S09_A_ENV_TTi28 LI_S09_C_ENV_TTi30
-10 LI_S10_C_ENV_TTj28 LI_S10_A_ENV_TTj30
-11 LI_S11_A_ENV_TTk28 LI_S11_C_ENV_TTk30
-12 LI_S12_C_ENV_TTl28 LI_S12_A_ENV_TTl30
-13 LI_S13_A_ENV_TTm28 LI_S13_C_ENV_TTm30
-14 LI_S14_C_ENV_TTn28 LI_S14_A_ENV_TTn30
diff --git a/InnerDetector/InDetMonitoring/PixelMonitoring/share/lvMap.csv b/InnerDetector/InDetMonitoring/PixelMonitoring/share/lvMap.csv
deleted file mode 100644
index 39ea2f87a44021a82f8a178621841774b6eb0cc5..0000000000000000000000000000000000000000
--- a/InnerDetector/InDetMonitoring/PixelMonitoring/share/lvMap.csv
+++ /dev/null
@@ -1,280 +0,0 @@
-156 LI_S01_C_M4_PP2LV_VMeas LI_S01_C_M4_PP4LV
-157 LI_S01_C_M4_PP2LV_VMeas LI_S01_C_M4_PP4LV
-158 LI_S01_C_M4_PP2LV_VMeas LI_S01_C_M4_PP4LV
-159 LI_S01_C_M4_PP2LV_VMeas LI_S01_C_M4_PP4LV
-160 LI_S01_C_M3_PP2LV_VMeas LI_S01_C_M3_PP4LV
-161 LI_S01_C_M3_PP2LV_VMeas LI_S01_C_M3_PP4LV
-162 LI_S01_C_M2_PP2LV_VMeas LI_S01_C_M2_PP4LV
-163 LI_S01_C_M2_PP2LV_VMeas LI_S01_C_M2_PP4LV
-164 LI_S01_C_M1_PP2LV_VMeas LI_S01_C_M1_PP4LV
-165 LI_S01_C_M1_PP2LV_VMeas LI_S01_C_M1_PP4LV
-166 LI_S01_A_M1_PP2LV_VMeas LI_S01_A_M1_PP4LV
-167 LI_S01_A_M1_PP2LV_VMeas LI_S01_A_M1_PP4LV
-168 LI_S01_A_M2_PP2LV_VMeas LI_S01_A_M2_PP4LV
-169 LI_S01_A_M2_PP2LV_VMeas LI_S01_A_M2_PP4LV
-170 LI_S01_A_M3_PP2LV_VMeas LI_S01_A_M3_PP4LV
-171 LI_S01_A_M3_PP2LV_VMeas LI_S01_A_M3_PP4LV
-172 LI_S01_A_M4_PP2LV_VMeas LI_S01_A_M4_PP4LV
-173 LI_S01_A_M4_PP2LV_VMeas LI_S01_A_M4_PP4LV
-174 LI_S01_A_M4_PP2LV_VMeas LI_S01_A_M4_PP4LV
-175 LI_S01_A_M4_PP2LV_VMeas LI_S01_A_M4_PP4LV
-176 LI_S02_C_M4_PP2LV_VMeas LI_S02_C_M4_PP4LV
-177 LI_S02_C_M4_PP2LV_VMeas LI_S02_C_M4_PP4LV
-178 LI_S02_C_M4_PP2LV_VMeas LI_S02_C_M4_PP4LV
-179 LI_S02_C_M4_PP2LV_VMeas LI_S02_C_M4_PP4LV
-180 LI_S02_C_M3_PP2LV_VMeas LI_S02_C_M3_PP4LV
-181 LI_S02_C_M3_PP2LV_VMeas LI_S02_C_M3_PP4LV
-182 LI_S02_C_M2_PP2LV_VMeas LI_S02_C_M2_PP4LV
-183 LI_S02_C_M2_PP2LV_VMeas LI_S02_C_M2_PP4LV
-184 LI_S02_C_M1_PP2LV_VMeas LI_S02_C_M1_PP4LV
-185 LI_S02_C_M1_PP2LV_VMeas LI_S02_C_M1_PP4LV
-186 LI_S02_A_M1_PP2LV_VMeas LI_S02_A_M1_PP4LV
-187 LI_S02_A_M1_PP2LV_VMeas LI_S02_A_M1_PP4LV
-188 LI_S02_A_M2_PP2LV_VMeas LI_S02_A_M2_PP4LV
-189 LI_S02_A_M2_PP2LV_VMeas LI_S02_A_M2_PP4LV
-190 LI_S02_A_M3_PP2LV_VMeas LI_S02_A_M3_PP4LV
-191 LI_S02_A_M3_PP2LV_VMeas LI_S02_A_M3_PP4LV
-192 LI_S02_A_M4_PP2LV_VMeas LI_S02_A_M4_PP4LV
-193 LI_S02_A_M4_PP2LV_VMeas LI_S02_A_M4_PP4LV
-194 LI_S02_A_M4_PP2LV_VMeas LI_S02_A_M4_PP4LV
-195 LI_S02_A_M4_PP2LV_VMeas LI_S02_A_M4_PP4LV
-196 LI_S03_C_M4_PP2LV_VMeas LI_S03_C_M4_PP4LV
-197 LI_S03_C_M4_PP2LV_VMeas LI_S03_C_M4_PP4LV
-198 LI_S03_C_M4_PP2LV_VMeas LI_S03_C_M4_PP4LV
-199 LI_S03_C_M4_PP2LV_VMeas LI_S03_C_M4_PP4LV
-200 LI_S03_C_M3_PP2LV_VMeas LI_S03_C_M3_PP4LV
-201 LI_S03_C_M3_PP2LV_VMeas LI_S03_C_M3_PP4LV
-202 LI_S03_C_M2_PP2LV_VMeas LI_S03_C_M2_PP4LV
-203 LI_S03_C_M2_PP2LV_VMeas LI_S03_C_M2_PP4LV
-204 LI_S03_C_M1_PP2LV_VMeas LI_S03_C_M1_PP4LV
-205 LI_S03_C_M1_PP2LV_VMeas LI_S03_C_M1_PP4LV
-206 LI_S03_A_M1_PP2LV_VMeas LI_S03_A_M1_PP4LV
-207 LI_S03_A_M1_PP2LV_VMeas LI_S03_A_M1_PP4LV
-208 LI_S03_A_M2_PP2LV_VMeas LI_S03_A_M2_PP4LV
-209 LI_S03_A_M2_PP2LV_VMeas LI_S03_A_M2_PP4LV
-210 LI_S03_A_M3_PP2LV_VMeas LI_S03_A_M3_PP4LV
-211 LI_S03_A_M3_PP2LV_VMeas LI_S03_A_M3_PP4LV
-212 LI_S03_A_M4_PP2LV_VMeas LI_S03_A_M4_PP4LV
-213 LI_S03_A_M4_PP2LV_VMeas LI_S03_A_M4_PP4LV
-214 LI_S03_A_M4_PP2LV_VMeas LI_S03_A_M4_PP4LV
-215 LI_S03_A_M4_PP2LV_VMeas LI_S03_A_M4_PP4LV
-216 LI_S04_C_M4_PP2LV_VMeas LI_S04_C_M4_PP4LV
-217 LI_S04_C_M4_PP2LV_VMeas LI_S04_C_M4_PP4LV
-218 LI_S04_C_M4_PP2LV_VMeas LI_S04_C_M4_PP4LV
-219 LI_S04_C_M4_PP2LV_VMeas LI_S04_C_M4_PP4LV
-220 LI_S04_C_M3_PP2LV_VMeas LI_S04_C_M3_PP4LV
-221 LI_S04_C_M3_PP2LV_VMeas LI_S04_C_M3_PP4LV
-222 LI_S04_C_M2_PP2LV_VMeas LI_S04_C_M2_PP4LV
-223 LI_S04_C_M2_PP2LV_VMeas LI_S04_C_M2_PP4LV
-224 LI_S04_C_M1_PP2LV_VMeas LI_S04_C_M1_PP4LV
-225 LI_S04_C_M1_PP2LV_VMeas LI_S04_C_M1_PP4LV
-226 LI_S04_A_M1_PP2LV_VMeas LI_S04_A_M1_PP4LV
-227 LI_S04_A_M1_PP2LV_VMeas LI_S04_A_M1_PP4LV
-228 LI_S04_A_M2_PP2LV_VMeas LI_S04_A_M2_PP4LV
-229 LI_S04_A_M2_PP2LV_VMeas LI_S04_A_M2_PP4LV
-230 LI_S04_A_M3_PP2LV_VMeas LI_S04_A_M3_PP4LV
-231 LI_S04_A_M3_PP2LV_VMeas LI_S04_A_M3_PP4LV
-232 LI_S04_A_M4_PP2LV_VMeas LI_S04_A_M4_PP4LV
-233 LI_S04_A_M4_PP2LV_VMeas LI_S04_A_M4_PP4LV
-234 LI_S04_A_M4_PP2LV_VMeas LI_S04_A_M4_PP4LV
-235 LI_S04_A_M4_PP2LV_VMeas LI_S04_A_M4_PP4LV
-236 LI_S05_C_M4_PP2LV_VMeas LI_S05_C_M4_PP4LV
-237 LI_S05_C_M4_PP2LV_VMeas LI_S05_C_M4_PP4LV
-238 LI_S05_C_M4_PP2LV_VMeas LI_S05_C_M4_PP4LV
-239 LI_S05_C_M4_PP2LV_VMeas LI_S05_C_M4_PP4LV
-240 LI_S05_C_M3_PP2LV_VMeas LI_S05_C_M3_PP4LV
-241 LI_S05_C_M3_PP2LV_VMeas LI_S05_C_M3_PP4LV
-242 LI_S05_C_M2_PP2LV_VMeas LI_S05_C_M2_PP4LV
-243 LI_S05_C_M2_PP2LV_VMeas LI_S05_C_M2_PP4LV
-244 LI_S05_C_M1_PP2LV_VMeas LI_S05_C_M1_PP4LV
-245 LI_S05_C_M1_PP2LV_VMeas LI_S05_C_M1_PP4LV
-246 LI_S05_A_M1_PP2LV_VMeas LI_S05_A_M1_PP4LV
-247 LI_S05_A_M1_PP2LV_VMeas LI_S05_A_M1_PP4LV
-248 LI_S05_A_M2_PP2LV_VMeas LI_S05_A_M2_PP4LV
-249 LI_S05_A_M2_PP2LV_VMeas LI_S05_A_M2_PP4LV
-250 LI_S05_A_M3_PP2LV_VMeas LI_S05_A_M3_PP4LV
-251 LI_S05_A_M3_PP2LV_VMeas LI_S05_A_M3_PP4LV
-252 LI_S05_A_M4_PP2LV_VMeas LI_S05_A_M4_PP4LV
-253 LI_S05_A_M4_PP2LV_VMeas LI_S05_A_M4_PP4LV
-254 LI_S05_A_M4_PP2LV_VMeas LI_S05_A_M4_PP4LV
-255 LI_S05_A_M4_PP2LV_VMeas LI_S05_A_M4_PP4LV
-256 LI_S06_C_M4_PP2LV_VMeas LI_S06_C_M4_PP4LV
-257 LI_S06_C_M4_PP2LV_VMeas LI_S06_C_M4_PP4LV
-258 LI_S06_C_M4_PP2LV_VMeas LI_S06_C_M4_PP4LV
-259 LI_S06_C_M4_PP2LV_VMeas LI_S06_C_M4_PP4LV
-260 LI_S06_C_M3_PP2LV_VMeas LI_S06_C_M3_PP4LV
-261 LI_S06_C_M3_PP2LV_VMeas LI_S06_C_M3_PP4LV
-262 LI_S06_C_M2_PP2LV_VMeas LI_S06_C_M2_PP4LV
-263 LI_S06_C_M2_PP2LV_VMeas LI_S06_C_M2_PP4LV
-264 LI_S06_C_M1_PP2LV_VMeas LI_S06_C_M1_PP4LV
-265 LI_S06_C_M1_PP2LV_VMeas LI_S06_C_M1_PP4LV
-266 LI_S06_A_M1_PP2LV_VMeas LI_S06_A_M1_PP4LV
-267 LI_S06_A_M1_PP2LV_VMeas LI_S06_A_M1_PP4LV
-268 LI_S06_A_M2_PP2LV_VMeas LI_S06_A_M2_PP4LV
-269 LI_S06_A_M2_PP2LV_VMeas LI_S06_A_M2_PP4LV
-270 LI_S06_A_M3_PP2LV_VMeas LI_S06_A_M3_PP4LV
-271 LI_S06_A_M3_PP2LV_VMeas LI_S06_A_M3_PP4LV
-272 LI_S06_A_M4_PP2LV_VMeas LI_S06_A_M4_PP4LV
-273 LI_S06_A_M4_PP2LV_VMeas LI_S06_A_M4_PP4LV
-274 LI_S06_A_M4_PP2LV_VMeas LI_S06_A_M4_PP4LV
-275 LI_S06_A_M4_PP2LV_VMeas LI_S06_A_M4_PP4LV
-276 LI_S07_C_M4_PP2LV_VMeas LI_S07_C_M4_PP4LV
-277 LI_S07_C_M4_PP2LV_VMeas LI_S07_C_M4_PP4LV
-278 LI_S07_C_M4_PP2LV_VMeas LI_S07_C_M4_PP4LV
-279 LI_S07_C_M4_PP2LV_VMeas LI_S07_C_M4_PP4LV
-280 LI_S07_C_M3_PP2LV_VMeas LI_S07_C_M3_PP4LV
-281 LI_S07_C_M3_PP2LV_VMeas LI_S07_C_M3_PP4LV
-282 LI_S07_C_M2_PP2LV_VMeas LI_S07_C_M2_PP4LV
-283 LI_S07_C_M2_PP2LV_VMeas LI_S07_C_M2_PP4LV
-284 LI_S07_C_M1_PP2LV_VMeas LI_S07_C_M1_PP4LV
-285 LI_S07_C_M1_PP2LV_VMeas LI_S07_C_M1_PP4LV
-286 LI_S07_A_M1_PP2LV_VMeas LI_S07_A_M1_PP4LV
-287 LI_S07_A_M1_PP2LV_VMeas LI_S07_A_M1_PP4LV
-288 LI_S07_A_M2_PP2LV_VMeas LI_S07_A_M2_PP4LV
-289 LI_S07_A_M2_PP2LV_VMeas LI_S07_A_M2_PP4LV
-290 LI_S07_A_M3_PP2LV_VMeas LI_S07_A_M3_PP4LV
-291 LI_S07_A_M3_PP2LV_VMeas LI_S07_A_M3_PP4LV
-292 LI_S07_A_M4_PP2LV_VMeas LI_S07_A_M4_PP4LV
-293 LI_S07_A_M4_PP2LV_VMeas LI_S07_A_M4_PP4LV
-294 LI_S07_A_M4_PP2LV_VMeas LI_S07_A_M4_PP4LV
-295 LI_S07_A_M4_PP2LV_VMeas LI_S07_A_M4_PP4LV
-296 LI_S08_C_M4_PP2LV_VMeas LI_S08_C_M4_PP4LV
-297 LI_S08_C_M4_PP2LV_VMeas LI_S08_C_M4_PP4LV
-298 LI_S08_C_M4_PP2LV_VMeas LI_S08_C_M4_PP4LV
-299 LI_S08_C_M4_PP2LV_VMeas LI_S08_C_M4_PP4LV
-300 LI_S08_C_M3_PP2LV_VMeas LI_S08_C_M3_PP4LV
-301 LI_S08_C_M3_PP2LV_VMeas LI_S08_C_M3_PP4LV
-302 LI_S08_C_M2_PP2LV_VMeas LI_S08_C_M2_PP4LV
-303 LI_S08_C_M2_PP2LV_VMeas LI_S08_C_M2_PP4LV
-304 LI_S08_C_M1_PP2LV_VMeas LI_S08_C_M1_PP4LV
-305 LI_S08_C_M1_PP2LV_VMeas LI_S08_C_M1_PP4LV
-306 LI_S08_A_M1_PP2LV_VMeas LI_S08_A_M1_PP4LV
-307 LI_S08_A_M1_PP2LV_VMeas LI_S08_A_M1_PP4LV
-308 LI_S08_A_M2_PP2LV_VMeas LI_S08_A_M2_PP4LV
-309 LI_S08_A_M2_PP2LV_VMeas LI_S08_A_M2_PP4LV
-310 LI_S08_A_M3_PP2LV_VMeas LI_S08_A_M3_PP4LV
-311 LI_S08_A_M3_PP2LV_VMeas LI_S08_A_M3_PP4LV
-312 LI_S08_A_M4_PP2LV_VMeas LI_S08_A_M4_PP4LV
-313 LI_S08_A_M4_PP2LV_VMeas LI_S08_A_M4_PP4LV
-314 LI_S08_A_M4_PP2LV_VMeas LI_S08_A_M4_PP4LV
-315 LI_S08_A_M4_PP2LV_VMeas LI_S08_A_M4_PP4LV
-316 LI_S09_C_M4_PP2LV_VMeas LI_S09_C_M4_PP4LV
-317 LI_S09_C_M4_PP2LV_VMeas LI_S09_C_M4_PP4LV
-318 LI_S09_C_M4_PP2LV_VMeas LI_S09_C_M4_PP4LV
-319 LI_S09_C_M4_PP2LV_VMeas LI_S09_C_M4_PP4LV
-320 LI_S09_C_M3_PP2LV_VMeas LI_S09_C_M3_PP4LV
-321 LI_S09_C_M3_PP2LV_VMeas LI_S09_C_M3_PP4LV
-322 LI_S09_C_M2_PP2LV_VMeas LI_S09_C_M2_PP4LV
-323 LI_S09_C_M2_PP2LV_VMeas LI_S09_C_M2_PP4LV
-324 LI_S09_C_M1_PP2LV_VMeas LI_S09_C_M1_PP4LV
-325 LI_S09_C_M1_PP2LV_VMeas LI_S09_C_M1_PP4LV
-326 LI_S09_A_M1_PP2LV_VMeas LI_S09_A_M1_PP4LV
-327 LI_S09_A_M1_PP2LV_VMeas LI_S09_A_M1_PP4LV
-328 LI_S09_A_M2_PP2LV_VMeas LI_S09_A_M2_PP4LV
-329 LI_S09_A_M2_PP2LV_VMeas LI_S09_A_M2_PP4LV
-330 LI_S09_A_M3_PP2LV_VMeas LI_S09_A_M3_PP4LV
-331 LI_S09_A_M3_PP2LV_VMeas LI_S09_A_M3_PP4LV
-332 LI_S09_A_M4_PP2LV_VMeas LI_S09_A_M4_PP4LV
-333 LI_S09_A_M4_PP2LV_VMeas LI_S09_A_M4_PP4LV
-334 LI_S09_A_M4_PP2LV_VMeas LI_S09_A_M4_PP4LV
-335 LI_S09_A_M4_PP2LV_VMeas LI_S09_A_M4_PP4LV
-336 LI_S10_C_M4_PP2LV_VMeas LI_S10_C_M4_PP4LV
-337 LI_S10_C_M4_PP2LV_VMeas LI_S10_C_M4_PP4LV
-338 LI_S10_C_M4_PP2LV_VMeas LI_S10_C_M4_PP4LV
-339 LI_S10_C_M4_PP2LV_VMeas LI_S10_C_M4_PP4LV
-340 LI_S10_C_M3_PP2LV_VMeas LI_S10_C_M3_PP4LV
-341 LI_S10_C_M3_PP2LV_VMeas LI_S10_C_M3_PP4LV
-342 LI_S10_C_M2_PP2LV_VMeas LI_S10_C_M2_PP4LV
-343 LI_S10_C_M2_PP2LV_VMeas LI_S10_C_M2_PP4LV
-344 LI_S10_C_M1_PP2LV_VMeas LI_S10_C_M1_PP4LV
-345 LI_S10_C_M1_PP2LV_VMeas LI_S10_C_M1_PP4LV
-346 LI_S10_A_M1_PP2LV_VMeas LI_S10_A_M1_PP4LV
-347 LI_S10_A_M1_PP2LV_VMeas LI_S10_A_M1_PP4LV
-348 LI_S10_A_M2_PP2LV_VMeas LI_S10_A_M2_PP4LV
-349 LI_S10_A_M2_PP2LV_VMeas LI_S10_A_M2_PP4LV
-350 LI_S10_A_M3_PP2LV_VMeas LI_S10_A_M3_PP4LV
-351 LI_S10_A_M3_PP2LV_VMeas LI_S10_A_M3_PP4LV
-352 LI_S10_A_M4_PP2LV_VMeas LI_S10_A_M4_PP4LV
-353 LI_S10_A_M4_PP2LV_VMeas LI_S10_A_M4_PP4LV
-354 LI_S10_A_M4_PP2LV_VMeas LI_S10_A_M4_PP4LV
-355 LI_S10_A_M4_PP2LV_VMeas LI_S10_A_M4_PP4LV
-356 LI_S11_C_M4_PP2LV_VMeas LI_S11_C_M4_PP4LV
-357 LI_S11_C_M4_PP2LV_VMeas LI_S11_C_M4_PP4LV
-358 LI_S11_C_M4_PP2LV_VMeas LI_S11_C_M4_PP4LV
-359 LI_S11_C_M4_PP2LV_VMeas LI_S11_C_M4_PP4LV
-360 LI_S11_C_M3_PP2LV_VMeas LI_S11_C_M3_PP4LV
-361 LI_S11_C_M3_PP2LV_VMeas LI_S11_C_M3_PP4LV
-362 LI_S11_C_M2_PP2LV_VMeas LI_S11_C_M2_PP4LV
-363 LI_S11_C_M2_PP2LV_VMeas LI_S11_C_M2_PP4LV
-364 LI_S11_C_M1_PP2LV_VMeas LI_S11_C_M1_PP4LV
-365 LI_S11_C_M1_PP2LV_VMeas LI_S11_C_M1_PP4LV
-366 LI_S11_A_M1_PP2LV_VMeas LI_S11_A_M1_PP4LV
-367 LI_S11_A_M1_PP2LV_VMeas LI_S11_A_M1_PP4LV
-368 LI_S11_A_M2_PP2LV_VMeas LI_S11_A_M2_PP4LV
-369 LI_S11_A_M2_PP2LV_VMeas LI_S11_A_M2_PP4LV
-370 LI_S11_A_M3_PP2LV_VMeas LI_S11_A_M3_PP4LV
-371 LI_S11_A_M3_PP2LV_VMeas LI_S11_A_M3_PP4LV
-372 LI_S11_A_M4_PP2LV_VMeas LI_S11_A_M4_PP4LV
-373 LI_S11_A_M4_PP2LV_VMeas LI_S11_A_M4_PP4LV
-374 LI_S11_A_M4_PP2LV_VMeas LI_S11_A_M4_PP4LV
-375 LI_S11_A_M4_PP2LV_VMeas LI_S11_A_M4_PP4LV
-376 LI_S12_C_M4_PP2LV_VMeas LI_S12_C_M4_PP4LV
-377 LI_S12_C_M4_PP2LV_VMeas LI_S12_C_M4_PP4LV
-378 LI_S12_C_M4_PP2LV_VMeas LI_S12_C_M4_PP4LV
-379 LI_S12_C_M4_PP2LV_VMeas LI_S12_C_M4_PP4LV
-380 LI_S12_C_M3_PP2LV_VMeas LI_S12_C_M3_PP4LV
-381 LI_S12_C_M3_PP2LV_VMeas LI_S12_C_M3_PP4LV
-382 LI_S12_C_M2_PP2LV_VMeas LI_S12_C_M2_PP4LV
-383 LI_S12_C_M2_PP2LV_VMeas LI_S12_C_M2_PP4LV
-384 LI_S12_C_M1_PP2LV_VMeas LI_S12_C_M1_PP4LV
-385 LI_S12_C_M1_PP2LV_VMeas LI_S12_C_M1_PP4LV
-386 LI_S12_A_M1_PP2LV_VMeas LI_S12_A_M1_PP4LV
-387 LI_S12_A_M1_PP2LV_VMeas LI_S12_A_M1_PP4LV
-388 LI_S12_A_M2_PP2LV_VMeas LI_S12_A_M2_PP4LV
-389 LI_S12_A_M2_PP2LV_VMeas LI_S12_A_M2_PP4LV
-390 LI_S12_A_M3_PP2LV_VMeas LI_S12_A_M3_PP4LV
-391 LI_S12_A_M3_PP2LV_VMeas LI_S12_A_M3_PP4LV
-392 LI_S12_A_M4_PP2LV_VMeas LI_S12_A_M4_PP4LV
-393 LI_S12_A_M4_PP2LV_VMeas LI_S12_A_M4_PP4LV
-394 LI_S12_A_M4_PP2LV_VMeas LI_S12_A_M4_PP4LV
-395 LI_S12_A_M4_PP2LV_VMeas LI_S12_A_M4_PP4LV
-396 LI_S13_C_M4_PP2LV_VMeas LI_S13_C_M4_PP4LV
-397 LI_S13_C_M4_PP2LV_VMeas LI_S13_C_M4_PP4LV
-398 LI_S13_C_M4_PP2LV_VMeas LI_S13_C_M4_PP4LV
-399 LI_S13_C_M4_PP2LV_VMeas LI_S13_C_M4_PP4LV
-400 LI_S13_C_M3_PP2LV_VMeas LI_S13_C_M3_PP4LV
-401 LI_S13_C_M3_PP2LV_VMeas LI_S13_C_M3_PP4LV
-402 LI_S13_C_M2_PP2LV_VMeas LI_S13_C_M2_PP4LV
-403 LI_S13_C_M2_PP2LV_VMeas LI_S13_C_M2_PP4LV
-404 LI_S13_C_M1_PP2LV_VMeas LI_S13_C_M1_PP4LV
-405 LI_S13_C_M1_PP2LV_VMeas LI_S13_C_M1_PP4LV
-406 LI_S13_A_M1_PP2LV_VMeas LI_S13_A_M1_PP4LV
-407 LI_S13_A_M1_PP2LV_VMeas LI_S13_A_M1_PP4LV
-408 LI_S13_A_M2_PP2LV_VMeas LI_S13_A_M2_PP4LV
-409 LI_S13_A_M2_PP2LV_VMeas LI_S13_A_M2_PP4LV
-410 LI_S13_A_M3_PP2LV_VMeas LI_S13_A_M3_PP4LV
-411 LI_S13_A_M3_PP2LV_VMeas LI_S13_A_M3_PP4LV
-412 LI_S13_A_M4_PP2LV_VMeas LI_S13_A_M4_PP4LV
-413 LI_S13_A_M4_PP2LV_VMeas LI_S13_A_M4_PP4LV
-414 LI_S13_A_M4_PP2LV_VMeas LI_S13_A_M4_PP4LV
-415 LI_S13_A_M4_PP2LV_VMeas LI_S13_A_M4_PP4LV
-416 LI_S14_C_M4_PP2LV_VMeas LI_S14_C_M4_PP4LV
-417 LI_S14_C_M4_PP2LV_VMeas LI_S14_C_M4_PP4LV
-418 LI_S14_C_M4_PP2LV_VMeas LI_S14_C_M4_PP4LV
-419 LI_S14_C_M4_PP2LV_VMeas LI_S14_C_M4_PP4LV
-420 LI_S14_C_M3_PP2LV_VMeas LI_S14_C_M3_PP4LV
-421 LI_S14_C_M3_PP2LV_VMeas LI_S14_C_M3_PP4LV
-422 LI_S14_C_M2_PP2LV_VMeas LI_S14_C_M2_PP4LV
-423 LI_S14_C_M2_PP2LV_VMeas LI_S14_C_M2_PP4LV
-424 LI_S14_C_M1_PP2LV_VMeas LI_S14_C_M1_PP4LV
-425 LI_S14_C_M1_PP2LV_VMeas LI_S14_C_M1_PP4LV
-426 LI_S14_A_M1_PP2LV_VMeas LI_S14_A_M1_PP4LV
-427 LI_S14_A_M1_PP2LV_VMeas LI_S14_A_M1_PP4LV
-428 LI_S14_A_M2_PP2LV_VMeas LI_S14_A_M2_PP4LV
-429 LI_S14_A_M2_PP2LV_VMeas LI_S14_A_M2_PP4LV
-430 LI_S14_A_M3_PP2LV_VMeas LI_S14_A_M3_PP4LV
-431 LI_S14_A_M3_PP2LV_VMeas LI_S14_A_M3_PP4LV
-432 LI_S14_A_M4_PP2LV_VMeas LI_S14_A_M4_PP4LV
-433 LI_S14_A_M4_PP2LV_VMeas LI_S14_A_M4_PP4LV
-434 LI_S14_A_M4_PP2LV_VMeas LI_S14_A_M4_PP4LV
-435 LI_S14_A_M4_PP2LV_VMeas LI_S14_A_M4_PP4LV
diff --git a/InnerDetector/InDetMonitoring/PixelMonitoring/src/Clusters.cxx b/InnerDetector/InDetMonitoring/PixelMonitoring/src/Clusters.cxx
index b038cab146be1be956abbda2c65e588a64f3cb89..5b0683a080737e7a54f3268f91c6eb9bbf777986 100644
--- a/InnerDetector/InDetMonitoring/PixelMonitoring/src/Clusters.cxx
+++ b/InnerDetector/InDetMonitoring/PixelMonitoring/src/Clusters.cxx
@@ -181,22 +181,26 @@ StatusCode PixelMainMon::BookClustersMon(void)
       sc= clusterExpert.regHist(m_ToT_vs_clussize_mod[i] = TH2F_LW::create(hname.c_str(), htitles.c_str(), nbins_tot, min_tot, max_tot, nbins_npix, min_npix, max_npix));
     }
   }
-  for (int i=0; i<PixLayerIBL2D3D::COUNT; i++){
-    hname = makeHistname(("Cluster_ToT_"+m_modLabel_PixLayerIBL2D3D[i]), false);
-    htitles = makeHisttitle(("Cluster ToT, "+m_modLabel_PixLayerIBL2D3D[i]), (atext_tot+atext_nclu), false);
-    if ( i<PixLayer::kIBL ){
+
+  for(int i=0; i<PixLayerIBL2D3DDBM::COUNT; i++){
+    hname = makeHistname(("Cluster_ToT_"+m_modLabel_PixLayerIBL2D3DDBM[i]), false);
+    htitles = makeHisttitle(("Cluster ToT, "+m_modLabel_PixLayerIBL2D3DDBM[i]), (atext_tot+atext_nclu), false);
+    if( i<PixLayer::kIBL ){
       sc = clusterExpert.regHist(m_cluster_ToT1d_mod[i] = TH1F_LW::create(hname.c_str(), htitles.c_str(), nbins_tot, min_tot, max_tot));
-    } else if(m_doIBL){
+    }else if(m_doIBL){
       sc = clusterExpert.regHist(m_cluster_ToT1d_mod[i] = TH1F_LW::create(hname.c_str(), htitles.c_str(), nbins_ibl_tot, min_ibl_tot, max_ibl_tot));
     }
-
-    hname = makeHistname(("Cluster_Q_"+m_modLabel_PixLayerIBL2D3D[i]), false);
-    htitles = makeHisttitle(("Charge, "+m_modLabel_PixLayerIBL2D3D[i]), (atext_Q+atext_nclu), false);
+ 
+    hname = makeHistname(("Cluster_Q_"+m_modLabel_PixLayerIBL2D3DDBM[i]), false);
+    htitles = makeHisttitle(("Charge, "+m_modLabel_PixLayerIBL2D3DDBM[i]), (atext_Q+atext_nclu), false);
     sc = clusterExpert.regHist(m_cluster_Q_mod[i] = TH1F_LW::create(hname.c_str(), htitles.c_str(), nbins_Q, min_Q, max_Q));
-    
-    hname = makeHistname(("Cluster_groupsize_"+m_modLabel_PixLayerIBL2D3D[i]), false);
-    htitles = makeHisttitle(("Number of pixels in a cluster, "+m_modLabel_PixLayerIBL2D3D[i]), (atext_npix+atext_nclu), false);
+
+    hname = makeHistname(("Cluster_groupsize_"+m_modLabel_PixLayerIBL2D3DDBM[i]), false);
+    htitles = makeHisttitle(("Number of pixels in a cluster, "+m_modLabel_PixLayerIBL2D3DDBM[i]), (atext_npix+atext_nclu), false);
     sc = clusterExpert.regHist(m_cluster_groupsize_mod[i] = TH1F_LW::create(hname.c_str(), htitles.c_str(), nbins_npix+1, min_npix, max_npix+1));
+  }
+
+  for (int i=0; i<PixLayerIBL2D3D::COUNT; i++){
     
     hname = makeHistname(("Cluster_column_width_"+m_modLabel_PixLayerIBL2D3D[i]), false);
     htitles = makeHisttitle(("Column width of a cluster, "+m_modLabel_PixLayerIBL2D3D[i]), (atext_cluw+atext_nclu), false);
@@ -349,8 +353,6 @@ StatusCode PixelMainMon::BookClustersMon(void)
     }
     if (m_doHeavyIonMon) {max_clusters = 100000; max_clusters_region = 40000; max_avclusters = 1000; }
     
-    tmp = "num_clusters"; tmp2 = "Number of pixel clusters in an event";
-    if (m_doOnTrack) { tmp = tmp + addOnTrack; tmp2 = tmp2 + addOnTrack; }
     tmp = "num_clusters"; tmp2 = "Number of pixel clusters in an event";
     sc = clusterShift.regHist(m_num_clusters = TH1I_LW::create(tmp.c_str(), (tmp2 + ";# pixel clusters/event" + m_histTitleExt + ";# events").c_str(), nbins_clusters, 0., max_clusters));
     
@@ -485,30 +487,32 @@ StatusCode PixelMainMon::FillClustersMon(void)
 	{
 	  clusID=(*p_clus)->identify();
 	  int pixlayer = GetPixLayerID(m_pixelid->barrel_ec(clusID), m_pixelid->layer_disk(clusID), m_doIBL);
-
 	  int pixlayeribl2d3d = pixlayer;
 	  if( pixlayeribl2d3d == PixLayerIBL2D3D::kIBL ){
 	    pixlayeribl2d3d = GetPixLayerIDIBL2D3D(m_pixelid->barrel_ec(clusID), m_pixelid->layer_disk(clusID), m_pixelid->eta_module(clusID), m_doIBL);
 	  }
 
-	  if(pixlayer == 99) continue;
+	  int pixlayerdbm = GetPixLayerIDDBM(m_pixelid->barrel_ec(clusID), m_pixelid->layer_disk(clusID), m_doIBL);
+	  int pixlayeribl2d3ddbm = pixlayerdbm;
+	  if( pixlayeribl2d3ddbm == PixLayerDBM::kIBL ){
+            pixlayeribl2d3ddbm = GetPixLayerIDIBL2D3DDBM(m_pixelid->barrel_ec(clusID), m_pixelid->layer_disk(clusID), m_pixelid->eta_module(clusID), m_doIBL);
+	  }
+
 	  
 	  int lumiblock = m_manager->lumiBlockNumber();
 	  
 	  const PixelCluster& cluster = **p_clus;
 	  const InDet::SiWidth clusWidth = cluster.width();
-	  
 	  //note: description is wrong in SiWidth! <x,y> = <row,col>
+	  int colWidth = clusWidth.colRow().y();
+	  int rowWidth = clusWidth.colRow().x();
+	  
 	  int npixHitsInClusterRaw = cluster.rdoList().size();
 	  int npixHitsInCluster = cluster.rdoList().size();
-	  if( npixHitsInCluster > m_cluster_groupsize_mod[pixlayer]->getXMax()){
-	    npixHitsInCluster = (int)(m_cluster_groupsize_mod[pixlayer]->getXMax()-0.5);
+	  if( pixlayeribl2d3ddbm!=99 && npixHitsInCluster > m_cluster_groupsize_mod[pixlayeribl2d3ddbm]->getXMax()){
+	    npixHitsInCluster = (int)(m_cluster_groupsize_mod[pixlayeribl2d3ddbm]->getXMax()-0.5);
 	  }
-	  int colWidth = clusWidth.colRow().y();
-	  int rowWidth = clusWidth.colRow().x();
 
-	  nclusters_all++; // count all clusters for ontrack
-	  
 	  /// Quick Status
 	  int fephi=0;
 	  int feeta=0;
@@ -525,23 +529,35 @@ StatusCode PixelMainMon::FillClustersMon(void)
 	      }
             }
 	  }
-	  
+	 
+	  if (pixlayer != 99) nclusters_all++; // count all (no DBM) clusters on and off track
+ 
 	  if( (m_doOnTrack || m_doOnPixelTrack) && !OnTrack(clusID,true) ){
 	    continue;
 	    /// if we only want hits on track, and the hit is NOT on the track, skip filling.
 	    /// true means doing clusters, false means rdos
 	  }
-	  
-	  
-	  nclusters_ontrack++;
-	  
-	  
+	 	  
 	  //////////////////////////////////////////////////////
 	  /////////////Start main fill block here///////////////
 	  //be sure to check each histo exists before filling it
 	  //////////////////////////////////////////////////////
-	  
-	  //if( m_currentBCID != ) continue;
+	 
+	  //
+	  // Fill first histograms with DBM
+	  //
+	  if (pixlayeribl2d3ddbm!=99 && m_cluster_ToT1d_mod[pixlayeribl2d3ddbm])        m_cluster_ToT1d_mod[pixlayeribl2d3ddbm]->Fill(cluster.totalToT());
+	  if (pixlayerdbm == PixLayerDBM::kIBL && m_cluster_ToT1d_mod[pixlayerdbm])     m_cluster_ToT1d_mod[pixlayerdbm]->Fill(cluster.totalToT());
+	  if (pixlayeribl2d3ddbm!=99 && m_cluster_Q_mod[pixlayeribl2d3ddbm])            m_cluster_Q_mod[pixlayeribl2d3ddbm]->Fill(cluster.totalCharge());
+	  if (pixlayerdbm == PixLayerDBM::kIBL && m_cluster_Q_mod[pixlayerdbm])         m_cluster_Q_mod[pixlayerdbm]->Fill(cluster.totalCharge());
+	  if (pixlayeribl2d3ddbm!=99 && m_cluster_groupsize_mod[pixlayeribl2d3ddbm])    m_cluster_groupsize_mod[pixlayeribl2d3ddbm]->Fill( npixHitsInCluster );
+	  if (pixlayerdbm == PixLayerDBM::kIBL && m_cluster_groupsize_mod[pixlayerdbm]) m_cluster_groupsize_mod[pixlayerdbm]->Fill( npixHitsInCluster );
+	  if (m_cluster_occupancy) m_cluster_occupancy->Fill(clusID,m_pixelid,m_doIBL);
+
+	  if (pixlayer == 99) continue; // DBM case
+	 
+	  nclusters_ontrack++;
+
 	  ///
 	  /// Fill LVL1 Accepted
 	  ///
@@ -558,9 +574,6 @@ StatusCode PixelMainMon::FillClustersMon(void)
 	  /// Fill ToT
 	  ///
 	  if (m_cluster_ToT_mod) m_cluster_ToT_mod->Fill(cluster.totalToT(),clusID,m_pixelid,m_doIBL);   
-	  
-	  if (m_cluster_ToT1d_mod[pixlayer]) m_cluster_ToT1d_mod[pixlayer]->Fill(cluster.totalToT());
-	  if (pixlayer == PixLayer::kIBL && m_cluster_ToT1d_mod[pixlayeribl2d3d]) m_cluster_ToT1d_mod[pixlayeribl2d3d]->Fill(cluster.totalToT());
 
 	  if (cluster.rdoList().size()==1 && m_1cluster_ToT_mod[pixlayer]   ) m_1cluster_ToT_mod[pixlayer]->Fill(cluster.totalToT());
 	  if (cluster.rdoList().size()==2 && m_2cluster_ToT_mod[pixlayer]   ) m_2cluster_ToT_mod[pixlayer]->Fill(cluster.totalToT());
@@ -570,9 +583,6 @@ StatusCode PixelMainMon::FillClustersMon(void)
 	  ///
 	  /// Fill Charge
 	  ///
-	  if (m_cluster_Q_mod[pixlayer]) m_cluster_Q_mod[pixlayer]->Fill(cluster.totalCharge());
-	  if (pixlayer == PixLayer::kIBL && m_cluster_Q_mod[pixlayeribl2d3d]) m_cluster_Q_mod[pixlayeribl2d3d]->Fill(cluster.totalCharge());
-	  
 	  if (cluster.rdoList().size()==1 && m_1cluster_Q_mod[pixlayer]   ) m_1cluster_Q_mod[pixlayer]->Fill(cluster.totalCharge());
 	  if (cluster.rdoList().size()==2 && m_2cluster_Q_mod[pixlayer]   ) m_2cluster_Q_mod[pixlayer]->Fill(cluster.totalCharge());
 	  if (cluster.rdoList().size()==3 && m_3cluster_Q_mod[pixlayer]   ) m_3cluster_Q_mod[pixlayer]->Fill(cluster.totalCharge());
@@ -601,9 +611,6 @@ StatusCode PixelMainMon::FillClustersMon(void)
 	  if (m_cluster_row_width) m_cluster_row_width->Fill(rowWidth);                         
 	  if (m_clusterSize_eta && m_pixelid->barrel_ec(clusID)==0 ) m_clusterSize_eta->Fill(m_pixelid->eta_module(clusID), npixHitsInClusterRaw);
     
-	  if (m_cluster_groupsize_mod[pixlayer]) m_cluster_groupsize_mod[pixlayer]->Fill( npixHitsInCluster );
-	  if (pixlayer == PixLayer::kIBL && m_cluster_groupsize_mod[pixlayeribl2d3d]) m_cluster_groupsize_mod[pixlayeribl2d3d]->Fill( npixHitsInCluster );
-
 	  if (m_cluster_col_width_mod[pixlayer]) m_cluster_col_width_mod[pixlayer]->Fill( colWidth );
 	  if (pixlayer == PixLayer::kIBL && m_cluster_col_width_mod[pixlayeribl2d3d]) m_cluster_col_width_mod[pixlayeribl2d3d]->Fill( colWidth );
 
@@ -635,7 +642,6 @@ StatusCode PixelMainMon::FillClustersMon(void)
 	  ///
 	  /// Fill Occupancy
 	  ///
-	  if (m_cluster_occupancy) m_cluster_occupancy->Fill(clusID,m_pixelid,m_doIBL);
 	  if (cluster.rdoList().size()>1 && m_clusocc_sizenot1) m_clusocc_sizenot1->Fill(clusID,m_pixelid,m_doIBL); 
 	  if (m_doOnline && m_clustermap_tmp) m_clustermap_tmp->Fill(clusID, m_pixelid, m_doIBL);
 	  
diff --git a/InnerDetector/InDetMonitoring/PixelMonitoring/src/HelperFunctions.cxx b/InnerDetector/InDetMonitoring/PixelMonitoring/src/HelperFunctions.cxx
index 30dab39c7f6cf69556da9f905d0ff334fee924c0..5a7aea07b747cc3bfdf34f017c847aac829f4393 100644
--- a/InnerDetector/InDetMonitoring/PixelMonitoring/src/HelperFunctions.cxx
+++ b/InnerDetector/InDetMonitoring/PixelMonitoring/src/HelperFunctions.cxx
@@ -61,8 +61,8 @@ int PixelMainMon :: GetPixLayerID(int ec, int ld, bool ibl)
 int PixelMainMon :: GetPixLayerIDDBM(int ec, int ld, bool ibl)
 {
    int layer = 99;
-   if(ec==2) layer = PixLayerDBM::kECA0 + ld;
-   else if(ec==-2) layer = PixLayerDBM::kECC0 + ld;
+   if(ec==2) layer = PixLayerDBM::kECA;
+   else if(ec==-2) layer = PixLayerDBM::kECC;
    else if(ec==0) {
       if(ibl && ld==0) layer = PixLayerDBM::kIBL;
       if(ld==0+ibl) layer = PixLayerDBM::kB0;
diff --git a/InnerDetector/InDetMonitoring/PixelMonitoring/src/Hits.cxx b/InnerDetector/InDetMonitoring/PixelMonitoring/src/Hits.cxx
index 67912ca2bbd9b65f8efc8da0a00e75120642f164..2ea8da5f4676f19aedc0bdfcf0f434228f02860d 100644
--- a/InnerDetector/InDetMonitoring/PixelMonitoring/src/Hits.cxx
+++ b/InnerDetector/InDetMonitoring/PixelMonitoring/src/Hits.cxx
@@ -220,8 +220,8 @@ StatusCode PixelMainMon::BookHitsMon(void)
        }
 
        for(int i=0; i<PixLayerDBM::COUNT-1+(int)(m_doIBL); i++){
-         hname = makeHistname(("Lvl1A_"+m_modLabel_PixLayerIBL2D3DDBM[i]), false);
-         htitles = makeHisttitle(("Hit Level 1 Accept, "+m_modLabel_PixLayerIBL2D3DDBM[i]), (atext_lv1+atext_nhit), false);
+         hname = makeHistname(("Lvl1A_"+m_modLabel_PixLayerDBM[i]), false);
+         htitles = makeHisttitle(("Hit Level 1 Accept, "+m_modLabel_PixLayerDBM[i]), (atext_lv1+atext_nhit), false);
          sc = timeShift.regHist(m_Lvl1A_mod[i] = TH1F_LW::create(hname.c_str(), htitles.c_str(), 14, -1.5, 12.5));
        }
      }
@@ -459,13 +459,13 @@ StatusCode PixelMainMon::FillHitsMon(void) //Called once per event
   Identifier rdoID;
   
   int nChannels_mod[PixLayerIBL2D3D::COUNT] = {46080, 46080, 46080, 46080, 46080, 26880, 53760, 26880};
-  double nActiveChannels_total = 0.;
+  double nGoodChannels_total = 0.;
   double nGoodChannels_layer[PixLayerIBL2D3D::COUNT];
   double nActiveChannels_layer[PixLayerIBL2D3D::COUNT];
   for( int i=0; i<PixLayerIBL2D3D::COUNT; i++){
     nGoodChannels_layer[i]   = 1.0 * nChannels_mod[i] * m_nGood_mod[i];
     nActiveChannels_layer[i] = 1.0 * nChannels_mod[i] * m_nActive_mod[i];
-    nActiveChannels_total    =+ nGoodChannels_layer[i];
+    nGoodChannels_total    =+ nGoodChannels_layer[i];
   }
 
   StatusCode sc;
@@ -600,12 +600,10 @@ StatusCode PixelMainMon::FillHitsMon(void) //Called once per event
 	    
 
 	/// Fill ToT
-	if (pixlayerdbm != 99 && m_hit_ToT[pixlayerdbm]) m_hit_ToT[pixlayerdbm]->Fill((*p_rdo)->getToT());
+	if (pixlayeribl2d3ddbm != 99 && m_hit_ToT[pixlayeribl2d3ddbm])  m_hit_ToT[pixlayeribl2d3ddbm]->Fill((*p_rdo)->getToT());
+	if (pixlayerdbm == PixLayerDBM::kIBL && m_hit_ToT[pixlayerdbm]) m_hit_ToT[pixlayerdbm]->Fill((*p_rdo)->getToT());
+
 	if (pixlayer != 99 && m_hit_ToTMean_mod[pixlayer]) m_hit_ToTMean_mod[pixlayer]->Fill(m_manager->lumiBlockNumber(), (*p_rdo)->getToT());
-	if (pixlayerdbm == PixLayerDBM::kIBL){
-	  int ibl2d3d = GetPixLayerIDIBL2D3DDBM(m_pixelid->barrel_ec(rdoID), m_pixelid->layer_disk(rdoID), m_pixelid->eta_module(rdoID), m_doIBL);
-	  if(m_hit_ToT[ibl2d3d]) m_hit_ToT[ibl2d3d]->Fill((*p_rdo)->getToT());
-	}
 	if (m_doLumiBlock && pixlayer != 99){
 	  if(m_hit_ToT_LB_mod[pixlayer]) m_hit_ToT_LB_mod[pixlayer]->Fill((*p_rdo)->getToT());
 	}
@@ -714,7 +712,7 @@ StatusCode PixelMainMon::FillHitsMon(void) //Called once per event
   double avgocc = 0;
   double avgocc_mod[PixLayerIBL2D3D::COUNT] = {0};
   double avgocc_active_mod[PixLayerIBL2D3D::COUNT] = {0};
-  if(nActiveChannels_total>0) avgocc = nhits/nActiveChannels_total;
+  if(nGoodChannels_total>0) avgocc = nhits/nGoodChannels_total;
   if(m_avgocc_per_lumi) m_avgocc_per_lumi->Fill(m_manager->lumiBlockNumber(), avgocc);
 
   if (m_doOfflineAnalysis) {
diff --git a/InnerDetector/InDetMonitoring/PixelMonitoring/src/PixelMainMon.cxx b/InnerDetector/InDetMonitoring/PixelMonitoring/src/PixelMainMon.cxx
index 2db9485b677ddc90f346bca627cbee2245a831da..b16c716df3e64cab041fbfc9c5652bc8e902085c 100755
--- a/InnerDetector/InDetMonitoring/PixelMonitoring/src/PixelMainMon.cxx
+++ b/InnerDetector/InDetMonitoring/PixelMonitoring/src/PixelMainMon.cxx
@@ -55,30 +55,10 @@
 #include "EventInfo/EventInfo.h"
 #include "EventInfo/EventID.h"
 #include "TrkToolInterfaces/ITrackHoleSearchTool.h"
+#include "PathResolver/PathResolver.h"
 
 //////////////////////////////////////////////////////////////////////////////
 
-std::vector<std::string> &splitter(const std::string &s, char delim, std::vector<std::string> &elems) {
-  std::stringstream ss(s);
-  std::string item;
-  while (std::getline(ss, item, delim)) {
-    elems.push_back(item);
-  }
-  return elems;
-}
-
-std::vector<std::string> splitter(const std::string &s, char delim) {
-  std::vector<std::string> elems;
-  splitter(s, delim, elems);
-  return elems;
-}
-
-bool is_file_exist(const char *fileName)
-{
-  std::ifstream infile(fileName);
-  return infile.good();
-}
-
 PixelMainMon::PixelMainMon(const std::string & type, 
    const std::string & name,
    const IInterface* parent) :
@@ -99,7 +79,6 @@ PixelMainMon::PixelMainMon(const std::string & type,
    m_FSM_state(new dcsDataHolder()),
    m_FSM_status(new dcsDataHolder()),
    m_moduleDCSDataHolder(new moduleDcsDataHolder())
-   //m_trkSummaryTool("Trk::TrackSummaryTool/InDetTrackSummaryTool")
 {                                                                        //all job options flags go here
    declareProperty("PixelConditionsSummarySvc", m_pixelCondSummarySvc);
    declareProperty("PixelByteStreamErrorsSvc",  m_ErrorSvc);
@@ -107,8 +86,6 @@ PixelMainMon::PixelMainMon(const std::string & type,
    declareProperty("HoleSearchTool",            m_holeSearchTool);
    declareProperty("LuminosityTool",            m_lumiTool);
 
-   //declareProperty("TrkSummaryTool",            m_trkSummaryTool);
-
    declareProperty("RDOName",          m_Pixel_RDOName         = "PixelRDOs");  //storegate container names
    declareProperty("RODErrorName",     m_detector_error_name   = "pixel_error_summary");   
    declareProperty("SpacePointName",   m_Pixel_SpacePointsName = "PixelSpacePoints"); 
@@ -609,24 +586,6 @@ StatusCode PixelMainMon::initialize()
       msg(MSG::INFO) << "Retrieved tool " << m_lumiTool << endmsg;
    }
 
-   //if ( m_trkSummaryTool.retrieve().isFailure() ) {
-   //  if ( msgLvl(MSG::ERROR) ) msg(MSG::ERROR) << "Failed to retrieve tool " << m_trkSummaryTool << endmsg;
-   //} else {
-   //  if(msgLvl(MSG::INFO)) msg(MSG::INFO)  << "Retrieved tool " << m_trkSummaryTool << endmsg;
-   //}
-
-  //m_elementsMap[std::string("/PIXEL/DCS/FSMSTATE")].push_back(std::string("FSM_state"));                    // type: String4k
-  //m_elementsMap[std::string("/PIXEL/DCS/FSMSTATUS")].push_back(std::string("FSM_status"));                  // type: String4k
-  //m_elementsMap[std::string("/PIXEL/DCS/HV")].push_back(std::string("HV"));                                 // type: Float
-  //m_elementsMap[std::string("/PIXEL/DCS/HVCURRENT")].push_back(std::string("hv_current"));                  // type: Float
-  //m_elementsMap[std::string("/PIXEL/DCS/LV")].push_back(std::string("lv_voltage"));                         // type: Float
-  //m_elementsMap[std::string("/PIXEL/DCS/LV")].push_back(std::string("lv_current"));                         // type: Float
-  //m_elementsMap[std::string("/PIXEL/DCS/PIPES")].push_back(std::string("temp_inlet"));                      // type: Float
-  //m_elementsMap[std::string("/PIXEL/DCS/PIPES")].push_back(std::string("temp_outlet"));                     // type: Float
-  //m_elementsMap[std::string("/PIXEL/DCS/PLANTS")].push_back(std::string("modbus_ack_user_setpoint_temp"));  // type: Float
-  //m_elementsMap[std::string("/PIXEL/DCS/PLANTS")].push_back(std::string("modbus_cooling_ready"));           // type: Bool
-  //m_elementsMap[std::string("/PIXEL/DCS/TEMPERATURE")].push_back("temperature");                            // type: Float
-
   if (!m_doDCS) return StatusCode::SUCCESS;
 
   m_atrcollist.push_back(std::string("/PIXEL/DCS/TEMPERATURE")); // module
@@ -639,52 +598,40 @@ StatusCode PixelMainMon::initialize()
   m_atrcollist.push_back(std::string("/PIXEL/DCS/LV"));          // IBL readout unit
   m_currentLumiBlockNumber = 0;
 
-  //std::string testarea = std::getenv("TestArea");
-  //ifstream moduleMapfile((testarea + "/InstallArea/share/wincc2cool.csv").c_str());
-  //ifstream coolingPipeMapfile((testarea + "/InstallArea/share/coolingPipeMap.csv").c_str());
-  //ifstream lvMapfile((testarea + "/InstallArea/share/lvMap.csv").c_str());
-
-  //std::string cmtpath = std::getenv("CMTPATH");
-  std::string cmtpath = std::getenv("DATAPATH");
-  std::vector<std::string> paths = splitter(cmtpath, ':');
-  for (const auto& x : paths){
-    if(is_file_exist((x + "/wincc2cool.csv").c_str())){
-      ATH_MSG_INFO("initialising DCS channel maps using files in " << x);
-      std::ifstream moduleMapfile((x + "/wincc2cool.csv").c_str());
-      std::ifstream coolingPipeMapfile((x + "/coolingPipeMap.csv").c_str());
-      std::ifstream lvMapfile((x + "/lvMap.csv").c_str());
-      if( moduleMapfile.fail() || coolingPipeMapfile.fail() || lvMapfile.fail() ) {
-        ATH_MSG_WARNING("initialize(): Map File do not exist. m_doDCS has been changed to False.");
-        m_doDCS = false;
-      }
-      std::string line;
-      // make a dictionary to convert module name to channel number
+  std::string modMapFileName   = PathResolver::find_file ("PixelDQMonitoring/wincc2cool.csv", "CALIBPATH");
+  std::string coolPipeFileName = PathResolver::find_file ("PixelDQMonitoring/coolingPipeMap.csv", "CALIBPATH");
+  std::string lvMapFileName    = PathResolver::find_file ("PixelDQMonitoring/lvMap.csv", "CALIBPATH");
+
+  if (modMapFileName == "" || coolPipeFileName == "" || lvMapFileName == "") {
+    ATH_MSG_WARNING("initialize(): can't find DCS mapping files - m_doDCS flag has been changed to False.");
+    m_doDCS = false;
+  } else  {
+    std::ifstream moduleMapfile(modMapFileName.c_str());
+    std::ifstream coolingPipeMapfile(coolPipeFileName.c_str());
+    std::ifstream lvMapfile(lvMapFileName.c_str());
+    
+    if ( moduleMapfile.fail() || coolingPipeMapfile.fail() || lvMapfile.fail() ) {
+      ATH_MSG_WARNING("initialize(): can't read DCS mapping files - m_doDCS flag has been changed to False.");
+      m_doDCS = false;
+    } else {
+      ATH_MSG_INFO("initialize(): found all DCS channel mapping files accessible, start reading them.");
       int channel; std::string moduleName; std::string rest;
       std::string inletName; std::string outletName;
       std::string lvVoltageName; std::string lvCurrentName;
-      //while(getline(moduleMapfile, line))
       while(moduleMapfile >> channel >> moduleName >> rest) {
-        // get channel number from wincc2cool.csv
-        //int channel; std::string moduleName; std::string rest;
-        //channel = atoi( ( line.substr(0, line.find(",")) ).c_str() );
-        //std::string tmp_line = line.substr(line.find(","), std::string::npos);
-        //// get the module name from wincc2cool.csv
-        //moduleName = tmp_line.substr(0, tmp_line.find(","));
-        m_moduleTemperature->m_maps->insert(std::make_pair(moduleName, channel));
-        m_HV->m_maps->insert(std::make_pair(moduleName, channel));
-        m_moduleDCSDataHolder->m_moduleMap->insert(std::make_pair(moduleName, channel));
-        ATH_MSG_DEBUG( "initialize(): channel " << channel << ", moduleName " << moduleName );
+	m_moduleTemperature->m_maps->insert(std::make_pair(moduleName, channel));
+	m_HV->m_maps->insert(std::make_pair(moduleName, channel));
+	m_moduleDCSDataHolder->m_moduleMap->insert(std::make_pair(moduleName, channel));
+	ATH_MSG_DEBUG( "initialize(): channel " << channel << ", moduleName " << moduleName );
       }
-      // for cooling pipe
       while(coolingPipeMapfile >> channel >> inletName >> outletName) {
-        m_coolingPipeTemperatureInlet->m_maps->insert(std::make_pair(inletName, channel));
-        m_coolingPipeTemperatureOutlet->m_maps->insert(std::make_pair(outletName, channel));
+	m_coolingPipeTemperatureInlet->m_maps->insert(std::make_pair(inletName, channel));
+	m_coolingPipeTemperatureOutlet->m_maps->insert(std::make_pair(outletName, channel));
       }
       while(lvMapfile >> channel >> lvVoltageName >> lvCurrentName) {
-        m_LV_voltage->m_maps->insert(std::make_pair(lvVoltageName, channel));
-        m_LV_current->m_maps->insert(std::make_pair(lvCurrentName, channel));
+	m_LV_voltage->m_maps->insert(std::make_pair(lvVoltageName, channel));
+	m_LV_current->m_maps->insert(std::make_pair(lvCurrentName, channel));
       }
-      break;
     }
   }
 
@@ -735,7 +682,7 @@ StatusCode PixelMainMon::initialize()
   m_fsmStatus2enum["UNINITIALIZED"] = 3.;
   m_fsmStatus2enum["DEAD"] = 4.;
 
-   return StatusCode::SUCCESS;
+  return StatusCode::SUCCESS;
 }