diff --git a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/share/MakeHitMapsPlots.py b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/share/MakeHitMapsPlots.py
index 8d0635b4cfe345a9c1ec5834567db00c2c0f439a..3b58baf3809ee7eccf182af5b795f9756f422987 100644
--- a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/share/MakeHitMapsPlots.py
+++ b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/share/MakeHitMapsPlots.py
@@ -1,4 +1,25 @@
 #
+print " <MakeResidualPlots.MakeHitMapsPlots> userCollectOutput=",userCollectOutput
+print "                                      userWebMonitoring=",userWebMonitoring
+
+psname = "/Users/martis/projectes/atlas/alineament/webmonitoringtest/InDetAlignmentWebMonitor/trunk/WebPage/detailed_plots/2016/HitMaps.pdf"
+if (userWebMonitoring):
+    psname = "/var/vhost/atlas-alignment/secure/detailed_plots/2016/HitMaps.pdf"
+#
+
+def initPsFile():
+    NullCanvas = TCanvas()
+    NullCanvas.Print(psname+"[")
+    return NullCanvas
+	
+def closePsFile(NullCanvas):
+    NullCanvas.Print(psname+"]")
+
+Canvases = []
+if (userCollectOutput):    
+    NullCanvas = initPsFile()
+
+    
 for i in range(nFiles):    
 
     PIXBAR_HitMaps = MakeHitMaps(hitEffDir, legendTitles, rootFiles, i, "pixels", "BAR", True, 0, "measurements")
@@ -7,17 +28,19 @@ for i in range(nFiles):
     outputFileName = outputFileName.replace(" ","_")    
     outputFileName = outputFileName.replace("(","_")    
     outputFileName = outputFileName.replace(")","_")    
-    DrawHitMaps(PIXBAR_HitMaps, outputFileName, "#eta ring", "#phi stave", "Hits", 
-                0.2, 0.96, "#mum",canvasText,makeOutput)
-
+    thiscan = DrawHitMaps(PIXBAR_HitMaps, outputFileName, "#eta ring", "#phi stave", "Hits", 
+                          0.2, 0.96, "#mum",canvasText,makeOutput)
+    if (userCollectOutput): Canvases.append(thiscan)
+    
     PIXECA_HitMaps = MakeHitMaps(hitEffDir, legendTitles, rootFiles, i, "pixels", "ECA")
     outputFileName =  outputDir+"/"+"PIXECA_HitMaps_File_"+str(i)+"."+oFext
     outputFileName =  outputDir+"/"+"PIXECA_HitMaps_File_"+legendTitles[i]+"."+oFext
     outputFileName = outputFileName.replace(" ","_")    
     outputFileName = outputFileName.replace("(","_")    
     outputFileName = outputFileName.replace(")","_")    
-    DrawHitMaps(PIXECA_HitMaps, outputFileName, "", "", "Hits", 
-                0.2, 0.96, "#mum",canvasText,makeOutput,"PIX","ECA")
+    thiscan = DrawHitMaps(PIXECA_HitMaps, outputFileName, "", "", "Hits", 
+                          0.2, 0.96, "#mum",canvasText,makeOutput,"PIX","ECA")
+    if (userCollectOutput): Canvases.append(thiscan)
 
     PIXECC_HitMaps = MakeHitMaps(hitEffDir, legendTitles, rootFiles, i, "pixels", "ECC")
     outputFileName =  outputDir+"/"+"PIXECC_HitMaps_File_"+str(i)+"."+oFext
@@ -25,8 +48,9 @@ for i in range(nFiles):
     outputFileName = outputFileName.replace(" ","_")     
     outputFileName = outputFileName.replace("(","_")    
     outputFileName = outputFileName.replace(")","_")    
-    DrawHitMaps(PIXECC_HitMaps, outputFileName, "", "", "Hits", 
-                0.2, 0.96, "#mum",canvasText,makeOutput,"PIX","ECC")
+    thiscan = DrawHitMaps(PIXECC_HitMaps, outputFileName, "", "", "Hits", 
+                          0.2, 0.96, "#mum",canvasText,makeOutput,"PIX","ECC")
+    if (userCollectOutput): Canvases.append(thiscan)
 
     # SCT barrel side 0 and side 1
     SCTBAR_s0HitMaps = MakeHitMaps(hitEffDir, legendTitles, rootFiles, i, "SCT", "BAR", True, 0)
@@ -35,8 +59,9 @@ for i in range(nFiles):
     outputFileName = outputFileName.replace(" ","_")    
     outputFileName = outputFileName.replace("(","_")    
     outputFileName = outputFileName.replace(")","_")    
-    DrawHitMaps(SCTBAR_s0HitMaps, outputFileName, "#eta ring", "#phi sector", "Hits", 
-                0.2, 0.96, "#mum",canvasText, makeOutput,"SCT","BAR")
+    thiscan = DrawHitMaps(SCTBAR_s0HitMaps, outputFileName, "#eta ring", "#phi sector", "Hits", 
+                          0.2, 0.96, "#mum",canvasText, makeOutput,"SCT","BAR")
+    if (userCollectOutput): Canvases.append(thiscan)
 
     SCTBAR_s1HitMaps = MakeHitMaps(hitEffDir, legendTitles, rootFiles, i, "sct", "BAR", True, 1)
     outputFileName =  outputDir+"/"+"SCTBAR_s1HitMaps_File_"+str(i)+"."+oFext
@@ -44,72 +69,86 @@ for i in range(nFiles):
     outputFileName = outputFileName.replace(" ","_")    
     outputFileName = outputFileName.replace("(","_")    
     outputFileName = outputFileName.replace(")","_")    
-    DrawHitMaps(SCTBAR_s1HitMaps, outputFileName, "#eta ring", "#phi sector", "Hits", 
-                0.2, 0.96, "#mum",canvasText, makeOutput,"SCT","BAR")
-
+    thiscan = DrawHitMaps(SCTBAR_s1HitMaps, outputFileName, "#eta ring", "#phi sector", "Hits", 
+                          0.2, 0.96, "#mum",canvasText, makeOutput,"SCT","BAR")
+    if (userCollectOutput): Canvases.append(thiscan)
+    
+    '''
     # SCT ECA side 0 and sie 1
     SCTECA_s0HitMaps = MakeHitMaps(hitEffDir, legendTitles, rootFiles, i, "sct", "ECA", True, 0)
     outputFileName = outputDir+"/"+"SCTECA_s0HitMaps_File_"+legendTitles[i]+"."+oFext
     outputFileName = outputFileName.replace(" ","_")    
     outputFileName = outputFileName.replace("(","_")    
     outputFileName = outputFileName.replace(")","_")    
-    DrawHitMaps(SCTECA_s0HitMaps, outputFileName, "", "", "Hits", 
-                0.2, 0.96, "#mum",canvasText, makeOutput,"SCT","ECA")
-
+    thiscan = DrawHitMaps(SCTECA_s0HitMaps, outputFileName, "", "", "Hits", 
+                          0.2, 0.96, "#mum",canvasText, makeOutput,"SCT","ECA")
+    if (userCollectOutput): Canvases.append(thiscan)
+    
     SCTECA_s1HitMaps = MakeHitMaps(hitEffDir, legendTitles, rootFiles, i, "sct", "ECA", True, 1)
     outputFileName = outputDir+"/"+"SCTECA_s1HitMaps_File_"+legendTitles[i]+"."+oFext
     outputFileName = outputFileName.replace(" ","_")    
     outputFileName = outputFileName.replace("(","_")    
     outputFileName = outputFileName.replace(")","_")    
-    DrawHitMaps(SCTECA_s1HitMaps, outputFileName, "", "", "Hits", 
-                0.2, 0.96, "#mum",canvasText, makeOutput,"SCT","ECA")
-
+    thiscan = DrawHitMaps(SCTECA_s1HitMaps, outputFileName, "", "", "Hits", 
+                          0.2, 0.96, "#mum",canvasText, makeOutput,"SCT","ECA")
+    if (userCollectOutput): Canvases.append(thiscan)
+    
     # SCT ECC side 0 and sie 1
     outputFileName = outputDir+"/"+"SCTECC_s0HitMaps_File_"+legendTitles[i]+"."+oFext
     outputFileName = outputFileName.replace(" ","_")    
     outputFileName = outputFileName.replace("(","_")    
     outputFileName = outputFileName.replace(")","_")    
     SCTECC_s0HitMaps = MakeHitMaps(hitEffDir, legendTitles, rootFiles, i, "sct", "ECC", True, 0)
-    DrawHitMaps(SCTECC_s0HitMaps, outputFileName, "", "", "Hits", 
-                0.2, 0.96, "#mum",canvasText, makeOutput,"SCT","ECA")
-
+    thiscan = DrawHitMaps(SCTECC_s0HitMaps, outputFileName, "", "", "Hits", 
+                          0.2, 0.96, "#mum",canvasText, makeOutput,"SCT","ECA")
+    if (userCollectOutput): Canvases.append(thiscan)
+        
     outputFileName = outputDir+"/"+"SCTECC_s1HitMaps_File_"+legendTitles[i]+"."+oFext
     outputFileName = outputFileName.replace(" ","_")    
     outputFileName = outputFileName.replace("(","_")    
     outputFileName = outputFileName.replace(")","_")    
     SCTECC_s1HitMaps = MakeHitMaps(hitEffDir, legendTitles, rootFiles, i, "sct", "ECC", True, 1)
-    DrawHitMaps(SCTECC_s1HitMaps, outputFileName, "", "", "Hits", 
-                0.2, 0.96, "#mum",canvasText, makeOutput,"SCT","ECA")
+    thiscan = DrawHitMaps(SCTECC_s1HitMaps, outputFileName, "", "", "Hits", 
+                          0.2, 0.96, "#mum",canvasText, makeOutput,"SCT","ECA")
+    if (userCollectOutput): Canvases.append(thiscan)
+
+    '''
 
     #
     # HIT EFFICIENCY PER MODULE AND PLANE
     #
+    # pixel barrel hit efficiency map
+    PIXBAR_HitEffMaps = MakeHitEffMaps(hitEffDir, legendTitles, rootFiles, i, "PIX", "BAR", True, 0)
+    outputFileName =  outputDir+"/"+"PIXBAR_HitEffMaps_File_"+legendTitles[i]+"."+oFext
+    outputFileName = outputFileName.replace(" ","_")    
+    outputFileName = outputFileName.replace("(","_")    
+    outputFileName = outputFileName.replace(")","_")    
+    thiscan = DrawHitMaps(PIXBAR_HitEffMaps, outputFileName, "#eta ring", "#phi sector", "Hit eff.", 
+                          0.2, 0.96, "#mum",canvasText, makeOutput,"PIX","BAR", 3)
+    if (userCollectOutput): Canvases.append(thiscan)
+    
     # SCT barrel side 0 and side 1
     SCTBAR_s0HitEffMaps = MakeHitEffMaps(hitEffDir, legendTitles, rootFiles, i, "SCT", "BAR", True, 0)
     outputFileName =  outputDir+"/"+"SCTBAR_s0HitEffMaps_File_"+legendTitles[i]+"."+oFext
     outputFileName = outputFileName.replace(" ","_")    
     outputFileName = outputFileName.replace("(","_")    
     outputFileName = outputFileName.replace(")","_")    
-    DrawHitMaps(SCTBAR_s0HitEffMaps, outputFileName, "#eta ring", "#phi sector", "Hit eff.", 
-                0.2, 0.96, "#mum",canvasText, makeOutput,"SCT","BAR", 3)
+    thiscan = DrawHitMaps(SCTBAR_s0HitEffMaps, outputFileName, "#eta ring", "#phi sector", "Hit eff.", 
+                          0.2, 0.96, "#mum",canvasText, makeOutput,"SCT","BAR", 3)
+    if (userCollectOutput): Canvases.append(thiscan)
 
     SCTBAR_s1HitEffMaps = MakeHitEffMaps(hitEffDir, legendTitles, rootFiles, i, "sct", "BAR", True, 1)
     outputFileName =  outputDir+"/"+"SCTBAR_s1HitEffMaps_File_"+legendTitles[i]+"."+oFext
     outputFileName = outputFileName.replace(" ","_")    
     outputFileName = outputFileName.replace("(","_")    
     outputFileName = outputFileName.replace(")","_")    
-    DrawHitMaps(SCTBAR_s1HitEffMaps, outputFileName, "#eta ring", "#phi sector", "Hit eff.", 
-                0.2, 0.96, "#mum",canvasText, makeOutput,"SCT","BAR", 3)
-
-    # pixel barrel hit efficiency map
-    PIXBAR_HitEffMaps = MakeHitEffMaps(hitEffDir, legendTitles, rootFiles, i, "PIX", "BAR", True, 0)
-    outputFileName =  outputDir+"/"+"PIXBAR_HitEffMaps_File_"+legendTitles[i]+"."+oFext
-    outputFileName = outputFileName.replace(" ","_")    
-    outputFileName = outputFileName.replace("(","_")    
-    outputFileName = outputFileName.replace(")","_")    
-    DrawHitMaps(PIXBAR_HitEffMaps, outputFileName, "#eta ring", "#phi sector", "Hit eff.", 
-                0.2, 0.96, "#mum",canvasText, makeOutput,"PIX","BAR", 3)
+    thiscan = DrawHitMaps(SCTBAR_s1HitEffMaps, outputFileName, "#eta ring", "#phi sector", "Hit eff.", 
+                          0.2, 0.96, "#mum",canvasText, makeOutput,"SCT","BAR", 3)
+    if (userCollectOutput): Canvases.append(thiscan)
 
+    #
+    # Extended
+    #    
     if (userExtended):
         print " <MakeHitMapsPlots> Extended = True "
         PIXBAR_ExpectedHitMaps = MakeHitMaps(hitEffDir, legendTitles, rootFiles, i, "pixels", "BAR", True, 0, "hits")
@@ -139,6 +178,12 @@ for i in range(nFiles):
         DrawHitMaps(PIXBAR_OutliersMaps, outputFileName, "#eta ring", "#phi stave", "Outliers", 
                     0.2, 0.96, "#mum",canvasText,makeOutput)
 
-
+if (userCollectOutput):
+    print " <MakeResidualPlots> PsFile = ",psname
+    for canvas in Canvases:
+        print "  <MakeResidualPlots> storing canvas: ", canvas 
+        PsFile = canvas.Print(psname)
+    closePsFile(NullCanvas)
+        
 # reset the plots style
 execfile("AtlasStyle.py")
diff --git a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/share/MakeHitPlots.py b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/share/MakeHitPlots.py
index b02fc6394f6bde8653cb4a3b4d441fea9263460b..f36c69ae3a859ae5b91cd786858c371af9833215 100644
--- a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/share/MakeHitPlots.py
+++ b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/share/MakeHitPlots.py
@@ -1,15 +1,44 @@
 #
 # MakeHitPlots.py
 #
-TrackNTRTHits = MakePlots(genericTracksDir,legendTitles,markerColors,markerStyles,"Ntrthits_per_track","noFit",rootFiles,nFiles,normaliseHistos)
-DrawPlots(TrackNTRTHits, outputDir+"/"+"nTRTHits."+oFext, "TRT hits on track", "N Tracks",
-          "N TRT Hits", 0.18, 0.68, "",
-          canvasText,makeOutput, 0.15,0.88)
+
+print " <MakeResidualPlots.MakeResidualPlots> userCollectOutput=",userCollectOutput
+print "                                       userWebMonitoring=",userWebMonitoring
+#
+psname = "/Users/martis/projectes/atlas/alineament/webmonitoringtest/InDetAlignmentWebMonitor/trunk/WebPage/detailed_plots/2016/PlotsOfHits.pdf"
+if (userWebMonitoring):
+    psname = "/var/vhost/atlas-alignment/secure/detailed_plots/2016/PlotsOfHits.pdf"
+
+def initPsFile():
+    NullCanvas = TCanvas()
+    NullCanvas.Print(psname+"[")
+    return NullCanvas
+	
+def closePsFile(NullCanvas):
+    NullCanvas.Print(psname+"]")
+
+Canvases = []
+if (userCollectOutput):    
+    NullCanvas = initPsFile()
+
+##########################
+TrackNPIXHits = MakePlots(genericTracksDir,legendTitles,markerColors,markerStyles,"Npixhits_per_track","noFit",rootFiles,nFiles,normaliseHistos)
+thiscan = DrawPlots(TrackNPIXHits, outputDir+"/"+"nPIXHits."+oFext, "", "N Tracks",
+                    "N PIX Hits", 0.69, 0.6, "",
+                    canvasText,makeOutput)
+if (userCollectOutput): Canvases.append(thiscan)
 
 TrackNSCTHits = MakePlots(genericTracksDir,legendTitles,markerColors,markerStyles,"Nscthits_per_track","noFit",rootFiles,nFiles,normaliseHistos)
-DrawPlots(TrackNSCTHits, outputDir+"/"+"nSCTHits."+oFext, "", "N Tracks",
-          "N SCT Hits", 0.69, 0.6, "",
-          canvasText,makeOutput)
+thiscan = DrawPlots(TrackNSCTHits, outputDir+"/"+"nSCTHits."+oFext, "", "N Tracks",
+                    "N SCT Hits", 0.69, 0.6, "",
+                    canvasText,makeOutput)
+if (userCollectOutput): Canvases.append(thiscan)
+
+TrackNTRTHits = MakePlots(genericTracksDir,legendTitles,markerColors,markerStyles,"Ntrthits_per_track","noFit",rootFiles,nFiles,normaliseHistos)
+thiscan = DrawPlots(TrackNTRTHits, outputDir+"/"+"nTRTHits."+oFext, "TRT hits on track", "N Tracks",
+                    "N TRT Hits", 0.18, 0.68, "",
+                    canvasText,makeOutput, 0.15,0.88)
+if (userCollectOutput): Canvases.append(thiscan)
 
 TrackNSCTHitsBarrel = MakePlots(genericTracksDir,legendTitles,markerColors,markerStyles,"Nscthits_per_track_barrel","noFit",rootFiles,nFiles,normaliseHistos)
 DrawPlots(TrackNSCTHitsBarrel, outputDir+"/"+"nSCTHitsBarrel."+oFext, "", "N Tracks",
@@ -26,11 +55,6 @@ DrawPlots(TrackNSCTHitsEcc, outputDir+"/"+"nSCTHitsEcc."+oFext, "", "N Tracks",
           "N SCT Hits Ecc", 0.69, 0.6, "",
           canvasText,makeOutput)
 
-TrackNPIXHits = MakePlots(genericTracksDir,legendTitles,markerColors,markerStyles,"Npixhits_per_track","noFit",rootFiles,nFiles,normaliseHistos)
-DrawPlots(TrackNPIXHits, outputDir+"/"+"nPIXHits."+oFext, "", "N Tracks",
-          "N PIX Hits", 0.69, 0.6, "",
-          canvasText,makeOutput)
-
 TrackNPIXHitsBarrel = MakePlots(genericTracksDir,legendTitles,markerColors,markerStyles,"Npixhits_per_track_barrel","noFit",rootFiles,nFiles,normaliseHistos)
 DrawPlots(TrackNPIXHitsBarrel, outputDir+"/"+"nPIXHitsBarrel."+oFext, "", "N Tracks",
           "N PIX Hits Barrel", 0.69, 0.6, "",
@@ -99,13 +123,13 @@ DrawPlots(TRTB2HitEff, outputDir+"/"+"TRTB2HitEff."+oFext, "TRT Barrel Layer 2 H
 #          canvasText,makeOutput,0.60,0.41,False)
 
 
-if (userExtended):
-    PIXHits = MakeProfPlots (genericTracksDir,legendTitles,markerColors,markerStyles,"PIXHitsvEta","noFit",rootFiles,nFiles, False)
-    DrawPlots(PIXHits,outputDir+"/"+"NPIXvsETA.png","","Average PIX hits", "#eta",0.2,0.9,"", canvasText,makeOutput, 0.60, 0.91, False);
-    SCTHits = MakeProfPlots (genericTracksDir,legendTitles,markerColors,markerStyles,"SCTHitsvEta","noFit",rootFiles,nFiles, False)
-    DrawPlots(SCTHits,outputDir+"/"+"NSCTvsETA.png","","Average SCT hits", "#eta",0.2,0.9,"", canvasText,makeOutput, 0.60, 0.91, False);
-    TRTHits = MakeProfPlots (genericTracksDir,legendTitles,markerColors,markerStyles,"TRTHitsvEta","noFit",rootFiles,nFiles, False)
-    DrawPlots(TRTHits,outputDir+"/"+"NTRTvsETA.png","","Average TRT hits", "#eta",0.2,0.9,"", canvasText,makeOutput, 0.60, 0.91, False);
+#if (userExtended):
+#    PIXHits = MakeProfPlots (genericTracksDir,legendTitles,markerColors,markerStyles,"PIXHitsvEta","noFit",rootFiles,nFiles, False)
+#    DrawPlots(PIXHits,outputDir+"/"+"NPIXvsETA.png","","Average PIX hits", "#eta",0.2,0.9,"", canvasText,makeOutput, 0.60, 0.91, False);
+#    SCTHits = MakeProfPlots (genericTracksDir,legendTitles,markerColors,markerStyles,"SCTHitsvEta","noFit",rootFiles,nFiles, False)
+#    DrawPlots(SCTHits,outputDir+"/"+"NSCTvsETA.png","","Average SCT hits", "#eta",0.2,0.9,"", canvasText,makeOutput, 0.60, 0.91, False);
+#    TRTHits = MakeProfPlots (genericTracksDir,legendTitles,markerColors,markerStyles,"TRTHitsvEta","noFit",rootFiles,nFiles, False)
+#    DrawPlots(TRTHits,outputDir+"/"+"NTRTvsETA.png","","Average TRT hits", "#eta",0.2,0.9,"", canvasText,makeOutput, 0.60, 0.91, False);
 
 
 # SivsTRT
@@ -120,14 +144,23 @@ if siTRTDir[0] != "":
               "Track Phi", 0.19, 0.41, "",
               canvasText,makeOutput,0.60,0.41,False)
 
-
+#    
 NTracks = MakePlots(genericTracksDir,legendTitles,markerColors,markerStyles,"NPixPerLumiBlock","noFit",rootFiles,nFiles,False)
-DrawPlots(NTracks, outputDir+"/"+"NPixPerLumiBlock.png", "", "# pixel hits", "LumiBlock", 0.19, 0.9, "#mum", canvasText,makeOutput)
+thiscan = DrawPlots(NTracks, outputDir+"/"+"NPixPerLumiBlock.png", "Pixel hits vs LumiBlock", "#PIXEL hits", "LumiBlock", 0.19, 0.9, "#mum", canvasText,makeOutput)
+if (userCollectOutput): Canvases.append(thiscan)
 
 NTracks = MakePlots(genericTracksDir,legendTitles,markerColors,markerStyles,"NSCTPerLumiBlock","noFit",rootFiles,nFiles,False)
-DrawPlots(NTracks, outputDir+"/"+"NSCTPerLumiBlock.png", "", "#SCT hits", "LumiBlock", 0.19, 0.9, "#mum", canvasText,makeOutput)
-
+thiscan = DrawPlots(NTracks, outputDir+"/"+"NSCTPerLumiBlock.png", "SCT hits vs LumiBlock", "#SCT hits", "LumiBlock", 0.19, 0.9, "#mum", canvasText,makeOutput)
+if (userCollectOutput): Canvases.append(thiscan)
+    
 NTracks = MakePlots(genericTracksDir,legendTitles,markerColors,markerStyles,"NTRTPerLumiBlock","noFit",rootFiles,nFiles,False)
-DrawPlots(NTracks, outputDir+"/"+"NTRTPerLumiBlock.png", "", "#TRT hits", "LumiBlock", 0.19, 0.9, "#mum", canvasText,makeOutput)
-
+thiscan = DrawPlots(NTracks, outputDir+"/"+"NTRTPerLumiBlock.png", "TRT hits vs LumiBlock", "#TRT hits", "LumiBlock", 0.19, 0.9, "#mum", canvasText,makeOutput)
+if (userCollectOutput): Canvases.append(thiscan)
+
+if (userCollectOutput):
+    print " <MakeHitPlots> PsFile = ",psname
+    for canvas in Canvases:
+        print "  <MakeHitPlots> storing canvas: ", canvas 
+        PsFile = canvas.Print(psname)
+    closePsFile(NullCanvas)
 
diff --git a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/share/MakeMajorAlignMonPlots.py b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/share/MakeMajorAlignMonPlots.py
index 8b4d672185ed3bd97153367bca77d24c9c5f7ae5..5e04c06c68a4798198ee981de2667666f01edeb4 100755
--- a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/share/MakeMajorAlignMonPlots.py
+++ b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/share/MakeMajorAlignMonPlots.py
@@ -36,7 +36,9 @@ def optParsing():
 	parser = OptionParser()
 	parser.add_option("--ALL", dest="inputALL", help="Do plot all categories apart from Track Segments", action="store_true", default = False)
 	parser.add_option("--BeamSpot", dest="inputBeamSpot", help="Plot beam spot related histograms", action="store_true",default=False)
+	parser.add_option("--canvasText", dest="canvasText", help="Global labels for all the plots (max 4 labels)", default="")
 	parser.add_option("--Clusters", dest="inputClusters", help="Plot of cluster size and residuals vs cluster size", action="store_true",default=False)
+	parser.add_option("--collectOutput", dest="collectOutput", help= "if output is stored as pdf, then they are collected in one single file", action="store_true", default = False)
 	parser.add_option("--Cosmetics", dest="inputCosmetics", help="choose among listed plot cosmetics (Default, ApprovedPlots...", default="")
 	parser.add_option("--eps", dest="inputEPS", help="output files saved as EPSs", action="store_true", default = False)
 	parser.add_option("--Extended", dest="inputExtended", help="Draw more plots", action="store_true", default = False)
@@ -44,8 +46,16 @@ def optParsing():
 	parser.add_option("--HitMaps", dest="inputHitMaps", help="Do hit maps plots for all systems layer by layer", action="store_true",default=False)
 	parser.add_option("--Hits", dest="inputHits", help="Do hit plots for all systems and layer by layer", action="store_true",default=False)
 	parser.add_option("--IBLresiduals", dest="inputIBL", help="print detailed residual distributions in IBL", action="store_true", default = False)
+	parser.add_option("--inputColors",dest="inputColors",help="colors to be used with the input files", default = "")
+	parser.add_option("--inputFiles",dest="inputFiles",help="list of files", default = "")
+	parser.add_option("--inputLabels",dest="inputLabels",help="labels to be used with the input files", default = "")
+	parser.add_option("--inputMarkers",dest="inputMarkers",help="markers to be used with the input files", default = "")
+	parser.add_option("--inputTrackCollection", dest="inputTrackCollection",help = "Track collection to be drawn from an input file", default ="")
+	parser.add_option("--inputFolder", dest="inputFolder",help = "Main folder of the input files where monitoring histograms are kept", default ="")
 	parser.add_option("--Modules", dest="inputResByModule", help="Print the residuals module by module", action="store_true", default=False)
+	parser.add_option("--outputFolder", dest="outputFolder", help= "Name of the folder where output files are kept", default ="../plots")
 	parser.add_option("--pdf", dest="inputPDF", help="output files saved as PDFs", action="store_true", default = False)
+	parser.add_option("--Prefix", dest="inputPrefix", help="prexif added to all output file names", default = "")
 	parser.add_option("--Pulls", dest="inputPulls", help="Do pulls plots for all systems and then layer by layer", action="store_true",default=False)
 	parser.add_option("--ResidualMaps", dest="inputResidualMaps", help="Do residuals plots for all systems layer by layer", action="store_true",default=False)
 	parser.add_option("--Residuals", dest="inputResiduals", help="Do residuals plots for all systems and then layer by layer", action="store_true",default=False)
@@ -54,11 +64,7 @@ def optParsing():
 	parser.add_option("--ShowPlots", dest="inputSetBatch", help="When ShowPlots is used the histogram display is open", action="store_false", default=True)
 	parser.add_option("--TrackParams", dest="inputTrackParams", help="Do track parameter plots", action="store_true",default=False)
 	parser.add_option("--TrackSegments", dest="inputTrackSegments", help="Do track segment matching plots", action="store_true",default=False)
-	parser.add_option("--inputFiles",dest="inputFiles",help="list of files", default = "")
-	parser.add_option("--inputLabels",dest="inputLabels",help="labels to be used with the input files", default = "")
-	parser.add_option("--inputMarkers",dest="inputMarkers",help="markers to be used with the input files", default = "")
-	parser.add_option("--inputTrackCollection", dest="inputTrackCollection",help = "Track collection to be drawn from an input file", default ="")
-	parser.add_option("--inputFolder", dest="inputFolder",help = "Main folder of the input files where monitoring histograms are kept", default ="")
+	parser.add_option("--WebMonitoring", dest="WebMonitoring", help="to be set in case of producing output for the web monitoring", action="store_true",default=False)
     
 	(config, sys.argv[1:]) = parser.parse_args(sys.argv[1:])
 
@@ -90,22 +96,28 @@ userCosmetics = config.inputCosmetics
 userInputFiles = config.inputFiles.split()
 userInputLabels = config.inputLabels.split()
 userInputMarkers = config.inputMarkers.split()
+userColors = config.inputColors.split()
 userInputTrackCollection = config.inputTrackCollection.split()
 userInputFolder = config.inputFolder.split()
+userOuputFolder = config.outputFolder
+userCollectOutput = config.collectOutput and userPDF
+userWebMonitoring = config.WebMonitoring
+userCanvasText = config.canvasText.split()
+userPrefix = config.inputPrefix    
 
 if (config.inputALL):
-    userHitErrors = True
+    userHitErrors = False
     userHitMaps = True
     userHits = True
-    userIBL = True
+    userIBL = False
     userPulls = True
-    userResidualMaps = True
+    userResidualMaps = False
     userResiduals = True
     userTrackParams = True
     userExtended = True
     userResByModule = False # as this plots to many histograms, this can be only activated on purpose
-    userBeamSpot = True
-    userClusters = True
+    userBeamSpot = False
+    userClusters = False
 
 
 
@@ -114,6 +126,10 @@ configFileName = ""
 makeOutput = True
 if (userSetBatch): 
     gROOT.SetBatch()
+#
+outputFileExtension = "png"
+if (userPDF): outputFileExtension="pdf"
+
 #
 doResiduals = False or userResiduals 
 doResidualProfiles = False 
diff --git a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/share/MakeResidualPlots.py b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/share/MakeResidualPlots.py
index adc3d041dcf684239a821861395843d41c17421b..6de0feefa1ccc36d0bb247aaff163d6fe3a67c3c 100644
--- a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/share/MakeResidualPlots.py
+++ b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/share/MakeResidualPlots.py
@@ -2,19 +2,51 @@
 #
 # Basic Barrel Residual distributions
 #
+print " <MakeResidualPlots.MakeResidualPlots> userCollectOutput=",userCollectOutput
+print "                                       userWebMonitoring=",userWebMonitoring
+#
+psname = "/Users/martis/projectes/atlas/alineament/webmonitoringtest/InDetAlignmentWebMonitor/trunk/WebPage/detailed_plots/2016/ResidualDistributions.pdf"
+if (userWebMonitoring):
+    psname = "/var/vhost/atlas-alignment/secure/detailed_plots/2016/ResidualDistributions.pdf"
+
+def initPsFile():
+    NullCanvas = TCanvas()
+    NullCanvas.Print(psname+"[")
+    return NullCanvas
+	
+def closePsFile(NullCanvas):
+    NullCanvas.Print(psname+"]")
+
+Canvases = []
+if (userCollectOutput):    
+    NullCanvas = initPsFile()
+    
+
 # Pixel
-PIXX = MakePlots(residualsDir,legendTitles,markerColors,markerStyles,"pix_b_residualx","noFitWithStats",rootFiles,nFiles,normaliseHistos)#,unitArea)
-DrawPlots(PIXX, outputDir+"/"+"PIXX."+oFext, "Pixel barrel + IBL", "Hits on tracks / 12 #mum",
-          "Local x residual [mm]", 0.18, 0.88, "#mum",canvasText,makeOutput,0.59, 0.87)
+PIXX0 = MakePlots(residualsDir,legendTitles,markerColors,markerStyles,"pix_b0_residualx","noFitWithStats",rootFiles,nFiles,normaliseHistos,unitArea)
+thiscan = DrawPlots(PIXX0, outputDir+"/"+"PIXIBL_X."+oFext, "IBL", "Hits on tracks / 12 #mum",
+                    "Local x residual [mm]", 0.18, 0.88, "#mum",canvasText,makeOutput,0.59, 0.87)
+if (userCollectOutput): Canvases.append(thiscan)
 
+thiscan = DrawEvolutionPlot(PIXX0, outputDir+"/"+"Evol_PIXIBL_X."+oFext, "Pixel Barrel IBL", "Mean local x residual [mm]", 0.15, 0.89, "#mum",canvasText,makeOutput,0.60, 0.88)    
+if (userCollectOutput): Canvases.append(thiscan)
+
+PIXX = MakePlots(residualsDir,legendTitles,markerColors,markerStyles,"pix_b_residualx","noFitWithStats",rootFiles,nFiles,normaliseHistos)#,unitArea)
+thiscan = DrawPlots(PIXX, outputDir+"/"+"PIXX."+oFext, "Pixel barrel + IBL", "Hits on tracks / 12 #mum",
+                    "Local x residual [mm]", 0.18, 0.88, "#mum",canvasText,makeOutput,0.59, 0.87)
+if (userCollectOutput): Canvases.append(thiscan)
+    
 PIXY = MakePlots(residualsDir,legendTitles,markerColors,markerStyles,"pix_b_residualy","noFitWithStats",rootFiles,nFiles,normaliseHistos)#,unitArea)
-DrawPlots(PIXY, outputDir+"/"+"PIXY."+oFext, "Pixel barrel + IBL", "Hits on tracks / 16 #mum",
-          "Local y residual [mm]", 0.18, 0.88, "#mum",canvasText,makeOutput,0.59, 0.87)
+thiscan = DrawPlots(PIXY, outputDir+"/"+"PIXY."+oFext, "Pixel barrel + IBL", "Hits on tracks / 16 #mum",
+                    "Local y residual [mm]", 0.18, 0.88, "#mum",canvasText,makeOutput,0.59, 0.87)
+if (userCollectOutput): Canvases.append(thiscan)
 
 # SCT
 SCTX = MakePlots(residualsDir,legendTitles,markerColors,markerStyles,"sct_b_residualx","noFitWithStats",rootFiles,nFiles,normaliseHistos)#,unitArea)
-DrawPlots(SCTX, outputDir+"/"+"SCTX."+oFext, "SCT barrel", "Hits on tracks / 8 #mum",
-          "Local x residual [mm]", 0.18, 0.88, "#mum",canvasText,makeOutput,0.59, 0.87)
+thiscan = DrawPlots(SCTX, outputDir+"/"+"SCTX."+oFext, "SCT barrel", "Hits on tracks / 8 #mum",
+                    "Local x residual [mm]", 0.18, 0.88, "#mum",canvasText,makeOutput,0.59, 0.87)
+if (userCollectOutput): Canvases.append(thiscan)
+print " <MakeResidualPlots> canvases: ",len(Canvases), " --> ", Canvases 
 
 #SCTY = MakePlots(residualsDir,legendTitles,markerColors,markerStyles,"sct_b_residualy","noFitWithStats",rootFiles,nFiles,normaliseHistos)#,unitArea)
 #DrawPlots(SCTY, outputDir+"/"+"SCTY."+oFext, "SCT barrel", "Hits on tracks / 10 #mum",
@@ -22,23 +54,21 @@ DrawPlots(SCTX, outputDir+"/"+"SCTX."+oFext, "SCT barrel", "Hits on tracks / 8 #
 
 # TRT
 TRTR = MakePlots(trtResidualsDir,legendTitles,markerColors,markerStyles,"trt_b_residualR","noFitWithStats",rootFiles,nFiles,normaliseHistos)#,unitArea)
-DrawPlots(TRTR, outputDir+"/"+"TRTR."+oFext, "TRT barrel", "Hits on tracks / 22 #mum",
-          "residual [mm]", 0.18, 0.88, "#mum",canvasText,makeOutput,0.59, 0.87)
-
+thiscan = DrawPlots(TRTR, outputDir+"/"+"TRTR."+oFext, "TRT barrel", "Hits on tracks / 22 #mum",
+                    "residual [mm]", 0.18, 0.88, "#mum",canvasText,makeOutput,0.59, 0.87)
+if (userCollectOutput): Canvases.append(thiscan)
+    
 ## Individual Barrel Layer Residual Distributions
-
-PIXX0 = MakePlots(residualsDir,legendTitles,markerColors,markerStyles,"pix_b0_residualx","noFitWithStats",rootFiles,nFiles,normaliseHistos,unitArea)
-DrawPlots(PIXX0, outputDir+"/"+"PIXIBL_X."+oFext, "IBL", "Hits on tracks / 12 #mum",
-          "Local x residual [mm]", 0.18, 0.88, "#mum",canvasText,makeOutput,0.59, 0.87)
-
 PIXX1 = MakePlots(residualsDir,legendTitles,markerColors,markerStyles,"pix_b1_residualx","noFitWithStats",rootFiles,nFiles,normaliseHistos,unitArea)
-DrawPlots(PIXX1, outputDir+"/"+"PIXX1."+oFext, "Pixel Barrel L0", "Hits on tracks / 12 #mum",
-          "Local x residual [mm]", 0.18, 0.88, "#mum",canvasText,makeOutput,0.59, 0.87)
-
+thiscan = DrawPlots(PIXX1, outputDir+"/"+"PIXX1."+oFext, "Pixel Barrel L0", "Hits on tracks / 12 #mum",
+                    "Local x residual [mm]", 0.18, 0.88, "#mum",canvasText,makeOutput,0.59, 0.87)
+if (userCollectOutput): Canvases.append(thiscan)
+    
 PIXX2 = MakePlots(residualsDir,legendTitles,markerColors,markerStyles,"pix_b2_residualx","noFitWithStats",rootFiles,nFiles,normaliseHistos,unitArea)
-DrawPlots(PIXX2, outputDir+"/"+"PIXX2."+oFext, "Pixel Barrel L1", "Hits on tracks / 12 #mum",
-          "Local x residual [mm]", 0.18, 0.88, "#mum",canvasText,makeOutput,0.59, 0.87)
-
+thiscan = DrawPlots(PIXX2, outputDir+"/"+"PIXX2."+oFext, "Pixel Barrel L1", "Hits on tracks / 12 #mum",
+                    "Local x residual [mm]", 0.18, 0.88, "#mum",canvasText,makeOutput,0.59, 0.87)
+if (userCollectOutput): Canvases.append(thiscan)
+    
 PIXX3 = MakePlots(residualsDir,legendTitles,markerColors,markerStyles,"pix_b3_residualx","noFitWithStats",rootFiles,nFiles,normaliseHistos,unitArea)
 DrawPlots(PIXX3, outputDir+"/"+"PIXX3."+oFext, "Pixel Barrel L2", "Hits on tracks / 12 #mum",
           "Local x residual [mm]", 0.18, 0.88, "#mum",canvasText,makeOutput,0.59, 0.87)
@@ -346,7 +376,7 @@ if (userExtended or True):
 
 
 
-if (userExtended):
+if (userExtended and userClusters):
     PIXX0vsINCANG = MakeProfPlots(residualsDir,legendTitles,markerColors,markerStyles,"pix_b0_residualx_inciphi","noFit",rootFiles,nFiles,True)
     DrawPlots(PIXX0vsINCANG,outputDir+"/"+"PIXIBL_XvsINCANG."+oFext,"IBL","Local x residual [mm]","Incident angle [radians]",0.15,0.89,"#mum", canvasText,makeOutput, 0.59, 0.87, False);
     
@@ -426,4 +456,11 @@ if (userExtended):
     DrawPlots(SCTSides, outputDir+"/"+"SCT_sides."+oFext, "SCT Layer 0 sides", "Average local x residual [mm]",
               "local x residual [mm]", 0.17, 0.89, "#mum",canvasText,makeOutput,0.65,0.89, False)
 
+if (userCollectOutput):
+    print " <MakeResidualPlots> PsFile = ",psname
+    for canvas in Canvases:
+        print "  <MakeResidualPlots> storing canvas: ", canvas 
+        PsFile = canvas.Print(psname)
+    closePsFile(NullCanvas)
+
 print " -- MakeResidualPlots -- completed "
diff --git a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/share/MakeTrackParamsPlots.py b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/share/MakeTrackParamsPlots.py
index bd0584936dfe72333d513c20bf1d483ef7081cf4..44634c5b703360bcd681951cbce02c47697c8dc7 100644
--- a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/share/MakeTrackParamsPlots.py
+++ b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/share/MakeTrackParamsPlots.py
@@ -8,15 +8,15 @@ DrawPlots(TrackD0, outputDir+"/"+"d0.png", "", "N Tracks",
 TrackD0 = MakePlots(genericTracksDir,legendTitles,markerColors,markerStyles,"d0_bscorr","noFitWithStats",rootFiles,nFiles,normaliseHistos)
 DrawPlots(TrackD0, outputDir+"/"+"d0BS.png", "", "N Tracks", "Impact Parameter [mm]", 0.19, 0.9, "#mum", canvasText, makeOutput)
 
-TrackD0 = MakePlots(genericTracksDir,legendTitles,markerColors,markerStyles,"d0_pvcorr","noFitWithStats",rootFiles,nFiles,normaliseHistos)
-DrawPlots(TrackD0, outputDir+"/"+"d0PV.png", "", "N Tracks",
-          "Impact Parameter [mm]", 0.19, 0.9, "#mum",
-          canvasText,makeOutput)
+#TrackD0 = MakePlots(genericTracksDir,legendTitles,markerColors,markerStyles,"d0_pvcorr","noFitWithStats",rootFiles,nFiles,normaliseHistos)
+#DrawPlots(TrackD0, outputDir+"/"+"d0PV.png", "", "N Tracks",
+#          "Impact Parameter [mm]", 0.19, 0.9, "#mum",
+#          canvasText,makeOutput)
 
-TrackZ0PV = MakePlots(genericTracksDir,legendTitles,markerColors,markerStyles,"z0_pvcorr","noFitWithStats",rootFiles,nFiles,normaliseHistos)
-DrawPlots(TrackZ0PV, outputDir+"/"+"z0PV.png", "", "N Tracks",
-          "z0 w.r.t PV [mm]", 0.19, 0.9, "#mum",
-          canvasText,makeOutput)
+#TrackZ0PV = MakePlots(genericTracksDir,legendTitles,markerColors,markerStyles,"z0_pvcorr","noFitWithStats",rootFiles,nFiles,normaliseHistos)
+#DrawPlots(TrackZ0PV, outputDir+"/"+"z0PV.png", "", "N Tracks",
+#          "z0 w.r.t PV [mm]", 0.19, 0.9, "#mum",
+#          canvasText,makeOutput)
 
 
 TrackZ0 = MakePlots(genericTracksDir,legendTitles,markerColors,markerStyles,"z0","noFit",rootFiles,nFiles,normaliseHistos)
@@ -70,7 +70,8 @@ DrawPlots(TrackCHI2DOF, outputDir+"/"+"chi2oDoF.png", "", "N Tracks",
           "Chi2/DOF", 0.69, 0.6, "",
           canvasText,makeOutput)
 
-if (userExtended):
+errD0 = False
+if (userExtended and errD0):
     ERRD0VSP = MakeProfPlots (genericTracksDir,legendTitles,markerColors,markerStyles,"errD0VsP","noFit",rootFiles,nFiles,False)
     DrawPlots(ERRD0VSP,outputDir+"/"+"D0ErrorVsP.png","","#sigma d_{0} [mm]", "p [GeV]",0.2,0.9,"#mum", canvasText,makeOutput, 0.60, 0.80, False);
 
diff --git a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/share/userConfig.py b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/share/userConfig.py
index 1225053ace41f3403e23b5b308353b34ac41360a..fd83c60a13cf78d696c8df5a51284680d3126a76 100644
--- a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/share/userConfig.py
+++ b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/share/userConfig.py
@@ -3,28 +3,39 @@
 #
 # in this file the user configures the input files, the directories from where the histograms are imported and the kind of output
 #
+doDebug = True
 
-outputDir = "../plots" # this sets the output directory where plot gifs will be saved
+print " <userConfig> -- START -- "
+print "           userPDF:", userPDF
+print "   userOuputFolder:", userOuputFolder
+
+outputDir = "../plots_2016_initial" # this sets the output directory where plot gifs will be saved
+if (userOuputFolder):
+    outputDir = userOuputFolder
+    if (doDebug): print " <userConfig> output folder set to: ", outputDir
 
 # output type
 oFext="png" # output file extention without the dot
 if (userPDF): oFext="pdf"
 
 ####
-canvasText   = ["Run 284285", "After L11", "AlignTracks",""] #specifies additional canvas text
-    
+canvasText   = [" ", " ", "",""] #specifies additional canvas text
+if (len(userCanvasText)>=1):
+    canvasText = SetCanvasText(userCanvasText)
+
+####
 normaliseHistos = True # set to true if you want to normalise to same area
 unitArea = False # set to true if you want to draw residual histos to unit area
 
     
 # specify the ROOT histogram files containing the monitoring plots here
 
-SetNextInputFile("/afs/cern.ch/work/m/martis/public/athena/Nov15Align/runAlign/Run_284484/Iter0_284484_L11/collisions/TotalMonitoring.root", "Initial 25NS", kFullCircle, kRed+1,"AlignTracks_all","run_284484")
-SetNextInputFile("/afs/cern.ch/work/m/martis/public/athena/Nov15Align/runAlign/Run_284484/Iter1_284484_L11/collisions/TotalMonitoring.root", "After L11", kOpenSquare, kGray+3,"AlignTracks_all","run_284484")
+SetNextInputFile("/afs/cern.ch/user/h/hoide/workdir/alignment/2016InitialAlign/20.7.5.7/run297041/Iter1pass1/collisions/TotalMonitoring.root", "297041 Iter1", kOpenSquare, kGray+3,"AlignTracks_all","run_297041")
+SetNextInputFile("/afs/cern.ch/user/h/hoide/workdir/alignment/2016InitialAlign/20.7.5.7/run297041/Iter0pass1/collisions/TotalMonitoring.root", "297041 Iter0", kOpenSquare, kOrange+3,"AlignTracks_all","run_297041")
 
 
 # when arguments are passed from command line
-print "Number of input files = ", len(userInputFiles)
+print " <userConfig> Number of input files = ", len(userInputFiles)
 if (len(userInputFiles)>0):
     # clean current list
     theInputFileList[:]= []
@@ -52,18 +63,21 @@ if (len(userInputFiles)>0):
         defaultInputFolder = basicInputFolder
         
         thisLabel = defaultLabel
-        if (i+1<len(userInputLabels)): thisLabel = userInputLabels[i]
+        if (i+1<=len(userInputLabels)): thisLabel = userInputLabels[i]
 
         thisMarker = defaultMarker
-        if (i+1<len(userInputMarkers)): thisMarker = userInputMarkers[i]
+        if (i+1<=len(userInputMarkers)): thisMarker = userInputMarkers[i]
 
         thisTrackCollection = defaultTrackCollection 
-        if (i+1<len(userInputTrackCollection)): thisTrackCollection = userInputTrackCollection[i]   
+        if (i+1<=len(userInputTrackCollection)): thisTrackCollection = userInputTrackCollection[i]   
 
         thisInputFolder = defaultInputFolder
-        if (i+1<len(userInputFolder)): thisInputFolder = userInputFolder[i]   
+        if (i+1<=len(userInputFolder)): thisInputFolder = userInputFolder[i]   
+
+        thisColor = defaultColor
+        if (i+1<=len(userColors)): thisColor = userColors[i]   
 
-        if (False):    
+        if (True):    
             print " file ", i, " --> ", userInputFiles[i]
             print "         label  --> ", thisLabel
             print "         marker --> ", thisMarker
@@ -71,7 +85,7 @@ if (len(userInputFiles)>0):
             print "         trks   --> ", thisTrackCollection
             print "         folder --> ", thisInputFolder
         
-        SetNextInputFile(userInputFiles[i], thisLabel, thisMarker, defaultColor, thisTrackCollection, thisInputFolder)
+        SetNextInputFile(userInputFiles[i], thisLabel, thisMarker, thisColor, thisTrackCollection, thisInputFolder)
 
 
 #following array determines ROOT file folders. 
diff --git a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/share/utilities.py b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/share/utilities.py
index ec9dead393f1158da2ab9221687afb127cda27b8..b08fbb5996201c2dda6cc13b344cf75cfe55e4c1 100644
--- a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/share/utilities.py
+++ b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/share/utilities.py
@@ -507,13 +507,16 @@ def DrawPlots(inputTuple, outputName, plotTitle, yAxisTitle, xAxisTitle, legendL
         marker9 = legendTuple[0]
         marker9.Draw("same")
 
-    if (debug): print " <DrawPlots> going to save file ... "
+    if (debug): print " <DrawPlots> going to save file ... as ", outputName
+    print " <DrawPlots> going to save file ... as ", outputName
 
     if makeOutput:
         can.SaveAs(outputName)
+        print " <DrawPlots> file ", outputName, " succesfuly stored "
 
     if (debug): print " <DrawPlots> -- completed -- "
-
+    return can    
+        
 ##########################################################################################################
 def DrawEvolutionPlot(inputTuple, outputName, plotTitle, yAxisTitle, legendLeftX, legendUpperY, units, 
               canvasText, makeOutput, textBoxLeftX=0.59, textBoxUpperY=0.87, dynamicYRange=True, plotCosmetics="Default"):
@@ -557,6 +560,7 @@ def DrawEvolutionPlot(inputTuple, outputName, plotTitle, yAxisTitle, legendLeftX
         can.SaveAs(outputName)
         
     if (debug): print " <DrawEvolutionPlot> -- completed -- "
+    return can
 ###########################################################################################################################################
 def MakePlots2D(histogramDir,legendTitles,markerColors,markerStyles,histogramName,rootFiles,nFiles,profile=False):
     debug = False
@@ -1189,6 +1193,14 @@ def MakeProfPlotsFrom3D(histogramDir,legendTitles,markerColors,markerStyles,hist
     normaliseHistos = False # not normalization
     unitArea = False # not unit area
 
+    # make sure the styles are integers
+    markerStyle = []
+    for marker in markerStyles:
+        markerStyle.append(int(marker))
+    markerColor = []
+    for marker in markerColors:
+        markerColor.append(int(marker))
+    
     # in case we limit the range of bins
     rangeLimit = False
     if (binRangeLower > 0): rangeLimit = True
@@ -1241,7 +1253,7 @@ def MakeProfPlotsFrom3D(histogramDir,legendTitles,markerColors,markerStyles,hist
         if tempProf[i].GetMinimum() < -maxval:
             maxval = -tempProf[i].GetMinimum()
         maxval = 1.20 * maxval
-        maxval = 0.009
+        maxval = 0.020
         if (SubtractFirstHistoTest): maxval = 0.020
         #if (maxval < 0.45): maxval = 0.450
         #if (maxval < 0.10): maxval = 0.100
@@ -1249,9 +1261,9 @@ def MakeProfPlotsFrom3D(histogramDir,legendTitles,markerColors,markerStyles,hist
         # build the returned histograms
         returnHistogram[i] = TH1F("new_"+histoGram[i].GetName(), histoGram[i].GetTitle(),                                  
                            histoGram[i].GetNbinsX(), histoGram[i].GetXaxis().GetXmin(), histoGram[i].GetXaxis().GetXmax())
-        returnHistogram[i].SetMarkerStyle(markerStyles[i])
-        returnHistogram[i].SetMarkerColor(markerColors[i])
-        returnHistogram[i].SetLineColor(markerColors[i])
+        returnHistogram[i].SetMarkerStyle(markerStyle[i])
+        returnHistogram[i].SetMarkerColor(markerColor[i])
+        returnHistogram[i].SetLineColor(markerColor[i])
 
         for bin in range(histoGram[i].GetNbinsX()):
             returnHistogram[i].SetBinContent(bin+1, tempProf[i].GetBinContent(bin+1))
@@ -1389,6 +1401,15 @@ def MakexResSagittaPlotsFrom3D(histogramDir,legendTitles,markerColors,markerStyl
     normaliseHistos = False # not normalization
     unitArea = False # not unit area
 
+    # make sure the styles are integers
+    markerStyle = []
+    for marker in markerStyles:
+        markerStyle.append(int(marker))
+    markerColor = []
+    for marker in markerColors:
+        markerColor.append(int(marker))
+    
+
     # in case we limit the range of bins
     rangeLimit = False
     if (binRangeLower > 0): rangeLimit = True
@@ -1481,9 +1502,9 @@ def MakexResSagittaPlotsFrom3D(histogramDir,legendTitles,markerColors,markerStyl
         # buld the returned histograms
         returnHistogram[i] = TH1F("new_"+histoGram[i].GetName()+"_"+str(i), histoGram[i].GetTitle(),                                  
                            tempProf[i].GetNbinsX(), tempProf[i].GetXaxis().GetXmin(), tempProf[i].GetXaxis().GetXmax())
-        returnHistogram[i].SetMarkerStyle(markerStyles[i])
-        returnHistogram[i].SetMarkerColor(markerColors[i])
-        returnHistogram[i].SetLineColor(markerColors[i])
+        returnHistogram[i].SetMarkerStyle(markerStyle[i])
+        returnHistogram[i].SetMarkerColor(markerColor[i])
+        returnHistogram[i].SetLineColor(markerColor[i])
         
         for bin in range(tempProf[i].GetNbinsX()):
             if (bin == 14): continue
@@ -1627,6 +1648,14 @@ def MakeModuleResPlotsFrom3D(histogramDir,legendTitles,markerColors,markerStyles
     #if ring = -50 --> entire stave
     if (ring == -50): doStave = True
     if (True and doStave): print " <MakeModuleResPlotsFrom3D> === Draw the entire stave", sector
+
+    # make sure the styles are integers
+    markerStyle = []
+    for marker in markerStyles:
+        markerStyle.append(int(marker))
+    markerColor = []
+    for marker in markerColors:
+        markerColor.append(int(marker))
         
     # in case we limit the range of bins
     if ("pix_b0" in histogramName): # IBL
@@ -1665,10 +1694,10 @@ def MakeModuleResPlotsFrom3D(histogramDir,legendTitles,markerColors,markerStyles
         
         
         # perform the deired fit to the histogram
-        fit = MakeFit(returnHistogram[i], fitType, markerColors[i])
-        returnHistogram[i].SetMarkerStyle(markerStyles[i])
-        returnHistogram[i].SetMarkerColor(markerColors[i])
-        returnHistogram[i].SetLineColor(markerColors[i])
+        fit = MakeFit(returnHistogram[i], fitType, markerColor[i])
+        returnHistogram[i].SetMarkerStyle(markerStyle[i])
+        returnHistogram[i].SetMarkerColor(markerColor[i])
+        returnHistogram[i].SetLineColor(markerColor[i])
 
         # make a tuple object that can be passed to draw method
         Tuples[i] = returnTuple(fit, returnHistogram[i], legendTitles[i])
@@ -2188,6 +2217,11 @@ def MakeErrVsPtHisto(histogramName,histogramDir,rootFile):
 def GetHistogram(rootFile,histogramDir,histogramName,markerColor,markerStyle, fileID=0):
 
     debug = False
+
+    # make sure the styles are integers
+    markerStyle = int(markerStyle)
+    markerColor = int(markerColor)
+
     if (debug): 
         print " -- GetHistogram -- -- START -- -- "
         print "    rootFile = ", rootFile
@@ -2490,7 +2524,7 @@ def GetHistogram(rootFile,histogramDir,histogramName,markerColor,markerStyle, fi
         #or histogramName=="si_ecc_resX_mean" or histogramName=="si_eca_resX_mean" or histogramName=="si_barrel_resX_mean": Peo 
         histoGram.GetYaxis().SetRangeUser(-.02,.02) #pri
     if histogramName=="pix_b_yresvsmodphi" or histogramName=="pix_eca_yresvsmodphi" or histogramName=="pix_ecc_yresvsmodphi":
-        histoGram.GetYaxis().SetRangeUser(-.02,.02) #pri
+        histoGram.GetYaxis().SetRangeUser(-.1,.1) #pri
     if histogramName=="sct_b_xresvsmodeta" or histogramName=="pix_b_xresvsmodeta": 
         histoGram.GetYaxis().SetRangeUser(-.02,.02) #pri
     if histogramName=="sct_b_xresvsmodphi" or histogramName=="sct_eca_xresvsmodphi" or histogramName=="sct_ecc_xresvsmodphi":   
@@ -2632,6 +2666,9 @@ def RemoveNegativeYAxis(histoGram,histogramName):
 
 ###########################################################################        
 def MakeFit(histoGram, fitType, markerColor):
+
+    # make sure the styles are integers
+    markerColor = int(markerColor)
     
     if fitType=="noFit": #do not perform a fit
         fit = noFit(histoGram)
@@ -4013,7 +4050,7 @@ def DrawHitMaps(inputTuple, outputName, xAxisTitle, yAxisTitle, zAxisTitle, lege
     if makeOutput:
         can.SaveAs(outputName)
 
-    return
+    return can
 
 ###########################################################################################################################
 def DrawModuleGrid(detecName, inputHisto, layer=0):
@@ -4244,6 +4281,16 @@ def SetNextInputFile(myFile, myLegend, myMarker, myColor, myTrackColl="", myPref
     thePrefix.append(myPrefix)
 
     return
+
+##########################################################################################################
+def SetCanvasText(userText):
+    newcanvastext = ["","","",""]
+    if (len(userText)>=1): newcanvastext[0] = userText[0] 
+    if (len(userText)>=2): newcanvastext[1] = userText[1] 
+    if (len(userText)>=3): newcanvastext[2] = userText[2] 
+    if (len(userText)>=4): newcanvastext[3] = userText[3]
+    
+    return newcanvastext
 ##########################################################################################################
 def nFilesGiven():
 
diff --git a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonEfficiencies.cxx b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonEfficiencies.cxx
index 86790a0ed75081cceeda754b6dfef9148a504ab7..4da5b08dc2da132f0d189a79c8c5a91cd03b8291 100755
--- a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonEfficiencies.cxx
+++ b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonEfficiencies.cxx
@@ -220,6 +220,7 @@ IDAlignMonEfficiencies::IDAlignMonEfficiencies( const std::string & type, const
   m_maxSiliconEffWindow = 1.05;
   m_triggerChainName = "NoTriggerSelection";
   m_doHoleSearch = true;
+  m_extendedPlots= false;
 
   InitializeHistograms();
   
@@ -236,6 +237,7 @@ IDAlignMonEfficiencies::IDAlignMonEfficiencies( const std::string & type, const
   declareProperty("SCT_Manager"            , m_SCT_Manager);
   declareProperty("TRT_Manager"            , m_TRT_Manager);
   declareProperty("trackSumTool"           , m_trackSumTool);
+  declareProperty("useExtendedPlots"       , m_extendedPlots);
 }
 
 
@@ -509,26 +511,51 @@ StatusCode IDAlignMonEfficiencies::bookHistograms()
     for (int i=2; i<=nx;i++) m_noholes_vs_layer_ecc->GetXaxis()->SetBinLabel(i-1,siliconLayers[i-1]);     
     RegisterHisto(al_mon,m_noholes_vs_layer_ecc) ;  
 
-    m_overlapX_vs_layer_barrel = new TH1F("overlapX_vs_layer_barrel","X Overlap Hits (one per overlap) vs. layer in the barrel",12,-0.5,11.5);  
-    for (int i=1;i<=12;i++) m_overlapX_vs_layer_barrel->GetXaxis()->SetBinLabel(i,siliconLayers[i-1]);    
-    RegisterHisto(al_mon,m_overlapX_vs_layer_barrel);
-    m_overlapX_vs_layer_eca = new TH1F("overlapX_vs_layer_eca","X Overlap Hits (one per overlap) vs. layer in the barrel eca",21,-0.5,20.5);   
-    for (int i=2; i<=nx;i++) m_overlapX_vs_layer_eca->GetXaxis()->SetBinLabel(i-1,siliconLayers[i-1]);    
-    RegisterHisto(al_mon,m_overlapX_vs_layer_eca) ; 
-    m_overlapX_vs_layer_ecc = new TH1F("overlapX_vs_layer_ecc","X Overlap Hits (one per overlap) vs. layer in the barrel ecc",21,-0.5,20.5);    
-    for (int i=2; i<=nx;i++) m_overlapX_vs_layer_ecc->GetXaxis()->SetBinLabel(i-1,siliconLayers[i-1]);     
-    RegisterHisto(al_mon,m_overlapX_vs_layer_ecc) ; 
-
-    m_overlapY_vs_layer_barrel = new TH1F("overlapY_vs_layer_barrel","Y Overlap Hits (one per overlap) vs. layer in the barrel",12,-0.5,11.5);  
-    for (int i=1; i<=12;i++) m_overlapY_vs_layer_barrel->GetXaxis()->SetBinLabel(i,siliconLayers[i-1]);    
-    RegisterHisto(al_mon,m_overlapY_vs_layer_barrel);
-    m_overlapY_vs_layer_eca = new TH1F("overlapY_vs_layer_eca","Y Overlap Hits (one per overlap) vs. layer in the barrel eca",21,-0.5,20.5);   
-    for (int i=2; i<=nx;i++) m_overlapY_vs_layer_eca->GetXaxis()->SetBinLabel(i-1,siliconLayers[i-1]);    
-    RegisterHisto(al_mon,m_overlapY_vs_layer_eca) ; 
-    m_overlapY_vs_layer_ecc = new TH1F("overlapY_vs_layer_ecc","Y Overlap Hits (one per overlap) vs. layer in the barrel ecc",21,-0.5,20.5);    
-    for (int i=2; i<=nx;i++) m_overlapY_vs_layer_ecc->GetXaxis()->SetBinLabel(i-1,siliconLayers[i-1]);     
-    RegisterHisto(al_mon,m_overlapY_vs_layer_ecc) ; 
-
+    if (m_extendedPlots)
+      {
+	m_overlapX_vs_layer_barrel = new TH1F("overlapX_vs_layer_barrel","X Overlap Hits (one per overlap) vs. layer in the barrel",12,-0.5,11.5);  
+	for (int i=1;i<=12;i++) m_overlapX_vs_layer_barrel->GetXaxis()->SetBinLabel(i,siliconLayers[i-1]);    
+	RegisterHisto(al_mon,m_overlapX_vs_layer_barrel);
+	m_overlapX_vs_layer_eca = new TH1F("overlapX_vs_layer_eca","X Overlap Hits (one per overlap) vs. layer in the barrel eca",21,-0.5,20.5);   
+	for (int i=2; i<=nx;i++) m_overlapX_vs_layer_eca->GetXaxis()->SetBinLabel(i-1,siliconLayers[i-1]);    
+	RegisterHisto(al_mon,m_overlapX_vs_layer_eca) ; 
+	m_overlapX_vs_layer_ecc = new TH1F("overlapX_vs_layer_ecc","X Overlap Hits (one per overlap) vs. layer in the barrel ecc",21,-0.5,20.5);    
+	for (int i=2; i<=nx;i++) m_overlapX_vs_layer_ecc->GetXaxis()->SetBinLabel(i-1,siliconLayers[i-1]);     
+	RegisterHisto(al_mon,m_overlapX_vs_layer_ecc) ; 
+	
+	m_overlapY_vs_layer_barrel = new TH1F("overlapY_vs_layer_barrel","Y Overlap Hits (one per overlap) vs. layer in the barrel",12,-0.5,11.5);  
+	for (int i=1; i<=12;i++) m_overlapY_vs_layer_barrel->GetXaxis()->SetBinLabel(i,siliconLayers[i-1]);    
+	RegisterHisto(al_mon,m_overlapY_vs_layer_barrel);
+	m_overlapY_vs_layer_eca = new TH1F("overlapY_vs_layer_eca","Y Overlap Hits (one per overlap) vs. layer in the barrel eca",21,-0.5,20.5);   
+	for (int i=2; i<=nx;i++) m_overlapY_vs_layer_eca->GetXaxis()->SetBinLabel(i-1,siliconLayers[i-1]);    
+	RegisterHisto(al_mon,m_overlapY_vs_layer_eca) ; 
+	m_overlapY_vs_layer_ecc = new TH1F("overlapY_vs_layer_ecc","Y Overlap Hits (one per overlap) vs. layer in the barrel ecc",21,-0.5,20.5);    
+	for (int i=2; i<=nx;i++) m_overlapY_vs_layer_ecc->GetXaxis()->SetBinLabel(i-1,siliconLayers[i-1]);     
+	RegisterHisto(al_mon,m_overlapY_vs_layer_ecc) ; 
+	
+	m_overlapX_eff_vs_layer_barrel = new TProfile("overlapX_eff_vs_layer_barrel","fraction of OverlapX hits vs. layer in the barrel",12,-0.5,11.5, 0., 1.); 
+	for (int i=1; i<=12;i++) m_overlapX_eff_vs_layer_barrel->GetXaxis()->SetBinLabel(i,siliconLayers[i-1]); 
+	RegisterHisto(al_mon,m_overlapX_eff_vs_layer_barrel) ;  
+	m_overlapX_eff_vs_layer_eca = new TProfile("overlapX_eff_vs_layer_eca","fraction of OverlapX hits vs. layer in the eca",21,-0.5,20.5, 0., 1.); 
+	for (int i=2; i<=nx;i++) m_overlapX_eff_vs_layer_eca->GetXaxis()->SetBinLabel(i-1,siliconLayers[i-1]);    
+	RegisterHisto(al_mon,m_overlapX_eff_vs_layer_eca) ; 
+	m_overlapX_eff_vs_layer_ecc = new TProfile("overlapX_eff_vs_layer_ecc","fraction of OverlapX hits vs. layer in the ecc",21,-0.5,20.5, 0., 1.);
+	for (int i=2; i<=nx;i++) m_overlapX_eff_vs_layer_ecc->GetXaxis()->SetBinLabel(i-1,siliconLayers[i-1]);    
+	RegisterHisto(al_mon,m_overlapX_eff_vs_layer_ecc) ; 
+	
+	m_overlapY_eff_vs_layer_barrel = new TProfile("overlapY_eff_vs_layer_barrel","fraction of OverlapY hits vs. layer in the barrel",12,-0.5,11.5, 0., 1.); 
+	for (int i=1; i<=12;i++) m_overlapY_eff_vs_layer_barrel->GetXaxis()->SetBinLabel(i,siliconLayers[i-1]); 
+	RegisterHisto(al_mon,m_overlapY_eff_vs_layer_barrel) ;  
+	m_overlapY_eff_vs_layer_eca = new TProfile("overlapY_eff_vs_layer_eca","fraction of OverlapY hits vs. layer in the eca",21,-0.5,20.5, 0., 1.); 
+	for (int i=2; i<=nx;i++) m_overlapY_eff_vs_layer_eca->GetXaxis()->SetBinLabel(i-1,siliconLayers[i-1]);    
+	RegisterHisto(al_mon,m_overlapY_eff_vs_layer_eca) ; 
+	m_overlapY_eff_vs_layer_ecc = new TProfile("overlapY_eff_vs_layer_ecc","fraction of OverlapY hits vs. layer in the ecc",21,-0.5,20.5, 0., 1.);
+	for (int i=2; i<=nx;i++) m_overlapY_eff_vs_layer_ecc->GetXaxis()->SetBinLabel(i-1,siliconLayers[i-1]);    
+	RegisterHisto(al_mon,m_overlapY_eff_vs_layer_ecc) ; 
+	
+      }
+    
+	
     //book efficiencie by layers 
     m_measurements_eff_vs_layer_barrel = new TProfile("measurements_eff_vs_layer_barrel","measurements per possible hit vs. layer in the barrel",12,-0.5,11.5, 0., 1.); 
     for (int i=1; i<=12;i++) m_measurements_eff_vs_layer_barrel->GetXaxis()->SetBinLabel(i,siliconLayers[i-1]); 
@@ -569,27 +596,7 @@ StatusCode IDAlignMonEfficiencies::bookHistograms()
     m_noholes_eff_vs_layer_ecc = new TProfile("noholes_eff_vs_layer_ecc","noholes per possible hit vs. layer in the ecc",21,-0.5,20.5, 0., 1.);
     for (int i=2; i<=nx;i++) m_noholes_eff_vs_layer_ecc->GetXaxis()->SetBinLabel(i-1,siliconLayers[i-1]);    
     RegisterHisto(al_mon,m_noholes_eff_vs_layer_ecc) ; 
-
-    m_overlapX_eff_vs_layer_barrel = new TProfile("overlapX_eff_vs_layer_barrel","fraction of OverlapX hits vs. layer in the barrel",12,-0.5,11.5, 0., 1.); 
-    for (int i=1; i<=12;i++) m_overlapX_eff_vs_layer_barrel->GetXaxis()->SetBinLabel(i,siliconLayers[i-1]); 
-    RegisterHisto(al_mon,m_overlapX_eff_vs_layer_barrel) ;  
-    m_overlapX_eff_vs_layer_eca = new TProfile("overlapX_eff_vs_layer_eca","fraction of OverlapX hits vs. layer in the eca",21,-0.5,20.5, 0., 1.); 
-    for (int i=2; i<=nx;i++) m_overlapX_eff_vs_layer_eca->GetXaxis()->SetBinLabel(i-1,siliconLayers[i-1]);    
-    RegisterHisto(al_mon,m_overlapX_eff_vs_layer_eca) ; 
-    m_overlapX_eff_vs_layer_ecc = new TProfile("overlapX_eff_vs_layer_ecc","fraction of OverlapX hits vs. layer in the ecc",21,-0.5,20.5, 0., 1.);
-    for (int i=2; i<=nx;i++) m_overlapX_eff_vs_layer_ecc->GetXaxis()->SetBinLabel(i-1,siliconLayers[i-1]);    
-    RegisterHisto(al_mon,m_overlapX_eff_vs_layer_ecc) ; 
-
-    m_overlapY_eff_vs_layer_barrel = new TProfile("overlapY_eff_vs_layer_barrel","fraction of OverlapY hits vs. layer in the barrel",12,-0.5,11.5, 0., 1.); 
-    for (int i=1; i<=12;i++) m_overlapY_eff_vs_layer_barrel->GetXaxis()->SetBinLabel(i,siliconLayers[i-1]); 
-    RegisterHisto(al_mon,m_overlapY_eff_vs_layer_barrel) ;  
-    m_overlapY_eff_vs_layer_eca = new TProfile("overlapY_eff_vs_layer_eca","fraction of OverlapY hits vs. layer in the eca",21,-0.5,20.5, 0., 1.); 
-    for (int i=2; i<=nx;i++) m_overlapY_eff_vs_layer_eca->GetXaxis()->SetBinLabel(i-1,siliconLayers[i-1]);    
-    RegisterHisto(al_mon,m_overlapY_eff_vs_layer_eca) ; 
-    m_overlapY_eff_vs_layer_ecc = new TProfile("overlapY_eff_vs_layer_ecc","fraction of OverlapY hits vs. layer in the ecc",21,-0.5,20.5, 0., 1.);
-    for (int i=2; i<=nx;i++) m_overlapY_eff_vs_layer_ecc->GetXaxis()->SetBinLabel(i-1,siliconLayers[i-1]);    
-    RegisterHisto(al_mon,m_overlapY_eff_vs_layer_ecc) ; 
-
+    
     m_measurements_eff_vs_Eta_Phi_pix_eca = new TProfile2D("measurements_eff_vs_Eta_Phi_pix_eca","hit eff. vs. Eta-Phi-ID in Pixel ECA",3,-0.5,2.5,48,-0.5,47.5,0.,1.);
     RegisterHisto(al_mon,m_measurements_eff_vs_Eta_Phi_pix_eca);
     m_measurements_eff_vs_Eta_Phi_pix_ecc = new TProfile2D("measurements_eff_vs_Eta_Phi_pix_ecc","hit eff. vs. Eta-Phi-ID in Pixel ECC",3,-0.5,2.5,48,-0.5,47.5,0.,1.);
@@ -622,34 +629,38 @@ StatusCode IDAlignMonEfficiencies::bookHistograms()
     m_measurements_vs_Eta_Phi_sct_ecc = new TH2F("measurements_vs_Eta_Phi_sct_ecc","measurements vs. Eta-Phi-ID in SCT ECC",9,-0.5,8.5,52,-0.5,51.5);
     RegisterHisto(al_mon,m_measurements_vs_Eta_Phi_sct_ecc);
 
-    // 3d histograms of measurements in SCT end caps
-    m_measurements_vs_Eta_Phi_sct_eca_3d_s0 = new TH3F("measurements_vs_Eta_Phi_sct_eca_3d_s0","measurements vs. Eta-Phi-ID in SCT ECA (side 0)"
-						    ,9,-0.5,8.5, 3,-0.5,2.5, 52,-0.5,51.5);
-    m_measurements_vs_Eta_Phi_sct_eca_3d_s0->SetXTitle("Disk");
-    m_measurements_vs_Eta_Phi_sct_eca_3d_s0->SetYTitle("#eta ring");
-    m_measurements_vs_Eta_Phi_sct_eca_3d_s0->SetZTitle("#phi sector");
-    RegisterHisto(al_mon, m_measurements_vs_Eta_Phi_sct_eca_3d_s0);
-
-    m_measurements_vs_Eta_Phi_sct_eca_3d_s1 = new TH3F("measurements_vs_Eta_Phi_sct_eca_3d_s1","measurements vs. Eta-Phi-ID in SCT ECA (side 1)"
-						    ,9,-0.5,8.5, 3,-0.5,2.5, 52,-0.5,51.5);
-    m_measurements_vs_Eta_Phi_sct_eca_3d_s1->SetXTitle("Disk");
-    m_measurements_vs_Eta_Phi_sct_eca_3d_s1->SetYTitle("#eta ring");
-    m_measurements_vs_Eta_Phi_sct_eca_3d_s1->SetZTitle("#phi sector");
-    RegisterHisto(al_mon, m_measurements_vs_Eta_Phi_sct_eca_3d_s1);
-
-    m_measurements_vs_Eta_Phi_sct_ecc_3d_s0 = new TH3F("measurements_vs_Eta_Phi_sct_ecc_3d_s0","measurements vs. Eta-Phi-ID in SCT ECC (side 0)"
-						    ,9,-0.5,8.5, 3,-0.5,2.5, 52,-0.5,51.5);
-    m_measurements_vs_Eta_Phi_sct_ecc_3d_s0->SetXTitle("Disk");
-    m_measurements_vs_Eta_Phi_sct_ecc_3d_s0->SetYTitle("#eta ring");
-    m_measurements_vs_Eta_Phi_sct_ecc_3d_s0->SetZTitle("#phi sector");
-    RegisterHisto(al_mon, m_measurements_vs_Eta_Phi_sct_ecc_3d_s0);
-
-    m_measurements_vs_Eta_Phi_sct_ecc_3d_s1 = new TH3F("measurements_vs_Eta_Phi_sct_ecc_3d_s1","measurements vs. Eta-Phi-ID in SCT ECC (side 1)"
-						    ,9,-0.5,8.5, 3,-0.5,2.5, 52,-0.5,51.5);
-    m_measurements_vs_Eta_Phi_sct_ecc_3d_s1->SetXTitle("Disk");
-    m_measurements_vs_Eta_Phi_sct_ecc_3d_s1->SetYTitle("#eta ring");
-    m_measurements_vs_Eta_Phi_sct_ecc_3d_s1->SetZTitle("#phi sector");
-    RegisterHisto(al_mon, m_measurements_vs_Eta_Phi_sct_ecc_3d_s1);
+    if (m_extendedPlots)
+      {
+	// 3d histograms of measurements in SCT end caps
+	m_measurements_vs_Eta_Phi_sct_eca_3d_s0 = new TH3F("measurements_vs_Eta_Phi_sct_eca_3d_s0","measurements vs. Eta-Phi-ID in SCT ECA (side 0)"
+							   ,9,-0.5,8.5, 3,-0.5,2.5, 52,-0.5,51.5);
+	m_measurements_vs_Eta_Phi_sct_eca_3d_s0->SetXTitle("Disk");
+	m_measurements_vs_Eta_Phi_sct_eca_3d_s0->SetYTitle("#eta ring");
+	m_measurements_vs_Eta_Phi_sct_eca_3d_s0->SetZTitle("#phi sector");
+	RegisterHisto(al_mon, m_measurements_vs_Eta_Phi_sct_eca_3d_s0);
+	
+	m_measurements_vs_Eta_Phi_sct_eca_3d_s1 = new TH3F("measurements_vs_Eta_Phi_sct_eca_3d_s1","measurements vs. Eta-Phi-ID in SCT ECA (side 1)"
+							   ,9,-0.5,8.5, 3,-0.5,2.5, 52,-0.5,51.5);
+	m_measurements_vs_Eta_Phi_sct_eca_3d_s1->SetXTitle("Disk");
+	m_measurements_vs_Eta_Phi_sct_eca_3d_s1->SetYTitle("#eta ring");
+	m_measurements_vs_Eta_Phi_sct_eca_3d_s1->SetZTitle("#phi sector");
+	RegisterHisto(al_mon, m_measurements_vs_Eta_Phi_sct_eca_3d_s1);
+
+	m_measurements_vs_Eta_Phi_sct_ecc_3d_s0 = new TH3F("measurements_vs_Eta_Phi_sct_ecc_3d_s0","measurements vs. Eta-Phi-ID in SCT ECC (side 0)"
+							   ,9,-0.5,8.5, 3,-0.5,2.5, 52,-0.5,51.5);
+	m_measurements_vs_Eta_Phi_sct_ecc_3d_s0->SetXTitle("Disk");
+	m_measurements_vs_Eta_Phi_sct_ecc_3d_s0->SetYTitle("#eta ring");
+	m_measurements_vs_Eta_Phi_sct_ecc_3d_s0->SetZTitle("#phi sector");
+	RegisterHisto(al_mon, m_measurements_vs_Eta_Phi_sct_ecc_3d_s0);
+
+	m_measurements_vs_Eta_Phi_sct_ecc_3d_s1 = new TH3F("measurements_vs_Eta_Phi_sct_ecc_3d_s1","measurements vs. Eta-Phi-ID in SCT ECC (side 1)"
+							   ,9,-0.5,8.5, 3,-0.5,2.5, 52,-0.5,51.5);
+	m_measurements_vs_Eta_Phi_sct_ecc_3d_s1->SetXTitle("Disk");
+	m_measurements_vs_Eta_Phi_sct_ecc_3d_s1->SetYTitle("#eta ring");
+	m_measurements_vs_Eta_Phi_sct_ecc_3d_s1->SetZTitle("#phi sector");
+	RegisterHisto(al_mon, m_measurements_vs_Eta_Phi_sct_ecc_3d_s1);
+
+      }
 
     m_hits_vs_Eta_Phi_sct_eca = new TH2F("hits_vs_Eta_Phi_sct_eca","hits vs. Eta-Phi-ID in SCT ECA",9,-0.5,8.5,52,-0.5,51.5);
     RegisterHisto(al_mon,m_hits_vs_Eta_Phi_sct_eca);
@@ -1080,8 +1091,6 @@ StatusCode IDAlignMonEfficiencies::fillHistograms()
 	    
 	    //msg(MSG::WARNING) <<"Pix barrel, layer_disk=" << m_pixelID->layer_disk(surfaceID) << ", eta=" << m_pixelID->eta_module(surfaceID) << ", phi=" << m_pixelID->phi_module(surfaceID) <<endreq;
 	    
-	    if(foundXOverlap) m_overlapX_vs_layer_barrel-> Fill(layerDisk);
-	    if(foundYOverlap) m_overlapY_vs_layer_barrel-> Fill(layerDisk);
 	    if (msgLvl(MSG::VERBOSE)) msg(MSG::VERBOSE)<<"found pixel barrel hit"<<endreq;
 	    m_measurements_vs_Eta_Phi_pix_b[layerDisk] -> Fill(modEta, modPhi);
 	    m_measurements_vs_LB_pix_b[layerDisk]      -> Fill(float(LumiBlock));
@@ -1089,14 +1098,19 @@ StatusCode IDAlignMonEfficiencies::fillHistograms()
 	    m_measurements_vs_Phi_pix_b[layerDisk] -> Fill(modPhi);
 	    m_measurements_vs_pT_pix_b[layerDisk] -> Fill(abs_trkpt);
 	    
-	    if(foundXOverlap){
-	      m_overlapX_vs_Phi_pix_b[layerDisk] -> Fill(modPhi);
-	      m_overlapX_vs_Eta_pix_b[layerDisk] -> Fill(modEta);
-	    }
-	    if(foundYOverlap){
-	      m_overlapY_vs_Phi_pix_b[layerDisk] -> Fill(modPhi);
-	      m_overlapY_vs_Eta_pix_b[layerDisk] -> Fill(modEta);
-	    } 
+	    if (m_extendedPlots)
+	      {
+		if(foundXOverlap){
+		  m_overlapX_vs_layer_barrel-> Fill(layerDisk);
+		  m_overlapX_vs_Phi_pix_b[layerDisk] -> Fill(modPhi);
+		  m_overlapX_vs_Eta_pix_b[layerDisk] -> Fill(modEta);
+		}
+		if(foundYOverlap){
+		  m_overlapY_vs_layer_barrel-> Fill(layerDisk);
+		  m_overlapY_vs_Phi_pix_b[layerDisk] -> Fill(modPhi);
+		  m_overlapY_vs_Eta_pix_b[layerDisk] -> Fill(modEta);
+		} 
+	      }
 	  } // end of PIX barrel 
 	  
 	  else if (barrelEC == 2){	    
@@ -1104,13 +1118,18 @@ StatusCode IDAlignMonEfficiencies::fillHistograms()
 	    if (msgLvl(MSG::VERBOSE)) msg(MSG::VERBOSE)<<"found pixel eca hit"<<endreq;
 	    m_measurements_vs_layer_eca -> Fill(layerDisk);
 	    m_noholes_vs_layer_eca -> Fill(layerDisk);
-	    if(foundXOverlap) m_overlapX_vs_layer_eca-> Fill(layerDisk);
-	    if(foundYOverlap) m_overlapY_vs_layer_eca-> Fill(layerDisk);
 	    m_measurements_vs_Phi_pix_eca[layerDisk] -> Fill(modPhi);
 	    m_measurements_vs_LB_pix_eca -> Fill(float(LumiBlock));
-	    
-	    if(foundXOverlap) m_overlapX_vs_Phi_pix_eca[layerDisk]-> Fill(modPhi);
-	    if(foundYOverlap) m_overlapY_vs_Phi_pix_eca[layerDisk] -> Fill(modPhi);
+	    if (m_extendedPlots) {
+	      if(foundXOverlap){
+		m_overlapX_vs_layer_eca-> Fill(layerDisk);
+		m_overlapX_vs_Phi_pix_eca[layerDisk]-> Fill(modPhi);
+	      }
+	      if(foundYOverlap){
+		m_overlapY_vs_layer_eca-> Fill(layerDisk);
+		m_overlapY_vs_Phi_pix_eca[layerDisk] -> Fill(modPhi);
+	      }
+	    }
 	    
 	    m_measurements_vs_Eta_Phi_pix_eca -> Fill(layerDisk, modPhi);
 	  } // ECA
@@ -1120,15 +1139,18 @@ StatusCode IDAlignMonEfficiencies::fillHistograms()
 	    if (msgLvl(MSG::VERBOSE)) msg(MSG::VERBOSE)<<"found pixel ecc hit"<<endreq;
 	    m_measurements_vs_layer_ecc -> Fill(layerDisk);
 	    m_noholes_vs_layer_ecc -> Fill(layerDisk);
-	    if(foundXOverlap) m_overlapX_vs_layer_ecc-> Fill(layerDisk);
-	    if(foundYOverlap) m_overlapY_vs_layer_ecc-> Fill(layerDisk);  
 	    m_measurements_vs_Phi_pix_ecc[layerDisk] -> Fill(modPhi);
 	    m_measurements_vs_LB_pix_ecc -> Fill(float(LumiBlock));
-	    if(foundXOverlap)
-	      m_overlapX_vs_Phi_pix_ecc[layerDisk] -> Fill(modPhi); 
-	    if(foundYOverlap)
-	      m_overlapY_vs_Phi_pix_ecc[layerDisk] -> Fill(modPhi);
-	    
+	    if (m_extendedPlots){
+	      if(foundXOverlap){
+		m_overlapX_vs_Phi_pix_ecc[layerDisk] -> Fill(modPhi); 
+		m_overlapX_vs_layer_ecc-> Fill(layerDisk);
+	      }
+	      if(foundYOverlap){
+		m_overlapY_vs_layer_ecc-> Fill(layerDisk);  
+		m_overlapY_vs_Phi_pix_ecc[layerDisk] -> Fill(modPhi);
+	      }
+	    }
 	    m_measurements_vs_Eta_Phi_pix_ecc -> Fill(layerDisk, modPhi);
 	  } //ECC
 	}// End of PIXELS
@@ -1141,9 +1163,6 @@ StatusCode IDAlignMonEfficiencies::fillHistograms()
 	    if (msgLvl(MSG::VERBOSE)) msg(MSG::VERBOSE)<<"found sct barrel hit"<<endreq;
 	    m_measurements_vs_layer_barrel -> Fill(m_NPixLayers + 2*layerDisk + sctSide);
 	    m_noholes_vs_layer_barrel -> Fill(m_NPixLayers + 2*layerDisk + sctSide);
-	    if(foundXOverlap) m_overlapX_vs_layer_barrel-> Fill(m_NPixLayers + 2*layerDisk + sctSide);
-	    if(foundYOverlap) m_overlapY_vs_layer_barrel-> Fill(m_NPixLayers + 2*layerDisk + sctSide); 
-	    
 	    m_measurements_vs_Eta_Phi_sct_b[layerDisk] -> Fill(modEta,modPhi);
 	    
 	    if (sctSide == 0) m_measurements_vs_Eta_Phi_sct_s0_b[layerDisk] -> Fill(modEta,modPhi);
@@ -1152,15 +1171,19 @@ StatusCode IDAlignMonEfficiencies::fillHistograms()
 	    m_measurements_vs_Phi_sct_b[layerDisk] -> Fill(modPhi);
 	    m_measurements_vs_LB_sct_b[layerDisk] -> Fill(float(LumiBlock));
 	    m_measurements_vs_pT_sct_b[layerDisk] -> Fill(abs_trkpt);
-	    if(foundXOverlap){
-	      if (msgLvl(MSG::VERBOSE)) msg(MSG::VERBOSE)<<"found sct barrel hit 1"<<endreq;
-	      m_overlapX_vs_Phi_sct_b[layerDisk] -> Fill(modPhi);
-	      m_overlapX_vs_Eta_sct_b[layerDisk] -> Fill(modEta);
-	    }
-	    if(foundYOverlap){
-	      if (msgLvl(MSG::VERBOSE)) msg(MSG::VERBOSE)<<"found sct barrel hit 2"<<endreq;
-	      m_overlapY_vs_Phi_sct_b[layerDisk] -> Fill(modPhi);
-	      m_overlapY_vs_Eta_sct_b[layerDisk] -> Fill(modEta);
+	    if (m_extendedPlots) {
+	      if(foundXOverlap){
+		m_overlapX_vs_layer_barrel-> Fill(m_NPixLayers + 2*layerDisk + sctSide);
+		if (msgLvl(MSG::VERBOSE)) msg(MSG::VERBOSE)<<"found sct barrel hit 1"<<endreq;
+		m_overlapX_vs_Phi_sct_b[layerDisk] -> Fill(modPhi);
+		m_overlapX_vs_Eta_sct_b[layerDisk] -> Fill(modEta);
+	      }
+	      if(foundYOverlap){
+		m_overlapY_vs_layer_barrel-> Fill(m_NPixLayers + 2*layerDisk + sctSide); 
+		if (msgLvl(MSG::VERBOSE)) msg(MSG::VERBOSE)<<"found sct barrel hit 2"<<endreq;
+		m_overlapY_vs_Phi_sct_b[layerDisk] -> Fill(modPhi);
+		m_overlapY_vs_Eta_sct_b[layerDisk] -> Fill(modEta);
+	      }
 	    }
 	  }//barrel
 	  else if (barrelEC == 2){ 
@@ -1169,17 +1192,24 @@ StatusCode IDAlignMonEfficiencies::fillHistograms()
 	    if (msgLvl(MSG::VERBOSE)) msg(MSG::VERBOSE)<<"found sct eca hit"<<endreq;
 	    m_measurements_vs_layer_eca -> Fill(3 + 2*layerDisk + sctSide);
 	    m_noholes_vs_layer_eca -> Fill(3 + 2*layerDisk + sctSide);
-	    if(foundXOverlap) m_overlapX_vs_layer_eca-> Fill(3 + 2*layerDisk + sctSide);
-	    if(foundYOverlap) m_overlapY_vs_layer_eca-> Fill(3 + 2*layerDisk + sctSide);
 	    m_measurements_vs_Phi_sct_eca[layerDisk] -> Fill(modPhi);
 	    m_measurements_vs_LB_sct_eca -> Fill(float(LumiBlock));
-	    if(foundXOverlap)
-	      m_overlapX_vs_Phi_sct_eca[layerDisk] -> Fill(modPhi);
-	    if(foundYOverlap)
-	      m_overlapY_vs_Phi_sct_eca[layerDisk] -> Fill(modPhi);
 	    m_measurements_vs_Eta_Phi_sct_eca -> Fill(layerDisk, modPhi);
-	    if (sctSide == 0) m_measurements_vs_Eta_Phi_sct_eca_3d_s0 -> Fill(layerDisk, modEta, modPhi);
-	    if (sctSide == 1) m_measurements_vs_Eta_Phi_sct_eca_3d_s1 -> Fill(layerDisk, modEta, modPhi);
+	    if (m_extendedPlots)
+	      {
+		if(foundXOverlap)
+		  {
+		    m_overlapX_vs_layer_eca-> Fill(3 + 2*layerDisk + sctSide);
+		    m_overlapX_vs_Phi_sct_eca[layerDisk] -> Fill(modPhi);
+		  }
+		if(foundYOverlap)
+		  {
+		    m_overlapY_vs_layer_eca-> Fill(3 + 2*layerDisk + sctSide);
+		    m_overlapY_vs_Phi_sct_eca[layerDisk] -> Fill(modPhi);
+		  }
+		if (sctSide == 0) m_measurements_vs_Eta_Phi_sct_eca_3d_s0 -> Fill(layerDisk, modEta, modPhi);
+		if (sctSide == 1) m_measurements_vs_Eta_Phi_sct_eca_3d_s1 -> Fill(layerDisk, modEta, modPhi);
+	      }
 	  }//ECA
 	  else if (barrelEC == -2){
 	    
@@ -1187,19 +1217,22 @@ StatusCode IDAlignMonEfficiencies::fillHistograms()
 	    if (msgLvl(MSG::VERBOSE)) msg(MSG::VERBOSE)<<"found sct ecc hit"<<endreq;
 	    m_measurements_vs_layer_ecc -> Fill(3 + 2*layerDisk + sctSide);
 	    m_noholes_vs_layer_ecc -> Fill(3 + 2*layerDisk + sctSide);
-	    if(foundXOverlap) m_overlapX_vs_layer_ecc-> Fill(3 + 2*layerDisk + sctSide);
-	    if(foundYOverlap) m_overlapY_vs_layer_ecc-> Fill(3 + 2*layerDisk + sctSide);
-	    
 	    m_measurements_vs_Phi_sct_ecc[layerDisk] -> Fill(modPhi);
 	    m_measurements_vs_LB_sct_ecc -> Fill(float(LumiBlock));
-	    if(foundXOverlap)
-	      m_overlapX_vs_Phi_sct_ecc[layerDisk] -> Fill(modPhi);  
-	    if(foundYOverlap)
-	      m_overlapY_vs_Phi_sct_ecc[layerDisk] -> Fill(modPhi);
-
 	    m_measurements_vs_Eta_Phi_sct_ecc -> Fill(layerDisk, modPhi);
-	    if (sctSide == 0) m_measurements_vs_Eta_Phi_sct_ecc_3d_s0 -> Fill(layerDisk, modEta, modPhi);
-	    if (sctSide == 1) m_measurements_vs_Eta_Phi_sct_ecc_3d_s1 -> Fill(layerDisk, modEta, modPhi);
+	    if (m_extendedPlots)
+	      {
+		if(foundXOverlap){
+		  m_overlapX_vs_layer_ecc-> Fill(3 + 2*layerDisk + sctSide);
+		  m_overlapX_vs_Phi_sct_ecc[layerDisk] -> Fill(modPhi);  
+		}
+		if(foundYOverlap){
+		  m_overlapY_vs_layer_ecc-> Fill(3 + 2*layerDisk + sctSide);
+		  m_overlapY_vs_Phi_sct_ecc[layerDisk] -> Fill(modPhi);
+		}
+		if (sctSide == 0) m_measurements_vs_Eta_Phi_sct_ecc_3d_s0 -> Fill(layerDisk, modEta, modPhi);
+		if (sctSide == 1) m_measurements_vs_Eta_Phi_sct_ecc_3d_s1 -> Fill(layerDisk, modEta, modPhi);
+	      }
 
 	  }//ECC
 	}//SCT
@@ -1769,13 +1802,18 @@ StatusCode IDAlignMonEfficiencies::procHistograms()
       makeEffHisto(m_holes_vs_Eta_pix_b[iLayer],m_hits_vs_Eta_pix_b[iLayer],m_holes_eff_vs_Eta_pix_b[iLayer]);
       makeEffHisto(m_outliers_vs_Phi_pix_b[iLayer],m_hits_vs_Phi_pix_b[iLayer],m_outliers_eff_vs_Phi_pix_b[iLayer]);
       makeEffHisto(m_holes_vs_Phi_pix_b[iLayer],m_hits_vs_Phi_pix_b[iLayer],m_holes_eff_vs_Phi_pix_b[iLayer]);
-      makeOverlapFracHisto(m_overlapX_vs_Phi_pix_b[iLayer],m_measurements_vs_Phi_pix_b[iLayer],m_overlapX_eff_vs_Phi_pix_b[iLayer]);
-      makeOverlapFracHisto(m_overlapY_vs_Phi_pix_b[iLayer],m_measurements_vs_Phi_pix_b[iLayer],m_overlapY_eff_vs_Phi_pix_b[iLayer]);
-      makeOverlapFracHisto(m_overlapX_vs_Eta_pix_b[iLayer],m_measurements_vs_Eta_pix_b[iLayer],m_overlapX_eff_vs_Eta_pix_b[iLayer]);
-      makeOverlapFracHisto(m_overlapY_vs_Eta_pix_b[iLayer],m_measurements_vs_Eta_pix_b[iLayer],m_overlapY_eff_vs_Eta_pix_b[iLayer]);
       makeEffHisto(m_outliers_vs_pT_pix_b[iLayer],m_hits_vs_pT_pix_b[iLayer],m_outliers_eff_vs_pT_pix_b[iLayer]);
       makeEffHisto(m_holes_vs_pT_pix_b[iLayer],m_hits_vs_pT_pix_b[iLayer],m_holes_eff_vs_pT_pix_b[iLayer]);
 
+      if (m_extendedPlots)
+	{
+	  makeOverlapFracHisto(m_overlapX_vs_Phi_pix_b[iLayer],m_measurements_vs_Phi_pix_b[iLayer],m_overlapX_eff_vs_Phi_pix_b[iLayer]);
+	  makeOverlapFracHisto(m_overlapY_vs_Phi_pix_b[iLayer],m_measurements_vs_Phi_pix_b[iLayer],m_overlapY_eff_vs_Phi_pix_b[iLayer]);
+	  makeOverlapFracHisto(m_overlapX_vs_Eta_pix_b[iLayer],m_measurements_vs_Eta_pix_b[iLayer],m_overlapX_eff_vs_Eta_pix_b[iLayer]);
+	  makeOverlapFracHisto(m_overlapY_vs_Eta_pix_b[iLayer],m_measurements_vs_Eta_pix_b[iLayer],m_overlapY_eff_vs_Eta_pix_b[iLayer]);
+	}
+      
+
 
       //LB plots
       makeEffHisto(m_measurements_vs_LB_pix_b[iLayer],m_hits_vs_LB_pix_b[iLayer],m_measurements_eff_vs_LB_pix_b[iLayer]);
@@ -1821,10 +1859,6 @@ StatusCode IDAlignMonEfficiencies::procHistograms()
 	makeEffHisto(m_measurements_vs_Phi_sct_b[iLayer],m_hits_vs_Phi_sct_b[iLayer],m_measurements_eff_vs_Phi_sct_b[iLayer]);
 	makeEffHisto(m_outliers_vs_Phi_sct_b[iLayer],m_hits_vs_Phi_sct_b[iLayer],m_outliers_eff_vs_Phi_sct_b[iLayer]);
 	makeEffHisto(m_holes_vs_Phi_sct_b[iLayer],m_hits_vs_Phi_sct_b[iLayer],m_holes_eff_vs_Phi_sct_b[iLayer]);
-	makeOverlapFracHisto(m_overlapX_vs_Phi_sct_b[iLayer],m_measurements_vs_Phi_sct_b[iLayer],m_overlapX_eff_vs_Phi_sct_b[iLayer]);
-	makeOverlapFracHisto(m_overlapY_vs_Phi_sct_b[iLayer],m_measurements_vs_Phi_sct_b[iLayer],m_overlapY_eff_vs_Phi_sct_b[iLayer]);
-	makeOverlapFracHisto(m_overlapX_vs_Eta_sct_b[iLayer],m_measurements_vs_Eta_sct_b[iLayer],m_overlapX_eff_vs_Eta_sct_b[iLayer]);
-	makeOverlapFracHisto(m_overlapY_vs_Eta_sct_b[iLayer],m_measurements_vs_Eta_sct_b[iLayer],m_overlapY_eff_vs_Eta_sct_b[iLayer]);
 	makeEffHisto(m_measurements_vs_pT_sct_b[iLayer],m_hits_vs_pT_sct_b[iLayer],m_measurements_eff_vs_pT_sct_b[iLayer]);
 	makeEffHisto(m_outliers_vs_pT_sct_b[iLayer],m_hits_vs_pT_sct_b[iLayer],m_outliers_eff_vs_pT_sct_b[iLayer]);
 	makeEffHisto(m_holes_vs_pT_sct_b[iLayer],m_hits_vs_pT_sct_b[iLayer],m_holes_eff_vs_pT_sct_b[iLayer]);
@@ -1833,6 +1867,15 @@ StatusCode IDAlignMonEfficiencies::procHistograms()
 	makeEffHisto (m_measurements_vs_Eta_Phi_sct_s0_b[iLayer], m_hits_vs_Eta_Phi_sct_s0_b[iLayer], m_measurements_eff_vs_Eta_Phi_sct_s0_b[iLayer]);
 	makeEffHisto (m_measurements_vs_Eta_Phi_sct_s1_b[iLayer], m_hits_vs_Eta_Phi_sct_s1_b[iLayer], m_measurements_eff_vs_Eta_Phi_sct_s1_b[iLayer]);
 	makeEffHisto (m_measurements_vs_LB_sct_b[iLayer], m_hits_vs_LB_sct_b[iLayer], m_measurements_eff_vs_LB_sct_b[iLayer]);
+
+	if (m_extendedPlots)
+	  {
+	    makeOverlapFracHisto(m_overlapX_vs_Phi_sct_b[iLayer],m_measurements_vs_Phi_sct_b[iLayer],m_overlapX_eff_vs_Phi_sct_b[iLayer]);
+	    makeOverlapFracHisto(m_overlapY_vs_Phi_sct_b[iLayer],m_measurements_vs_Phi_sct_b[iLayer],m_overlapY_eff_vs_Phi_sct_b[iLayer]);
+	    makeOverlapFracHisto(m_overlapX_vs_Eta_sct_b[iLayer],m_measurements_vs_Eta_sct_b[iLayer],m_overlapX_eff_vs_Eta_sct_b[iLayer]);
+	    makeOverlapFracHisto(m_overlapY_vs_Eta_sct_b[iLayer],m_measurements_vs_Eta_sct_b[iLayer],m_overlapY_eff_vs_Eta_sct_b[iLayer]);
+	  }
+	
 	
       }
 
@@ -1879,13 +1922,16 @@ StatusCode IDAlignMonEfficiencies::procHistograms()
     makeEffHisto(m_noholes_vs_layer_barrel,m_hits_vs_layer_barrel,m_noholes_eff_vs_layer_barrel);
     makeEffHisto(m_noholes_vs_layer_eca,m_hits_vs_layer_eca,m_noholes_eff_vs_layer_eca);
     makeEffHisto(m_noholes_vs_layer_ecc,m_hits_vs_layer_ecc,m_noholes_eff_vs_layer_ecc);
-
-    makeEffHisto(m_overlapX_vs_layer_barrel,m_measurements_vs_layer_barrel,m_overlapX_eff_vs_layer_barrel);
-    makeEffHisto(m_overlapX_vs_layer_eca,m_measurements_vs_layer_eca,m_overlapX_eff_vs_layer_eca);
-    makeEffHisto(m_overlapX_vs_layer_ecc,m_measurements_vs_layer_ecc,m_overlapX_eff_vs_layer_ecc);
-    makeEffHisto(m_overlapY_vs_layer_barrel,m_measurements_vs_layer_barrel,m_overlapY_eff_vs_layer_barrel);
-    makeEffHisto(m_overlapY_vs_layer_eca,m_measurements_vs_layer_eca,m_overlapY_eff_vs_layer_eca);
-    makeEffHisto(m_overlapY_vs_layer_ecc,m_measurements_vs_layer_ecc,m_overlapY_eff_vs_layer_ecc);
+    
+    if (m_extendedPlots)
+      {
+	makeEffHisto(m_overlapX_vs_layer_barrel,m_measurements_vs_layer_barrel,m_overlapX_eff_vs_layer_barrel);
+	makeEffHisto(m_overlapX_vs_layer_eca,m_measurements_vs_layer_eca,m_overlapX_eff_vs_layer_eca);
+	makeEffHisto(m_overlapX_vs_layer_ecc,m_measurements_vs_layer_ecc,m_overlapX_eff_vs_layer_ecc);
+	makeEffHisto(m_overlapY_vs_layer_barrel,m_measurements_vs_layer_barrel,m_overlapY_eff_vs_layer_barrel);
+	makeEffHisto(m_overlapY_vs_layer_eca,m_measurements_vs_layer_eca,m_overlapY_eff_vs_layer_eca);
+	makeEffHisto(m_overlapY_vs_layer_ecc,m_measurements_vs_layer_ecc,m_overlapY_eff_vs_layer_ecc);
+      }
 
     /**  TRT Processing */
     if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "Doint the TRT pocessing" << endreq;
@@ -2386,10 +2432,14 @@ void IDAlignMonEfficiencies::makePIXBarrelHistograms(MonGroup& al_mon){
       m_measurements_vs_Phi_pix_b.push_back(new TH1F(("measurements_vs_Phi_pix_b"+intToString(iLayer)).c_str(),("measurements per possible hits vs. Phi-ID in Pixel barrel layer"+intToString(iLayer)).c_str(),maxPhiModulesPerLayer,-0.5,maxPhiModulesPerLayer-0.5));  
       RegisterHisto(al_mon,m_measurements_vs_Phi_pix_b[iLayer]);
       //hits on track by layer Overlap
-      m_overlapX_vs_Phi_pix_b.push_back(new TH1F(("overlapX_vs_Phi_pix_b"+intToString(iLayer)).c_str(),("overlapX per possible hits vs. Phi-ID in Pixel barrel layer"+intToString(iLayer)).c_str(),maxPhiModulesPerLayer,-0.5,maxPhiModulesPerLayer-0.5));  
-      RegisterHisto(al_mon,m_overlapX_vs_Phi_pix_b[iLayer]); 
-      m_overlapY_vs_Phi_pix_b.push_back(new TH1F(("overlapY_vs_Phi_pix_b"+intToString(iLayer)).c_str(),("overlapY per possible hits vs. Phi-ID in Pixel barrel layer"+intToString(iLayer)).c_str(),maxPhiModulesPerLayer,-0.5,maxPhiModulesPerLayer-0.5));  
-      RegisterHisto(al_mon,m_overlapY_vs_Phi_pix_b[iLayer]); 
+      
+      if (m_extendedPlots)
+	{
+	  m_overlapX_vs_Phi_pix_b.push_back(new TH1F(("overlapX_vs_Phi_pix_b"+intToString(iLayer)).c_str(),("overlapX per possible hits vs. Phi-ID in Pixel barrel layer"+intToString(iLayer)).c_str(),maxPhiModulesPerLayer,-0.5,maxPhiModulesPerLayer-0.5));  
+	  RegisterHisto(al_mon,m_overlapX_vs_Phi_pix_b[iLayer]); 
+	  m_overlapY_vs_Phi_pix_b.push_back(new TH1F(("overlapY_vs_Phi_pix_b"+intToString(iLayer)).c_str(),("overlapY per possible hits vs. Phi-ID in Pixel barrel layer"+intToString(iLayer)).c_str(),maxPhiModulesPerLayer,-0.5,maxPhiModulesPerLayer-0.5));  
+	  RegisterHisto(al_mon,m_overlapY_vs_Phi_pix_b[iLayer]); 
+	}
       //outliers by layer
       m_outliers_vs_Phi_pix_b.push_back(new TH1F(("outliers_vs_Phi_pix_b"+intToString(iLayer)).c_str(),("outliers per possible hits vs. Phi-ID in Pixel barrel layer "+intToString(iLayer)).c_str(),maxPhiModulesPerLayer,-0.5,maxPhiModulesPerLayer-0.5));  
       RegisterHisto(al_mon,m_outliers_vs_Phi_pix_b[iLayer]); 
@@ -2413,11 +2463,14 @@ void IDAlignMonEfficiencies::makePIXBarrelHistograms(MonGroup& al_mon){
       
       
       //overlap efficiency by layer
-      m_overlapX_eff_vs_Phi_pix_b.push_back(new TProfile(("overlapX_eff_vs_Phi_pix_b"+intToString(iLayer)).c_str(),("overlapX per possible hits vs. Phi-ID in Pixel barrel layer"+intToString(iLayer)).c_str(),maxPhiModulesPerLayer,-0.5,maxPhiModulesPerLayer-0.5, 0., 1.));  
-      RegisterHisto(al_mon,m_overlapX_eff_vs_Phi_pix_b[iLayer]); 
-      //overlap efficiency by layer
-      m_overlapY_eff_vs_Phi_pix_b.push_back(new TProfile(("overlapY_eff_vs_Phi_pix_b"+intToString(iLayer)).c_str(),("overlapY per possible hits vs. Phi-ID in Pixel barrel layer"+intToString(iLayer)).c_str(),maxPhiModulesPerLayer,-0.5,maxPhiModulesPerLayer-0.5, 0., 1.));  
-      RegisterHisto(al_mon,m_overlapY_eff_vs_Phi_pix_b[iLayer]);
+      if (m_extendedPlots)
+	{
+	  m_overlapX_eff_vs_Phi_pix_b.push_back(new TProfile(("overlapX_eff_vs_Phi_pix_b"+intToString(iLayer)).c_str(),("overlapX per possible hits vs. Phi-ID in Pixel barrel layer"+intToString(iLayer)).c_str(),maxPhiModulesPerLayer,-0.5,maxPhiModulesPerLayer-0.5, 0., 1.));  
+	  RegisterHisto(al_mon,m_overlapX_eff_vs_Phi_pix_b[iLayer]); 
+	  //overlap efficiency by layer
+	  m_overlapY_eff_vs_Phi_pix_b.push_back(new TProfile(("overlapY_eff_vs_Phi_pix_b"+intToString(iLayer)).c_str(),("overlapY per possible hits vs. Phi-ID in Pixel barrel layer"+intToString(iLayer)).c_str(),maxPhiModulesPerLayer,-0.5,maxPhiModulesPerLayer-0.5, 0., 1.));  
+	  RegisterHisto(al_mon,m_overlapY_eff_vs_Phi_pix_b[iLayer]);
+	}
       //outlier eff by layer
       m_outliers_eff_vs_Phi_pix_b.push_back(new TProfile(("outliers_eff_vs_Phi_pix_b"+intToString(iLayer)).c_str(),("outliers per possible hits vs. Phi-ID in Pixel barrel layer "+intToString(iLayer)).c_str(),maxPhiModulesPerLayer,-0.5,maxPhiModulesPerLayer-0.5, 0., 1.));  
       RegisterHisto(al_mon,m_outliers_eff_vs_Phi_pix_b[iLayer]); 
@@ -2430,11 +2483,14 @@ void IDAlignMonEfficiencies::makePIXBarrelHistograms(MonGroup& al_mon){
       //measured hits vs eta
       m_measurements_vs_Eta_pix_b.push_back( new TH1F(("measurements_vs_Eta_pix_b"+intToString(iLayer)).c_str(),("measurements per possible hits vs. Eta-ID in Pixel barrel layer "+intToString(iLayer)).c_str(),EtaModules, EtaModulesMin, EtaModulesMax));  
       RegisterHisto(al_mon,m_measurements_vs_Eta_pix_b[iLayer]);
-      //hits overlap Eta
-      m_overlapX_vs_Eta_pix_b.push_back(new TH1F(("overlapX_vs_Eta_pix_b"+intToString(iLayer)).c_str(),("overlapX per possible hits vs. Eta-ID in Pixel barrel layer "+intToString(iLayer)).c_str(),EtaModules, EtaModulesMin, EtaModulesMax));  
-      RegisterHisto(al_mon,m_overlapX_vs_Eta_pix_b[iLayer]);
-      m_overlapY_vs_Eta_pix_b.push_back(new TH1F(("overlapY_vs_Eta_pix_b"+intToString(iLayer)).c_str(),("overlapY per possible hits vs. Eta-ID in Pixel barrel layer "+intToString(iLayer)).c_str(),EtaModules, EtaModulesMin, EtaModulesMax));  
-      RegisterHisto(al_mon,m_overlapY_vs_Eta_pix_b[iLayer]);
+      if (m_extendedPlots)
+	{
+	  //hits overlap Eta
+	  m_overlapX_vs_Eta_pix_b.push_back(new TH1F(("overlapX_vs_Eta_pix_b"+intToString(iLayer)).c_str(),("overlapX per possible hits vs. Eta-ID in Pixel barrel layer "+intToString(iLayer)).c_str(),EtaModules, EtaModulesMin, EtaModulesMax));  
+	  RegisterHisto(al_mon,m_overlapX_vs_Eta_pix_b[iLayer]);
+	  m_overlapY_vs_Eta_pix_b.push_back(new TH1F(("overlapY_vs_Eta_pix_b"+intToString(iLayer)).c_str(),("overlapY per possible hits vs. Eta-ID in Pixel barrel layer "+intToString(iLayer)).c_str(),EtaModules, EtaModulesMin, EtaModulesMax));  
+	  RegisterHisto(al_mon,m_overlapY_vs_Eta_pix_b[iLayer]);
+	}
       //outliers vs Eta
       m_outliers_vs_Eta_pix_b.push_back(new TH1F(("outliers_vs_Eta_pix_b"+intToString(iLayer)).c_str(),("outliers per possible hits vs. Eta-ID in Pixel barrel layer "+intToString(iLayer)).c_str(),EtaModules, EtaModulesMin, EtaModulesMax));  
       RegisterHisto(al_mon,m_outliers_vs_Eta_pix_b[iLayer]);
@@ -2445,11 +2501,14 @@ void IDAlignMonEfficiencies::makePIXBarrelHistograms(MonGroup& al_mon){
       //measurements eff vs Eta
       m_measurements_eff_vs_Eta_pix_b.push_back( new TProfile(("measurements_eff_vs_Eta_pix_b"+intToString(iLayer)).c_str(),("measurements per possible hits vs. Eta-ID in Pixel barrel layer "+intToString(iLayer)).c_str(),EtaModules, EtaModulesMin, EtaModulesMax, 0., 1.));
       RegisterHisto(al_mon,m_measurements_eff_vs_Eta_pix_b[iLayer]) ; 
-      //OverlapX eff vs Eta
-      m_overlapX_eff_vs_Eta_pix_b.push_back(new TProfile(("overlapX_eff_vs_Eta_pix_b"+intToString(iLayer)).c_str(),("overlapX per possible hits vs. Eta-ID in Pixel barrel layer "+intToString(iLayer)).c_str(),EtaModules,-EtaModules,EtaModules, 0., 1.));  
-      RegisterHisto(al_mon,m_overlapX_eff_vs_Eta_pix_b[iLayer]) ;
-      m_overlapY_eff_vs_Eta_pix_b.push_back(new TProfile(("overlapY_eff_vs_Eta_pix_b"+intToString(iLayer)).c_str(),("overlapY per possible hits vs. Eta-ID in Pixel barrel layer "+intToString(iLayer)).c_str(),EtaModules,-EtaModules,EtaModules, 0., 1.));  
-      RegisterHisto(al_mon,m_overlapY_eff_vs_Eta_pix_b[iLayer]) ;
+      if (m_extendedPlots)
+	{
+	  //OverlapX eff vs Eta
+	  m_overlapX_eff_vs_Eta_pix_b.push_back(new TProfile(("overlapX_eff_vs_Eta_pix_b"+intToString(iLayer)).c_str(),("overlapX per possible hits vs. Eta-ID in Pixel barrel layer "+intToString(iLayer)).c_str(),EtaModules,-EtaModules,EtaModules, 0., 1.));  
+	  RegisterHisto(al_mon,m_overlapX_eff_vs_Eta_pix_b[iLayer]) ;
+	  m_overlapY_eff_vs_Eta_pix_b.push_back(new TProfile(("overlapY_eff_vs_Eta_pix_b"+intToString(iLayer)).c_str(),("overlapY per possible hits vs. Eta-ID in Pixel barrel layer "+intToString(iLayer)).c_str(),EtaModules,-EtaModules,EtaModules, 0., 1.));  
+	  RegisterHisto(al_mon,m_overlapY_eff_vs_Eta_pix_b[iLayer]) ;
+	}
       //Outliers eff vs Eta
       m_outliers_eff_vs_Eta_pix_b.push_back(new TProfile(("outliers_eff_vs_Eta_pix_b"+intToString(iLayer)).c_str(),("outliers per possible hits vs. Eta-ID in Pixel barrel layer "+intToString(iLayer)).c_str(),EtaModules, EtaModulesMin, EtaModulesMax, 0., 1.));  
       RegisterHisto(al_mon,m_outliers_eff_vs_Eta_pix_b[iLayer]) ; 
@@ -2506,21 +2565,26 @@ void IDAlignMonEfficiencies::makePIXEndCapsHistograms(MonGroup& al_mon){
 	      //hits for endcaps
 	      m_hits_vs_Phi_pix_eca.push_back( new TH1F(("hits_vs_Phi_pix_eca"+intToString(iWheel)).c_str(),("possible hits vs. Phi-ID in Pixel eca layer "+intToString(iWheel)).c_str(),maxPhiModulesPerRing,-0.5,maxPhiModulesPerRing-0.5));  
 	      RegisterHisto(al_mon,m_hits_vs_Phi_pix_eca[iWheel]) ;
-	      //overlaps by layer
-	      m_overlapY_vs_Phi_pix_eca.push_back(new  TH1F(("overlapY_vs_Phi_pix_eca"+intToString(iWheel)).c_str(),(" Y Overlap Eff. vs. Phi-ID in Pixel eca layer "+intToString(iWheel)).c_str(),maxPhiModulesPerRing,-0.5,maxPhiModulesPerRing-0.5));  
-	      RegisterHisto(al_mon,m_overlapY_vs_Phi_pix_eca[iWheel]) ; 
-	      m_overlapX_vs_Phi_pix_eca.push_back(new  TH1F(("overlapX_vs_Phi_pix_eca"+intToString(iWheel)).c_str(),(" X Overlap Eff. vs. Phi-ID in Pixel eca layer "+intToString(iWheel)).c_str(),maxPhiModulesPerRing,-0.5,maxPhiModulesPerRing-0.5));  
-	      RegisterHisto(al_mon,m_overlapX_vs_Phi_pix_eca[iWheel]) ;  
+	      if (m_extendedPlots)
+		{
+		  //overlaps by layer
+		  m_overlapY_vs_Phi_pix_eca.push_back(new  TH1F(("overlapY_vs_Phi_pix_eca"+intToString(iWheel)).c_str(),(" Y Overlap Eff. vs. Phi-ID in Pixel eca layer "+intToString(iWheel)).c_str(),maxPhiModulesPerRing,-0.5,maxPhiModulesPerRing-0.5));  
+		  RegisterHisto(al_mon,m_overlapY_vs_Phi_pix_eca[iWheel]) ; 
+		  m_overlapX_vs_Phi_pix_eca.push_back(new  TH1F(("overlapX_vs_Phi_pix_eca"+intToString(iWheel)).c_str(),(" X Overlap Eff. vs. Phi-ID in Pixel eca layer "+intToString(iWheel)).c_str(),maxPhiModulesPerRing,-0.5,maxPhiModulesPerRing-0.5));  
+		  RegisterHisto(al_mon,m_overlapX_vs_Phi_pix_eca[iWheel]) ;  
+		  
+		  m_overlapX_eff_vs_Phi_pix_eca.push_back(new  TProfile(("overlapX_eff_vs_Phi_pix_eca"+intToString(iWheel)).c_str(),("overlapX per possible hits vs. Phi-ID in Pixel eca layer "+intToString(iWheel)).c_str(),maxPhiModulesPerRing,-0.5,maxPhiModulesPerRing-0.5, 0., 1.));  
+		  RegisterHisto(al_mon,m_overlapX_eff_vs_Phi_pix_eca[iWheel]) ;
+		  m_overlapY_eff_vs_Phi_pix_eca.push_back(new  TProfile(("overlapY_eff_vs_Phi_pix_eca"+intToString(iWheel)).c_str(),("overlapY per possible hits vs. Phi-ID in Pixel eca layer "+intToString(iWheel)).c_str(),maxPhiModulesPerRing,-0.5,maxPhiModulesPerRing-0.5, 0., 1.));  
+		  RegisterHisto(al_mon,m_overlapY_eff_vs_Phi_pix_eca[iWheel]) ; 
+		}
 	      //hits on track for endcaps
 	      m_measurements_vs_Phi_pix_eca.push_back(new  TH1F(("measurements_vs_Phi_pix_eca"+intToString(iWheel)).c_str(),("possible measurements vs. Phi-ID in Pixel eca layer "+intToString(iWheel)).c_str(),maxPhiModulesPerRing,-0.5,maxPhiModulesPerRing-0.5));  
 	      RegisterHisto(al_mon,m_measurements_vs_Phi_pix_eca[iWheel]) ;  
 	      //efficiencies for endcaps
 	      m_measurements_eff_vs_Phi_pix_eca.push_back(new  TProfile(("measurements_eff_vs_Phi_pix_eca"+intToString(iWheel)).c_str(),("measurements per possible hits vs. Phi-ID in Pixel eca layer "+intToString(iWheel)).c_str(),maxPhiModulesPerRing,-0.5,maxPhiModulesPerRing-0.5, 0., 1.));  
 	      RegisterHisto(al_mon,m_measurements_eff_vs_Phi_pix_eca[iWheel]) ; 
-	      m_overlapX_eff_vs_Phi_pix_eca.push_back(new  TProfile(("overlapX_eff_vs_Phi_pix_eca"+intToString(iWheel)).c_str(),("overlapX per possible hits vs. Phi-ID in Pixel eca layer "+intToString(iWheel)).c_str(),maxPhiModulesPerRing,-0.5,maxPhiModulesPerRing-0.5, 0., 1.));  
-	      RegisterHisto(al_mon,m_overlapX_eff_vs_Phi_pix_eca[iWheel]) ;
-	      m_overlapY_eff_vs_Phi_pix_eca.push_back(new  TProfile(("overlapY_eff_vs_Phi_pix_eca"+intToString(iWheel)).c_str(),("overlapY per possible hits vs. Phi-ID in Pixel eca layer "+intToString(iWheel)).c_str(),maxPhiModulesPerRing,-0.5,maxPhiModulesPerRing-0.5, 0., 1.));  
-	      RegisterHisto(al_mon,m_overlapY_eff_vs_Phi_pix_eca[iWheel]) ; 
+	      
 
 	      
 
@@ -2531,24 +2595,28 @@ void IDAlignMonEfficiencies::makePIXEndCapsHistograms(MonGroup& al_mon){
 	      //hits for endcaps
 	      m_hits_vs_Phi_pix_ecc.push_back( new TH1F(("hits_vs_Phi_pix_ecc"+intToString(iWheel)).c_str(),("possible hits vs. Phi-ID in Pixel ecc layer "+intToString(iWheel)).c_str(),maxPhiModulesPerRing,-0.5,maxPhiModulesPerRing-0.5));  
 	      RegisterHisto(al_mon,m_hits_vs_Phi_pix_ecc[iWheel]) ;
-	      //overlaps by layer
-	      m_overlapY_vs_Phi_pix_ecc.push_back(new  TH1F(("overlapY_vs_Phi_pix_ecc"+intToString(iWheel)).c_str(),(" Y Overlap Eff. vs. Phi-ID in Pixel ecc layer "+intToString(iWheel)).c_str(),maxPhiModulesPerRing,-0.5,maxPhiModulesPerRing-0.5));  
-	      RegisterHisto(al_mon,m_overlapY_vs_Phi_pix_ecc[iWheel]) ; 
-	      m_overlapX_vs_Phi_pix_ecc.push_back(new  TH1F(("overlapX_vs_Phi_pix_ecc"+intToString(iWheel)).c_str(),(" X Overlap Eff. vs. Phi-ID in Pixel ecc layer "+intToString(iWheel)).c_str(),maxPhiModulesPerRing,-0.5,maxPhiModulesPerRing-0.5));  
-	      RegisterHisto(al_mon,m_overlapX_vs_Phi_pix_ecc[iWheel]) ;  
+	      if (m_extendedPlots)
+		{
+		  //overlaps by layer
+		  m_overlapY_vs_Phi_pix_ecc.push_back(new  TH1F(("overlapY_vs_Phi_pix_ecc"+intToString(iWheel)).c_str(),(" Y Overlap Eff. vs. Phi-ID in Pixel ecc layer "+intToString(iWheel)).c_str(),maxPhiModulesPerRing,-0.5,maxPhiModulesPerRing-0.5));  
+		  RegisterHisto(al_mon,m_overlapY_vs_Phi_pix_ecc[iWheel]) ; 
+		  m_overlapX_vs_Phi_pix_ecc.push_back(new  TH1F(("overlapX_vs_Phi_pix_ecc"+intToString(iWheel)).c_str(),(" X Overlap Eff. vs. Phi-ID in Pixel ecc layer "+intToString(iWheel)).c_str(),maxPhiModulesPerRing,-0.5,maxPhiModulesPerRing-0.5));  
+		  RegisterHisto(al_mon,m_overlapX_vs_Phi_pix_ecc[iWheel]) ;  
+		  m_overlapX_eff_vs_Phi_pix_ecc.push_back(new  TProfile(("overlapX_eff_vs_Phi_pix_ecc"+intToString(iWheel)).c_str(),("overlapX per possible hits vs. Phi-ID in Pixel ecc layer "+intToString(iWheel)).c_str(),maxPhiModulesPerRing,-0.5,maxPhiModulesPerRing-0.5, 0., 1.));  
+		  RegisterHisto(al_mon,m_overlapX_eff_vs_Phi_pix_ecc[iWheel]) ;
+		  m_overlapY_eff_vs_Phi_pix_ecc.push_back(new  TProfile(("overlapY_eff_vs_Phi_pix_ecc"+intToString(iWheel)).c_str(),("overlapY per possible hits vs. Phi-ID in Pixel ecc layer "+intToString(iWheel)).c_str(),maxPhiModulesPerRing,-0.5,maxPhiModulesPerRing-0.5, 0., 1.));  
+		  RegisterHisto(al_mon,m_overlapY_eff_vs_Phi_pix_ecc[iWheel]) ;
+		}
+
+	      
+	      
 	      //hits on track for endcaps
 	      m_measurements_vs_Phi_pix_ecc.push_back(new  TH1F(("measurements_vs_Phi_pix_ecc"+intToString(iWheel)).c_str(),("possible measurements vs. Phi-ID in Pixel ecc layer "+intToString(iWheel)).c_str(),maxPhiModulesPerRing,-0.5,maxPhiModulesPerRing-0.5));  
 	      RegisterHisto(al_mon,m_measurements_vs_Phi_pix_ecc[iWheel]) ;  
 	      //efficiencies for endcaps
 	      m_measurements_eff_vs_Phi_pix_ecc.push_back(new  TProfile(("measurements_eff_vs_Phi_pix_ecc"+intToString(iWheel)).c_str(),("measurements per possible hits vs. Phi-ID in Pixel ecc layer "+intToString(iWheel)).c_str(),maxPhiModulesPerRing,-0.5,maxPhiModulesPerRing-0.5, 0., 1.));  
 	      RegisterHisto(al_mon,m_measurements_eff_vs_Phi_pix_ecc[iWheel]) ; 
-	      m_overlapX_eff_vs_Phi_pix_ecc.push_back(new  TProfile(("overlapX_eff_vs_Phi_pix_ecc"+intToString(iWheel)).c_str(),("overlapX per possible hits vs. Phi-ID in Pixel ecc layer "+intToString(iWheel)).c_str(),maxPhiModulesPerRing,-0.5,maxPhiModulesPerRing-0.5, 0., 1.));  
-	      RegisterHisto(al_mon,m_overlapX_eff_vs_Phi_pix_ecc[iWheel]) ;
-	      m_overlapY_eff_vs_Phi_pix_ecc.push_back(new  TProfile(("overlapY_eff_vs_Phi_pix_ecc"+intToString(iWheel)).c_str(),("overlapY per possible hits vs. Phi-ID in Pixel ecc layer "+intToString(iWheel)).c_str(),maxPhiModulesPerRing,-0.5,maxPhiModulesPerRing-0.5, 0., 1.));  
-	      RegisterHisto(al_mon,m_overlapY_eff_vs_Phi_pix_ecc[iWheel]) ;
-
-	      
-	      
+	      	      
 	    }
 	}
     }
@@ -2654,11 +2722,19 @@ void IDAlignMonEfficiencies::makeSCTBarrelHistograms(MonGroup &al_mon){
       //hits on track by layer
       m_measurements_vs_Phi_sct_b.push_back(new TH1F(("measurements_vs_Phi_sct_b"+intToString(iLayer)).c_str(),("measurements per possible hits vs. Phi-ID in SCT barrel layer "+intToString(iLayer)).c_str(),maxPhiModulesPerLayer,-0.5,maxPhiModulesPerLayer-0.5));  
       RegisterHisto(al_mon,m_measurements_vs_Phi_sct_b[iLayer]);
-      //hits on track by layer Overlap
-      m_overlapX_vs_Phi_sct_b.push_back(new TH1F(("overlapX_vs_Phi_sct_b"+intToString(iLayer)).c_str(),("overlapX per possible hits vs. Phi-ID in SCT barrel layer "+intToString(iLayer)).c_str(),maxPhiModulesPerLayer,-0.5,maxPhiModulesPerLayer-0.5));
-      RegisterHisto(al_mon,m_overlapX_vs_Phi_sct_b[iLayer]);
-      m_overlapY_vs_Phi_sct_b.push_back(new TH1F(("overlapY_vs_Phi_sct_b"+intToString(iLayer)).c_str(),("overlapY per possible hits vs. Phi-ID in SCT barrel layer "+intToString(iLayer)).c_str(),maxPhiModulesPerLayer,-0.5,maxPhiModulesPerLayer-0.5));  
-      RegisterHisto(al_mon,m_overlapY_vs_Phi_sct_b[iLayer]); 
+      if (m_extendedPlots)
+	{
+	  //hits on track by layer Overlap
+	  m_overlapX_vs_Phi_sct_b.push_back(new TH1F(("overlapX_vs_Phi_sct_b"+intToString(iLayer)).c_str(),("overlapX per possible hits vs. Phi-ID in SCT barrel layer "+intToString(iLayer)).c_str(),maxPhiModulesPerLayer,-0.5,maxPhiModulesPerLayer-0.5));
+	  RegisterHisto(al_mon,m_overlapX_vs_Phi_sct_b[iLayer]);
+	  m_overlapY_vs_Phi_sct_b.push_back(new TH1F(("overlapY_vs_Phi_sct_b"+intToString(iLayer)).c_str(),("overlapY per possible hits vs. Phi-ID in SCT barrel layer "+intToString(iLayer)).c_str(),maxPhiModulesPerLayer,-0.5,maxPhiModulesPerLayer-0.5));  
+	  RegisterHisto(al_mon,m_overlapY_vs_Phi_sct_b[iLayer]); 
+	  //overlap efficiency by layer
+	  m_overlapX_eff_vs_Phi_sct_b.push_back(new TProfile(("overlapX_eff_vs_Phi_sct_b"+intToString(iLayer)).c_str(),("overlapX per possible hits vs. Phi-ID in SCT barrel layer "+intToString(iLayer)).c_str(),maxPhiModulesPerLayer,-0.5,maxPhiModulesPerLayer-0.5, 0., 1.));  
+	  RegisterHisto(al_mon,m_overlapX_eff_vs_Phi_sct_b[iLayer]); 
+	  m_overlapY_eff_vs_Phi_sct_b.push_back(new TProfile(("overlapY_eff_vs_Phi_sct_b"+intToString(iLayer)).c_str(),("overlapY per possible hits vs. Phi-ID in SCT barrel layer "+intToString(iLayer)).c_str(),maxPhiModulesPerLayer,-0.5,maxPhiModulesPerLayer-0.5, 0., 1.));  
+	  RegisterHisto(al_mon,m_overlapY_eff_vs_Phi_sct_b[iLayer]); 
+	}
       //outliers by layer
       m_outliers_vs_Phi_sct_b.push_back(new TH1F(("outliers_vs_Phi_sct_b"+intToString(iLayer)).c_str(),("outliers per possible hits vs. Phi-ID in SCT barrel layer "+intToString(iLayer)).c_str(),maxPhiModulesPerLayer,-0.5,maxPhiModulesPerLayer-0.5));  
       RegisterHisto(al_mon,m_outliers_vs_Phi_sct_b[iLayer]); 
@@ -2668,11 +2744,6 @@ void IDAlignMonEfficiencies::makeSCTBarrelHistograms(MonGroup &al_mon){
       //hit efficiency by layer
       m_measurements_eff_vs_Phi_sct_b.push_back(new TProfile(("measurements_eff_vs_Phi_sct_b"+intToString(iLayer)).c_str(),("measurements per possible hits vs. Phi-ID in SCT barrel layer "+intToString(iLayer)).c_str(),maxPhiModulesPerLayer,-0.5,maxPhiModulesPerLayer-0.5, 0., 1.));  
       RegisterHisto(al_mon,m_measurements_eff_vs_Phi_sct_b[iLayer]); 
-      //overlap efficiency by layer
-      m_overlapX_eff_vs_Phi_sct_b.push_back(new TProfile(("overlapX_eff_vs_Phi_sct_b"+intToString(iLayer)).c_str(),("overlapX per possible hits vs. Phi-ID in SCT barrel layer "+intToString(iLayer)).c_str(),maxPhiModulesPerLayer,-0.5,maxPhiModulesPerLayer-0.5, 0., 1.));  
-      RegisterHisto(al_mon,m_overlapX_eff_vs_Phi_sct_b[iLayer]); 
-      m_overlapY_eff_vs_Phi_sct_b.push_back(new TProfile(("overlapY_eff_vs_Phi_sct_b"+intToString(iLayer)).c_str(),("overlapY per possible hits vs. Phi-ID in SCT barrel layer "+intToString(iLayer)).c_str(),maxPhiModulesPerLayer,-0.5,maxPhiModulesPerLayer-0.5, 0., 1.));  
-      RegisterHisto(al_mon,m_overlapY_eff_vs_Phi_sct_b[iLayer]); 
       //outliers eff by layer
       m_outliers_eff_vs_Phi_sct_b.push_back(new TProfile(("outliers_eff_vs_Phi_sct_b"+intToString(iLayer)).c_str(),("outliers per possible hits vs. Phi-ID in SCT barrel layer "+intToString(iLayer)).c_str(),maxPhiModulesPerLayer,-0.5,maxPhiModulesPerLayer-0.5, 0., 1.));  
       RegisterHisto(al_mon,m_outliers_eff_vs_Phi_sct_b[iLayer]);
@@ -2685,11 +2756,19 @@ void IDAlignMonEfficiencies::makeSCTBarrelHistograms(MonGroup &al_mon){
       //measured hits vs eta
       m_measurements_vs_Eta_sct_b.push_back(new TH1F(("measurements_vs_Eta_sct_b"+intToString(iLayer)).c_str(),("measurements per possible hits vs. Eta-ID in SCT barrel layer "+intToString(iLayer)).c_str(),EtaModules,-EtaModules/2.,EtaModules/2.));  
       RegisterHisto(al_mon,m_measurements_vs_Eta_sct_b[iLayer]) ;
-      //hits overlap Eta
-      m_overlapX_vs_Eta_sct_b.push_back(new TH1F(("overlapX_vs_Eta_sct_b"+intToString(iLayer)).c_str(),("overlapX per possible hits vs. Eta-ID in SCT barrel layer "+intToString(iLayer)).c_str(),EtaModules,-EtaModules/2.,EtaModules/2.));  
-      RegisterHisto(al_mon,m_overlapX_vs_Eta_sct_b[iLayer]) ;
-      m_overlapY_vs_Eta_sct_b.push_back(new TH1F(("overlapY_vs_Eta_sct_b"+intToString(iLayer)).c_str(),("overlapY per possible hits vs. Eta-ID in SCT barrel layer "+intToString(iLayer)).c_str(),EtaModules,-EtaModules/2.,EtaModules/2.));  
-      RegisterHisto(al_mon,m_overlapY_vs_Eta_sct_b[iLayer]) ;
+      if (m_extendedPlots)
+	{
+	  //hits overlap Eta
+	  m_overlapX_vs_Eta_sct_b.push_back(new TH1F(("overlapX_vs_Eta_sct_b"+intToString(iLayer)).c_str(),("overlapX per possible hits vs. Eta-ID in SCT barrel layer "+intToString(iLayer)).c_str(),EtaModules,-EtaModules/2.,EtaModules/2.));  
+	  RegisterHisto(al_mon,m_overlapX_vs_Eta_sct_b[iLayer]) ;
+	  m_overlapY_vs_Eta_sct_b.push_back(new TH1F(("overlapY_vs_Eta_sct_b"+intToString(iLayer)).c_str(),("overlapY per possible hits vs. Eta-ID in SCT barrel layer "+intToString(iLayer)).c_str(),EtaModules,-EtaModules/2.,EtaModules/2.));  
+	  RegisterHisto(al_mon,m_overlapY_vs_Eta_sct_b[iLayer]) ;
+	  //OverlapX eff vs Eta
+	  m_overlapX_eff_vs_Eta_sct_b.push_back(new TProfile(("overlapX_eff_vs_Eta_sct_b"+intToString(iLayer)).c_str(),("overlapX per possible hits vs. Eta-ID in SCT barrel layer "+intToString(iLayer)).c_str(),EtaModules,-EtaModules,EtaModules, 0., 1.));  
+	  RegisterHisto(al_mon,m_overlapX_eff_vs_Eta_sct_b[iLayer]) ;
+	  m_overlapY_eff_vs_Eta_sct_b.push_back(new TProfile(("overlapY_eff_vs_Eta_sct_b"+intToString(iLayer)).c_str(),("overlapY per possible hits vs. Eta-ID in SCT barrel layer "+intToString(iLayer)).c_str(),EtaModules,-EtaModules,EtaModules, 0., 1.));  
+	  RegisterHisto(al_mon,m_overlapY_eff_vs_Eta_sct_b[iLayer]) ;
+	}
       //outliers vs eta
       m_outliers_vs_Eta_sct_b.push_back(new TH1F(("outliers_vs_Eta_sct_b"+intToString(iLayer)).c_str(),("outliers per possible hits vs. Eta-ID in SCT barrel layer "+intToString(iLayer)).c_str(),EtaModules,-EtaModules/2.,EtaModules/2.));  
       RegisterHisto(al_mon,m_outliers_vs_Eta_sct_b[iLayer]);
@@ -2699,11 +2778,7 @@ void IDAlignMonEfficiencies::makeSCTBarrelHistograms(MonGroup &al_mon){
       //measurements eff vs Eta
       m_measurements_eff_vs_Eta_sct_b.push_back( new TProfile(("measurements_eff_vs_Eta_sct_b"+intToString(iLayer)).c_str(),("measurements per possible hits vs. Eta-ID in SCT barrel layer "+intToString(iLayer)).c_str(),EtaModules,-EtaModules/2.,EtaModules/2, 0., 1.));
       RegisterHisto(al_mon,m_measurements_eff_vs_Eta_sct_b[iLayer]) ; 
-      //OverlapX eff vs Eta
-      m_overlapX_eff_vs_Eta_sct_b.push_back(new TProfile(("overlapX_eff_vs_Eta_sct_b"+intToString(iLayer)).c_str(),("overlapX per possible hits vs. Eta-ID in SCT barrel layer "+intToString(iLayer)).c_str(),EtaModules,-EtaModules,EtaModules, 0., 1.));  
-      RegisterHisto(al_mon,m_overlapX_eff_vs_Eta_sct_b[iLayer]) ;
-      m_overlapY_eff_vs_Eta_sct_b.push_back(new TProfile(("overlapY_eff_vs_Eta_sct_b"+intToString(iLayer)).c_str(),("overlapY per possible hits vs. Eta-ID in SCT barrel layer "+intToString(iLayer)).c_str(),EtaModules,-EtaModules,EtaModules, 0., 1.));  
-      RegisterHisto(al_mon,m_overlapY_eff_vs_Eta_sct_b[iLayer]) ;
+      
       //Outliers eff vs Eta
       m_outliers_eff_vs_Eta_sct_b.push_back(new TProfile(("outliers_eff_vs_Eta_sct_b"+intToString(iLayer)).c_str(),("outliers per possible hits vs. Eta-ID in SCT barrel layer "+intToString(iLayer)).c_str(),EtaModules,-EtaModules/2.,EtaModules/2., 0., 1.));  
       RegisterHisto(al_mon,m_outliers_eff_vs_Eta_sct_b[iLayer]) ; 
@@ -2759,19 +2834,23 @@ void IDAlignMonEfficiencies::makeSCTEndCapsHistograms(MonGroup& al_mon){
 	    
 	    m_hits_vs_Phi_sct_eca.push_back(new TH1F(("hits_vs_Phi_sct_eca"+intToString(iWheel)).c_str(),("possible hits vs. Phi-ID in SCT eca layer "+intToString(iWheel)).c_str(),maxModulesPerRing,-0.5,maxModulesPerRing-0.5));  
 	    RegisterHisto(al_mon,m_hits_vs_Phi_sct_eca[iWheel]) ;
-	    m_overlapX_vs_Phi_sct_eca.push_back(new TH1F(("overlapX_vs_Phi_sct_eca"+intToString(iWheel)).c_str(),(" X Overlap Eff. vs. Phi-ID in SCT eca layer "+intToString(iWheel)).c_str(),maxModulesPerRing,-0.5,maxModulesPerRing-0.5));  
-	    RegisterHisto(al_mon,m_overlapX_vs_Phi_sct_eca[iWheel]) ;
-	    m_overlapY_vs_Phi_sct_eca.push_back(new TH1F(("overlapY_vs_Phi_sct_eca"+intToString(iWheel)).c_str(),(" Y Overlap Eff. vs. Phi-ID in SCT eca layer "+intToString(iWheel)).c_str(),maxModulesPerRing,-0.5,maxModulesPerRing-0.5));  
-	    RegisterHisto(al_mon,m_overlapY_vs_Phi_sct_eca[iWheel]) ;  
+	    if (m_extendedPlots)
+	      {
+		m_overlapX_vs_Phi_sct_eca.push_back(new TH1F(("overlapX_vs_Phi_sct_eca"+intToString(iWheel)).c_str(),(" X Overlap Eff. vs. Phi-ID in SCT eca layer "+intToString(iWheel)).c_str(),maxModulesPerRing,-0.5,maxModulesPerRing-0.5));  
+		RegisterHisto(al_mon,m_overlapX_vs_Phi_sct_eca[iWheel]) ;
+		m_overlapY_vs_Phi_sct_eca.push_back(new TH1F(("overlapY_vs_Phi_sct_eca"+intToString(iWheel)).c_str(),(" Y Overlap Eff. vs. Phi-ID in SCT eca layer "+intToString(iWheel)).c_str(),maxModulesPerRing,-0.5,maxModulesPerRing-0.5));  
+		RegisterHisto(al_mon,m_overlapY_vs_Phi_sct_eca[iWheel]) ;  
+		m_overlapX_eff_vs_Phi_sct_eca.push_back(new TProfile(("overlapX_eff_vs_Phi_sct_eca"+intToString(iWheel)).c_str(),("overlapX per possible hits vs. Phi-ID in SCT eca layer "+intToString(iWheel)).c_str(),maxModulesPerRing,-0.5,maxModulesPerRing-0.5, 0., 1.));  
+		RegisterHisto(al_mon,m_overlapX_eff_vs_Phi_sct_eca[iWheel]) ;  
+		m_overlapY_eff_vs_Phi_sct_eca.push_back(new TProfile(("overlapY_eff_vs_Phi_sct_eca"+intToString(iWheel)).c_str(),("overlapY per possible hits vs. Phi-ID in SCT eca layer "+intToString(iWheel)).c_str(),maxModulesPerRing,-0.5,maxModulesPerRing-0.5, 0., 1.));  
+		RegisterHisto(al_mon,m_overlapY_eff_vs_Phi_sct_eca[iWheel]) ;
+	      }
+
 	    m_measurements_vs_Phi_sct_eca.push_back(new TH1F(("measurements_vs_Phi_sct_eca"+intToString(iWheel)).c_str(),("possible measurements vs. Phi-ID in SCT eca layer "+intToString(iWheel)).c_str(),maxModulesPerRing,-0.5,maxModulesPerRing-0.5));  
 	    RegisterHisto(al_mon,m_measurements_vs_Phi_sct_eca[iWheel]) ; 
 	    m_measurements_eff_vs_Phi_sct_eca.push_back(new TProfile(("measurements_eff_vs_Phi_sct_eca"+intToString(iWheel)).c_str(),("measurements per possible hits vs. Phi-ID in SCT eca layer "+intToString(iWheel)).c_str(),maxModulesPerRing,-0.5,maxModulesPerRing-0.5, 0., 1.));  
 	    RegisterHisto(al_mon,m_measurements_eff_vs_Phi_sct_eca[iWheel]) ; 
-	    m_overlapX_eff_vs_Phi_sct_eca.push_back(new TProfile(("overlapX_eff_vs_Phi_sct_eca"+intToString(iWheel)).c_str(),("overlapX per possible hits vs. Phi-ID in SCT eca layer "+intToString(iWheel)).c_str(),maxModulesPerRing,-0.5,maxModulesPerRing-0.5, 0., 1.));  
-	    RegisterHisto(al_mon,m_overlapX_eff_vs_Phi_sct_eca[iWheel]) ;  
-	    m_overlapY_eff_vs_Phi_sct_eca.push_back(new TProfile(("overlapY_eff_vs_Phi_sct_eca"+intToString(iWheel)).c_str(),("overlapY per possible hits vs. Phi-ID in SCT eca layer "+intToString(iWheel)).c_str(),maxModulesPerRing,-0.5,maxModulesPerRing-0.5, 0., 1.));  
-	    RegisterHisto(al_mon,m_overlapY_eff_vs_Phi_sct_eca[iWheel]) ;
-
+	    
 	     
       
 	     
@@ -2779,19 +2858,23 @@ void IDAlignMonEfficiencies::makeSCTEndCapsHistograms(MonGroup& al_mon){
 	  else if (iSide<0){ //ECC
 	    m_hits_vs_Phi_sct_ecc.push_back(new TH1F(("hits_vs_Phi_sct_ecc"+intToString(iWheel)).c_str(),("possible hits vs. Phi-ID in SCT ecc layer "+intToString(iWheel)).c_str(),maxModulesPerRing,-0.5,maxModulesPerRing-0.5));  
 	    RegisterHisto(al_mon,m_hits_vs_Phi_sct_ecc[iWheel]) ;
-	    m_overlapX_vs_Phi_sct_ecc.push_back(new TH1F(("overlapX_vs_Phi_sct_ecc"+intToString(iWheel)).c_str(),(" X Overlap Eff. vs. Phi-ID in SCT ecc layer "+intToString(iWheel)).c_str(),maxModulesPerRing,-0.5,maxModulesPerRing-0.5));  
-	    RegisterHisto(al_mon,m_overlapX_vs_Phi_sct_ecc[iWheel]) ;
-	    m_overlapY_vs_Phi_sct_ecc.push_back(new TH1F(("overlapY_vs_Phi_sct_ecc"+intToString(iWheel)).c_str(),(" Y Overlap Eff. vs. Phi-ID in SCT ecc layer "+intToString(iWheel)).c_str(),maxModulesPerRing,-0.5,maxModulesPerRing-0.5));  
-	    RegisterHisto(al_mon,m_overlapY_vs_Phi_sct_ecc[iWheel]) ;
+	    if (m_extendedPlots)
+	      {
+		m_overlapX_vs_Phi_sct_ecc.push_back(new TH1F(("overlapX_vs_Phi_sct_ecc"+intToString(iWheel)).c_str(),(" X Overlap Eff. vs. Phi-ID in SCT ecc layer "+intToString(iWheel)).c_str(),maxModulesPerRing,-0.5,maxModulesPerRing-0.5));  
+		RegisterHisto(al_mon,m_overlapX_vs_Phi_sct_ecc[iWheel]) ;
+		m_overlapY_vs_Phi_sct_ecc.push_back(new TH1F(("overlapY_vs_Phi_sct_ecc"+intToString(iWheel)).c_str(),(" Y Overlap Eff. vs. Phi-ID in SCT ecc layer "+intToString(iWheel)).c_str(),maxModulesPerRing,-0.5,maxModulesPerRing-0.5));  
+		RegisterHisto(al_mon,m_overlapY_vs_Phi_sct_ecc[iWheel]) ;
+		m_overlapX_eff_vs_Phi_sct_ecc.push_back(new TProfile(("overlapX_eff_vs_Phi_sct_ecc"+intToString(iWheel)).c_str(),("overlapX per possible hits vs. Phi-ID in SCT ecc layer "+intToString(iWheel)).c_str(),maxModulesPerRing,-0.5,maxModulesPerRing-0.5, 0., 1.));  
+		RegisterHisto(al_mon,m_overlapX_eff_vs_Phi_sct_ecc[iWheel]) ;  
+		m_overlapY_eff_vs_Phi_sct_ecc.push_back(new TProfile(("overlapY_eff_vs_Phi_sct_ecc"+intToString(iWheel)).c_str(),("overlapY per possible hits vs. Phi-ID in SCT ecc layer "+intToString(iWheel)).c_str(),maxModulesPerRing,-0.5,maxModulesPerRing-0.5, 0., 1.));  
+		RegisterHisto(al_mon,m_overlapY_eff_vs_Phi_sct_ecc[iWheel]) ;
+	      }
+	    
 	    m_measurements_vs_Phi_sct_ecc.push_back(new TH1F(("measurements_vs_Phi_sct_ecc"+intToString(iWheel)).c_str(),("possible measurements vs. Phi-ID in SCT ecc layer "+intToString(iWheel)).c_str(),maxModulesPerRing,-0.5,maxModulesPerRing-0.5));  
 	    RegisterHisto(al_mon,m_measurements_vs_Phi_sct_ecc[iWheel]) ;
 	    m_measurements_eff_vs_Phi_sct_ecc.push_back(new TProfile(("measurements_eff_vs_Phi_sct_ecc"+intToString(iWheel)).c_str(),("measurements per possible hits vs. Phi-ID in SCT ecc layer "+intToString(iWheel)).c_str(),maxModulesPerRing,-0.5,maxModulesPerRing-0.5, 0., 1.));  
 	    RegisterHisto(al_mon,m_measurements_eff_vs_Phi_sct_ecc[iWheel]) ;
-	    m_overlapX_eff_vs_Phi_sct_ecc.push_back(new TProfile(("overlapX_eff_vs_Phi_sct_ecc"+intToString(iWheel)).c_str(),("overlapX per possible hits vs. Phi-ID in SCT ecc layer "+intToString(iWheel)).c_str(),maxModulesPerRing,-0.5,maxModulesPerRing-0.5, 0., 1.));  
-	    RegisterHisto(al_mon,m_overlapX_eff_vs_Phi_sct_ecc[iWheel]) ;  
-	    m_overlapY_eff_vs_Phi_sct_ecc.push_back(new TProfile(("overlapY_eff_vs_Phi_sct_ecc"+intToString(iWheel)).c_str(),("overlapY per possible hits vs. Phi-ID in SCT ecc layer "+intToString(iWheel)).c_str(),maxModulesPerRing,-0.5,maxModulesPerRing-0.5, 0., 1.));  
-	    RegisterHisto(al_mon,m_overlapY_eff_vs_Phi_sct_ecc[iWheel]) ;
-	    
+	    	    
 	    
 	    
 	  }
diff --git a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonEfficiencies.h b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonEfficiencies.h
index d600ab44504b511ffa4325680d05e4dfe631e36e..a8a981255367109c05b17e548b24de178a7abcd7 100755
--- a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonEfficiencies.h
+++ b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonEfficiencies.h
@@ -422,6 +422,7 @@ class IDAlignMonEfficiencies : public ManagedMonitorToolBase
   float m_maxSiliconEffWindow;
   std::string m_triggerChainName;
   bool m_doHoleSearch;
+  bool m_extendedPlots;
   std::string m_Pixel_Manager;
   std::string m_SCT_Manager;
   std::string m_TRT_Manager;
diff --git a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonGenericTracks.cxx b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonGenericTracks.cxx
index 3028a0fdadf9bce1b2615e1f368c3ef5184d3611..e35d73a90be6f760d1fb45016c83a65fe88f95e4 100755
--- a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonGenericTracks.cxx
+++ b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonGenericTracks.cxx
@@ -14,6 +14,8 @@
 #include "TProfile.h"
 #include "TMath.h"
 
+#include "LWHists/TH1F_LW.h"
+
 #include "GaudiKernel/IJobOptionsSvc.h"
 #include "GaudiKernel/MsgStream.h"
 
@@ -34,14 +36,7 @@
 #include "TrkEventPrimitives/FitQuality.h"
 #include "TrkEventPrimitives/LocalParameters.h"
 
-//#include "VxVertex/VxContainer.h"
-//#include "VxVertex/VxCandidate.h"
-//#include "VxVertex/RecVertex.h"
-//#include "VxVertex/Vertex.h"
-//#include "VxVertex/VxTrackAtVertex.h"
-
 #include "InDetBeamSpotService/IBeamCondSvc.h"
-//#include "EventInfo/EventID.h"
 #include "xAODEventInfo/EventInfo.h"
 
 
@@ -578,30 +573,13 @@ StatusCode IDAlignMonGenericTracks::bookHistograms()
     const Int_t nx = 12;
     TString hitSummary[nx] = {"PixHits #geq 3","SCTHits #geq 8","TRTHits #geq 20","PixHitsB #geq 3","SCTHitsB #geq 8","TRTHitsB #geq 20","PixHitsECA #geq 2","SCTHitsECA #geq 2","TRTHitsECA #geq 15","PixHitsECC #geq 2","SCTHitsECC #geq 2","TRTHitsECC #geq 15"};   
 
-    m_summary = new TH1F("summary","summary",12,-0.5,11.5); 
+    m_summary = TH1F_LW::create("summary","summary",12,-0.5,11.5); 
     for (int i=1;i<=12;i++) m_summary->GetXaxis()->SetBinLabel(i,hitSummary[i-1]);  
     m_summary->GetYaxis()->SetTitle("Number of Tracks");    
     RegisterHisto(al_mon,m_summary);
 
-    m_trk_d0_vs_phi_vs_eta         = new TH3F("trk_d0_vs_phi_vs_eta"       , "d0 vs phi vs eta"           , 100, -3., 3.,  40, 0, 2*m_Pi,  100, -0.2, 0.2 );
-    m_trk_pT_vs_eta                = new TH2F("trk_pT_vs_eta"              , "pT vs eta "                 , 100, -3., 3., 100, 0., 50.);
-    m_trk_d0_vs_phi_vs_eta_barrel  = new TH3F("trk_d0_vs_phi_vs_eta_barrel", "d0 vs phi vs eta (Barrel)"  , 100, -3., 3.,  40, 0, 2*m_Pi,  100, -0.2, 0.2 );
-    m_trk_pT_vs_eta_barrel         = new TH2F("trk_pT_vs_eta_barrel"       , "pT vs eta barrel"           , 100, -3., 3., 100, 0., 50.);
-    m_trk_d0_vs_phi_vs_eta_ecc     = new TH3F("trk_d0_vs_phi_vs_eta_ecc"   , "d0 vs phi vs eta (Endcap C)", 100, -3., 3.,  40, 0, 2*m_Pi,  100, -0.2, 0.2 );
-    m_trk_pT_vs_eta_ecc            = new TH2F("trk_pT_vs_eta_ecc"          , "pT vs eta ecc"              , 100, -3., 3., 100, 0., 50.);
-    m_trk_d0_vs_phi_vs_eta_eca     = new TH3F("trk_d0_vs_phi_vs_eta_eca"   , "d0 vs phi vs eta (Endcap A)", 100, -3., 3.,  40, 0, 2*m_Pi,  100, -0.2, 0.2 );
-    m_trk_pT_vs_eta_eca            = new TH2F("trk_pT_vs_eta_eca"          , "pT vs eta eca"              , 100, -3., 3., 100, 0., 50.);
-
-
-    RegisterHisto(al_mon, m_trk_d0_vs_phi_vs_eta        );
-    RegisterHisto(al_mon, m_trk_pT_vs_eta       );
-    RegisterHisto(al_mon, m_trk_d0_vs_phi_vs_eta_barrel );
-    RegisterHisto(al_mon, m_trk_pT_vs_eta_barrel    );
-    RegisterHisto(al_mon, m_trk_d0_vs_phi_vs_eta_ecc    );
-    RegisterHisto(al_mon, m_trk_pT_vs_eta_ecc           );
-    RegisterHisto(al_mon, m_trk_d0_vs_phi_vs_eta_eca    );
-    RegisterHisto(al_mon, m_trk_pT_vs_eta_eca     );
- 
+
+     
     if(m_doIP){
       m_trk_d0_wrtPV_vs_phi_vs_eta         = new TH3F("trk_d0_wrtPV_vs_phi_vs_eta"       , "d0 vs phi vs eta"           , 100, -3., 3.,  40, 0, 2*m_Pi,  100, -0.5, 0.5 );
       m_trk_d0_wrtPV_vs_phi_vs_eta_barrel  = new TH3F("trk_d0_wrtPV_vs_phi_vs_eta_barrel", "d0 vs phi vs eta (Barrel)"  , 100, -3., 3.,  40, 0, 2*m_Pi,  100, -0.5, 0.5 );
@@ -624,255 +602,316 @@ StatusCode IDAlignMonGenericTracks::bookHistograms()
       RegisterHisto(al_mon, m_trk_z0_wrtPV_vs_phi_vs_eta_ecc    );
       RegisterHisto(al_mon, m_trk_z0_wrtPV_vs_phi_vs_eta_eca    );
     }
-
-    m_trk_d0_barrel_zoomin = new TH1F("trk_d0_barrel_zoomin","Impact parameter: all tracks (Barrel)",100,-5,5);
-    m_trk_z0_barrel_zoomin = new TH1F("trk_z0_barrel_zoomin","Track z0: all tracks (Barrel)",100,-300,300);  
-    m_trk_d0_eca_zoomin = new TH1F("trk_d0_eca_zoomin","Impact parameter: all tracks (Endcap A)",100,-5,5);
-    m_trk_z0_eca_zoomin = new TH1F("trk_z0_eca_zoomin","Track z0: all tracks (Endcap A)",100,-300,300);
-    m_trk_d0_ecc_zoomin = new TH1F("trk_d0_ecc_zoomin","Impact parameter: all tracks (Endcap C)",100,-5,5);
-    m_trk_z0_ecc_zoomin = new TH1F("trk_z0_ecc_zoomin","Track z0: all tracks (Endcap C)",100,-300,300);
-
-    m_trk_d0_barrel  = new TH1F("trk_d0_barrel","Impact parameter: all tracks (Barrel); d_{0} [mm]",100, -m_d0Range, m_d0Range);
-    m_trk_d0c_barrel = new TH1F("trk_d0c_barrel","Impact parameter (corrected for vertex): all tracks (Barrel)",100, -5, 5);  
-    m_trk_z0_barrel  = new TH1F("trk_z0_barrel","Track z0: all tracks (Barrel)",100, -m_z0Range, m_z0Range);
-    m_trk_d0_eca     = new TH1F("trk_d0_eca","Impact parameter: all tracks (Endcap A)",100, -m_d0Range, m_d0Range);
-    m_trk_d0c_eca    = new TH1F("trk_d0c_eca","Impact parameter (corrected for vertex): all tracks  (Endcap A)",100, -m_d0Range, m_d0Range);  
-    m_trk_z0_eca     = new TH1F("trk_z0_eca","Track z0: all tracks (Endcap A)",100, -m_z0Range, m_z0Range);
-    m_trk_d0_ecc     = new TH1F("trk_d0_ecc","Impact parameter: all tracks (Endcap C)",100, -m_d0Range, m_d0Range);
-    m_trk_d0c_ecc    = new TH1F("trk_d0c_ecc","Impact parameter (corrected for vertex): all tracks  (Endcap C)",100, -m_d0Range, m_d0Range);  
-    m_trk_z0_ecc     = new TH1F("trk_z0_ecc","Track z0: all tracks (Endcap C)",100, -m_z0Range, m_z0Range);
-    //############### 
-    double z0cRange=5;
-    double d0cRange=0.1;
-    m_trk_d0c_neg= new TH1F("trk_d0c_neg","Impact parameter: all negative charged tracks" ,50,-d0cRange,d0cRange);
-    RegisterHisto(al_mon,m_trk_d0c_neg);
-    m_trk_d0c_pos= new TH1F("trk_d0c_pos","Impact parameter: all positive charged tracks" ,50,-d0cRange,d0cRange);
-    RegisterHisto(al_mon,m_trk_d0c_pos);
-    m_trk_d0c_neg_barrel= new TH1F("trk_d0c_neg_barrel","Impact parameter: all negative charged tracks (Barrel)" ,50,-d0cRange,d0cRange);
-    RegisterHisto(al_mon,m_trk_d0c_neg_barrel);
-    m_trk_d0c_pos_barrel= new TH1F("trk_d0c_pos_barrel","Impact parameter: all positive charged tracks (Barrel)" ,50,-d0cRange,d0cRange);
-    RegisterHisto(al_mon,m_trk_d0c_pos_barrel);
-    m_trk_d0c_neg_eca= new TH1F("trk_d0c_neg_eca","Impact parameter: all negative charged tracks (Endcap A)" ,50,-d0cRange,d0cRange);
-    RegisterHisto(al_mon,m_trk_d0c_neg_eca);
-    m_trk_d0c_pos_eca= new TH1F("trk_d0c_pos_eca","Impact parameter: all positive charged tracks (Endcap A)" ,50,-d0cRange,d0cRange);
-    RegisterHisto(al_mon,m_trk_d0c_pos_eca);
-    m_trk_d0c_neg_ecc= new TH1F("trk_d0c_neg_ecc","Impact parameter: all negative charged tracks (Endcap C)" ,50,-d0cRange,d0cRange);
-    RegisterHisto(al_mon,m_trk_d0c_neg_ecc);
-    m_trk_d0c_pos_ecc= new TH1F("trk_d0c_pos_ecc","Impact parameter: all positive charged tracks (Endcap C)" ,50,-d0cRange,d0cRange);
-    RegisterHisto(al_mon,m_trk_d0c_pos_ecc);
-
-    m_trk_d0c_asym=new TH1F("trk_d0c_asym","Track Charge Asymmetry versus d0 (corrected for vertex)",50,-d0cRange,d0cRange);
-    RegisterHisto(al_mon,m_trk_d0c_asym);
-    m_trk_d0c_asym->GetYaxis()->SetTitle("d_0 (mm)");   
-    m_trk_d0c_asym->GetYaxis()->SetTitle("(pos-neg)/(pos+neg)");   
-
-    m_trk_d0c_asym_barrel=new TH1F("trk_d0c_asym_barrel","Track Charge Asymmetry versus d0 (Barrel, corrected for vertex)",50,-d0cRange,d0cRange);
-    RegisterHisto(al_mon,m_trk_d0c_asym_barrel);
-    m_trk_d0c_asym_eca=new TH1F("trk_d0c_asym_eca","Track Charge Asymmetry versus d0(Endcap A, corrected for vertex)",50,-d0cRange,d0cRange);
-    RegisterHisto(al_mon,m_trk_d0c_asym_eca);
-    m_trk_d0c_asym_ecc=new TH1F("trk_d0c_asym_ecc","Track Charge Asymmetry versus d0(Endcap C, corrected for vertex)",50,-d0cRange,d0cRange);
-    RegisterHisto(al_mon,m_trk_d0c_asym_ecc);
-
-    m_trk_z0c_neg= new TH1F("trk_z0c_neg","z0: all negative charged tracks" ,50,-z0cRange,z0cRange);
-    RegisterHisto(al_mon,m_trk_z0c_neg);
-    m_trk_z0c_pos= new TH1F("trk_z0c_pos","z0: all positive charged tracks" ,50,-z0cRange,z0cRange);
-    RegisterHisto(al_mon,m_trk_z0c_pos);
-    m_trk_z0c_neg_barrel= new TH1F("trk_z0c_neg_barrel",":z0 all negative charged tracks (Barrel)" ,50,-z0cRange,z0cRange);
-    RegisterHisto(al_mon,m_trk_z0c_neg_barrel);
-    m_trk_z0c_pos_barrel= new TH1F("trk_z0c_pos_barrel","z0: all positive charged tracks (Barrel)" ,50,-z0cRange,z0cRange);
-    RegisterHisto(al_mon,m_trk_z0c_pos_barrel);
-    m_trk_z0c_neg_eca= new TH1F("trk_z0c_neg_eca","z0: all negative charged tracks (Endcap A)" ,50,-z0cRange,z0cRange);
-    RegisterHisto(al_mon,m_trk_z0c_neg_eca);
-    m_trk_z0c_pos_eca= new TH1F("trk_z0c_pos_eca","z0: all positive charged tracks (Endcap A)" ,50,-z0cRange,z0cRange);
-    RegisterHisto(al_mon,m_trk_z0c_pos_eca);
-    m_trk_z0c_neg_ecc= new TH1F("trk_z0c_neg_ecc","z0: all negative charged tracks (Endcap C)" ,50,-z0cRange,z0cRange);
-    RegisterHisto(al_mon,m_trk_z0c_neg_ecc);
-    m_trk_z0c_pos_ecc= new TH1F("trk_z0c_pos_ecc","z0: all positive charged tracks (Endcap C)" ,50,-z0cRange,z0cRange);
-    RegisterHisto(al_mon,m_trk_z0c_pos_ecc);
-    m_trk_z0c_asym=new TH1F("trk_z0c_asym","Track Charge Asymmetry versus z0 (corrected for vertex)",50,-z0cRange,z0cRange);
-    RegisterHisto(al_mon,m_trk_z0c_asym);
-    m_trk_z0c_asym_barrel=new TH1F("trk_z0c_asym_barrel","Track Charge Asymmetry versus z0 (Barrel, corrected for vertex)",50,-z0cRange,z0cRange);
-    RegisterHisto(al_mon,m_trk_z0c_asym_barrel);
-    m_trk_z0c_asym_eca=new TH1F("trk_z0c_asym_eca","Track Charge Asymmetry versus z0(Endcap A, corrected for vertex)",50,-z0cRange,z0cRange);
-    RegisterHisto(al_mon,m_trk_z0c_asym_eca);
-    m_trk_z0c_asym_ecc=new TH1F("trk_z0c_asym_ecc","Track Charge Asymmetry versus z0(Endcap C, corrected for vertex)",50,-z0cRange,z0cRange);
-    RegisterHisto(al_mon,m_trk_z0c_asym_ecc);
     
-    // histo for self beam spot calculation (using the data of the whole run... so nothing to do with the beam spot by Lumiblock)
-    m_trk_d0_vs_phi0_z0 = new TH3F("trk_d0_vs_phi0_z0","Track d_{0} vs #phi_{0} and z_{0}", 30, 0., 2*m_Pi, 20, -m_z0Range/2, m_z0Range/2, 30, -m_d0Range, m_d0Range);
-    m_trk_d0_vs_phi0_z0->SetXTitle("Track #phi_{0} [rad]");
-    m_trk_d0_vs_phi0_z0->SetYTitle("Track z_{0} [mm]");
-    RegisterHisto(al_mon, m_trk_d0_vs_phi0_z0);
-
-
-
-   //###############
+    
+    //###############
  
-    RegisterHisto(al_mon,m_trk_d0_barrel_zoomin);
-    RegisterHisto(al_mon,m_trk_z0_barrel_zoomin) ; 
-    RegisterHisto(al_mon,m_trk_d0_eca_zoomin) ;  
-    RegisterHisto(al_mon,m_trk_z0_eca_zoomin) ; 
-    RegisterHisto(al_mon,m_trk_d0_ecc_zoomin) ;  
-    RegisterHisto(al_mon,m_trk_z0_ecc_zoomin) ;  
-
-    RegisterHisto(al_mon,m_trk_d0_barrel);
-    RegisterHisto(al_mon,m_trk_d0c_barrel);
-    RegisterHisto(al_mon,m_trk_z0_barrel) ;  
-
-    RegisterHisto(al_mon,m_trk_d0_eca) ;  
-    RegisterHisto(al_mon,m_trk_d0c_eca) ;  
-    RegisterHisto(al_mon,m_trk_z0_eca) ;  
-
-    RegisterHisto(al_mon,m_trk_d0_ecc) ;  
-    RegisterHisto(al_mon,m_trk_d0c_ecc) ; 
-    RegisterHisto(al_mon,m_trk_z0_ecc) ;  
-  
-    m_trk_qopT_vs_phi_barrel = new TProfile("trk_qopT_vs_phi_barrel","Q/pT versus phi0 (Barrel)",20,0,2*m_Pi,-10.0,10.0);  
-    RegisterHisto(al_mon,m_trk_qopT_vs_phi_barrel) ;
-    m_trk_d0_vs_phi_barrel = new TProfile("trk_d0_vs_phi_barrel","Impact parameter versus phi0 (Barrel)",20,0,2*m_Pi,-5,5);  
-    RegisterHisto(al_mon,m_trk_d0_vs_phi_barrel) ;
-    m_trk_d0_vs_z0_barrel = new TProfile("trk_d0_vs_z0_barrel","Impact parameter versus z0 (Barrel)",100,-200,200,-5,5);  
-    RegisterHisto(al_mon,m_trk_d0_vs_z0_barrel) ;
-    m_trk_phi0_neg_barrel = new TH1F("trk_phi0_neg_barrel","Phi distribution for negative tracks (Barrel)",20,0,2*m_Pi);
-    RegisterHisto(al_mon,m_trk_phi0_neg_barrel);
-    m_trk_phi0_pos_barrel = new TH1F("trk_phi0_pos_barrel","Phi distribution for positive tracks (Barrel)",20,0,2*m_Pi);
-    RegisterHisto(al_mon,m_trk_phi0_pos_barrel);
-    m_trk_phi0_asym_barrel = new TH1F("trk_phi0_asym_barrel","Track Charge Asymmetry versus phi (Barrel) ",20,0,2*m_Pi);
-    RegisterHisto(al_mon,m_trk_phi0_asym_barrel);
-    m_trk_pT_neg_barrel = new TH1F("trk_pT_neg_barrel","pT distribution for negative tracks (Barrel)",50,0,100);
-    RegisterHisto(al_mon,m_trk_pT_neg_barrel);
-    m_trk_pT_pos_barrel = new TH1F("trk_pT_pos_barrel","pT distribution for positive tracks (Barrel)",50,0,100);
-    RegisterHisto(al_mon,m_trk_pT_pos_barrel);
-    m_trk_pT_asym_barrel = new TH1F("trk_pT_asym_barrel","Track Charge Asymmetry versus pT (Barrel) ",50,0,100);
-    RegisterHisto(al_mon,m_trk_pT_asym_barrel);
-
-    m_trk_qopT_vs_phi_eca = new TProfile("trk_qopT_vs_phi_eca","Q/pT versus phi0 (Endcap A)",20,0,2*m_Pi,-10.0,10.0);  
-    RegisterHisto(al_mon,m_trk_qopT_vs_phi_eca) ;
-    m_trk_d0_vs_phi_eca = new TProfile("trk_d0_vs_phi_eca","Impact parameter versus phi0 (Endcap A)",20,0,2*m_Pi,-5,5);  
-    RegisterHisto(al_mon,m_trk_d0_vs_phi_eca) ;
-    m_trk_d0_vs_z0_eca = new TProfile("trk_d0_vs_z0_eca","Impact parameter versus z0 (Endcap A)",100,-200,200,-5,5);  
-    RegisterHisto(al_mon,m_trk_d0_vs_z0_eca) ;
-    m_trk_phi0_neg_eca = new TH1F("trk_phi0_neg_eca","Phi distribution for negative tracks (Endcap A)",20,0,2*m_Pi);
-    RegisterHisto(al_mon,m_trk_phi0_neg_eca);
-    m_trk_phi0_pos_eca = new TH1F("trk_phi0_pos_eca","Phi distribution for positive tracks (Endcap A)",20,0,2*m_Pi);
-    RegisterHisto(al_mon,m_trk_phi0_pos_eca);
-    m_trk_phi0_asym_eca = new TH1F("trk_phi0_asym_eca","Track Charge Asymmetry versus phi (Endcap A) ",20,0,2*m_Pi);
-    RegisterHisto(al_mon,m_trk_phi0_asym_eca);
-    m_trk_pT_neg_eca = new TH1F("trk_pT_neg_eca","pT distribution for negative tracks (Endcap A)",50,0,100);
-    RegisterHisto(al_mon,m_trk_pT_neg_eca);
-    m_trk_pT_pos_eca = new TH1F("trk_pT_pos_eca","pT distribution for positive tracks (Endcap A)",50,0,100);
-    RegisterHisto(al_mon,m_trk_pT_pos_eca);
-    m_trk_pT_asym_eca = new TH1F("trk_pT_asym_eca","Track Charge Asymmetry versus pT (Endcap A) ",50,0,100);
-    RegisterHisto(al_mon,m_trk_pT_asym_eca);
-
-    m_trk_qopT_vs_phi_ecc = new TProfile("trk_qopT_vs_phi_ecc","Q/pT versus phi0 (Endcap C)",20,0,2*m_Pi,-10.0,10.0);  
-    RegisterHisto(al_mon,m_trk_qopT_vs_phi_ecc) ;
-    m_trk_d0_vs_phi_ecc = new TProfile("trk_d0_vs_phi_ecc","Impact parameter versus phi0 (Endcap C)",20,0,2*m_Pi,-5,5);  
-    RegisterHisto(al_mon,m_trk_d0_vs_phi_ecc) ;
-    m_trk_d0_vs_z0_ecc = new TProfile("trk_d0_vs_z0_ecc","Impact parameter versus z0 (Endcap C)",100,-200,200,-5,5);  
-    RegisterHisto(al_mon,m_trk_d0_vs_z0_ecc) ;
-    m_trk_phi0_neg_ecc = new TH1F("trk_phi0_neg_ecc","Phi distribution for negative tracks (Endcap C)",20,0,2*m_Pi);
-    RegisterHisto(al_mon,m_trk_phi0_neg_ecc);
-    m_trk_phi0_pos_ecc = new TH1F("trk_phi0_pos_ecc","Phi distribution for positive tracks (Endcap C)",20,0,2*m_Pi);
-    RegisterHisto(al_mon,m_trk_phi0_pos_ecc);
-    m_trk_phi0_asym_ecc = new TH1F("trk_phi0_asym_ecc","Track Charge Asymmetry versus phi (Endcap C) ",20,0,2*m_Pi);
-    RegisterHisto(al_mon,m_trk_phi0_asym_ecc);
-    m_trk_pT_neg_ecc = new TH1F("trk_pT_neg_ecc","pT distribution for negative tracks (Endcap C)",50,0,100);
-    RegisterHisto(al_mon,m_trk_pT_neg_ecc);
-    m_trk_pT_pos_ecc = new TH1F("trk_pT_pos_ecc","pT distribution for positive tracks (Endcap C)",50,0,100);
-    RegisterHisto(al_mon,m_trk_pT_pos_ecc);
-    m_trk_pT_asym_ecc = new TH1F("trk_pT_asym_ecc","Track Charge Asymmetry versus pT (Endcap C) ",50,0,100);
-    RegisterHisto(al_mon,m_trk_pT_asym_ecc);
-
-    m_trk_chi2oDoF = new TProfile("trk_chi2oDoF","chi2oDoF versus eta",100,-m_etaRange,m_etaRange,-5,5);  
-    RegisterHisto(al_mon,m_trk_chi2oDoF) ;
-    m_trk_chi2Prob = new TProfile("trk_chi2Prob","chi2Prob versus eta",100,-m_etaRange,m_etaRange,-5,5);  
-    RegisterHisto(al_mon,m_trk_chi2Prob) ;
-
-    m_nhits_per_event = new TH1F("Nhits_per_event","Number of hits per event",1024,-0.5,1023.5);  
+    
+    m_nhits_per_event = TH1F_LW::create("Nhits_per_event","Number of hits per event",1024,-0.5,1023.5);  
     RegisterHisto(al_mon,m_nhits_per_event) ;  
     m_nhits_per_event->GetXaxis()->SetTitle("Number of Hits on Tracks per Event"); 
     m_nhits_per_event->GetYaxis()->SetTitle("Number of Events"); 
-    m_ntrk = new TH1F("ntracks","Number of Tracks",m_NTracksRange+1, -0.5, m_NTracksRange+0.5);
+    m_ntrk = TH1F_LW::create("ntracks","Number of Tracks",m_NTracksRange+1, -0.5, m_NTracksRange+0.5);
     RegisterHisto(al_mon,m_ntrk);
-    m_ngtrk = new TH1F("ngtracks","Number of Good Tracks",m_NTracksRange+1, -0.5, m_NTracksRange+0.5);
+    m_ngtrk = TH1F_LW::create("ngtracks","Number of Good Tracks",m_NTracksRange+1, -0.5, m_NTracksRange+0.5);
     RegisterHisto(al_mon,m_ngtrk);
-    m_nhits_per_track = new TH1F("Nhits_per_track","Number of hits per track",101,-0.5, 100.5);  
+    m_nhits_per_track = TH1F_LW::create("Nhits_per_track","Number of hits per track",101,-0.5, 100.5);  
     RegisterHisto(al_mon,m_nhits_per_track) ; 
     m_nhits_per_track->GetXaxis()->SetTitle("Number of Hits per Track"); 
     m_nhits_per_track->GetYaxis()->SetTitle("Number of Tracks"); 
  
-    m_npixhits_per_track = new TH1F("Npixhits_per_track","Number of pixhits per track",14,-0.5,13.5);  
-    RegisterHisto(al_mon_ls,m_npixhits_per_track) ;  
-    m_npixhits_per_track->GetXaxis()->SetTitle("Number of Pixel Hits per Track"); 
-    m_npixhits_per_track->GetYaxis()->SetTitle("Number of Tracks"); 
-    m_nscthits_per_track = new TH1F("Nscthits_per_track","Number of scthits per track",30,-0.5,29.5);  
-    RegisterHisto(al_mon_ls,m_nscthits_per_track) ;  
-    m_nscthits_per_track->GetXaxis()->SetTitle("Number of SCT Hits per Track"); 
-    m_nscthits_per_track->GetYaxis()->SetTitle("Number of Tracks"); 
-    m_ntrthits_per_track = new TH1F("Ntrthits_per_track","Number of trthits per track",100,-0.5,99.5);  
-    RegisterHisto(al_mon_ls,m_ntrthits_per_track) ;  
-    m_ntrthits_per_track->GetXaxis()->SetTitle("Number of TRT Hits per Track"); 
-    m_ntrthits_per_track->GetYaxis()->SetTitle("Number of Tracks"); 
-
-    m_npixhits_per_track_barrel = new TH1F("Npixhits_per_track_barrel","Number of pixhits per track (Barrel)",14,-0.5,13.5);  
+    m_npixhits_per_track_barrel = TH1F_LW::create("Npixhits_per_track_barrel","Number of pixhits per track (Barrel)",14,-0.5,13.5);  
     RegisterHisto(al_mon,m_npixhits_per_track_barrel) ;  
     m_npixhits_per_track_barrel->GetXaxis()->SetTitle("Number of Pixel Hits per Track in Barrel"); 
     m_npixhits_per_track_barrel->GetYaxis()->SetTitle("Number of Tracks"); 
-    m_nscthits_per_track_barrel = new TH1F("Nscthits_per_track_barrel","Number of scthits per track (Barrel)",30,-0.5,29.5);  
+    m_nscthits_per_track_barrel = TH1F_LW::create("Nscthits_per_track_barrel","Number of scthits per track (Barrel)",30,-0.5,29.5);  
     RegisterHisto(al_mon,m_nscthits_per_track_barrel) ;  
     m_nscthits_per_track_barrel->GetXaxis()->SetTitle("Number of SCT Hits per Track in Barrel"); 
     m_nscthits_per_track_barrel->GetYaxis()->SetTitle("Number of Tracks"); 
-    m_ntrthits_per_track_barrel = new TH1F("Ntrthits_per_track_barrel","Number of trthits per track (Barrel)",100,-0.5,99.5);  
+    m_ntrthits_per_track_barrel = TH1F_LW::create("Ntrthits_per_track_barrel","Number of trthits per track (Barrel)",100,-0.5,99.5);  
     RegisterHisto(al_mon,m_ntrthits_per_track_barrel) ; 
     m_ntrthits_per_track_barrel->GetXaxis()->SetTitle("Number of TRT Hits per Track in Barrel"); 
     m_ntrthits_per_track_barrel->GetYaxis()->SetTitle("Number of Tracks");   
 
-    m_npixhits_per_track_eca = new TH1F("Npixhits_per_track_eca","Number of pixhits per track (Eca)",14,-0.5,13.5);  
+    m_npixhits_per_track_eca = TH1F_LW::create("Npixhits_per_track_eca","Number of pixhits per track (Eca)",14,-0.5,13.5);  
     RegisterHisto(al_mon,m_npixhits_per_track_eca) ;  
     m_npixhits_per_track_eca->GetXaxis()->SetTitle("Number of Pixel Hits per Track in ECA"); 
     m_npixhits_per_track_eca->GetYaxis()->SetTitle("Number of Tracks"); 
-    m_nscthits_per_track_eca = new TH1F("Nscthits_per_track_eca","Number of scthits per track (Eca)",30,-0.5,29.5);  
+    m_nscthits_per_track_eca = TH1F_LW::create("Nscthits_per_track_eca","Number of scthits per track (Eca)",30,-0.5,29.5);  
     RegisterHisto(al_mon,m_nscthits_per_track_eca) ;  
     m_nscthits_per_track_eca->GetXaxis()->SetTitle("Number of SCT Hits per Track in ECA"); 
     m_nscthits_per_track_eca->GetYaxis()->SetTitle("Number of Tracks"); 
-    m_ntrthits_per_track_eca = new TH1F("Ntrthits_per_track_eca","Number of trthits per track (Eca)",100,-0.5,99.5);  
+    m_ntrthits_per_track_eca = TH1F_LW::create("Ntrthits_per_track_eca","Number of trthits per track (Eca)",100,-0.5,99.5);  
     RegisterHisto(al_mon,m_ntrthits_per_track_eca) ;   
     m_ntrthits_per_track_eca->GetXaxis()->SetTitle("Number of TRT Hits per Track in ECA"); 
     m_ntrthits_per_track_eca->GetYaxis()->SetTitle("Number of Tracks");   
  
-    m_npixhits_per_track_ecc = new TH1F("Npixhits_per_track_ecc","Number of pixhits per track (Ecc)",14,-0.5,13.5);  
+    m_npixhits_per_track_ecc = TH1F_LW::create("Npixhits_per_track_ecc","Number of pixhits per track (Ecc)",14,-0.5,13.5);  
     RegisterHisto(al_mon,m_npixhits_per_track_ecc) ;  
     m_npixhits_per_track_ecc->GetXaxis()->SetTitle("Number of Pixel Hits per Track in ECC"); 
     m_npixhits_per_track_ecc->GetYaxis()->SetTitle("Number of Tracks"); 
-    m_nscthits_per_track_ecc = new TH1F("Nscthits_per_track_ecc","Number of scthits per track (Ecc)",30,-0.5,29.5);  
+    m_nscthits_per_track_ecc = TH1F_LW::create("Nscthits_per_track_ecc","Number of scthits per track (Ecc)",30,-0.5,29.5);  
     RegisterHisto(al_mon,m_nscthits_per_track_ecc) ;  
     m_nscthits_per_track_ecc->GetXaxis()->SetTitle("Number of SCT Hits per Track in ECC"); 
     m_nscthits_per_track_ecc->GetYaxis()->SetTitle("Number of Tracks"); 
-    m_ntrthits_per_track_ecc = new TH1F("Ntrthits_per_track_ecc","Number of trthits per track (Ecc)",100,-0.5,99.5);  
+    m_ntrthits_per_track_ecc = TH1F_LW::create("Ntrthits_per_track_ecc","Number of trthits per track (Ecc)",100,-0.5,99.5);  
     RegisterHisto(al_mon,m_ntrthits_per_track_ecc) ;    
     m_ntrthits_per_track_ecc->GetXaxis()->SetTitle("Number of TRT Hits per Track in ECC"); 
     m_ntrthits_per_track_ecc->GetYaxis()->SetTitle("Number of Tracks");  
 
-
-    m_chi2oDoF = new TH1F("chi2oDoF","chi2oDoF",100,0,10);  
+    ///////////////////////////////////////////////////////////////////////////////////////////////////
+    //Monitoring plots shown in the dqm web page
+    ///////////////////////////////////////////////////////////////////////////////////////////////////
+    m_chi2oDoF = TH1F_LW::create("chi2oDoF","chi2oDoF",100,0,10);  
     RegisterHisto(al_mon,m_chi2oDoF) ;  
     m_chi2oDoF->GetXaxis()->SetTitle("Track #chi^{2} / NDoF"); 
     m_chi2oDoF->GetYaxis()->SetTitle("Number of Tracks");  
-    m_eta = new TH1F("eta","eta",100,-m_etaRange,m_etaRange);  
+    m_eta = TH1F_LW::create("eta","eta",100,-m_etaRange,m_etaRange);  
     RegisterHisto(al_mon_ls,m_eta) ;  
     m_eta->GetXaxis()->SetTitle("Track #eta"); 
     m_eta->GetYaxis()->SetTitle("Number of Tracks"); 
-    
-    m_d0_bscorr = new TH1F("d0_bscorr","d0 (corrected for beamspot); [mm]",400,-m_d0BsRange,m_d0BsRange);  
+    m_phi = TH1F_LW::create("phi","phi",100,0,2*m_Pi);  m_phi->SetMinimum(0);
+    RegisterHisto(al_mon_ls,m_phi) ;  
+    m_phi->GetXaxis()->SetTitle("Track #phi"); 
+    m_phi->GetYaxis()->SetTitle("Number of Tracks");  
+    m_d0_bscorr = TH1F_LW::create("d0_bscorr","d0 (corrected for beamspot); [mm]",400,-m_d0BsRange,m_d0BsRange);  
     RegisterHisto(al_mon_ls,m_d0_bscorr) ;  
+    
+    m_z0 = TH1F_LW::create("z0","z0;[mm]",100,-m_z0Range,m_z0Range);  
+    RegisterHisto(al_mon,m_z0) ;  
+    m_z0sintheta = TH1F_LW::create("z0sintheta","z0sintheta",100,-m_z0Range,m_z0Range);  
+    RegisterHisto(al_mon,m_z0sintheta) ;  
+    m_d0 = TH1F_LW::create("d0","d0;[mm]",400,-m_d0Range,m_d0Range);  
+    RegisterHisto(al_mon,m_d0) ;  
+    
+
+    
+    m_npixhits_per_track = TH1F_LW::create("Npixhits_per_track","Number of pixhits per track",14,-0.5,13.5);  
+    RegisterHisto(al_mon_ls,m_npixhits_per_track) ;  
+    m_npixhits_per_track->GetXaxis()->SetTitle("Number of Pixel Hits per Track"); 
+    m_npixhits_per_track->GetYaxis()->SetTitle("Number of Tracks"); 
+    m_nscthits_per_track = TH1F_LW::create("Nscthits_per_track","Number of scthits per track",30,-0.5,29.5);  
+    RegisterHisto(al_mon_ls,m_nscthits_per_track) ;  
+    m_nscthits_per_track->GetXaxis()->SetTitle("Number of SCT Hits per Track"); 
+    m_nscthits_per_track->GetYaxis()->SetTitle("Number of Tracks"); 
+    m_ntrthits_per_track = TH1F_LW::create("Ntrthits_per_track","Number of trthits per track",100,-0.5,99.5);  
+    RegisterHisto(al_mon_ls,m_ntrthits_per_track) ;  
+    m_ntrthits_per_track->GetXaxis()->SetTitle("Number of TRT Hits per Track"); 
+    m_ntrthits_per_track->GetYaxis()->SetTitle("Number of Tracks"); 
+    ///////////////////////////////////////////////////////////////////////////////////////////////////////////
+    
+
+    
 
+    m_trk_qopT_vs_phi_barrel = new TProfile("trk_qopT_vs_phi_barrel","Q/pT versus phi0 (Barrel)",20,0,2*m_Pi,-10.0,10.0);  
+    RegisterHisto(al_mon,m_trk_qopT_vs_phi_barrel) ;
+    m_trk_d0_vs_phi_barrel = new TProfile("trk_d0_vs_phi_barrel","Impact parameter versus phi0 (Barrel)",20,0,2*m_Pi,-5,5);  
+    RegisterHisto(al_mon,m_trk_d0_vs_phi_barrel) ;
+    m_trk_d0_vs_z0_barrel = new TProfile("trk_d0_vs_z0_barrel","Impact parameter versus z0 (Barrel)",100,-200,200,-5,5);
+    m_trk_qopT_vs_phi_eca = new TProfile("trk_qopT_vs_phi_eca","Q/pT versus phi0 (Endcap A)",20,0,2*m_Pi,-10.0,10.0);  
+    RegisterHisto(al_mon,m_trk_qopT_vs_phi_eca) ;
+    m_trk_d0_vs_phi_eca = new TProfile("trk_d0_vs_phi_eca","Impact parameter versus phi0 (Endcap A)",20,0,2*m_Pi,-5,5);  
+    RegisterHisto(al_mon,m_trk_d0_vs_phi_eca) ;
+    m_trk_d0_vs_z0_eca = new TProfile("trk_d0_vs_z0_eca","Impact parameter versus z0 (Endcap A)",100,-200,200,-5,5);  
+    RegisterHisto(al_mon,m_trk_d0_vs_z0_eca) ;
+    m_trk_qopT_vs_phi_ecc = new TProfile("trk_qopT_vs_phi_ecc","Q/pT versus phi0 (Endcap C)",20,0,2*m_Pi,-10.0,10.0);  
+    RegisterHisto(al_mon,m_trk_qopT_vs_phi_ecc) ;
+    m_trk_d0_vs_phi_ecc = new TProfile("trk_d0_vs_phi_ecc","Impact parameter versus phi0 (Endcap C)",20,0,2*m_Pi,-5,5);  
+    RegisterHisto(al_mon,m_trk_d0_vs_phi_ecc) ;
+    m_trk_d0_vs_z0_ecc = new TProfile("trk_d0_vs_z0_ecc","Impact parameter versus z0 (Endcap C)",100,-200,200,-5,5);  
+    RegisterHisto(al_mon,m_trk_d0_vs_z0_ecc) ;
 
 
+    //Negative and positive tracks perigee parameters
+    RegisterHisto(al_mon,m_trk_d0_vs_z0_barrel) ;
+    m_trk_phi0_neg_barrel = TH1F_LW::create("trk_phi0_neg_barrel","Phi distribution for negative tracks (Barrel)",20,0,2*m_Pi);
+    RegisterHisto(al_mon,m_trk_phi0_neg_barrel);
+    m_trk_phi0_pos_barrel = TH1F_LW::create("trk_phi0_pos_barrel","Phi distribution for positive tracks (Barrel)",20,0,2*m_Pi);
+    RegisterHisto(al_mon,m_trk_phi0_pos_barrel);
+    m_trk_pT_neg_barrel = TH1F_LW::create("trk_pT_neg_barrel","pT distribution for negative tracks (Barrel)",50,0,100);
+    RegisterHisto(al_mon,m_trk_pT_neg_barrel);
+    m_trk_pT_pos_barrel = TH1F_LW::create("trk_pT_pos_barrel","pT distribution for positive tracks (Barrel)",50,0,100);
+    RegisterHisto(al_mon,m_trk_pT_pos_barrel);
+    m_trk_phi0_neg_eca = TH1F_LW::create("trk_phi0_neg_eca","Phi distribution for negative tracks (Endcap A)",20,0,2*m_Pi);
+    RegisterHisto(al_mon,m_trk_phi0_neg_eca);
+    m_trk_phi0_pos_eca = TH1F_LW::create("trk_phi0_pos_eca","Phi distribution for positive tracks (Endcap A)",20,0,2*m_Pi);
+    RegisterHisto(al_mon,m_trk_phi0_pos_eca);
+    m_trk_pT_neg_eca = TH1F_LW::create("trk_pT_neg_eca","pT distribution for negative tracks (Endcap A)",50,0,100);
+    RegisterHisto(al_mon,m_trk_pT_neg_eca);
+    m_trk_pT_pos_eca = TH1F_LW::create("trk_pT_pos_eca","pT distribution for positive tracks (Endcap A)",50,0,100);
+    RegisterHisto(al_mon,m_trk_pT_pos_eca);
+    
+    m_trk_phi0_neg_ecc = TH1F_LW::create("trk_phi0_neg_ecc","Phi distribution for negative tracks (Endcap C)",20,0,2*m_Pi);
+    RegisterHisto(al_mon,m_trk_phi0_neg_ecc);
+    m_trk_phi0_pos_ecc = TH1F_LW::create("trk_phi0_pos_ecc","Phi distribution for positive tracks (Endcap C)",20,0,2*m_Pi);
+    RegisterHisto(al_mon,m_trk_phi0_pos_ecc);
+    m_trk_pT_neg_ecc = TH1F_LW::create("trk_pT_neg_ecc","pT distribution for negative tracks (Endcap C)",50,0,100);
+    RegisterHisto(al_mon,m_trk_pT_neg_ecc);
+    m_trk_pT_pos_ecc = TH1F_LW::create("trk_pT_pos_ecc","pT distribution for positive tracks (Endcap C)",50,0,100);
+    RegisterHisto(al_mon,m_trk_pT_pos_ecc);
+    
+    //Asymmetry plots. Useful to spot weak modes
+    m_trk_phi0_asym_barrel = TH1F_LW::create("trk_phi0_asym_barrel","Track Charge Asymmetry versus phi (Barrel) ",20,0,2*m_Pi);
+    RegisterHisto(al_mon,m_trk_phi0_asym_barrel);
+    m_trk_phi0_asym_eca = TH1F_LW::create("trk_phi0_asym_eca","Track Charge Asymmetry versus phi (Endcap A) ",20,0,2*m_Pi);
+    RegisterHisto(al_mon,m_trk_phi0_asym_eca);
+    m_trk_phi0_asym_ecc = TH1F_LW::create("trk_phi0_asym_ecc","Track Charge Asymmetry versus phi (Endcap C) ",20,0,2*m_Pi);
+    RegisterHisto(al_mon,m_trk_phi0_asym_ecc);
+    m_trk_pT_asym_barrel = TH1F_LW::create("trk_pT_asym_barrel","Track Charge Asymmetry versus pT (Barrel) ",50,0,100);
+    RegisterHisto(al_mon,m_trk_pT_asym_barrel);
+    m_trk_pT_asym_eca = TH1F_LW::create("trk_pT_asym_eca","Track Charge Asymmetry versus pT (Endcap A) ",50,0,100);
+    RegisterHisto(al_mon,m_trk_pT_asym_eca);
+    m_trk_pT_asym_ecc = TH1F_LW::create("trk_pT_asym_ecc","Track Charge Asymmetry versus pT (Endcap C) ",50,0,100);
+    RegisterHisto(al_mon,m_trk_pT_asym_ecc);
+    
+    
+    
+
     if(m_extendedPlots){
       
-      //hits
+      // histo for self beam spot calculation (using the data of the whole run... so nothing to do with the beam spot by Lumiblock). I think is useless. Remove.
+      m_trk_d0_vs_phi0_z0 = new TH3F("trk_d0_vs_phi0_z0","Track d_{0} vs #phi_{0} and z_{0}", 30, 0., 2*m_Pi, 20, -m_z0Range/2, m_z0Range/2, 30, -m_d0Range, m_d0Range);
+      m_trk_d0_vs_phi0_z0->SetXTitle("Track #phi_{0} [rad]");
+      m_trk_d0_vs_phi0_z0->SetYTitle("Track z_{0} [mm]");
+      RegisterHisto(al_mon, m_trk_d0_vs_phi0_z0);
+
+      m_trk_d0_vs_phi_vs_eta         = new TH3F("trk_d0_vs_phi_vs_eta"       , "d0 vs phi vs eta"           , 100, -3., 3.,  40, 0, 2*m_Pi,  100, -0.2, 0.2 );
+      m_trk_pT_vs_eta                = new TH2F("trk_pT_vs_eta"              , "pT vs eta "                 , 100, -3., 3., 100, 0., 50.);
+      m_trk_d0_vs_phi_vs_eta_barrel  = new TH3F("trk_d0_vs_phi_vs_eta_barrel", "d0 vs phi vs eta (Barrel)"  , 100, -3., 3.,  40, 0, 2*m_Pi,  100, -0.2, 0.2 );
+      m_trk_pT_vs_eta_barrel         = new TH2F("trk_pT_vs_eta_barrel"       , "pT vs eta barrel"           , 100, -3., 3., 100, 0., 50.);
+      m_trk_d0_vs_phi_vs_eta_ecc     = new TH3F("trk_d0_vs_phi_vs_eta_ecc"   , "d0 vs phi vs eta (Endcap C)", 100, -3., 3.,  40, 0, 2*m_Pi,  100, -0.2, 0.2 );
+      m_trk_pT_vs_eta_ecc            = new TH2F("trk_pT_vs_eta_ecc"          , "pT vs eta ecc"              , 100, -3., 3., 100, 0., 50.);
+      m_trk_d0_vs_phi_vs_eta_eca     = new TH3F("trk_d0_vs_phi_vs_eta_eca"   , "d0 vs phi vs eta (Endcap A)", 100, -3., 3.,  40, 0, 2*m_Pi,  100, -0.2, 0.2 );
+      m_trk_pT_vs_eta_eca            = new TH2F("trk_pT_vs_eta_eca"          , "pT vs eta eca"              , 100, -3., 3., 100, 0., 50.);
+      
+      
+      RegisterHisto(al_mon, m_trk_d0_vs_phi_vs_eta        );
+      RegisterHisto(al_mon, m_trk_pT_vs_eta       );
+      RegisterHisto(al_mon, m_trk_d0_vs_phi_vs_eta_barrel );
+      RegisterHisto(al_mon, m_trk_pT_vs_eta_barrel    );
+      RegisterHisto(al_mon, m_trk_d0_vs_phi_vs_eta_ecc    );
+      RegisterHisto(al_mon, m_trk_pT_vs_eta_ecc           );
+      RegisterHisto(al_mon, m_trk_d0_vs_phi_vs_eta_eca    );
+      RegisterHisto(al_mon, m_trk_pT_vs_eta_eca     );
+
+      m_trk_d0_barrel  = TH1F_LW::create("trk_d0_barrel","Impact parameter: all tracks (Barrel); d_{0} [mm]",100, -m_d0Range, m_d0Range);
+      m_trk_d0c_barrel = TH1F_LW::create("trk_d0c_barrel","Impact parameter (corrected for vertex): all tracks (Barrel)",100, -5, 5);  
+      m_trk_z0_barrel  = TH1F_LW::create("trk_z0_barrel","Track z0: all tracks (Barrel)",100, -m_z0Range, m_z0Range);
+      m_trk_d0_eca     = TH1F_LW::create("trk_d0_eca","Impact parameter: all tracks (Endcap A)",100, -m_d0Range, m_d0Range);
+      m_trk_d0c_eca    = TH1F_LW::create("trk_d0c_eca","Impact parameter (corrected for vertex): all tracks  (Endcap A)",100, -m_d0Range, m_d0Range);  
+      m_trk_z0_eca     = TH1F_LW::create("trk_z0_eca","Track z0: all tracks (Endcap A)",100, -m_z0Range, m_z0Range);
+      m_trk_d0_ecc     = TH1F_LW::create("trk_d0_ecc","Impact parameter: all tracks (Endcap C)",100, -m_d0Range, m_d0Range);
+      m_trk_d0c_ecc    = TH1F_LW::create("trk_d0c_ecc","Impact parameter (corrected for vertex): all tracks  (Endcap C)",100, -m_d0Range, m_d0Range);  
+      m_trk_z0_ecc     = TH1F_LW::create("trk_z0_ecc","Track z0: all tracks (Endcap C)",100, -m_z0Range, m_z0Range);
+
+
+      RegisterHisto(al_mon,m_trk_d0_barrel);
+      RegisterHisto(al_mon,m_trk_d0c_barrel);
+      RegisterHisto(al_mon,m_trk_z0_barrel) ; 
+      RegisterHisto(al_mon,m_trk_d0_eca) ;  
+      RegisterHisto(al_mon,m_trk_d0c_eca) ;  
+      RegisterHisto(al_mon,m_trk_z0_eca) ;  
+      RegisterHisto(al_mon,m_trk_d0_ecc) ;  
+      RegisterHisto(al_mon,m_trk_d0c_ecc) ;
+      RegisterHisto(al_mon,m_trk_z0_ecc) ;  
+  
+      
+
+      m_trk_chi2oDoF = new TProfile("trk_chi2oDoF","chi2oDoF versus eta",100,-m_etaRange,m_etaRange,-5,5);  
+      RegisterHisto(al_mon,m_trk_chi2oDoF) ;
+      m_trk_chi2Prob = new TProfile("trk_chi2Prob","chi2Prob versus eta",100,-m_etaRange,m_etaRange,-5,5);  
+      RegisterHisto(al_mon,m_trk_chi2Prob) ;
+
+    
 
+      
+      //Detailed IP Plots. All the PV Corrected are broken and need to be fixed.
+      m_trk_d0_barrel_zoomin = TH1F_LW::create("trk_d0_barrel_zoomin","Impact parameter: all tracks (Barrel)",100,-5,5);
+      m_trk_z0_barrel_zoomin = TH1F_LW::create("trk_z0_barrel_zoomin","Track z0: all tracks (Barrel)",100,-300,300);  
+      m_trk_d0_eca_zoomin = TH1F_LW::create("trk_d0_eca_zoomin","Impact parameter: all tracks (Endcap A)",100,-5,5);
+      m_trk_z0_eca_zoomin = TH1F_LW::create("trk_z0_eca_zoomin","Track z0: all tracks (Endcap A)",100,-300,300);
+      m_trk_d0_ecc_zoomin = TH1F_LW::create("trk_d0_ecc_zoomin","Impact parameter: all tracks (Endcap C)",100,-5,5);
+      m_trk_z0_ecc_zoomin = TH1F_LW::create("trk_z0_ecc_zoomin","Track z0: all tracks (Endcap C)",100,-300,300);
+
+      RegisterHisto(al_mon,m_trk_d0_barrel_zoomin);
+      RegisterHisto(al_mon,m_trk_z0_barrel_zoomin) ; 
+      RegisterHisto(al_mon,m_trk_d0_eca_zoomin) ;  
+      RegisterHisto(al_mon,m_trk_z0_eca_zoomin) ; 
+      RegisterHisto(al_mon,m_trk_d0_ecc_zoomin) ;  
+      RegisterHisto(al_mon,m_trk_z0_ecc_zoomin) ; 
+      
+      
+      
+      //############### 
+      double z0cRange=5;
+      double d0cRange=0.1;
+      m_trk_d0c_neg= TH1F_LW::create("trk_d0c_neg","Impact parameter: all negative charged tracks" ,50,-d0cRange,d0cRange);
+      RegisterHisto(al_mon,m_trk_d0c_neg);
+      m_trk_d0c_pos= TH1F_LW::create("trk_d0c_pos","Impact parameter: all positive charged tracks" ,50,-d0cRange,d0cRange);
+      RegisterHisto(al_mon,m_trk_d0c_pos);
+      m_trk_d0c_neg_barrel= TH1F_LW::create("trk_d0c_neg_barrel","Impact parameter: all negative charged tracks (Barrel)" ,50,-d0cRange,d0cRange);
+      RegisterHisto(al_mon,m_trk_d0c_neg_barrel);
+      m_trk_d0c_pos_barrel= TH1F_LW::create("trk_d0c_pos_barrel","Impact parameter: all positive charged tracks (Barrel)" ,50,-d0cRange,d0cRange);
+      RegisterHisto(al_mon,m_trk_d0c_pos_barrel);
+      m_trk_d0c_neg_eca= TH1F_LW::create("trk_d0c_neg_eca","Impact parameter: all negative charged tracks (Endcap A)" ,50,-d0cRange,d0cRange);
+      RegisterHisto(al_mon,m_trk_d0c_neg_eca);
+      m_trk_d0c_pos_eca= TH1F_LW::create("trk_d0c_pos_eca","Impact parameter: all positive charged tracks (Endcap A)" ,50,-d0cRange,d0cRange);
+      RegisterHisto(al_mon,m_trk_d0c_pos_eca);
+      m_trk_d0c_neg_ecc= TH1F_LW::create("trk_d0c_neg_ecc","Impact parameter: all negative charged tracks (Endcap C)" ,50,-d0cRange,d0cRange);
+      RegisterHisto(al_mon,m_trk_d0c_neg_ecc);
+      m_trk_d0c_pos_ecc= TH1F_LW::create("trk_d0c_pos_ecc","Impact parameter: all positive charged tracks (Endcap C)" ,50,-d0cRange,d0cRange);
+      RegisterHisto(al_mon,m_trk_d0c_pos_ecc);
+      
+      m_trk_d0c_asym=TH1F_LW::create("trk_d0c_asym","Track Charge Asymmetry versus d0 (corrected for vertex)",50,-d0cRange,d0cRange);
+      RegisterHisto(al_mon,m_trk_d0c_asym);
+      m_trk_d0c_asym->GetYaxis()->SetTitle("d_0 (mm)");   
+      m_trk_d0c_asym->GetYaxis()->SetTitle("(pos-neg)/(pos+neg)");   
+      
+      m_trk_d0c_asym_barrel=TH1F_LW::create("trk_d0c_asym_barrel","Track Charge Asymmetry versus d0 (Barrel, corrected for vertex)",50,-d0cRange,d0cRange);
+      RegisterHisto(al_mon,m_trk_d0c_asym_barrel);
+      m_trk_d0c_asym_eca=TH1F_LW::create("trk_d0c_asym_eca","Track Charge Asymmetry versus d0(Endcap A, corrected for vertex)",50,-d0cRange,d0cRange);
+      RegisterHisto(al_mon,m_trk_d0c_asym_eca);
+      m_trk_d0c_asym_ecc=TH1F_LW::create("trk_d0c_asym_ecc","Track Charge Asymmetry versus d0(Endcap C, corrected for vertex)",50,-d0cRange,d0cRange);
+      RegisterHisto(al_mon,m_trk_d0c_asym_ecc);
+      
+      m_trk_z0c_neg= TH1F_LW::create("trk_z0c_neg","z0: all negative charged tracks" ,50,-z0cRange,z0cRange);
+      RegisterHisto(al_mon,m_trk_z0c_neg);
+      m_trk_z0c_pos= TH1F_LW::create("trk_z0c_pos","z0: all positive charged tracks" ,50,-z0cRange,z0cRange);
+      RegisterHisto(al_mon,m_trk_z0c_pos);
+      m_trk_z0c_neg_barrel= TH1F_LW::create("trk_z0c_neg_barrel",":z0 all negative charged tracks (Barrel)" ,50,-z0cRange,z0cRange);
+      RegisterHisto(al_mon,m_trk_z0c_neg_barrel);
+      m_trk_z0c_pos_barrel= TH1F_LW::create("trk_z0c_pos_barrel","z0: all positive charged tracks (Barrel)" ,50,-z0cRange,z0cRange);
+      RegisterHisto(al_mon,m_trk_z0c_pos_barrel);
+      m_trk_z0c_neg_eca= TH1F_LW::create("trk_z0c_neg_eca","z0: all negative charged tracks (Endcap A)" ,50,-z0cRange,z0cRange);
+      RegisterHisto(al_mon,m_trk_z0c_neg_eca);
+      m_trk_z0c_pos_eca= TH1F_LW::create("trk_z0c_pos_eca","z0: all positive charged tracks (Endcap A)" ,50,-z0cRange,z0cRange);
+      RegisterHisto(al_mon,m_trk_z0c_pos_eca);
+      m_trk_z0c_neg_ecc= TH1F_LW::create("trk_z0c_neg_ecc","z0: all negative charged tracks (Endcap C)" ,50,-z0cRange,z0cRange);
+      RegisterHisto(al_mon,m_trk_z0c_neg_ecc);
+      m_trk_z0c_pos_ecc= TH1F_LW::create("trk_z0c_pos_ecc","z0: all positive charged tracks (Endcap C)" ,50,-z0cRange,z0cRange);
+      RegisterHisto(al_mon,m_trk_z0c_pos_ecc);
+      m_trk_z0c_asym=TH1F_LW::create("trk_z0c_asym","Track Charge Asymmetry versus z0 (corrected for vertex)",50,-z0cRange,z0cRange);
+      RegisterHisto(al_mon,m_trk_z0c_asym);
+      m_trk_z0c_asym_barrel=TH1F_LW::create("trk_z0c_asym_barrel","Track Charge Asymmetry versus z0 (Barrel, corrected for vertex)",50,-z0cRange,z0cRange);
+      RegisterHisto(al_mon,m_trk_z0c_asym_barrel);
+      m_trk_z0c_asym_eca=TH1F_LW::create("trk_z0c_asym_eca","Track Charge Asymmetry versus z0(Endcap A, corrected for vertex)",50,-z0cRange,z0cRange);
+      RegisterHisto(al_mon,m_trk_z0c_asym_eca);
+      m_trk_z0c_asym_ecc=TH1F_LW::create("trk_z0c_asym_ecc","Track Charge Asymmetry versus z0(Endcap C, corrected for vertex)",50,-z0cRange,z0cRange);
+      RegisterHisto(al_mon,m_trk_z0c_asym_ecc);
+      
+      
+      
+      
+      //PV corrected plots. Broken. 
+      m_d0_pvcorr = TH1F_LW::create("d0_pvcorr","d0 (corrected for primVtx); [mm]",400,-m_d0Range,m_d0Range);  
+      RegisterHisto(al_mon,m_d0_pvcorr) ; 
+      m_z0_pvcorr = TH1F_LW::create("z0_pvcorr","z0 (corrected for primVtx);[mm]",100,-m_z0Range,m_z0Range);  
+      RegisterHisto(al_mon,m_z0_pvcorr) ;  
+      m_z0sintheta_pvcorr = TH1F_LW::create("z0sintheta_pvcorr","z*sintheta (corrected for primVtx); [mm]",100,-m_z0Range,m_z0Range);  
+      RegisterHisto(al_mon,m_z0sintheta_pvcorr) ;  
+      
+      
+      //hits
       m_trk_PIXvSCTHits = new TH2F ("PIXvSCTHits", "Hits On track", 30, -0.5, 30-0.5, 11, -0.5,  11-0.5);
       RegisterHisto(al_mon,m_trk_PIXvSCTHits) ;
       m_trk_PIXvSCTHits->GetXaxis()->SetTitle("# SCT hits on track");
@@ -909,12 +948,12 @@ StatusCode IDAlignMonGenericTracks::bookHistograms()
       m_trk_chi2oDoF_P->GetXaxis()->SetTitle("P (GeV)"); 
       m_trk_chi2oDoF_P->GetYaxis()->SetTitle("Chi2"); 
       
-      m_trk_chi2ProbDist = new TH1F("trk_chi2ProbDist","chi2Prob distribution",50,0,1);  
+      m_trk_chi2ProbDist = TH1F_LW::create("trk_chi2ProbDist","chi2Prob distribution",50,0,1);  
       m_trk_chi2ProbDist->GetXaxis()->SetTitle("Track #chi^{2} prob"); 
       m_trk_chi2ProbDist->GetYaxis()->SetTitle("Number of Tracks");
       RegisterHisto(al_mon,m_trk_chi2ProbDist) ;
       
-      m_errCotTheta = new TH1F("errCotTheta","Error of CotTheta",50,0,0.02);
+      m_errCotTheta = TH1F_LW::create("errCotTheta","Error of CotTheta",50,0,0.02);
       RegisterHisto(al_mon,m_errCotTheta);  
       m_errCotTheta->GetXaxis()->SetTitle("Track #Delta(cot(#theta))"); 
       m_errCotTheta->GetYaxis()->SetTitle("Number of Tracks"); 
@@ -944,7 +983,7 @@ StatusCode IDAlignMonGenericTracks::bookHistograms()
       m_errCotThetaVsEta->GetXaxis()->SetTitle("#eta"); 
       m_errCotThetaVsEta->GetYaxis()->SetTitle("Track #Delta(cot(#theta))"); 
       
-      m_errTheta = new TH1F("errTheta","Error of Theta",50,0,0.02);
+      m_errTheta = TH1F_LW::create("errTheta","Error of Theta",50,0,0.02);
       RegisterHisto(al_mon,m_errTheta);  
       m_errTheta->GetXaxis()->SetTitle("Track #Delta(#theta)"); 
       m_errTheta->GetYaxis()->SetTitle("Number of Tracks"); 
@@ -974,7 +1013,7 @@ StatusCode IDAlignMonGenericTracks::bookHistograms()
       m_errThetaVsEta->GetXaxis()->SetTitle("#eta"); 
       m_errThetaVsEta->GetYaxis()->SetTitle("Track #delta(#theta)"); 
       
-      m_errD0 = new TH1F("errD0", "Error of d0", 60,0,0.30);
+      m_errD0 = TH1F_LW::create("errD0", "Error of d0", 60,0,0.30);
       RegisterHisto(al_mon,m_errD0);
       m_errD0->GetXaxis()->SetTitle("d0 error (mm)"); 
       
@@ -1018,7 +1057,7 @@ StatusCode IDAlignMonGenericTracks::bookHistograms()
       m_errD0VsEta->GetXaxis()->SetTitle("#eta"); 
       m_errD0VsEta->GetYaxis()->SetTitle("d0 error (mm)");         
       
-      m_errPhi0 = new TH1F("errPhi0", "Error of Phi0", 50,0,0.010);
+      m_errPhi0 = TH1F_LW::create("errPhi0", "Error of Phi0", 50,0,0.010);
       RegisterHisto(al_mon,m_errPhi0);
       m_errPhi0->GetXaxis()->SetTitle("#phi0 error (rad)"); 
 
@@ -1047,7 +1086,7 @@ StatusCode IDAlignMonGenericTracks::bookHistograms()
       m_errPhi0VsEta->GetXaxis()->SetTitle("#eta"); 
       m_errPhi0VsEta->GetYaxis()->SetTitle("#phi0 error (rad)");  
         
-      m_errZ0 = new TH1F("errZ0", "Error of Z0", 50,0,0.3);
+      m_errZ0 = TH1F_LW::create("errZ0", "Error of Z0", 50,0,0.3);
       RegisterHisto(al_mon,m_errZ0);
       m_errZ0->GetXaxis()->SetTitle("z0 error (mm)"); 
       
@@ -1076,7 +1115,7 @@ StatusCode IDAlignMonGenericTracks::bookHistograms()
       m_errZ0VsEta->GetXaxis()->SetTitle("#eta"); 
       m_errZ0VsEta->GetYaxis()->SetTitle("z0 error (mm)");  
         
-      m_errPt = new TH1F("errPt", "Error of Pt", 50 ,0., 1.);
+      m_errPt = TH1F_LW::create("errPt", "Error of Pt", 50 ,0., 1.);
       RegisterHisto(al_mon,m_errPt);
       m_errPt->GetXaxis()->SetTitle("Pt err (GeV/c)");
         
@@ -1115,7 +1154,7 @@ StatusCode IDAlignMonGenericTracks::bookHistograms()
       m_errPtVsEta->GetXaxis()->SetTitle("#eta"); 
       m_errPtVsEta->GetYaxis()->SetTitle("Pt error (GeV/c)");       
         
-      m_errPt_Pt2 = new TH1F("errPt_Pt2", "Error of Pt/Pt^{2}", 50 ,0., 0.015);
+      m_errPt_Pt2 = TH1F_LW::create("errPt_Pt2", "Error of Pt/Pt^{2}", 50 ,0., 0.015);
       RegisterHisto(al_mon,m_errPt_Pt2);
       m_errPt_Pt2->GetXaxis()->SetTitle("#sigma(Pt)/Pt^{2} (GeV/c)^{-1}");        
   
@@ -1212,135 +1251,184 @@ StatusCode IDAlignMonGenericTracks::bookHistograms()
       m_D0bsVsPtBarrel->GetXaxis()->SetTitle("qPt (GeV)"); 
       RegisterHisto(al_mon,m_D0bsVsPtBarrel);
       m_D0bsVsPtBarrel->GetYaxis()->SetTitle("d0_{bs} mm )");
+     
+      //BeamSpot Position histos
+      m_YBs_vs_XBs = new TH2F("YBs_vs_XBs","BeamSpot Position: y vs x",100, -0.9,-0.1, 100, -0.9,-0.1);
+      RegisterHisto(al_mon,m_YBs_vs_XBs);
+      m_YBs_vs_XBs->GetXaxis()->SetTitle("x coordinate (mm)");
+      m_YBs_vs_XBs->GetYaxis()->SetTitle("y coordinate (mm)");
       
-    }
+      m_YBs_vs_ZBs = new TH2F("YBs_vs_ZBs","BeamSpot Position: y vs z",100,-25., -5., 100, -0.9,-0.1);
+      RegisterHisto(al_mon,m_YBs_vs_ZBs);
+      m_YBs_vs_ZBs->GetXaxis()->SetTitle("z coordinate (mm)");
+      m_YBs_vs_ZBs->GetYaxis()->SetTitle("y coordinate (mm)");
+      
+      m_XBs_vs_ZBs = new TH2F("XBs_vs_ZBs","BeamSpot Position: x vs z",100,-25., -5., 100, -0.9,-0.1);
+      RegisterHisto(al_mon,m_XBs_vs_ZBs);
+      m_XBs_vs_ZBs->GetXaxis()->SetTitle("z coordinate (mm)");
+      m_XBs_vs_ZBs->GetYaxis()->SetTitle("x coordinate (mm)");
+      
+      
+      m_XBs = TH1F_LW::create("XBs","BeamSpot Position: x",100,-1,0.);
+      RegisterHisto(al_mon,m_XBs);
+      m_XBs->GetXaxis()->SetTitle("x (mm)");
+      m_XBs->GetYaxis()->SetTitle("#events");
+      
+      m_YBs= TH1F_LW::create("YBs","BeamSpot Position: y",100,-1,0.);
+      RegisterHisto(al_mon,m_YBs);
+      m_YBs->GetXaxis()->SetTitle("y (mm)");
+      m_YBs->GetYaxis()->SetTitle("#events");
+      
+      m_ZBs = TH1F_LW::create("ZBs","BeamSpot Position: z",100,-50,50);
+      RegisterHisto(al_mon,m_ZBs);
+      m_ZBs->GetXaxis()->SetTitle("z (mm)");
+      m_ZBs->GetYaxis()->SetTitle("#events");
+      
+      m_TiltX_Bs = TH1F_LW::create("TiltX_Bs","Beam spot tile angle: x-z plane",100,-1e3,1e3);
+      RegisterHisto(al_mon,m_TiltX_Bs);
+      m_TiltX_Bs->GetXaxis()->SetTitle("Tilt angle (#murad)");
+      
+      m_TiltY_Bs = TH1F_LW::create("TiltY_Bs","Beam spot tile angle: y-z plane",100,-1e3,1e3);
+      RegisterHisto(al_mon,m_TiltY_Bs);
+      m_TiltY_Bs->GetXaxis()->SetTitle("Tilt angle (#murad)");
+      
+      //versus lumiblock
+      m_XBs_vs_LumiBlock = new TProfile("XBs_vs_LumiBlock","Profile of BeamSpot x Coordinate vs LumiBlock",1024,-0.5,1023.5);
+      RegisterHisto(al_mon,m_XBs_vs_LumiBlock);
+      m_XBs_vs_LumiBlock->GetXaxis()->SetTitle("LumiBlock");
+      m_XBs_vs_LumiBlock->GetYaxis()->SetTitle("x coordinate (mm)");
+      
+      m_YBs_vs_LumiBlock = new TProfile("YBs_vs_LumiBlock","Profile of BeamSpot y Coordinate vs LumiBlock",1024,-0.5,1023.5);
+      RegisterHisto(al_mon,m_YBs_vs_LumiBlock);
+      m_YBs_vs_LumiBlock->GetXaxis()->SetTitle("LumiBlock");
+      m_YBs_vs_LumiBlock->GetYaxis()->SetTitle("y coordinate (mm)");
+      
+      m_ZBs_vs_LumiBlock = new TProfile("ZBs_vs_LumiBlock","Profile of BeamSpot z Coordinate vs LumiBlock",1024,-0.5,1023.5);
+      RegisterHisto(al_mon,m_ZBs_vs_LumiBlock);
+      m_ZBs_vs_LumiBlock->GetXaxis()->SetTitle("LumiBlock");
+      m_ZBs_vs_LumiBlock->GetYaxis()->SetTitle("z coordinate (mm)");
+      
+      m_BeamSpotTiltX_vs_LumiBlock = new TProfile("BeamSpotTiltX_vs_LumiBlock","Profile of BeamSpot TiltX vs LumiBlock",1024,-0.5,1023.5,-2,2);
+      RegisterHisto(al_mon,m_BeamSpotTiltX_vs_LumiBlock);
+      m_BeamSpotTiltX_vs_LumiBlock->GetXaxis()->SetTitle("LumiBlock");
+      m_BeamSpotTiltX_vs_LumiBlock->GetYaxis()->SetTitle("TiltX (mrad)");
+      m_BeamSpotTiltX_vs_LumiBlock->GetYaxis()->SetRangeUser(-1,1);
+      
+      m_BeamSpotTiltY_vs_LumiBlock = new TProfile("BeamSpotTiltY_vs_LumiBlock","Profile of BeamSpot TiltY vs LumiBlock",1024,-0.5,1023.5,-2,2);
+      RegisterHisto(al_mon,m_BeamSpotTiltY_vs_LumiBlock);
+      m_BeamSpotTiltY_vs_LumiBlock->GetXaxis()->SetTitle("LumiBlock");
+      m_BeamSpotTiltY_vs_LumiBlock->GetYaxis()->SetTitle("TiltY (mrad)");
+      m_BeamSpotTiltY_vs_LumiBlock->GetYaxis()->SetRangeUser(-1,1);
         
+    }
     
-    m_phi = new TH1F("phi","phi",100,0,2*m_Pi);  m_phi->SetMinimum(0);
-    RegisterHisto(al_mon_ls,m_phi) ;  
- 
-    m_phi->GetXaxis()->SetTitle("Track #phi"); 
-    m_phi->GetYaxis()->SetTitle("Number of Tracks");  
-    m_z0 = new TH1F("z0","z0;[mm]",100,-m_z0Range,m_z0Range);  
-    RegisterHisto(al_mon,m_z0) ;  
-    m_z0sintheta = new TH1F("z0sintheta","z0sintheta",100,-m_z0Range,m_z0Range);  
-    RegisterHisto(al_mon,m_z0sintheta) ;  
-    m_z0_pvcorr = new TH1F("z0_pvcorr","z0 (corrected for primVtx);[mm]",100,-m_z0Range,m_z0Range);  
-    RegisterHisto(al_mon,m_z0_pvcorr) ;  
-    m_z0sintheta_pvcorr = new TH1F("z0sintheta_pvcorr","z*sintheta (corrected for primVtx); [mm]",100,-m_z0Range,m_z0Range);  
-    RegisterHisto(al_mon,m_z0sintheta_pvcorr) ;  
-    m_d0 = new TH1F("d0","d0;[mm]",400,-m_d0Range,m_d0Range);  
-    RegisterHisto(al_mon,m_d0) ;  
-    m_d0_pvcorr = new TH1F("d0_pvcorr","d0 (corrected for primVtx); [mm]",400,-m_d0Range,m_d0Range);  
-    RegisterHisto(al_mon,m_d0_pvcorr) ; 
     
-
-
-    m_trk_d0_wrtPV = new TH1F("d0_pvcorr_est","d0 (corrected for primVtx v2); [mm]",400,-0.2,0.2);  
+    //These plots are broken. Have to be passed to the PVbiases tool
+    m_trk_d0_wrtPV = TH1F_LW::create("d0_pvcorr_est","d0 (corrected for primVtx v2); [mm]",400,-0.2,0.2);  
     RegisterHisto(al_mon,m_trk_d0_wrtPV) ; 
-    m_trk_z0_wrtPV = new TH1F("z0_pvcorr_est","z0 (corrected for primVtx v2); [mm]",100,-1,1);  
+    m_trk_z0_wrtPV = TH1F_LW::create("z0_pvcorr_est","z0 (corrected for primVtx v2); [mm]",100,-1,1);  
     RegisterHisto(al_mon,m_trk_z0_wrtPV ) ; 
  
     
-
-    m_phi_barrel_pos_2_5GeV = new TH1F("phi_barrel_pos_2_5GeV","phi_barrel_pos_2_5GeV",100,0,2*m_Pi);  m_phi_barrel_pos_2_5GeV->SetMinimum(0);
+    
+    m_phi_barrel_pos_2_5GeV = TH1F_LW::create("phi_barrel_pos_2_5GeV","phi_barrel_pos_2_5GeV",100,0,2*m_Pi);  m_phi_barrel_pos_2_5GeV->SetMinimum(0);
     RegisterHisto(al_mon,m_phi_barrel_pos_2_5GeV) ;  
     m_phi_barrel_pos_2_5GeV->GetXaxis()->SetTitle("Track #phi"); 
     m_phi_barrel_pos_2_5GeV->GetYaxis()->SetTitle("Number of Tracks in barrel, 2-5 GeV"); 
-    m_phi_barrel_pos_5_10GeV = new TH1F("phi_barrel_pos_5_10GeV","phi_barrel_pos_5_10GeV",100,0,2*m_Pi);  m_phi_barrel_pos_5_10GeV->SetMinimum(0);
+    m_phi_barrel_pos_5_10GeV = TH1F_LW::create("phi_barrel_pos_5_10GeV","phi_barrel_pos_5_10GeV",100,0,2*m_Pi);  m_phi_barrel_pos_5_10GeV->SetMinimum(0);
     RegisterHisto(al_mon,m_phi_barrel_pos_5_10GeV) ;  
     m_phi_barrel_pos_5_10GeV->GetXaxis()->SetTitle("Track #phi"); 
     m_phi_barrel_pos_5_10GeV->GetYaxis()->SetTitle("Number of Tracks in barrel, 5-10 GeV");  
-    m_phi_barrel_pos_10_20GeV = new TH1F("phi_barrel_pos_10_20GeV","phi_barrel_pos_10_20GeV",100,0,2*m_Pi);  m_phi_barrel_pos_10_20GeV->SetMinimum(0);
+    m_phi_barrel_pos_10_20GeV = TH1F_LW::create("phi_barrel_pos_10_20GeV","phi_barrel_pos_10_20GeV",100,0,2*m_Pi);  m_phi_barrel_pos_10_20GeV->SetMinimum(0);
     RegisterHisto(al_mon,m_phi_barrel_pos_10_20GeV) ;  
     m_phi_barrel_pos_10_20GeV->GetXaxis()->SetTitle("Track #phi"); 
     m_phi_barrel_pos_10_20GeV->GetYaxis()->SetTitle("Number of Tracks in barrel, 10-20 GeV");   
-    m_phi_barrel_pos_20plusGeV = new TH1F("phi_barrel_pos_20plusGeV","phi_barrel_pos_20plusGeV",100,0,2*m_Pi);  m_phi_barrel_pos_20plusGeV->SetMinimum(0);
+    m_phi_barrel_pos_20plusGeV = TH1F_LW::create("phi_barrel_pos_20plusGeV","phi_barrel_pos_20plusGeV",100,0,2*m_Pi);  m_phi_barrel_pos_20plusGeV->SetMinimum(0);
     RegisterHisto(al_mon,m_phi_barrel_pos_20plusGeV) ;  
     m_phi_barrel_pos_20plusGeV->GetXaxis()->SetTitle("Track #phi"); 
     m_phi_barrel_pos_20plusGeV->GetYaxis()->SetTitle("Number of Tracks in barrel, >20 GeV");    
 
-    m_phi_barrel_neg_2_5GeV = new TH1F("phi_barrel_neg_2_5GeV","phi_barrel_neg_2_5GeV",100,0,2*m_Pi);  m_phi_barrel_neg_2_5GeV->SetMinimum(0);
+    m_phi_barrel_neg_2_5GeV = TH1F_LW::create("phi_barrel_neg_2_5GeV","phi_barrel_neg_2_5GeV",100,0,2*m_Pi);  m_phi_barrel_neg_2_5GeV->SetMinimum(0);
     RegisterHisto(al_mon,m_phi_barrel_neg_2_5GeV) ;  
     m_phi_barrel_neg_2_5GeV->GetXaxis()->SetTitle("Track #phi"); 
     m_phi_barrel_neg_2_5GeV->GetYaxis()->SetTitle("Number of Tracks in barrel, 2-5 GeV"); 
-    m_phi_barrel_neg_5_10GeV = new TH1F("phi_barrel_neg_5_10GeV","phi_barrel_neg_5_10GeV",100,0,2*m_Pi);  m_phi_barrel_neg_5_10GeV->SetMinimum(0);
+    m_phi_barrel_neg_5_10GeV = TH1F_LW::create("phi_barrel_neg_5_10GeV","phi_barrel_neg_5_10GeV",100,0,2*m_Pi);  m_phi_barrel_neg_5_10GeV->SetMinimum(0);
     RegisterHisto(al_mon,m_phi_barrel_neg_5_10GeV) ;  
     m_phi_barrel_neg_5_10GeV->GetXaxis()->SetTitle("Track #phi"); 
     m_phi_barrel_neg_5_10GeV->GetYaxis()->SetTitle("Number of Tracks in barrel, 5-10 GeV");  
-    m_phi_barrel_neg_10_20GeV = new TH1F("phi_barrel_neg_10_20GeV","phi_barrel_neg_10_20GeV",100,0,2*m_Pi);  m_phi_barrel_neg_10_20GeV->SetMinimum(0);
+    m_phi_barrel_neg_10_20GeV = TH1F_LW::create("phi_barrel_neg_10_20GeV","phi_barrel_neg_10_20GeV",100,0,2*m_Pi);  m_phi_barrel_neg_10_20GeV->SetMinimum(0);
     RegisterHisto(al_mon,m_phi_barrel_neg_10_20GeV) ;  
     m_phi_barrel_neg_10_20GeV->GetXaxis()->SetTitle("Track #phi"); 
     m_phi_barrel_neg_10_20GeV->GetYaxis()->SetTitle("Number of Tracks in barrel, 10-20 GeV");   
-    m_phi_barrel_neg_20plusGeV = new TH1F("phi_barrel_neg_20plusGeV","phi_barrel_neg_20plusGeV",100,0,2*m_Pi);  m_phi_barrel_neg_20plusGeV->SetMinimum(0);
+    m_phi_barrel_neg_20plusGeV = TH1F_LW::create("phi_barrel_neg_20plusGeV","phi_barrel_neg_20plusGeV",100,0,2*m_Pi);  m_phi_barrel_neg_20plusGeV->SetMinimum(0);
     RegisterHisto(al_mon,m_phi_barrel_neg_20plusGeV) ;  
     m_phi_barrel_neg_20plusGeV->GetXaxis()->SetTitle("Track #phi"); 
     m_phi_barrel_neg_20plusGeV->GetYaxis()->SetTitle("Number of Tracks in barrel, >20 GeV");  
 
-    m_phi_eca_pos_2_5GeV = new TH1F("phi_eca_pos_2_5GeV","phi_eca_pos_2_5GeV",100,0,2*m_Pi);  m_phi_eca_pos_2_5GeV->SetMinimum(0);
+    m_phi_eca_pos_2_5GeV = TH1F_LW::create("phi_eca_pos_2_5GeV","phi_eca_pos_2_5GeV",100,0,2*m_Pi);  m_phi_eca_pos_2_5GeV->SetMinimum(0);
     RegisterHisto(al_mon,m_phi_eca_pos_2_5GeV) ;  
     m_phi_eca_pos_2_5GeV->GetXaxis()->SetTitle("Track #phi"); 
     m_phi_eca_pos_2_5GeV->GetYaxis()->SetTitle("Number of Tracks in eca, 2-5 GeV"); 
-    m_phi_eca_pos_5_10GeV = new TH1F("phi_eca_pos_5_10GeV","phi_eca_pos_5_10GeV",100,0,2*m_Pi);  m_phi_eca_pos_5_10GeV->SetMinimum(0);
+    m_phi_eca_pos_5_10GeV = TH1F_LW::create("phi_eca_pos_5_10GeV","phi_eca_pos_5_10GeV",100,0,2*m_Pi);  m_phi_eca_pos_5_10GeV->SetMinimum(0);
     RegisterHisto(al_mon,m_phi_eca_pos_5_10GeV) ;  
     m_phi_eca_pos_5_10GeV->GetXaxis()->SetTitle("Track #phi"); 
     m_phi_eca_pos_5_10GeV->GetYaxis()->SetTitle("Number of Tracks in eca, 5-10 GeV");  
-    m_phi_eca_pos_10_20GeV = new TH1F("phi_eca_pos_10_20GeV","phi_eca_pos_10_20GeV",100,0,2*m_Pi);  m_phi_eca_pos_10_20GeV->SetMinimum(0);
+    m_phi_eca_pos_10_20GeV = TH1F_LW::create("phi_eca_pos_10_20GeV","phi_eca_pos_10_20GeV",100,0,2*m_Pi);  m_phi_eca_pos_10_20GeV->SetMinimum(0);
     RegisterHisto(al_mon,m_phi_eca_pos_10_20GeV) ;  
     m_phi_eca_pos_10_20GeV->GetXaxis()->SetTitle("Track #phi"); 
     m_phi_eca_pos_10_20GeV->GetYaxis()->SetTitle("Number of Tracks in eca, 10-20 GeV");   
-    m_phi_eca_pos_20plusGeV = new TH1F("phi_eca_pos_20plusGeV","phi_eca_pos_20plusGeV",100,0,2*m_Pi);  m_phi_eca_pos_20plusGeV->SetMinimum(0);
+    m_phi_eca_pos_20plusGeV = TH1F_LW::create("phi_eca_pos_20plusGeV","phi_eca_pos_20plusGeV",100,0,2*m_Pi);  m_phi_eca_pos_20plusGeV->SetMinimum(0);
     RegisterHisto(al_mon,m_phi_eca_pos_20plusGeV) ;  
     m_phi_eca_pos_20plusGeV->GetXaxis()->SetTitle("Track #phi"); 
     m_phi_eca_pos_20plusGeV->GetYaxis()->SetTitle("Number of Tracks in eca, >20 GeV");    
 
-    m_phi_eca_neg_2_5GeV = new TH1F("phi_eca_neg_2_5GeV","phi_eca_neg_2_5GeV",100,0,2*m_Pi);  m_phi_eca_neg_2_5GeV->SetMinimum(0);
+    m_phi_eca_neg_2_5GeV = TH1F_LW::create("phi_eca_neg_2_5GeV","phi_eca_neg_2_5GeV",100,0,2*m_Pi);  m_phi_eca_neg_2_5GeV->SetMinimum(0);
     RegisterHisto(al_mon,m_phi_eca_neg_2_5GeV) ;  
     m_phi_eca_neg_2_5GeV->GetXaxis()->SetTitle("Track #phi"); 
     m_phi_eca_neg_2_5GeV->GetYaxis()->SetTitle("Number of Tracks in eca, 2-5 GeV"); 
-    m_phi_eca_neg_5_10GeV = new TH1F("phi_eca_neg_5_10GeV","phi_eca_neg_5_10GeV",100,0,2*m_Pi);  m_phi_eca_neg_5_10GeV->SetMinimum(0);
+    m_phi_eca_neg_5_10GeV = TH1F_LW::create("phi_eca_neg_5_10GeV","phi_eca_neg_5_10GeV",100,0,2*m_Pi);  m_phi_eca_neg_5_10GeV->SetMinimum(0);
     RegisterHisto(al_mon,m_phi_eca_neg_5_10GeV) ;  
     m_phi_eca_neg_5_10GeV->GetXaxis()->SetTitle("Track #phi"); 
     m_phi_eca_neg_5_10GeV->GetYaxis()->SetTitle("Number of Tracks in eca, 5-10 GeV");  
-    m_phi_eca_neg_10_20GeV = new TH1F("phi_eca_neg_10_20GeV","phi_eca_neg_10_20GeV",100,0,2*m_Pi);  m_phi_eca_neg_10_20GeV->SetMinimum(0);
+    m_phi_eca_neg_10_20GeV = TH1F_LW::create("phi_eca_neg_10_20GeV","phi_eca_neg_10_20GeV",100,0,2*m_Pi);  m_phi_eca_neg_10_20GeV->SetMinimum(0);
     RegisterHisto(al_mon,m_phi_eca_neg_10_20GeV) ;  
     m_phi_eca_neg_10_20GeV->GetXaxis()->SetTitle("Track #phi"); 
     m_phi_eca_neg_10_20GeV->GetYaxis()->SetTitle("Number of Tracks in eca, 10-20 GeV");   
-    m_phi_eca_neg_20plusGeV = new TH1F("phi_eca_neg_20plusGeV","phi_eca_neg_20plusGeV",100,0,2*m_Pi);  m_phi_eca_neg_20plusGeV->SetMinimum(0);
+    m_phi_eca_neg_20plusGeV = TH1F_LW::create("phi_eca_neg_20plusGeV","phi_eca_neg_20plusGeV",100,0,2*m_Pi);  m_phi_eca_neg_20plusGeV->SetMinimum(0);
     RegisterHisto(al_mon,m_phi_eca_neg_20plusGeV) ;  
     m_phi_eca_neg_20plusGeV->GetXaxis()->SetTitle("Track #phi"); 
     m_phi_eca_neg_20plusGeV->GetYaxis()->SetTitle("Number of Tracks in eca, >20 GeV");   
 
-    m_phi_ecc_pos_2_5GeV = new TH1F("phi_ecc_pos_2_5GeV","phi_ecc_pos_2_5GeV",100,0,2*m_Pi);  m_phi_ecc_pos_2_5GeV->SetMinimum(0);
+    m_phi_ecc_pos_2_5GeV = TH1F_LW::create("phi_ecc_pos_2_5GeV","phi_ecc_pos_2_5GeV",100,0,2*m_Pi);  m_phi_ecc_pos_2_5GeV->SetMinimum(0);
     RegisterHisto(al_mon,m_phi_ecc_pos_2_5GeV) ;  
     m_phi_ecc_pos_2_5GeV->GetXaxis()->SetTitle("Track #phi"); 
     m_phi_ecc_pos_2_5GeV->GetYaxis()->SetTitle("Number of Tracks in ecc, 2-5 GeV"); 
-    m_phi_ecc_pos_5_10GeV = new TH1F("phi_ecc_pos_5_10GeV","phi_ecc_pos_5_10GeV",100,0,2*m_Pi);  m_phi_ecc_pos_5_10GeV->SetMinimum(0);
+    m_phi_ecc_pos_5_10GeV = TH1F_LW::create("phi_ecc_pos_5_10GeV","phi_ecc_pos_5_10GeV",100,0,2*m_Pi);  m_phi_ecc_pos_5_10GeV->SetMinimum(0);
     RegisterHisto(al_mon,m_phi_ecc_pos_5_10GeV) ;  
     m_phi_ecc_pos_5_10GeV->GetXaxis()->SetTitle("Track #phi"); 
     m_phi_ecc_pos_5_10GeV->GetYaxis()->SetTitle("Number of Tracks in ecc, 5-10 GeV");  
-    m_phi_ecc_pos_10_20GeV = new TH1F("phi_ecc_pos_10_20GeV","phi_ecc_pos_10_20GeV",100,0,2*m_Pi);  m_phi_ecc_pos_10_20GeV->SetMinimum(0);
+    m_phi_ecc_pos_10_20GeV = TH1F_LW::create("phi_ecc_pos_10_20GeV","phi_ecc_pos_10_20GeV",100,0,2*m_Pi);  m_phi_ecc_pos_10_20GeV->SetMinimum(0);
     RegisterHisto(al_mon,m_phi_ecc_pos_10_20GeV) ;  
     m_phi_ecc_pos_10_20GeV->GetXaxis()->SetTitle("Track #phi"); 
     m_phi_ecc_pos_10_20GeV->GetYaxis()->SetTitle("Number of Tracks in ecc, 10-20 GeV");   
-    m_phi_ecc_pos_20plusGeV = new TH1F("phi_ecc_pos_20plusGeV","phi_ecc_pos_20plusGeV",100,0,2*m_Pi);  m_phi_ecc_pos_20plusGeV->SetMinimum(0);
+    m_phi_ecc_pos_20plusGeV = TH1F_LW::create("phi_ecc_pos_20plusGeV","phi_ecc_pos_20plusGeV",100,0,2*m_Pi);  m_phi_ecc_pos_20plusGeV->SetMinimum(0);
     RegisterHisto(al_mon,m_phi_ecc_pos_20plusGeV) ;  
     m_phi_ecc_pos_20plusGeV->GetXaxis()->SetTitle("Track #phi"); 
     m_phi_ecc_pos_20plusGeV->GetYaxis()->SetTitle("Number of Tracks in ecc, >20 GeV");    
 
-    m_phi_ecc_neg_2_5GeV = new TH1F("phi_ecc_neg_2_5GeV","phi_ecc_neg_2_5GeV",100,0,2*m_Pi);  m_phi_ecc_neg_2_5GeV->SetMinimum(0);
+    m_phi_ecc_neg_2_5GeV = TH1F_LW::create("phi_ecc_neg_2_5GeV","phi_ecc_neg_2_5GeV",100,0,2*m_Pi);  m_phi_ecc_neg_2_5GeV->SetMinimum(0);
     RegisterHisto(al_mon,m_phi_ecc_neg_2_5GeV) ;  
     m_phi_ecc_neg_2_5GeV->GetXaxis()->SetTitle("Track #phi"); 
     m_phi_ecc_neg_2_5GeV->GetYaxis()->SetTitle("Number of Tracks in ecc, 2-5 GeV"); 
-    m_phi_ecc_neg_5_10GeV = new TH1F("phi_ecc_neg_5_10GeV","phi_ecc_neg_5_10GeV",100,0,2*m_Pi);  m_phi_ecc_neg_5_10GeV->SetMinimum(0);
+    m_phi_ecc_neg_5_10GeV = TH1F_LW::create("phi_ecc_neg_5_10GeV","phi_ecc_neg_5_10GeV",100,0,2*m_Pi);  m_phi_ecc_neg_5_10GeV->SetMinimum(0);
     RegisterHisto(al_mon,m_phi_ecc_neg_5_10GeV) ;  
     m_phi_ecc_neg_5_10GeV->GetXaxis()->SetTitle("Track #phi"); 
     m_phi_ecc_neg_5_10GeV->GetYaxis()->SetTitle("Number of Tracks in ecc, 5-10 GeV");  
-    m_phi_ecc_neg_10_20GeV = new TH1F("phi_ecc_neg_10_20GeV","phi_ecc_neg_10_20GeV",100,0,2*m_Pi);  m_phi_ecc_neg_10_20GeV->SetMinimum(0);
+    m_phi_ecc_neg_10_20GeV = TH1F_LW::create("phi_ecc_neg_10_20GeV","phi_ecc_neg_10_20GeV",100,0,2*m_Pi);  m_phi_ecc_neg_10_20GeV->SetMinimum(0);
     RegisterHisto(al_mon,m_phi_ecc_neg_10_20GeV) ;  
     m_phi_ecc_neg_10_20GeV->GetXaxis()->SetTitle("Track #phi"); 
     m_phi_ecc_neg_10_20GeV->GetYaxis()->SetTitle("Number of Tracks in ecc, 10-20 GeV");   
-    m_phi_ecc_neg_20plusGeV = new TH1F("phi_ecc_neg_20plusGeV","phi_ecc_neg_20plusGeV",100,0,2*m_Pi);  m_phi_ecc_neg_20plusGeV->SetMinimum(0);
+    m_phi_ecc_neg_20plusGeV = TH1F_LW::create("phi_ecc_neg_20plusGeV","phi_ecc_neg_20plusGeV",100,0,2*m_Pi);  m_phi_ecc_neg_20plusGeV->SetMinimum(0);
     RegisterHisto(al_mon,m_phi_ecc_neg_20plusGeV) ;  
     m_phi_ecc_neg_20plusGeV->GetXaxis()->SetTitle("Track #phi"); 
     m_phi_ecc_neg_20plusGeV->GetYaxis()->SetTitle("Number of Tracks in ecc, >20 GeV");    
@@ -1379,57 +1467,57 @@ StatusCode IDAlignMonGenericTracks::bookHistograms()
     m_eta_phi_neg_20plusGeV->GetXaxis()->SetTitle("Track #eta"); 
     m_eta_phi_neg_20plusGeV->GetYaxis()->SetTitle("Track #phi");
 
-    m_chi2oDoF_barrel = new TH1F("chi2oDoF_barrel","chi2oDoF (Barrel)",100,0,10);  
+    m_chi2oDoF_barrel = TH1F_LW::create("chi2oDoF_barrel","chi2oDoF (Barrel)",100,0,10);  
     RegisterHisto(al_mon,m_chi2oDoF_barrel) ; 
     m_chi2oDoF_barrel->GetXaxis()->SetTitle("Track in Barrel #chi^{2} / NDoF"); 
     m_chi2oDoF_barrel->GetYaxis()->SetTitle("Number of Tracks");  
-    m_chi2oDoF_eca = new TH1F("chi2oDoF_eca","chi2oDoF (Eca)",100,0,10);  
+    m_chi2oDoF_eca = TH1F_LW::create("chi2oDoF_eca","chi2oDoF (Eca)",100,0,10);  
     RegisterHisto(al_mon,m_chi2oDoF_eca) ; 
     m_chi2oDoF_eca->GetXaxis()->SetTitle("Track in ECA #chi^{2} / NDoF"); 
     m_chi2oDoF_eca->GetYaxis()->SetTitle("Number of Tracks");  
-    m_chi2oDoF_ecc = new TH1F("chi2oDoF_ecc","chi2oDoF (Ecc)",100,0,10);  
+    m_chi2oDoF_ecc = TH1F_LW::create("chi2oDoF_ecc","chi2oDoF (Ecc)",100,0,10);  
     RegisterHisto(al_mon,m_chi2oDoF_ecc) ; 
     m_chi2oDoF_ecc->GetXaxis()->SetTitle("Track in ECC #chi^{2} / NDoF"); 
     m_chi2oDoF_ecc->GetYaxis()->SetTitle("Number of Tracks");      
     
-    m_phi_barrel = new TH1F("phi_barrel","phi (Barrel)",100,0,2*m_Pi); m_phi_barrel->SetMinimum(0);
+    m_phi_barrel = TH1F_LW::create("phi_barrel","phi (Barrel)",100,0,2*m_Pi); m_phi_barrel->SetMinimum(0);
     RegisterHisto(al_mon,m_phi_barrel) ;  
     m_phi_barrel->GetXaxis()->SetTitle("Track in Barrel #phi"); 
     m_phi_barrel->GetYaxis()->SetTitle("Number of Tracks");  
-    m_phi_eca = new TH1F("phi_eca","phi (Eca)",100,0,2*m_Pi); m_phi_eca->SetMinimum(0);
+    m_phi_eca = TH1F_LW::create("phi_eca","phi (Eca)",100,0,2*m_Pi); m_phi_eca->SetMinimum(0);
     RegisterHisto(al_mon,m_phi_eca) ; 
     m_phi_eca->GetXaxis()->SetTitle("Track in ECA #phi"); 
     m_phi_eca->GetYaxis()->SetTitle("Number of Tracks");  
-    m_phi_ecc = new TH1F("phi_ecc","phi (Ecc)",100,0,2*m_Pi); m_phi_ecc->SetMinimum(0);
+    m_phi_ecc = TH1F_LW::create("phi_ecc","phi (Ecc)",100,0,2*m_Pi); m_phi_ecc->SetMinimum(0);
     RegisterHisto(al_mon,m_phi_ecc) ; 
     m_phi_ecc->GetXaxis()->SetTitle("Track in ECC #phi"); 
     m_phi_ecc->GetYaxis()->SetTitle("Number of Tracks");   
 
-    m_pT = new TH1F("pT","pT",200,-m_pTRange,m_pTRange);  
+    m_pT = TH1F_LW::create("pT","pT",200,-m_pTRange,m_pTRange);  
     RegisterHisto(al_mon_ls,m_pT) ;   
     m_pT->GetXaxis()->SetTitle("Signed Track pT [GeV]"); 
     m_pT->GetYaxis()->SetTitle("Number of Tracks");   
-    m_pTRes = new TH1F("pTRes","pTRes",100,0,1.0);  
+    m_pTRes = TH1F_LW::create("pTRes","pTRes",100,0,1.0);  
     RegisterHisto(al_mon,m_pTRes) ;  
-    m_pTResOverP = new TH1F("pTResOverP","Momentum resolution / Momentum",100,0,0.05);  
+    m_pTResOverP = TH1F_LW::create("pTResOverP","Momentum resolution / Momentum",100,0,0.05);  
     RegisterHisto(al_mon,m_pTResOverP) ;  
 
-    m_P = new TH1F("P","Track Momentum P",200,-m_pTRange,m_pTRange);  
+    m_P = TH1F_LW::create("P","Track Momentum P",200,-m_pTRange,m_pTRange);  
     RegisterHisto(al_mon,m_P) ;   
     m_P->GetXaxis()->SetTitle("Signed Track P [GeV]"); 
     m_P->GetYaxis()->SetTitle("Number of Tracks");   
     
-    m_Zmumu = new TH1F("Zmumu","Zmumu Inv. Mass",60,60,120);  
+    m_Zmumu = TH1F_LW::create("Zmumu","Zmumu Inv. Mass",60,60,120);  
     RegisterHisto(al_mon,m_Zmumu) ;  
-    m_Zmumu_barrel = new TH1F("Zmumu_barrel","Zmumu Both Legs Barrel",60,60,120);  
+    m_Zmumu_barrel = TH1F_LW::create("Zmumu_barrel","Zmumu Both Legs Barrel",60,60,120);  
     RegisterHisto(al_mon,m_Zmumu_barrel) ;  
-    m_Zmumu_eca = new TH1F("Zmumu_eca","Zmumu Both Legs ECA",60,60,120);  
+    m_Zmumu_eca = TH1F_LW::create("Zmumu_eca","Zmumu Both Legs ECA",60,60,120);  
     RegisterHisto(al_mon,m_Zmumu_eca) ;  
-    m_Zmumu_ecc = new TH1F("Zmumu_ecc","Zmumu Both Legs ECC",60,60,120);  
+    m_Zmumu_ecc = TH1F_LW::create("Zmumu_ecc","Zmumu Both Legs ECC",60,60,120);  
     RegisterHisto(al_mon,m_Zmumu_ecc) ;  
-    m_Zmumu_barrel_eca = new TH1F("Zmumu_barrel_eca","Zmumu One Barrel One ECA",60,60,120);  
+    m_Zmumu_barrel_eca = TH1F_LW::create("Zmumu_barrel_eca","Zmumu One Barrel One ECA",60,60,120);  
     RegisterHisto(al_mon,m_Zmumu_barrel_eca) ;  
-    m_Zmumu_barrel_ecc = new TH1F("Zmumu_barrel_ecc","Zmumu One Barrel One ECC",60,60,120);  
+    m_Zmumu_barrel_ecc = TH1F_LW::create("Zmumu_barrel_ecc","Zmumu One Barrel One ECC",60,60,120);  
     RegisterHisto(al_mon,m_Zmumu_barrel_ecc) ; 
 
     m_ZpT_n = new TH1F("ZpT_n","pT of negative tracks from Z",100,0,100);  
@@ -1461,90 +1549,23 @@ StatusCode IDAlignMonGenericTracks::bookHistograms()
     RegisterHisto(al_mon,m_hitMap_endcapC);
 
     //charge asymmetry vs.eta
-    m_eta_neg = new TH1F("eta_neg","eta for negative tracks; #eta(-)",25,-m_etaRange,m_etaRange);   
+    m_eta_neg = TH1F_LW::create("eta_neg","eta for negative tracks; #eta(-)",25,-m_etaRange,m_etaRange);   
     RegisterHisto(al_mon,m_eta_neg);
     m_eta_neg->GetXaxis()->SetTitle("#eta"); 
     m_eta_neg->GetYaxis()->SetTitle("# tracks");   
 
-    m_eta_pos = new TH1F("eta_pos","eta for positive tracks; #eta(+)",25,-m_etaRange,m_etaRange);   
+    m_eta_pos = TH1F_LW::create("eta_pos","eta for positive tracks; #eta(+)",25,-m_etaRange,m_etaRange);   
     RegisterHisto(al_mon,m_eta_pos);
     m_eta_pos->GetXaxis()->SetTitle("#eta"); 
     m_eta_pos->GetYaxis()->SetTitle("# tracks");   
 
-    m_eta_asym = new TH1F("eta_asym","Track Charge Asymmetry versus eta",25, -m_etaRange,m_etaRange);
+    m_eta_asym = TH1F_LW::create("eta_asym","Track Charge Asymmetry versus eta",25, -m_etaRange,m_etaRange);
     RegisterHisto(al_mon,m_eta_asym);
     m_eta_asym->GetXaxis()->SetTitle("#eta"); 
     m_eta_asym->GetYaxis()->SetTitle("(pos-neg)/(pos+neg)");   
 
 
-    //BeamSpot Position histos
-    m_YBs_vs_XBs = new TH2F("YBs_vs_XBs","BeamSpot Position: y vs x",100, -0.9,-0.1, 100, -0.9,-0.1);
-    RegisterHisto(al_mon,m_YBs_vs_XBs);
-    m_YBs_vs_XBs->GetXaxis()->SetTitle("x coordinate (mm)");
-    m_YBs_vs_XBs->GetYaxis()->SetTitle("y coordinate (mm)");
-
-    m_YBs_vs_ZBs = new TH2F("YBs_vs_ZBs","BeamSpot Position: y vs z",100,-25., -5., 100, -0.9,-0.1);
-    RegisterHisto(al_mon,m_YBs_vs_ZBs);
-    m_YBs_vs_ZBs->GetXaxis()->SetTitle("z coordinate (mm)");
-    m_YBs_vs_ZBs->GetYaxis()->SetTitle("y coordinate (mm)");
-
-    m_XBs_vs_ZBs = new TH2F("XBs_vs_ZBs","BeamSpot Position: x vs z",100,-25., -5., 100, -0.9,-0.1);
-    RegisterHisto(al_mon,m_XBs_vs_ZBs);
-    m_XBs_vs_ZBs->GetXaxis()->SetTitle("z coordinate (mm)");
-    m_XBs_vs_ZBs->GetYaxis()->SetTitle("x coordinate (mm)");
-
-
-    m_XBs = new TH1F("XBs","BeamSpot Position: x",100,-1,0.);
-    RegisterHisto(al_mon,m_XBs);
-    m_XBs->GetXaxis()->SetTitle("x (mm)");
-    m_XBs->GetYaxis()->SetTitle("#events");
-
-    m_YBs= new TH1F("YBs","BeamSpot Position: y",100,-1,0.);
-    RegisterHisto(al_mon,m_YBs);
-    m_YBs->GetXaxis()->SetTitle("y (mm)");
-    m_YBs->GetYaxis()->SetTitle("#events");
-
-    m_ZBs = new TH1F("ZBs","BeamSpot Position: z",100,-50,50);
-    RegisterHisto(al_mon,m_ZBs);
-    m_ZBs->GetXaxis()->SetTitle("z (mm)");
-    m_ZBs->GetYaxis()->SetTitle("#events");
-
-    m_TiltX_Bs = new TH1F("TiltX_Bs","Beam spot tile angle: x-z plane",100,-1e3,1e3);
-    RegisterHisto(al_mon,m_TiltX_Bs);
-    m_TiltX_Bs->GetXaxis()->SetTitle("Tilt angle (#murad)");
-
-    m_TiltY_Bs = new TH1F("TiltY_Bs","Beam spot tile angle: y-z plane",100,-1e3,1e3);
-    RegisterHisto(al_mon,m_TiltY_Bs);
-    m_TiltY_Bs->GetXaxis()->SetTitle("Tilt angle (#murad)");
-
-    //versus lumiblock
-    m_XBs_vs_LumiBlock = new TProfile("XBs_vs_LumiBlock","Profile of BeamSpot x Coordinate vs LumiBlock",1024,-0.5,1023.5);
-    RegisterHisto(al_mon,m_XBs_vs_LumiBlock);
-    m_XBs_vs_LumiBlock->GetXaxis()->SetTitle("LumiBlock");
-    m_XBs_vs_LumiBlock->GetYaxis()->SetTitle("x coordinate (mm)");
-
-    m_YBs_vs_LumiBlock = new TProfile("YBs_vs_LumiBlock","Profile of BeamSpot y Coordinate vs LumiBlock",1024,-0.5,1023.5);
-    RegisterHisto(al_mon,m_YBs_vs_LumiBlock);
-    m_YBs_vs_LumiBlock->GetXaxis()->SetTitle("LumiBlock");
-    m_YBs_vs_LumiBlock->GetYaxis()->SetTitle("y coordinate (mm)");
-
-    m_ZBs_vs_LumiBlock = new TProfile("ZBs_vs_LumiBlock","Profile of BeamSpot z Coordinate vs LumiBlock",1024,-0.5,1023.5);
-    RegisterHisto(al_mon,m_ZBs_vs_LumiBlock);
-    m_ZBs_vs_LumiBlock->GetXaxis()->SetTitle("LumiBlock");
-    m_ZBs_vs_LumiBlock->GetYaxis()->SetTitle("z coordinate (mm)");
-
-    m_BeamSpotTiltX_vs_LumiBlock = new TProfile("BeamSpotTiltX_vs_LumiBlock","Profile of BeamSpot TiltX vs LumiBlock",1024,-0.5,1023.5,-2,2);
-    RegisterHisto(al_mon,m_BeamSpotTiltX_vs_LumiBlock);
-    m_BeamSpotTiltX_vs_LumiBlock->GetXaxis()->SetTitle("LumiBlock");
-    m_BeamSpotTiltX_vs_LumiBlock->GetYaxis()->SetTitle("TiltX (mrad)");
-    m_BeamSpotTiltX_vs_LumiBlock->GetYaxis()->SetRangeUser(-1,1);
-
-    m_BeamSpotTiltY_vs_LumiBlock = new TProfile("BeamSpotTiltY_vs_LumiBlock","Profile of BeamSpot TiltY vs LumiBlock",1024,-0.5,1023.5,-2,2);
-    RegisterHisto(al_mon,m_BeamSpotTiltY_vs_LumiBlock);
-    m_BeamSpotTiltY_vs_LumiBlock->GetXaxis()->SetTitle("LumiBlock");
-    m_BeamSpotTiltY_vs_LumiBlock->GetYaxis()->SetTitle("TiltY (mrad)");
-    m_BeamSpotTiltY_vs_LumiBlock->GetYaxis()->SetRangeUser(-1,1);
-
+    
     // msg(MSG::INFO) << "lumiblock histos done " <<endreq;
 
  
@@ -1552,27 +1573,27 @@ StatusCode IDAlignMonGenericTracks::bookHistograms()
 
     
     // lumiblock histos 
-    m_LumiBlock = new TH1F("LumiBlock","Lumi block",1024,-0.5,1023.5); 
+    m_LumiBlock = TH1F_LW::create("LumiBlock","Lumi block",1024,-0.5,1023.5); 
     RegisterHisto(al_mon,m_LumiBlock) ;
     m_LumiBlock->GetXaxis()->SetTitle("Lumi block ID"); 
     m_LumiBlock->GetYaxis()->SetTitle("# events");   
 
-    m_Tracks_per_LumiBlock = new TH1F("TracksPerLumiBlock","Tracks per Lumi block",1024,-0.5,1023.5); 
+    m_Tracks_per_LumiBlock = TH1F_LW::create("TracksPerLumiBlock","Tracks per Lumi block",1024,-0.5,1023.5); 
     RegisterHisto(al_mon,m_Tracks_per_LumiBlock) ;
     m_Tracks_per_LumiBlock->GetXaxis()->SetTitle("Lumi block ID"); 
     m_Tracks_per_LumiBlock->GetYaxis()->SetTitle("# tracks");   
 
-    m_NPIX_per_LumiBlock = new TH1F("NPixPerLumiBlock","N pixel hits per Lumi block",1024,-0.5,1023.5); 
+    m_NPIX_per_LumiBlock = TH1F_LW::create("NPixPerLumiBlock","N pixel hits per Lumi block",1024,-0.5,1023.5); 
     RegisterHisto(al_mon, m_NPIX_per_LumiBlock) ;
     m_NPIX_per_LumiBlock->GetXaxis()->SetTitle("Lumi block ID"); 
     m_NPIX_per_LumiBlock->GetYaxis()->SetTitle("# pixel hits");   
 
-    m_NSCT_per_LumiBlock = new TH1F("NSCTPerLumiBlock","N SCT hits per Lumi block",1024,-0.5,1023.5); 
+    m_NSCT_per_LumiBlock = TH1F_LW::create("NSCTPerLumiBlock","N SCT hits per Lumi block",1024,-0.5,1023.5); 
     RegisterHisto(al_mon, m_NSCT_per_LumiBlock) ;
     m_NSCT_per_LumiBlock->GetXaxis()->SetTitle("Lumi block ID"); 
     m_NSCT_per_LumiBlock->GetYaxis()->SetTitle("# SCT hits");   
 
-    m_NTRT_per_LumiBlock = new TH1F("NTRTPerLumiBlock","N TRT hits per Lumi block",1024,-0.5,1023.5); 
+    m_NTRT_per_LumiBlock = TH1F_LW::create("NTRTPerLumiBlock","N TRT hits per Lumi block",1024,-0.5,1023.5); 
     RegisterHisto(al_mon, m_NTRT_per_LumiBlock) ;
     m_NTRT_per_LumiBlock->GetXaxis()->SetTitle("Lumi block ID"); 
     m_NTRT_per_LumiBlock->GetYaxis()->SetTitle("# TRT hits");   
@@ -1582,6 +1603,18 @@ StatusCode IDAlignMonGenericTracks::bookHistograms()
   return StatusCode::SUCCESS;
   
 }
+
+void IDAlignMonGenericTracks::RegisterHisto(MonGroup& mon, TH1F_LW* histo) {
+  
+  //histo->Sumw2(); this uses a lot of memory and isn't needed!
+  //histo->SetOption("e");
+  StatusCode sc = mon.regHist(histo);
+  if (sc.isFailure() ) {
+    if(msgLvl(MSG::WARNING)) msg(MSG::WARNING) << "Cannot book TH1F_LW Histogram:" << endreq;
+  }
+}
+
+
 void IDAlignMonGenericTracks::RegisterHisto(MonGroup& mon, TH1* histo) {
 
   //histo->Sumw2();
@@ -1690,19 +1723,7 @@ StatusCode IDAlignMonGenericTracks::fillHistograms()
           << ", tiltY = " << beamTiltY <<endreq;
 
 
-
-    //Fill BeamSpot Position histos
-    m_YBs_vs_XBs->Fill(beamSpotX,beamSpotY, hweight);
-    m_YBs_vs_ZBs->Fill(beamSpotZ,beamSpotY, hweight);
-    m_XBs_vs_ZBs->Fill(beamSpotZ,beamSpotX, hweight);
-
-    m_XBs->Fill(beamSpotX, hweight);
-    m_YBs->Fill(beamSpotY, hweight);
-    m_ZBs->Fill(beamSpotZ, hweight);
-    m_TiltX_Bs->Fill(1e6*beamTiltX, hweight);
-    m_TiltY_Bs->Fill(1e6*beamTiltY, hweight);
-   
-
+    
   }
   
   // Get EventInfo
@@ -1717,16 +1738,28 @@ StatusCode IDAlignMonGenericTracks::fillHistograms()
 
   if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << " LumiBlock = " <<  LumiBlock << endreq;
   m_LumiBlock->Fill(float(LumiBlock), hweight);
-
-
-  //Fill BeamSpot Position versus lumiblock histos
-  m_XBs_vs_LumiBlock->Fill(float(LumiBlock),beamSpotX, hweight);
-  m_YBs_vs_LumiBlock->Fill(float(LumiBlock),beamSpotY, hweight);
-  m_ZBs_vs_LumiBlock->Fill(float(LumiBlock),beamSpotZ, hweight);
-  m_BeamSpotTiltX_vs_LumiBlock->Fill(float(LumiBlock),1e3*beamTiltX, hweight);
-  m_BeamSpotTiltY_vs_LumiBlock->Fill(float(LumiBlock),1e3*beamTiltY, hweight);
   
-
+  if (m_extendedPlots)
+      {
+	//Fill BeamSpot Position histos
+	m_YBs_vs_XBs->Fill(beamSpotX,beamSpotY, hweight);
+	m_YBs_vs_ZBs->Fill(beamSpotZ,beamSpotY, hweight);
+	m_XBs_vs_ZBs->Fill(beamSpotZ,beamSpotX, hweight);
+	
+	m_XBs->Fill(beamSpotX, hweight);
+	m_YBs->Fill(beamSpotY, hweight);
+	m_ZBs->Fill(beamSpotZ, hweight);
+	m_TiltX_Bs->Fill(1e6*beamTiltX, hweight);
+	m_TiltY_Bs->Fill(1e6*beamTiltY, hweight);
+	
+	//Fill BeamSpot Position versus lumiblock histos
+	m_XBs_vs_LumiBlock->Fill(float(LumiBlock),beamSpotX, hweight);
+	m_YBs_vs_LumiBlock->Fill(float(LumiBlock),beamSpotY, hweight);
+	m_ZBs_vs_LumiBlock->Fill(float(LumiBlock),beamSpotZ, hweight);
+	m_BeamSpotTiltX_vs_LumiBlock->Fill(float(LumiBlock),1e3*beamTiltX, hweight);
+	m_BeamSpotTiltY_vs_LumiBlock->Fill(float(LumiBlock),1e3*beamTiltY, hweight);
+      }
+  
 
   int nHits=0;
   int nTracks=0;
@@ -1743,9 +1776,33 @@ StatusCode IDAlignMonGenericTracks::fillHistograms()
   
   //DataVector<xAOD::TrackParticle>::const_iterator trkPsItr  = trkPs->begin();
   //DataVector<xAOD::TrackParticle>::const_iterator trkPsItrE = trkPs->end();
-
   
-
+  if (m_doIP)
+    {
+      const xAOD::VertexContainer* vxContainer(0);
+      StatusCode sc = evtStore()->retrieve(vxContainer, m_VxPrimContainerName);
+      if (sc.isFailure()) {
+	ATH_MSG_DEBUG("Could not retrieve primary vertex info: " << m_VxPrimContainerName);
+	return false;
+      }
+      if(vxContainer) {
+	ATH_MSG_VERBOSE("Nb of reco primary vertex for coll "
+			<< " = " << vxContainer->size() );
+	
+	
+	xAOD::VertexContainer::const_iterator vxI = vxContainer->begin();
+	xAOD::VertexContainer::const_iterator vxE = vxContainer->end();
+	for(; vxI!=vxE; ++vxI) {
+	  //int nbtk = 0;
+	  //const std::vector<Trk::VxTrackAtVertex*>* tracks = (*vxI)->vxTrackAtVertex();
+	  if ((*vxI)->type()==1) {
+	    m_pvtx=(*vxI);
+	  }
+	}
+      }
+    }
+  
+  
   for (; trksItr != trksItrE; ++trksItr) {
     
     nTracks++;  
@@ -1788,11 +1845,10 @@ StatusCode IDAlignMonGenericTracks::fillHistograms()
     
     
     if (m_doIP){
-      const Trk::VxCandidate* vtx =  findAssociatedVertex( *trksItr );
-      //const xAOD::Vertex* vtx =  findAssociatedVertexTP(*trkPsItr);
+
       //Get unbiased impact parameter
       
-      if (vtx) myIPandSigma = m_trackToVertexIPEstimator->estimate(*trksItr, vtx, true);
+      if (m_pvtx) myIPandSigma = m_trackToVertexIPEstimator->estimate((*trksItr)->perigeeParameters(), m_pvtx, true);
     } 
     
     if (covariance == NULL) {
@@ -1991,8 +2047,7 @@ StatusCode IDAlignMonGenericTracks::fillHistograms()
     if (!hasECAhits && !hasECChits) { //filling barrel histograms
       m_chi2oDoF_barrel             -> Fill(chi2oDoF, hweight);
       m_phi_barrel                  -> Fill(trkphi  , hweight);
-      m_trk_d0_vs_phi_vs_eta_barrel -> Fill(trketa, trkphi, trkd0c, hweight);
-      m_trk_pT_vs_eta_barrel        -> Fill(trketa, trkpt         , hweight);
+            
 
       if(m_doIP && myIPandSigma){
 		
@@ -2012,11 +2067,12 @@ StatusCode IDAlignMonGenericTracks::fillHistograms()
         else if(trkpt>10. && trkpt<20.)m_phi_barrel_neg_10_20GeV -> Fill(trkphi, hweight);
         else if(trkpt>20.)             m_phi_barrel_neg_20plusGeV-> Fill(trkphi, hweight);
       }
-    } else if (hasECAhits) {//filling endcap A histograms
+    }
+    else if (hasECAhits) {//filling endcap A histograms
       m_chi2oDoF_eca -> Fill(chi2oDoF, hweight);
       m_phi_eca      -> Fill(trkphi  , hweight);  
-      m_trk_d0_vs_phi_vs_eta_eca -> Fill(trketa, trkphi, trkd0c, hweight);
-      m_trk_pT_vs_eta_eca        -> Fill(trketa, trkpt         , hweight);
+      
+      
       
       if(m_doIP && myIPandSigma){
         m_trk_d0_wrtPV_vs_phi_vs_eta_eca -> Fill(trketa, trkphi, myIPandSigma->IPd0, hweight);
@@ -2034,11 +2090,11 @@ StatusCode IDAlignMonGenericTracks::fillHistograms()
         else if(trkpt>10. && trkpt<20.)m_phi_eca_neg_10_20GeV -> Fill(trkphi, hweight);
         else if(trkpt>20.)             m_phi_eca_neg_20plusGeV-> Fill(trkphi, hweight);
       }
-    } else if (hasECChits) {//filling endcap C histograms
+    }
+    else if (hasECChits) {//filling endcap C histograms
       m_chi2oDoF_ecc -> Fill(chi2oDoF, hweight);
       m_phi_ecc      -> Fill(trkphi  , hweight);
-      m_trk_d0_vs_phi_vs_eta_ecc -> Fill(trketa, trkphi, trkd0c, hweight);
-      m_trk_pT_vs_eta_ecc        -> Fill(trketa, trkpt         , hweight);
+      
 
       if(m_doIP && myIPandSigma){
         m_trk_d0_wrtPV_vs_phi_vs_eta_ecc -> Fill(trketa, trkphi, myIPandSigma->IPd0, hweight);
@@ -2077,11 +2133,9 @@ StatusCode IDAlignMonGenericTracks::fillHistograms()
     }
     m_z0 -> Fill(trkz0, hweight);
     m_z0sintheta -> Fill(trkz0*(sin(trktheta)), hweight);
-    m_z0_pvcorr  -> Fill(trkz0c, hweight);
-    m_z0sintheta_pvcorr -> Fill(trkz0c*(sin(trktheta)), hweight);
     m_d0        -> Fill(trkd0, hweight);
     m_d0_bscorr -> Fill(d0bscorr    , hweight);
-    m_d0_pvcorr -> Fill(trkd0c      , hweight);
+    
     if(m_doIP && myIPandSigma){
       m_trk_d0_wrtPV -> Fill(myIPandSigma->IPd0, hweight);
       m_trk_z0_wrtPV -> Fill(myIPandSigma->IPz0, hweight);
@@ -2090,27 +2144,18 @@ StatusCode IDAlignMonGenericTracks::fillHistograms()
     m_P         -> Fill(trkP        , hweight);
     if(charge>0) m_pT_p -> Fill(trkpt, hweight);
     if(charge<0) m_pT_n -> Fill(trkpt, hweight);
-    if(charge>0) {
-      m_trk_d0c_pos -> Fill(trkd0c, hweight);
-      m_trk_z0c_pos -> Fill(trkz0c, hweight);
-    }
-    if(charge<0) {
-      m_trk_d0c_neg -> Fill(trkd0c, hweight);
-      m_trk_z0c_neg -> Fill(trkz0c, hweight);
-    }
+    
     m_pTRes      -> Fill(fabs(Err_qOverP/qOverP)       , hweight);
     m_pTResOverP -> Fill(fabs(Err_qOverP/qOverP*qOverP), hweight);
 
-    m_trk_chi2oDoF -> Fill(trketa,chi2oDoF, hweight);
-    m_trk_chi2Prob -> Fill(trketa,chi2Prob, hweight);
+    
 
     m_Tracks_per_LumiBlock->Fill(float(LumiBlock), hweight);
     m_NPIX_per_LumiBlock->Fill(float(LumiBlock), nhpix*hweight);
     m_NSCT_per_LumiBlock->Fill(float(LumiBlock), nhsct*hweight);
     m_NTRT_per_LumiBlock->Fill(float(LumiBlock), nhtrt*hweight);
 
-    m_trk_d0_vs_phi_vs_eta -> Fill(trketa, trkphi, trkd0c, hweight);
-    m_trk_pT_vs_eta        -> Fill(trketa, trkpt         , hweight);
+    
 
     if(m_doIP && myIPandSigma){
       m_trk_d0_wrtPV_vs_phi_vs_eta-> Fill(trketa, trkphi, myIPandSigma->IPd0, hweight);
@@ -2119,6 +2164,24 @@ StatusCode IDAlignMonGenericTracks::fillHistograms()
 
 
     if(m_extendedPlots){
+      m_d0_pvcorr -> Fill(trkd0c      , hweight);
+      m_z0_pvcorr  -> Fill(trkz0c, hweight);
+      
+      if(charge>0) {
+	m_trk_d0c_pos -> Fill(trkd0c, hweight);
+	m_trk_z0c_pos -> Fill(trkz0c, hweight);
+      }
+      if(charge<0) {
+	m_trk_d0c_neg -> Fill(trkd0c, hweight);
+	m_trk_z0c_neg -> Fill(trkz0c, hweight);
+      }
+      
+      m_trk_d0_vs_phi0_z0->Fill (trkphi, trkz0, trkd0);
+      m_z0sintheta_pvcorr -> Fill(trkz0c*(sin(trktheta)), hweight);
+      m_trk_chi2oDoF -> Fill(trketa,chi2oDoF, hweight);
+      m_trk_chi2Prob -> Fill(trketa,chi2Prob, hweight);
+      m_trk_d0_vs_phi_vs_eta -> Fill(trketa, trkphi, trkd0c, hweight);
+      m_trk_pT_vs_eta        -> Fill(trketa, trkpt         , hweight);
       m_trk_PIXvSCTHits  -> Fill( nhsct            , nhpix   , hweight);
       m_trk_PIXHitsvEta  -> Fill( trketa           , nhpix   , hweight);    
       m_trk_SCTHitsvEta  -> Fill( trketa           , nhsct   , hweight);
@@ -2182,79 +2245,117 @@ StatusCode IDAlignMonGenericTracks::fillHistograms()
         m_errD0VsPhiBarrel -> Fill(trkphi      , Err_d0  , hweight);
         m_D0bsVsPhi0Barrel -> Fill(trkphi      , d0bscorr, hweight);
         m_D0bsVsPtBarrel   -> Fill(charge*trkpt, d0bscorr, hweight);
+	m_trk_d0_vs_phi_vs_eta_barrel -> Fill(trketa, trkphi, trkd0c, hweight);
+	m_trk_pT_vs_eta_barrel        -> Fill(trketa, trkpt         , hweight);
+	m_trk_d0_barrel  -> Fill(trkd0 , hweight); 
+	m_trk_d0_barrel_zoomin -> Fill(trkd0, hweight);
+	m_trk_d0c_barrel -> Fill(trkd0c, hweight);            
+	m_trk_z0_barrel  -> Fill(trkz0 , hweight); 
+	m_trk_z0_barrel_zoomin -> Fill(trkz0, hweight);
+	
+	if (charge <0)
+	  {
+	    m_trk_d0c_neg_barrel  -> Fill( trkd0c , hweight);
+	    m_trk_z0c_neg_barrel  -> Fill( trkz0c , hweight);
+	  }
+	else
+	  {
+	    m_trk_d0c_pos_barrel  -> Fill(trkd0c, hweight);
+	    m_trk_z0c_pos_barrel  -> Fill(trkz0c, hweight);
+	  }
+      
+	
       }
-      if (hasECAhits) {//filling ECA histograms
+      else if (hasECAhits) {//filling ECA histograms
         m_errD0VsPhiECA -> Fill(trkphi      , Err_d0  , hweight);
         m_D0bsVsPhi0ECA -> Fill(trkphi      , d0bscorr, hweight);
         m_D0bsVsPtECA   -> Fill(charge*trkpt, d0bscorr, hweight);
+	m_trk_d0_vs_phi_vs_eta_eca -> Fill(trketa, trkphi, trkd0c, hweight);
+	m_trk_pT_vs_eta_eca        -> Fill(trketa, trkpt         , hweight);
+	m_trk_d0_eca  -> Fill(trkd0 , hweight); m_trk_d0_eca_zoomin -> Fill(trkd0, hweight);
+	m_trk_d0c_eca -> Fill(trkd0c, hweight);              
+	m_trk_z0_eca  -> Fill(trkz0 , hweight); m_trk_z0_eca_zoomin -> Fill(trkz0, hweight);
+	
+	if (charge<0)
+	  {
+	    m_trk_d0c_neg_eca  -> Fill(trkd0c, hweight);
+	    m_trk_z0c_neg_eca  -> Fill(trkz0c, hweight);
+	  }
+	else
+	  {
+	    m_trk_d0c_pos_eca  -> Fill(trkd0c, hweight);
+	    m_trk_z0c_pos_eca  -> Fill(trkz0c, hweight);
+	  }
+	  
+
       }
-      if (hasECChits) {//filling ECA histograms
+      else if (hasECChits) {//filling ECA histograms
         m_errD0VsPhiECC -> Fill(trkphi      , Err_d0  , hweight);
         m_D0bsVsPhi0ECC -> Fill(trkphi      , d0bscorr, hweight);
         m_D0bsVsPtECC   -> Fill(charge*trkpt, d0bscorr, hweight);
+	m_trk_d0_vs_phi_vs_eta_ecc -> Fill(trketa, trkphi, trkd0c, hweight);
+	m_trk_pT_vs_eta_ecc        -> Fill(trketa, trkpt         , hweight);
+	m_trk_d0_ecc  -> Fill(trkd0 , hweight); m_trk_d0_ecc_zoomin -> Fill(trkd0, hweight);
+	m_trk_d0c_ecc -> Fill(trkd0c, hweight);              
+	m_trk_z0_ecc  -> Fill(trkz0 , hweight); m_trk_z0_ecc_zoomin -> Fill(trkz0, hweight);
+	
+	if (charge <0)
+	  {
+	    m_trk_d0c_neg_ecc  -> Fill(trkd0c, hweight);
+	    m_trk_z0c_neg_ecc  -> Fill(trkz0c, hweight);
+	  }
+	else
+	  {
+	    m_trk_d0c_pos_ecc  -> Fill(trkd0c, hweight);
+	    m_trk_z0c_pos_ecc  -> Fill(trkz0c, hweight);
+	  }
+	  
+	
       }
       if(charge>0)
         m_PtVsPhi0Pos->Fill(trkphi, trkpt, hweight);
       else
         m_PtVsPhi0Neg->Fill(trkphi, trkpt, hweight);
-    }
+    }//Closing extended plots
 
     if (!hasECAhits && !hasECChits) {//filling barrel histograms
-      m_trk_d0_barrel  -> Fill(trkd0 , hweight); m_trk_d0_barrel_zoomin -> Fill(trkd0, hweight);
-      m_trk_d0c_barrel -> Fill(trkd0c, hweight);            
-      m_trk_z0_barrel  -> Fill(trkz0 , hweight); m_trk_z0_barrel_zoomin -> Fill(trkz0, hweight);
       m_trk_qopT_vs_phi_barrel -> Fill(trkphi, qOverPt, hweight);
       m_trk_d0_vs_phi_barrel   -> Fill(trkphi, trkd0  , hweight);
       m_trk_d0_vs_z0_barrel    -> Fill(trkz0 , trkd0  , hweight);
       if (charge<0) {
         m_trk_phi0_neg_barrel -> Fill( trkphi , hweight);
         m_trk_pT_neg_barrel   -> Fill( trkpt  , hweight);
-        m_trk_d0c_neg_barrel  -> Fill( trkd0c , hweight);
-        m_trk_z0c_neg_barrel  -> Fill( trkz0c , hweight);
+        
       }
       else {
         m_trk_phi0_pos_barrel -> Fill(trkphi, hweight);
         m_trk_pT_pos_barrel   -> Fill(trkpt , hweight);
-        m_trk_d0c_pos_barrel  -> Fill(trkd0c, hweight);
-        m_trk_z0c_pos_barrel  -> Fill(trkz0c, hweight);
+        
       }
     } else if (hasECAhits) {//filling endcap A histograms
-      m_trk_d0_eca  -> Fill(trkd0 , hweight); m_trk_d0_eca_zoomin -> Fill(trkd0, hweight);
-      m_trk_d0c_eca -> Fill(trkd0c, hweight);              
-      m_trk_z0_eca  -> Fill(trkz0 , hweight); m_trk_z0_eca_zoomin -> Fill(trkz0, hweight);
       m_trk_qopT_vs_phi_eca -> Fill(trkphi,qOverPt, hweight);
       m_trk_d0_vs_phi_eca   -> Fill(trkphi,trkd0  , hweight);
       m_trk_d0_vs_z0_eca    -> Fill(trkz0 ,trkd0  , hweight);
       if (charge<0) {
         m_trk_phi0_neg_eca -> Fill(trkphi, hweight);
         m_trk_pT_neg_eca   -> Fill(trkpt , hweight);
-        m_trk_d0c_neg_eca  -> Fill(trkd0c, hweight);
-        m_trk_z0c_neg_eca  -> Fill(trkz0c, hweight);
       }
       else {
         m_trk_phi0_pos_eca -> Fill(trkphi, hweight);
         m_trk_pT_pos_eca   -> Fill(trkpt , hweight);
-        m_trk_d0c_pos_eca  -> Fill(trkd0c, hweight);
-        m_trk_z0c_pos_eca  -> Fill(trkz0c, hweight);
       }
     } else if (hasECChits) {//filling endcap C histograms
-      m_trk_d0_ecc  -> Fill(trkd0 , hweight); m_trk_d0_ecc_zoomin -> Fill(trkd0, hweight);
-      m_trk_d0c_ecc -> Fill(trkd0c, hweight);              
-      m_trk_z0_ecc  -> Fill(trkz0 , hweight); m_trk_z0_ecc_zoomin -> Fill(trkz0, hweight);
       m_trk_qopT_vs_phi_ecc -> Fill(trkphi, qOverPt, hweight);
       m_trk_d0_vs_phi_ecc   -> Fill(trkphi, trkd0  , hweight);
       m_trk_d0_vs_z0_ecc    -> Fill(trkz0 , trkd0  , hweight);
       if (charge<0) {
         m_trk_phi0_neg_ecc -> Fill(trkphi, hweight);
         m_trk_pT_neg_ecc   -> Fill(trkpt , hweight);
-        m_trk_d0c_neg_ecc  -> Fill(trkd0c, hweight);
-        m_trk_z0c_neg_ecc  -> Fill(trkz0c, hweight);
       }
       else {
         m_trk_phi0_pos_ecc -> Fill(trkphi, hweight);
         m_trk_pT_pos_ecc   -> Fill(trkpt , hweight);
-        m_trk_d0c_pos_ecc  -> Fill(trkd0c, hweight);
-        m_trk_z0c_pos_ecc  -> Fill(trkz0c, hweight);
+        
       }
     } 
   
@@ -2271,7 +2372,7 @@ StatusCode IDAlignMonGenericTracks::fillHistograms()
 
 
     // 
-    m_trk_d0_vs_phi0_z0->Fill (trkphi, trkz0, trkd0);
+    
 
   } // end of loop on trks
 
@@ -2374,28 +2475,34 @@ StatusCode IDAlignMonGenericTracks::procHistograms()
 
     m_ZpT_diff->Add(m_ZpT_p,m_ZpT_n,1.,-1);
     m_pT_diff->Add(m_pT_p,m_pT_n,1.,-1);
-
-    ProcessAsymHistograms(m_trk_phi0_neg_barrel, m_trk_phi0_pos_barrel, m_trk_phi0_asym_barrel);
-    ProcessAsymHistograms(m_trk_phi0_neg_eca,    m_trk_phi0_pos_eca,    m_trk_phi0_asym_eca);
-    ProcessAsymHistograms(m_trk_phi0_neg_ecc,    m_trk_phi0_pos_ecc,    m_trk_phi0_asym_ecc);
-    ProcessAsymHistograms(m_trk_pT_neg_barrel,   m_trk_pT_pos_barrel,   m_trk_pT_asym_barrel);
-    ProcessAsymHistograms(m_trk_pT_neg_eca,      m_trk_pT_pos_eca,      m_trk_pT_asym_eca);
-    ProcessAsymHistograms(m_trk_pT_neg_ecc,      m_trk_pT_pos_ecc,      m_trk_pT_asym_ecc);
+    
     ProcessAsymHistograms(m_eta_neg,             m_eta_pos,             m_eta_asym);
     ProcessAsymHistograms(m_pT_n,m_pT_p,m_trk_pT_asym);
-    ProcessAsymHistograms(m_trk_d0c_neg,m_trk_d0c_pos,m_trk_d0c_asym);
-    ProcessAsymHistograms(m_trk_z0c_neg,m_trk_z0c_pos,m_trk_z0c_asym);
-    ProcessAsymHistograms(m_trk_d0c_neg_barrel,m_trk_d0c_pos_barrel,m_trk_d0c_asym_barrel);
-    ProcessAsymHistograms(m_trk_z0c_neg_barrel,m_trk_z0c_pos_barrel,m_trk_z0c_asym_barrel);
-    ProcessAsymHistograms(m_trk_d0c_neg_eca,m_trk_d0c_pos_eca,m_trk_d0c_asym_eca);
-    ProcessAsymHistograms(m_trk_z0c_neg_eca,m_trk_z0c_pos_eca,m_trk_z0c_asym_eca);
-    ProcessAsymHistograms(m_trk_d0c_neg_ecc,m_trk_d0c_pos_ecc,m_trk_d0c_asym_ecc);
-    ProcessAsymHistograms(m_trk_z0c_neg_ecc,m_trk_z0c_pos_ecc,m_trk_z0c_asym_ecc);
+    
+    if (m_extendedPlots)
+      {
+	ProcessAsymHistograms(m_trk_phi0_neg_barrel, m_trk_phi0_pos_barrel, m_trk_phi0_asym_barrel);
+	ProcessAsymHistograms(m_trk_phi0_neg_eca,    m_trk_phi0_pos_eca,    m_trk_phi0_asym_eca);
+	ProcessAsymHistograms(m_trk_phi0_neg_ecc,    m_trk_phi0_pos_ecc,    m_trk_phi0_asym_ecc);
+	ProcessAsymHistograms(m_trk_pT_neg_barrel,   m_trk_pT_pos_barrel,   m_trk_pT_asym_barrel);
+	ProcessAsymHistograms(m_trk_pT_neg_eca,      m_trk_pT_pos_eca,      m_trk_pT_asym_eca);
+	ProcessAsymHistograms(m_trk_pT_neg_ecc,      m_trk_pT_pos_ecc,      m_trk_pT_asym_ecc);
+	ProcessAsymHistograms(m_trk_d0c_neg,m_trk_d0c_pos,m_trk_d0c_asym);
+	ProcessAsymHistograms(m_trk_z0c_neg,m_trk_z0c_pos,m_trk_z0c_asym);
+	ProcessAsymHistograms(m_trk_d0c_neg_barrel,m_trk_d0c_pos_barrel,m_trk_d0c_asym_barrel);
+	ProcessAsymHistograms(m_trk_z0c_neg_barrel,m_trk_z0c_pos_barrel,m_trk_z0c_asym_barrel);
+	ProcessAsymHistograms(m_trk_d0c_neg_eca,m_trk_d0c_pos_eca,m_trk_d0c_asym_eca);
+	ProcessAsymHistograms(m_trk_z0c_neg_eca,m_trk_z0c_pos_eca,m_trk_z0c_asym_eca);
+	ProcessAsymHistograms(m_trk_d0c_neg_ecc,m_trk_d0c_pos_ecc,m_trk_d0c_asym_ecc);
+	ProcessAsymHistograms(m_trk_z0c_neg_ecc,m_trk_z0c_pos_ecc,m_trk_z0c_asym_ecc);
+      }
   }
   
   return StatusCode::SUCCESS;
 }
 
+
+
 void IDAlignMonGenericTracks::ProcessAsymHistograms(TH1F* m_neg, TH1F* m_pos, TH1F* m_asym) 
 {
   if (m_neg->GetNbinsX()==m_pos->GetNbinsX()&& m_neg->GetNbinsX()==m_asym->GetNbinsX()) {
@@ -2418,6 +2525,28 @@ void IDAlignMonGenericTracks::ProcessAsymHistograms(TH1F* m_neg, TH1F* m_pos, TH
 }
 
 
+void IDAlignMonGenericTracks::ProcessAsymHistograms(TH1F_LW* m_neg, TH1F_LW* m_pos, TH1F_LW* m_asym) 
+{
+  if (m_neg->GetNbinsX()==m_pos->GetNbinsX()&& m_neg->GetNbinsX()==m_asym->GetNbinsX()) {
+    for (unsigned int i=1;i<=m_neg->GetNbinsX();i++) {
+      float nneg=m_neg->GetBinContent(i);
+      float npos=m_pos->GetBinContent(i);
+      float asym=0;
+      if (nneg+npos>0) asym=(npos-nneg)/(nneg+npos);
+      m_asym->SetBinContent(i,asym);
+      if (msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) 
+                              << ">>ProcessAsymHistograms>> " << m_asym->GetTitle() 
+                              << "  bin: " << i 
+                              << "  npos=" << npos
+                              << "  nneg=" << nneg
+                              << "  asym=" << asym
+                              << endreq;
+    }
+  }
+
+}
+
+
 const xAOD::Vertex* IDAlignMonGenericTracks::findAssociatedVertexTP(const xAOD::TrackParticle *track) const
 {
 
@@ -2432,17 +2561,17 @@ const xAOD::Vertex* IDAlignMonGenericTracks::findAssociatedVertexTP(const xAOD::
 }
 
 
-const Trk::VxCandidate* IDAlignMonGenericTracks::findAssociatedVertex(const Trk::Track *track) const
-{
+//const Trk::VxCandidate* IDAlignMonGenericTracks::findAssociatedVertex(const Trk::Track *track) const
+//{
 
-  std::map<const Trk::Track*, const Trk::VxCandidate* >::iterator tpVx =  m_trackVertexMap.find( track);
+//std::map<const Trk::Track*, const Trk::VxCandidate* >::iterator tpVx =  m_trackVertexMap.find( track);
 
-  if (tpVx == m_trackVertexMap.end() ){
-    return 0;
-  } 
-  return (*tpVx).second;
+//if (tpVx == m_trackVertexMap.end() ){
+//  return 0;
+//} 
+//return (*tpVx).second;
 
-}
+//}
 
 const Trk::Track* IDAlignMonGenericTracks::getTrkTrack(const Trk::VxTrackAtVertex *trkAtVx)const
 {
diff --git a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonGenericTracks.h b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonGenericTracks.h
index 1017db924ec8d0f59b0a49c96a1bc94269e23e90..03f448042ab1ebe49598ed3f859e02bc5d35f1a1 100755
--- a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonGenericTracks.h
+++ b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonGenericTracks.h
@@ -41,7 +41,7 @@ class EventInfo;
 
 namespace Trk  { 
   class ITrackToVertexIPEstimator;
-  class VxCandidate;
+  //class VxCandidate;
   class Track;
   class VxTrackAtVertex;
 }
@@ -67,16 +67,18 @@ public:
   virtual StatusCode procHistograms();
   
   void RegisterHisto(MonGroup& mon, TH1* histo);
+  void RegisterHisto(MonGroup& mon, TH1F_LW* histo);
   void RegisterHisto(MonGroup& mon, TH2* histo);
   void RegisterHisto(MonGroup& mon, TProfile* histo);
 
   void ProcessAsymHistograms(TH1F* m_neg, TH1F* m_pos, TH1F* m_asym); 
+  void ProcessAsymHistograms(TH1F_LW* m_neg, TH1F_LW* m_pos, TH1F_LW* m_asym); 
   void InitializeHistograms();
 
 protected:
 
     bool m_hasBeamCondSvc;
-  TH1F* m_summary;
+  TH1F_LW* m_summary;
 
   TProfile* m_trk_chi2oDoF;
   TProfile* m_trk_chi2Prob;
@@ -87,25 +89,25 @@ protected:
   TH3F* m_trk_d0_vs_phi0_z0;
 
   // barrel
-  TH1F* m_trk_d0_barrel;
-  TH1F* m_trk_d0_barrel_zoomin;
-  TH1F* m_trk_d0c_barrel;
-  TH1F* m_trk_z0_barrel;
-  TH1F* m_trk_z0_barrel_zoomin;
+  TH1F_LW* m_trk_d0_barrel;
+  TH1F_LW* m_trk_d0_barrel_zoomin;
+  TH1F_LW* m_trk_d0c_barrel;
+  TH1F_LW* m_trk_z0_barrel;
+  TH1F_LW* m_trk_z0_barrel_zoomin;
   TProfile* m_trk_qopT_vs_phi_barrel;
   TProfile* m_trk_d0_vs_phi_barrel;
   TProfile* m_trk_d0_vs_z0_barrel;
-  TH1F* m_trk_phi0_neg_barrel;
-  TH1F* m_trk_phi0_pos_barrel;
-  TH1F* m_trk_phi0_asym_barrel;
-  TH1F* m_trk_pT_neg_barrel;
-  TH1F* m_trk_pT_pos_barrel;
-  TH1F* m_trk_pT_asym_barrel;
-  TH1F* m_npixhits_per_track_barrel;
-  TH1F* m_nscthits_per_track_barrel;
-  TH1F* m_ntrthits_per_track_barrel;
-  TH1F* m_chi2oDoF_barrel;
-  TH1F* m_phi_barrel;
+  TH1F_LW* m_trk_phi0_neg_barrel;
+  TH1F_LW* m_trk_phi0_pos_barrel;
+  TH1F_LW* m_trk_phi0_asym_barrel;
+  TH1F_LW* m_trk_pT_neg_barrel;
+  TH1F_LW* m_trk_pT_pos_barrel;
+  TH1F_LW* m_trk_pT_asym_barrel;
+  TH1F_LW* m_npixhits_per_track_barrel;
+  TH1F_LW* m_nscthits_per_track_barrel;
+  TH1F_LW* m_ntrthits_per_track_barrel;
+  TH1F_LW* m_chi2oDoF_barrel;
+  TH1F_LW* m_phi_barrel;
   TH2F* m_hitMap_barrel;
   TH2F* m_hitMap_endcapA;
   TH2F* m_hitMap_endcapC;
@@ -116,25 +118,25 @@ protected:
   TH3F* m_trk_z0_wrtPV_vs_phi_vs_eta_barrel;
 
   // endcap A
-  TH1F* m_trk_d0_eca; 
-  TH1F* m_trk_d0_eca_zoomin; 
-  TH1F* m_trk_d0c_eca;
-  TH1F* m_trk_z0_eca;
-  TH1F* m_trk_z0_eca_zoomin;
+  TH1F_LW* m_trk_d0_eca; 
+  TH1F_LW* m_trk_d0_eca_zoomin; 
+  TH1F_LW* m_trk_d0c_eca;
+  TH1F_LW* m_trk_z0_eca;
+  TH1F_LW* m_trk_z0_eca_zoomin;
   TProfile* m_trk_qopT_vs_phi_eca;
   TProfile* m_trk_d0_vs_phi_eca;
   TProfile* m_trk_d0_vs_z0_eca;
-  TH1F* m_trk_phi0_neg_eca;
-  TH1F* m_trk_phi0_pos_eca;
-  TH1F* m_trk_phi0_asym_eca;
-  TH1F* m_trk_pT_neg_eca;
-  TH1F* m_trk_pT_pos_eca;
-  TH1F* m_trk_pT_asym_eca;
-  TH1F* m_npixhits_per_track_eca;
-  TH1F* m_nscthits_per_track_eca;
-  TH1F* m_ntrthits_per_track_eca;
-  TH1F* m_chi2oDoF_eca;
-  TH1F* m_phi_eca;
+  TH1F_LW* m_trk_phi0_neg_eca;
+  TH1F_LW* m_trk_phi0_pos_eca;
+  TH1F_LW* m_trk_phi0_asym_eca;
+  TH1F_LW* m_trk_pT_neg_eca;
+  TH1F_LW* m_trk_pT_pos_eca;
+  TH1F_LW* m_trk_pT_asym_eca;
+  TH1F_LW* m_npixhits_per_track_eca;
+  TH1F_LW* m_nscthits_per_track_eca;
+  TH1F_LW* m_ntrthits_per_track_eca;
+  TH1F_LW* m_chi2oDoF_eca;
+  TH1F_LW* m_phi_eca;
 
   TH3F* m_trk_d0_vs_phi_vs_eta_eca;
   TH2F* m_trk_pT_vs_eta_eca;
@@ -143,25 +145,25 @@ protected:
 
 
   // endcap C
-  TH1F* m_trk_d0_ecc;
-  TH1F* m_trk_d0_ecc_zoomin;
-  TH1F* m_trk_d0c_ecc;
-  TH1F* m_trk_z0_ecc;
-  TH1F* m_trk_z0_ecc_zoomin;
+  TH1F_LW* m_trk_d0_ecc;
+  TH1F_LW* m_trk_d0_ecc_zoomin;
+  TH1F_LW* m_trk_d0c_ecc;
+  TH1F_LW* m_trk_z0_ecc;
+  TH1F_LW* m_trk_z0_ecc_zoomin;
   TProfile* m_trk_qopT_vs_phi_ecc;
   TProfile* m_trk_d0_vs_phi_ecc;
   TProfile* m_trk_d0_vs_z0_ecc;
-  TH1F* m_trk_phi0_neg_ecc;
-  TH1F* m_trk_phi0_pos_ecc;
-  TH1F* m_trk_phi0_asym_ecc;
-  TH1F* m_trk_pT_neg_ecc;
-  TH1F* m_trk_pT_pos_ecc;
-  TH1F* m_trk_pT_asym_ecc;
-  TH1F* m_npixhits_per_track_ecc;
-  TH1F* m_nscthits_per_track_ecc;
-  TH1F* m_ntrthits_per_track_ecc;
-  TH1F* m_chi2oDoF_ecc;
-  TH1F* m_phi_ecc;
+  TH1F_LW* m_trk_phi0_neg_ecc;
+  TH1F_LW* m_trk_phi0_pos_ecc;
+  TH1F_LW* m_trk_phi0_asym_ecc;
+  TH1F_LW* m_trk_pT_neg_ecc;
+  TH1F_LW* m_trk_pT_pos_ecc;
+  TH1F_LW* m_trk_pT_asym_ecc;
+  TH1F_LW* m_npixhits_per_track_ecc;
+  TH1F_LW* m_nscthits_per_track_ecc;
+  TH1F_LW* m_ntrthits_per_track_ecc;
+  TH1F_LW* m_chi2oDoF_ecc;
+  TH1F_LW* m_phi_ecc;
 
   TH3F* m_trk_d0_vs_phi_vs_eta_ecc;
   TH2F* m_trk_pT_vs_eta_ecc;
@@ -172,29 +174,29 @@ protected:
   // Whole detector
 
 
-  TH1F* m_nhits_per_event;
-  TH1F* m_nhits_per_track;
-  TH1F* m_ntrk;
-  TH1F* m_ngtrk;
-  TH1F* m_npixhits_per_track;
-  TH1F* m_nscthits_per_track;
-  TH1F* m_ntrthits_per_track;
-  TH1F* m_chi2oDoF;
-  TH1F* m_eta;
-  TH1F* m_phi;
-  TH1F* m_z0;
-  TH1F* m_z0sintheta;
-  TH1F* m_z0_pvcorr;
-  TH1F* m_z0sintheta_pvcorr;
-  TH1F* m_d0;
-  TH1F* m_d0_pvcorr;
-  TH1F* m_d0_bscorr;
-  TH1F* m_trk_d0_wrtPV;
-  TH1F* m_trk_z0_wrtPV;
-  TH1F* m_pT;
-  TH1F* m_pTRes;
-  TH1F* m_pTResOverP;
-  TH1F* m_P;
+  TH1F_LW* m_nhits_per_event;
+  TH1F_LW* m_nhits_per_track;
+  TH1F_LW* m_ntrk;
+  TH1F_LW* m_ngtrk;
+  TH1F_LW* m_npixhits_per_track;
+  TH1F_LW* m_nscthits_per_track;
+  TH1F_LW* m_ntrthits_per_track;
+  TH1F_LW* m_chi2oDoF;
+  TH1F_LW* m_eta;
+  TH1F_LW* m_phi;
+  TH1F_LW* m_z0;
+  TH1F_LW* m_z0sintheta;
+  TH1F_LW* m_z0_pvcorr;
+  TH1F_LW* m_z0sintheta_pvcorr;
+  TH1F_LW* m_d0;
+  TH1F_LW* m_d0_pvcorr;
+  TH1F_LW* m_d0_bscorr;
+  TH1F_LW* m_trk_d0_wrtPV;
+  TH1F_LW* m_trk_z0_wrtPV;
+  TH1F_LW* m_pT;
+  TH1F_LW* m_pTRes;
+  TH1F_LW* m_pTResOverP;
+  TH1F_LW* m_P;
   
   TH3F* m_trk_d0_vs_phi_vs_eta;
   TH2F* m_trk_pT_vs_eta;
@@ -211,20 +213,20 @@ protected:
   TH2F* m_trk_chi2oDoF_Phi;
   TH2F* m_trk_chi2oDoF_Pt;
   TH2F* m_trk_chi2oDoF_P;
-  TH1F* m_trk_chi2ProbDist;
-  TH1F* m_errCotTheta;
+  TH1F_LW* m_trk_chi2ProbDist;
+  TH1F_LW* m_errCotTheta;
   TH2F* m_errCotThetaVsD0BS;
   TH2F* m_errCotThetaVsPt;
   TH2F* m_errCotThetaVsP;
   TH2F* m_errCotThetaVsPhi;
   TH2F* m_errCotThetaVsEta;
-  TH1F* m_errTheta;
+  TH1F_LW* m_errTheta;
   TH2F* m_errThetaVsD0BS;
   TH2F* m_errThetaVsPt;
   TH2F* m_errThetaVsP;
   TH2F* m_errThetaVsPhi;
   TH2F* m_errThetaVsEta;
-  TH1F* m_errD0;
+  TH1F_LW* m_errD0;
   TH2F* m_errD0VsD0BS;
   TH2F* m_errD0VsPt;
   TH2F* m_errD0VsP;
@@ -233,25 +235,25 @@ protected:
   TH2F* m_errD0VsPhiECA;
   TH2F* m_errD0VsPhiECC;
   TH2F* m_errD0VsEta;
-  TH1F* m_errPhi0;
+  TH1F_LW* m_errPhi0;
   TH2F* m_errPhi0VsD0BS;
   TH2F* m_errPhi0VsPt;
   TH2F* m_errPhi0VsP;
   TH2F* m_errPhi0VsPhi0;
   TH2F* m_errPhi0VsEta;
-  TH1F* m_errZ0;
+  TH1F_LW* m_errZ0;
   TH2F* m_errZ0VsD0BS;
   TH2F* m_errZ0VsPt;
   TH2F* m_errZ0VsP;
   TH2F* m_errZ0VsPhi0;
   TH2F* m_errZ0VsEta;
-  TH1F* m_errPt;
+  TH1F_LW* m_errPt;
   TH2F* m_PtVsPhi0Pos;
   TH2F* m_PtVsPhi0Neg;
   TH2F* m_errPtVsD0BS;
   TH2F* m_errPtVsPt;
   TH2F* m_errPtVsP;
-  TH1F* m_errPt_Pt2;
+  TH1F_LW* m_errPt_Pt2;
   TH2F* m_errPt_Pt2VsPt;
   TH2F* m_errPt_Pt2VsPhi0;
   TH2F* m_errPt_Pt2VsEta;
@@ -284,11 +286,11 @@ protected:
   TH2F* m_YBs_vs_ZBs;
   TH2F* m_XBs_vs_ZBs;
 
-  TH1F* m_XBs;
-  TH1F* m_YBs;
-  TH1F* m_ZBs;
-  TH1F* m_TiltX_Bs;
-  TH1F* m_TiltY_Bs;
+  TH1F_LW* m_XBs;
+  TH1F_LW* m_YBs;
+  TH1F_LW* m_ZBs;
+  TH1F_LW* m_TiltX_Bs;
+  TH1F_LW* m_TiltY_Bs;
 
   //versus lumiblock
   TProfile* m_XBs_vs_LumiBlock;
@@ -303,32 +305,32 @@ protected:
 
   // End of extended plots
   
-  TH1F* m_phi_barrel_pos_2_5GeV;
-  TH1F* m_phi_barrel_pos_5_10GeV;
-  TH1F* m_phi_barrel_pos_10_20GeV;
-  TH1F* m_phi_barrel_pos_20plusGeV;
-  TH1F* m_phi_barrel_neg_2_5GeV;
-  TH1F* m_phi_barrel_neg_5_10GeV;
-  TH1F* m_phi_barrel_neg_10_20GeV;
-  TH1F* m_phi_barrel_neg_20plusGeV;
-
-  TH1F* m_phi_eca_pos_2_5GeV;
-  TH1F* m_phi_eca_pos_5_10GeV;
-  TH1F* m_phi_eca_pos_10_20GeV;
-  TH1F* m_phi_eca_pos_20plusGeV;
-  TH1F* m_phi_eca_neg_2_5GeV;
-  TH1F* m_phi_eca_neg_5_10GeV;
-  TH1F* m_phi_eca_neg_10_20GeV;
-  TH1F* m_phi_eca_neg_20plusGeV;
-
-  TH1F* m_phi_ecc_pos_2_5GeV;
-  TH1F* m_phi_ecc_pos_5_10GeV;
-  TH1F* m_phi_ecc_pos_10_20GeV;
-  TH1F* m_phi_ecc_pos_20plusGeV;
-  TH1F* m_phi_ecc_neg_2_5GeV;
-  TH1F* m_phi_ecc_neg_5_10GeV;
-  TH1F* m_phi_ecc_neg_10_20GeV;
-  TH1F* m_phi_ecc_neg_20plusGeV;
+  TH1F_LW* m_phi_barrel_pos_2_5GeV;
+  TH1F_LW* m_phi_barrel_pos_5_10GeV;
+  TH1F_LW* m_phi_barrel_pos_10_20GeV;
+  TH1F_LW* m_phi_barrel_pos_20plusGeV;
+  TH1F_LW* m_phi_barrel_neg_2_5GeV;
+  TH1F_LW* m_phi_barrel_neg_5_10GeV;
+  TH1F_LW* m_phi_barrel_neg_10_20GeV;
+  TH1F_LW* m_phi_barrel_neg_20plusGeV;
+
+  TH1F_LW* m_phi_eca_pos_2_5GeV;
+  TH1F_LW* m_phi_eca_pos_5_10GeV;
+  TH1F_LW* m_phi_eca_pos_10_20GeV;
+  TH1F_LW* m_phi_eca_pos_20plusGeV;
+  TH1F_LW* m_phi_eca_neg_2_5GeV;
+  TH1F_LW* m_phi_eca_neg_5_10GeV;
+  TH1F_LW* m_phi_eca_neg_10_20GeV;
+  TH1F_LW* m_phi_eca_neg_20plusGeV;
+
+  TH1F_LW* m_phi_ecc_pos_2_5GeV;
+  TH1F_LW* m_phi_ecc_pos_5_10GeV;
+  TH1F_LW* m_phi_ecc_pos_10_20GeV;
+  TH1F_LW* m_phi_ecc_pos_20plusGeV;
+  TH1F_LW* m_phi_ecc_neg_2_5GeV;
+  TH1F_LW* m_phi_ecc_neg_5_10GeV;
+  TH1F_LW* m_phi_ecc_neg_10_20GeV;
+  TH1F_LW* m_phi_ecc_neg_20plusGeV;
 
   TH2F* m_eta_phi_pos_2_5GeV;
   TH2F* m_eta_phi_pos_5_10GeV;
@@ -339,12 +341,12 @@ protected:
   TH2F* m_eta_phi_neg_10_20GeV;
   TH2F* m_eta_phi_neg_20plusGeV;
 
-  TH1F* m_Zmumu;
-  TH1F* m_Zmumu_barrel;
-  TH1F* m_Zmumu_eca;
-  TH1F* m_Zmumu_ecc;
-  TH1F* m_Zmumu_barrel_eca;
-  TH1F* m_Zmumu_barrel_ecc;
+  TH1F_LW* m_Zmumu;
+  TH1F_LW* m_Zmumu_barrel;
+  TH1F_LW* m_Zmumu_eca;
+  TH1F_LW* m_Zmumu_ecc;
+  TH1F_LW* m_Zmumu_barrel_eca;
+  TH1F_LW* m_Zmumu_barrel_ecc;
   TH1F* m_ZpT_n;
   TH1F* m_ZpT_p;
   TH1F* m_ZpT_diff;
@@ -354,51 +356,51 @@ protected:
   TH1F* m_pT_diff;
   TH1F* m_trk_pT_asym;
 
-  TH1F* m_eta_neg;
-  TH1F* m_eta_pos;
-  TH1F* m_eta_asym;
-
-  TH1F* m_LumiBlock;
-  TH1F* m_Tracks_per_LumiBlock;
-  TH1F* m_NPIX_per_LumiBlock;
-  TH1F* m_NSCT_per_LumiBlock;
-  TH1F* m_NTRT_per_LumiBlock;
-
-  TH1F* m_trk_d0c_pos;
-  TH1F* m_trk_d0c_neg;
-  TH1F* m_trk_d0c_pos_barrel;
-  TH1F* m_trk_d0c_neg_barrel;
-  TH1F* m_trk_d0c_pos_eca;
-  TH1F* m_trk_d0c_neg_eca;
-  TH1F* m_trk_d0c_pos_ecc;
-  TH1F* m_trk_d0c_neg_ecc;
-  TH1F* m_trk_d0c_asym;
-  TH1F* m_trk_d0c_asym_barrel;
-  TH1F* m_trk_d0c_asym_eca;
-  TH1F* m_trk_d0c_asym_ecc;
-
-  TH1F* m_trk_z0c_pos;
-  TH1F* m_trk_z0c_neg;
-  TH1F* m_trk_z0c_pos_barrel;
-  TH1F* m_trk_z0c_neg_barrel;
-  TH1F* m_trk_z0c_pos_eca;
-  TH1F* m_trk_z0c_neg_eca;
-  TH1F* m_trk_z0c_pos_ecc;
-  TH1F* m_trk_z0c_neg_ecc;
-  TH1F* m_trk_z0c_asym;
-  TH1F* m_trk_z0c_asym_barrel;
-  TH1F* m_trk_z0c_asym_eca;
-  TH1F* m_trk_z0c_asym_ecc;
+  TH1F_LW* m_eta_neg;
+  TH1F_LW* m_eta_pos;
+  TH1F_LW* m_eta_asym;
+
+  TH1F_LW* m_LumiBlock;
+  TH1F_LW* m_Tracks_per_LumiBlock;
+  TH1F_LW* m_NPIX_per_LumiBlock;
+  TH1F_LW* m_NSCT_per_LumiBlock;
+  TH1F_LW* m_NTRT_per_LumiBlock;
+
+  TH1F_LW* m_trk_d0c_pos;
+  TH1F_LW* m_trk_d0c_neg;
+  TH1F_LW* m_trk_d0c_pos_barrel;
+  TH1F_LW* m_trk_d0c_neg_barrel;
+  TH1F_LW* m_trk_d0c_pos_eca;
+  TH1F_LW* m_trk_d0c_neg_eca;
+  TH1F_LW* m_trk_d0c_pos_ecc;
+  TH1F_LW* m_trk_d0c_neg_ecc;
+  TH1F_LW* m_trk_d0c_asym;
+  TH1F_LW* m_trk_d0c_asym_barrel;
+  TH1F_LW* m_trk_d0c_asym_eca;
+  TH1F_LW* m_trk_d0c_asym_ecc;
+
+  TH1F_LW* m_trk_z0c_pos;
+  TH1F_LW* m_trk_z0c_neg;
+  TH1F_LW* m_trk_z0c_pos_barrel;
+  TH1F_LW* m_trk_z0c_neg_barrel;
+  TH1F_LW* m_trk_z0c_pos_eca;
+  TH1F_LW* m_trk_z0c_neg_eca;
+  TH1F_LW* m_trk_z0c_pos_ecc;
+  TH1F_LW* m_trk_z0c_neg_ecc;
+  TH1F_LW* m_trk_z0c_asym;
+  TH1F_LW* m_trk_z0c_asym_barrel;
+  TH1F_LW* m_trk_z0c_asym_eca;
+  TH1F_LW* m_trk_z0c_asym_ecc;
 
 
  private:
  
   bool fillVertexInformation() const;
   const Trk::Track*        getTrkTrack(const Trk::VxTrackAtVertex*)const;
-  const Trk::VxCandidate*  findAssociatedVertex(const Trk::Track *) const;
+  //const Trk::VxCandidate*  findAssociatedVertex(const Trk::Track *) const;
   const xAOD::Vertex*      findAssociatedVertexTP(const xAOD::TrackParticle *) const;
 
-  mutable std::map<const Trk::Track*, const Trk::VxCandidate* > m_trackVertexMap;
+  //mutable std::map<const Trk::Track*, const Trk::VxCandidate* > m_trackVertexMap;
   mutable std::map<const xAOD::TrackParticle*, const xAOD::Vertex* > m_trackVertexMapTP;
   
   const AtlasDetectorID*                m_idHelper;
@@ -416,6 +418,7 @@ protected:
   std::string m_triggerChainName;
   float m_barrelEta;
   const xAOD::VertexContainer* m_vertices;
+  xAOD::Vertex* m_pvtx;
   bool m_doHitQuality;
   bool m_extendedPlots;
   float m_d0Range;
@@ -427,6 +430,8 @@ protected:
 
   bool m_doIP;
 
+  
+  
   ToolHandle< InDetAlignMon::TrackSelectionTool > m_trackSelection; 
   ToolHandle<IInDetAlignHitQualSelTool>  m_hitQualityTool;
    ServiceHandle<IBeamCondSvc> m_beamCondSvc;
diff --git a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonResiduals.cxx b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonResiduals.cxx
index c70d6871a8e3f0577a734434bd8b984d8ea1c3d3..679ec1ee74ecfee5d052e5bea99a3df2a1de7b66 100755
--- a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonResiduals.cxx
+++ b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonResiduals.cxx
@@ -83,8 +83,11 @@ struct IDAlignMonResiduals::TRTBarrelHistograms{
 	TProfile* rmsRes_l[3][3];
 	
 	/** Average residual and residual RMS vs straw layer for each phiSec(0-31) */
+  
+  
 	TProfile* aveResVsStrawLayerStackLevel[3][32];
 	TProfile* rmsResVsStrawLayerStackLevel[3][32];
+    
 	
 	/** Average residual and residual RMS Intergrated over each phi module vs straw layer */
 	/** the "5" is for (total, upper, lower, left, right)*/
@@ -119,7 +122,16 @@ struct IDAlignMonResiduals::TRTBarrelHistograms{
 	TH1F_LW* lr[3];
 	TProfile* lr_l[3][3];
 	TProfile* lrOverPhiVsStrawLayer[3];
-	
+
+        /** Residual maps vs phi-sector and z-position in the TRT Barrel */
+        TH3F* resVsPhiZ[3][3]; // 3D histogram with residuals vs phi & z, will be used to fill following th2f
+        TH2F* aveResVsPhiZ[3][3];
+        TH2F* rmsResVsPhiZ[3][3];
+        /** Residual maps vs phi-sector and eta in the TRT Barrel (this is a test until I get z working...) */
+        TH3F* resVsPhiEta[3][3]; // 3D histogram with residuals vs phi & z, will be used to fill following th2f
+        TH2F* aveResVsPhiEta[3][3];
+        TH2F* rmsResVsPhiEta[3][3];
+
 	TRTBarrelHistograms(){
 		
 		for(unsigned int lay=0;lay<3; ++lay){
@@ -137,17 +149,25 @@ struct IDAlignMonResiduals::TRTBarrelHistograms{
 			rt[lay] = 0;
 			lr[lay] = 0;
 			lrOverPhiVsStrawLayer[lay] = 0;
-			
+
 			for(unsigned int side=0; side<3; ++side){
 				aveRes_l[lay][side] = 0;
 				rmsRes_l[lay][side] = 0;
 				aveResVsTrackEta_l[lay][side] = 0;
 				lr_l[lay][side] = 0;
+				resVsPhiZ[lay][side] = 0;
+				aveResVsPhiZ[lay][side] = 0;
+				aveResVsPhiZ[lay][side] = 0;
+				resVsPhiEta[lay][side] = 0;
+				aveResVsPhiEta[lay][side] = 0;
+				rmsResVsPhiEta[lay][side] = 0;
 			}
 			
-			for(unsigned int phi=0; phi<32; ++phi){
-				aveResVsStrawLayerStackLevel[lay][phi] = 0;
-				rmsResVsStrawLayerStackLevel[lay][phi] = 0;
+			
+			    for(unsigned int phi=0; phi<32; ++phi){
+			      aveResVsStrawLayerStackLevel[lay][phi] = 0;
+			      rmsResVsStrawLayerStackLevel[lay][phi] = 0;
+			    
 			}
 		}
 	};
@@ -158,6 +178,10 @@ struct IDAlignMonResiduals::TRTEndcapHistograms{
 	
 	/** Residual in TRT Endcap */
 	/** the 41 is the forty rings plus the total*/
+        /** In the case of no extendedPlots use only the total */
+
+  
+
         TH1F_LW* residualR[2][41];
 	TH1F_LW* residualR_notube[2][41];
         
@@ -201,7 +225,20 @@ struct IDAlignMonResiduals::TRTEndcapHistograms{
 	TH1F_LW* lr[2];
 	TProfile* lrVsPhiSec[2];
 	TProfile* lrVsRing[2];
-	
+
+        /** Residual maps of the Endcaps */
+        TH3F* resVsPhiWheel[2];
+        TH2F* aveResVsPhiWheel[2];
+        TH2F* rmsResVsPhiWheel[2];
+
+        /** Residual maps for low pT tracks separated by charge in the TRT Endcap */
+        TH3F* resVsRadiusWheelPos[2];
+        TH2F* aveResVsRadiusWheelPos[2];
+        TH2F* rmsResVsRadiusWheelPos[2];
+        TH3F* resVsRadiusWheelNeg[2];
+        TH2F* aveResVsRadiusWheelNeg[2];
+        TH2F* rmsResVsRadiusWheelNeg[2];
+
 	TRTEndcapHistograms(){
 		
 		for(unsigned int side=0; side<2; ++side){
@@ -223,6 +260,16 @@ struct IDAlignMonResiduals::TRTEndcapHistograms{
 			residualR_mu[side] = 0;
 			pullR_mu[side] = 0;
 			pullR_notube_mu[side] = 0;
+			resVsPhiWheel[side] = 0;
+			aveResVsPhiWheel[side] = 0;
+			rmsResVsPhiWheel[side] = 0;
+			resVsRadiusWheelPos[side] = 0;
+			aveResVsRadiusWheelPos[side] = 0;
+			rmsResVsRadiusWheelPos[side] = 0;
+			resVsRadiusWheelNeg[side] = 0;
+			aveResVsRadiusWheelNeg[side] = 0;
+			rmsResVsRadiusWheelNeg[side] = 0;
+
 			//The extra 1 is for the total
 			for(unsigned int ring=0; ring<41; ++ring){
 				residualR[side][ring] = 0;
@@ -301,7 +348,9 @@ IDAlignMonResiduals::IDAlignMonResiduals( const std::string & type, const std::s
 	nIBLHitsPerLB          = 0;
 	m_minIBLhits           = -1;
 	m_hasBeenCalledThisEvent=false;
-	m_doIBLLBPlots = false;
+	m_doIBLLBPlots         = false;
+	m_useGausFit           = false;
+	m_maxPtEC              = 10.;
 
 	InitializeHistograms();
 	
@@ -343,7 +392,8 @@ IDAlignMonResiduals::IDAlignMonResiduals( const std::string & type, const std::s
 	declareProperty("hWeightInFileName"         , m_hWeightInFileName  = "hWeight.root" ); 
 	declareProperty("hWeightHistName"           , m_hWeightHistName    = "trk_pT_vs_eta" );
 	declareProperty("doIBLLBPlots"              , m_doIBLLBPlots );
-	
+	declareProperty("useGausFit"                , m_useGausFit);
+	declareProperty("lowPtCut"                  , m_maxPtEC);
 
 }
 
@@ -1209,7 +1259,7 @@ StatusCode IDAlignMonResiduals::fillHistograms()
 	trkqoverp2 =  track->perigeeParameters()->parameters()[Trk::qOverP]*fabs(track->perigeeParameters()->parameters()[Trk::qOverP])*1000000.;
       }
 
-    trkpt    = (track->perigeeParameters()->charge())*(track->perigeeParameters()->pT())/1000.;
+    trkpt    = (track->perigeeParameters()->charge())*(track->perigeeParameters()->pT())/1000.; // signed and in GeV?
     trketa_w =  track->perigeeParameters()->eta();
 
     // per track weight, if required
@@ -1336,7 +1386,7 @@ StatusCode IDAlignMonResiduals::fillHistograms()
 	int m_layer_or_wheel = m_trtID->layer_or_wheel(id);
 	int m_phi_module     = m_trtID->phi_module(id);
 	int m_straw_layer    = m_trtID->straw_layer(id);
-		
+
 	//finding residuals
 	if(!trackParameter){
 	  if(msgLvl(MSG::WARNING)) msg(MSG::WARNING) << "No TrackParameters associated with TRT TrkSurface "<<nTSOS<< endreq;
@@ -1395,13 +1445,32 @@ StatusCode IDAlignMonResiduals::fillHistograms()
 	  float leadingEdge = -999;
 	  if (RawDriftCircle != NULL)
 	    {
-	      ATH_MSG_INFO("RawDriftCircles have NULL pointer");
+	      ATH_MSG_DEBUG("RawDriftCircles have NULL pointer");
 	      leadingEdge=RawDriftCircle->driftTime(isValid);
 	    }
 	  Identifier DCoTId = trtCircle->identify();   
 	  float t0 = m_trtcaldbSvc->getT0(DCoTId, TRTCond::ExpandedIdentifier::STRAW);
 	  
-	  ATH_MSG_INFO("Filling TRT HISTOS");
+	  ATH_MSG_DEBUG("Filling TRT HISTOS");
+
+	  // Global positions
+	  float trkz0 = track->perigeeParameters()->parameters()[Trk::z0];
+	  float theta = track->perigeeParameters()->parameters()[Trk::theta];
+	  /*  Estimates the global Z position of a TRT barrel hit by using the x,y position of the 
+	      straw and the track theta */	  
+	  float hitZ = -999.;
+	  Amg::Vector3D  center = RawDriftCircle->detectorElement()->surface( id ).center();
+	  if( fabs(m_barrel_ec) == 1 ){
+	    hitZ = sqrt(center.x()*center.x()+center.y()*center.y())*tan(M_PI/2. - theta) + trkz0;
+	    //std::cout << "z: " << hitZ << std::endl;
+	  }
+	  /* Estimates the global R position of a TRT EC hit using the global z position of the straw
+	     and the track theta */
+	  float hitGlobalR = -9999.; // -999. is a possible value :)
+	  if( fabs(m_barrel_ec) == 2 ){
+	    hitGlobalR = (center.z() - trkz0) / tan(M_PI/2. - theta);
+	    //std::cout << "R: " << hitGlobalR << std::endl;
+	  }
 
 	  /** filling TRT histograms */
 	  fillTRTHistograms(m_barrel_ec
@@ -1410,6 +1479,8 @@ StatusCode IDAlignMonResiduals::fillHistograms()
 			    ,m_straw_layer
 			    ,perdictR
 			    ,hitR
+			    ,hitZ
+			    ,hitGlobalR
 			    ,residualR
 			    ,pullR
 			    ,leadingEdge
@@ -2390,14 +2461,24 @@ StatusCode IDAlignMonResiduals::procHistograms()
 	fillRMSFromProfile(m_trt_b_hist->aveRes_l[side][lay],m_trt_b_hist->rmsRes_l[side][lay]);
 	SetMinWindow(m_trt_b_hist->aveRes_l[side][lay], m_minTRTResWindow, m_maxTRTResWindow);
 	SetMinWindow(m_trt_b_hist->aveResVsTrackEta_l[side][lay], m_minTRTResWindow, m_maxTRTResWindow);
+	/* new resVsPhiZ/Eta plots */
+	if(m_extendedPlots){
+	  meanRMSProjection2D(m_trt_b_hist->resVsPhiZ[side][lay],m_trt_b_hist->aveResVsPhiZ[side][lay],0,m_useGausFit);
+	  meanRMSProjection2D(m_trt_b_hist->resVsPhiZ[side][lay],m_trt_b_hist->rmsResVsPhiZ[side][lay],1,m_useGausFit);
+	  meanRMSProjection2D(m_trt_b_hist->resVsPhiEta[side][lay],m_trt_b_hist->aveResVsPhiEta[side][lay],0,m_useGausFit);
+	  meanRMSProjection2D(m_trt_b_hist->resVsPhiEta[side][lay],m_trt_b_hist->rmsResVsPhiEta[side][lay],1,m_useGausFit);
+	}
       }
       
       
-      for(unsigned int phi=0; phi <32; ++phi){
-	fillRMSFromProfile(m_trt_b_hist->aveResVsStrawLayerStackLevel[side][phi],m_trt_b_hist->rmsResVsStrawLayerStackLevel[side][phi]);
-	SetMinWindow(m_trt_b_hist->aveResVsStrawLayerStackLevel[side][phi],m_minTRTResWindow, m_maxTRTResWindow);
-      }
-      
+      if (m_extendedPlots)
+	{
+	  for(unsigned int phi=0; phi <32; ++phi){
+	    fillRMSFromProfile(m_trt_b_hist->aveResVsStrawLayerStackLevel[side][phi],m_trt_b_hist->rmsResVsStrawLayerStackLevel[side][phi]);
+	    SetMinWindow(m_trt_b_hist->aveResVsStrawLayerStackLevel[side][phi],m_minTRTResWindow, m_maxTRTResWindow);
+	  }
+	}
+	  
       for(unsigned int position=0; position<5; ++position){ 
 	fillRMSFromProfile(m_trt_b_hist->aveResOverPhiVsStrawLayer[position][side],m_trt_b_hist->rmsResOverPhiVsStrawLayer[position][side]);
       }
@@ -2410,6 +2491,22 @@ StatusCode IDAlignMonResiduals::procHistograms()
       SetMinWindow(m_trt_ec_hist->aveResVsRing[endcap], m_minTRTResWindow, m_maxTRTResWindow);
       SetMinWindow(m_trt_ec_hist->aveResVsPhiSec[endcap], m_minTRTResWindow, m_maxTRTResWindow);
       SetMinWindow(m_trt_ec_hist->aveResVsTrackEta[endcap], m_minTRTResWindow, m_maxTRTResWindow);
+
+      if(m_extendedPlots){
+	meanRMSProjection2D(m_trt_ec_hist->resVsPhiWheel[endcap],m_trt_ec_hist->aveResVsPhiWheel[endcap],0,m_useGausFit);
+	meanRMSProjection2D(m_trt_ec_hist->resVsPhiWheel[endcap],m_trt_ec_hist->rmsResVsPhiWheel[endcap],1,m_useGausFit);
+	
+	meanRMSProjection2D(m_trt_ec_hist->resVsRadiusWheelPos[endcap],m_trt_ec_hist->aveResVsRadiusWheelPos[endcap],0,m_useGausFit);
+	meanRMSProjection2D(m_trt_ec_hist->resVsRadiusWheelPos[endcap],m_trt_ec_hist->rmsResVsRadiusWheelPos[endcap],1,m_useGausFit);
+	meanRMSProjection2D(m_trt_ec_hist->resVsRadiusWheelNeg[endcap],m_trt_ec_hist->aveResVsRadiusWheelNeg[endcap],0,m_useGausFit);
+	meanRMSProjection2D(m_trt_ec_hist->resVsRadiusWheelNeg[endcap],m_trt_ec_hist->rmsResVsRadiusWheelNeg[endcap],1,m_useGausFit);
+
+	// TRT EC Maps
+	meanRMSProjection2D(m_trt_ec_hist->resVsRadiusWheelPos[endcap],m_trt_ec_hist->aveResVsRadiusWheelPos[endcap],0,m_useGausFit);
+	meanRMSProjection2D(m_trt_ec_hist->resVsRadiusWheelPos[endcap],m_trt_ec_hist->rmsResVsRadiusWheelPos[endcap],1,m_useGausFit);
+	meanRMSProjection2D(m_trt_ec_hist->resVsRadiusWheelNeg[endcap],m_trt_ec_hist->aveResVsRadiusWheelNeg[endcap],0,m_useGausFit);
+	meanRMSProjection2D(m_trt_ec_hist->resVsRadiusWheelNeg[endcap],m_trt_ec_hist->rmsResVsRadiusWheelNeg[endcap],1,m_useGausFit);
+      }
     }
     //overlap residuals
     fillRMSFromProfile(m_pix_bec_Oxresx_mean,m_pix_bec_Oxresx_rms);
@@ -3154,7 +3251,7 @@ void IDAlignMonResiduals::meanRMSProjections(TH2F* h2d, TH1F* h,int meanrms)
 
 //--------------------------------------------------------------------------------------------
 
-void IDAlignMonResiduals::meanRMSProjection2D(TH3F* h3d, TH2F* h2d,int meanrms)
+void IDAlignMonResiduals::meanRMSProjection2D(TH3F* h3d, TH2F* h2d,int meanrms,bool fitGaus)
 {
 	
   int nbins_x_3d = h3d->GetNbinsX();
@@ -3177,18 +3274,36 @@ void IDAlignMonResiduals::meanRMSProjection2D(TH3F* h3d, TH2F* h2d,int meanrms)
 	delete hproj;
 	continue;
       }
-			
-      if(meanrms==0){
-	h2d->SetBinContent(i,j,hproj->GetMean());
-	h2d->SetBinError(i,j,hproj->GetMeanError());
-				
+
+      if(fitGaus){ // fill histo with mean/sigma from a gaussian fit
+	hproj->Fit("gaus");
+	TF1 *fit = hproj->GetFunction("gaus");
+	if(meanrms==0){
+	  double mean = fit->GetParameter(1);
+	  double meanerr = fit->GetParError(1);
+	  h2d->SetBinContent(i,j,mean);
+	  h2d->SetBinError(i,j,meanerr);  
+	}
+	else if(meanrms==1){
+	  double sigma = fit->GetParameter(2);
+	  double sigmaerr = fit->GetParError(2);
+	  h2d->SetBinContent(i,j,sigma);
+	  h2d->SetBinError(i,j,sigmaerr);
+	}
+	else if(msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "Incorrect switch in MeanRMSProjections2D()" << endreq;
       }
-      else if(meanrms==1){
-	h2d->SetBinContent(i,j,hproj->GetRMS());
-	h2d->SetBinError(i,j,hproj->GetRMSError());
+      else {// !fitGaus
+	if(meanrms==0){
+	  //std::cout << "Bin (" << i << "," << j << ") has " << hproj->GetEntries() << " entries & mean " << hproj->GetMean() << std::endl;
+	  h2d->SetBinContent(i,j,hproj->GetMean());
+	  h2d->SetBinError(i,j,hproj->GetMeanError());
+	}
+	else if(meanrms==1){
+	  h2d->SetBinContent(i,j,hproj->GetRMS());
+	  h2d->SetBinError(i,j,hproj->GetRMSError());
+	}
+	else if(msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "Incorrect switch in MeanRMSProjections2D()" << endreq;
       }
-      else if(msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "Incorrect switch in MeanRMSProjectionsBarrel()" << endreq;
-			
       delete hproj;
     }
   }
@@ -4625,18 +4740,22 @@ void IDAlignMonResiduals::MakeTRTBarrelHistograms(MonGroup& al_mon){
     m_trt_b_hist->PredictedR[side] = MakeHist("trt_b_PredictedR"+sideName[side],"Measured drift radius from TRT Barrel "+sideName[side],100,-m_RangeOfPullHistos, m_RangeOfPullHistos,"Predicted Drift Radius (mm)","Entries");
     RegisterHisto(al_mon,m_trt_b_hist->PredictedR[side]);
 		
-    /** R(t) relation */
-    m_trt_b_hist->rt[side] = MakeHist("trt_b_rt"+sideName[side], "rt relation (Barrel) "+sideName[side], 100,-12.5,59.375,100,0,2,"leading edge [ns] corrected for t0 and EP ","dist from wire to track (mm)");
-    RegisterHisto(al_mon,m_trt_b_hist->rt[side]);
-		
+    		
     /** L/R assignment */
     m_trt_b_hist->lr[side] = MakeHist("trt_b_lr"+sideName[side],"|0= LRcor !isTube | 1= LRcor isTube| 2= !LRcor !isTube | 3= !LRcor isTube  "+sideName[side],4,0,4,"","Entries");
     RegisterHisto(al_mon,m_trt_b_hist->lr[side]);  
 
-    m_trt_b_hist->pullR_notube_mu[side] = MakeHist("trt_b_pullRnotube_mu_"+sideName[side],"UnBiased Pull vs mu for the TRT Barrel (no tube hits)"+sideName[side],100,0,100,100,-m_RangeOfPullHistos,m_RangeOfPullHistos, "#mu","Pull");
-    RegisterHisto(al_mon,m_trt_b_hist->pullR_notube_mu[side]); 
-    
     if(m_extendedPlots){
+      
+      /** R(t) relation */
+      m_trt_b_hist->rt[side] = MakeHist("trt_b_rt"+sideName[side], "rt relation (Barrel) "+sideName[side], 100,-12.5,59.375,100,0,2,"leading edge [ns] corrected for t0 and EP ","dist from wire to track (mm)");
+      RegisterHisto(al_mon,m_trt_b_hist->rt[side]);
+    
+      
+      /**Pull vs mu */
+      m_trt_b_hist->pullR_notube_mu[side] = MakeHist("trt_b_pullRnotube_mu_"+sideName[side],"UnBiased Pull vs mu for the TRT Barrel (no tube hits)"+sideName[side],100,0,100,100,-m_RangeOfPullHistos,m_RangeOfPullHistos, "#mu","Pull");
+      RegisterHisto(al_mon,m_trt_b_hist->pullR_notube_mu[side]); 
+          
       /** Residuals and pulls vs pT*/
       m_trt_b_hist->residualR_pt[side] = MakeHist("trt_b_residualR_pt_"+sideName[side],"UnBiased Residual vs pT for the TRT Barrel "+sideName[side],m_nBinsPtRange,-m_PtRange,m_PtRange,200,-1.0,1.0, "Track p_{T} [GeV]","Residual [mm]");
       RegisterHisto(al_mon,m_trt_b_hist->residualR_pt[side]);  
@@ -4670,22 +4789,52 @@ void IDAlignMonResiduals::MakeTRTBarrelHistograms(MonGroup& al_mon){
       m_trt_b_hist->aveResVsTrackEta_l[side][lay] = MakeProfile("trt_b_aveResVsTrackEta_l"+intToString(lay)+sideName[side],"Average Residual vs Track eta for TRT Barrel Module Layer "+intToString(lay)+" "+sideName[side],20,-2.5,2.5,-1.0, 1.0,"Track eta","Average Residual [mm]");
       RegisterHisto(al_mon,m_trt_b_hist->aveResVsTrackEta_l[side][lay]);
 			
-      /** L/R assignment Vs PhiSector for the 3 Barrel Layers (A and C)*/
+      /** L/R assignment Vs PhiSector for the 3 Barrel Layers (A and C, A Only, C Only)*/
       m_trt_b_hist->lr_l[side][lay] = MakeProfile("trt_b_lr_l"+intToString(lay)+sideName[side],"LR assignment vs Phi Sector for TRT Barrel Layer "+intToString(lay)+" "+sideName[side],32,0,32,0, 1.0,"Phi Sector","fraction of LR assignment correct");
       RegisterHisto(al_mon,m_trt_b_hist->lr_l[side][lay]);
+
+      if(m_extendedPlots){
+	/** Residuals vs PhiSector & Z for 3 Barrel Layers (A and C, A Only, C Only)*/
+	// it's silly to do side a, and side c for these (since it's a map in Z), but it's how the code is set up. maybe they'll be useful for something...
+	m_trt_b_hist->resVsPhiZ[side][lay] = new TH3F(("trt_b_resVsPhiZ_l"+intToString(lay)+sideName[side]).c_str(),("Residual Distribution vs Phi Sector & Z for TRT Barrel Modules in layer "+intToString(lay)+sideName[side]).c_str(),60,-712,712/*size of barrel according to TRT SW people*/,32,0,32,50*m_FinerBinningFactor,m_minTRTResWindow,m_maxTRTResWindow);
+	RegisterHisto(al_mon,m_trt_b_hist->resVsPhiZ[side][lay]);
+
+	/** Average residuals vs PhiSector & Z for 3 Barrel Layers (A and C, A Only, C Only)*/
+	m_trt_b_hist->aveResVsPhiZ[side][lay] = MakeHist("trt_b_aveResVsPhiZ_l"+intToString(lay)+sideName[side],"Average Residual vs Phi Sector & Z for TRT Barrel Modules in layer "+intToString(lay)+sideName[side],60,-712,712,32,0,32,"z [mm]","#phi Sector");
+	RegisterHisto(al_mon,m_trt_b_hist->aveResVsPhiZ[side][lay]);
+	
+	/** Residual RMS vs PhiSector & Z for 3 Barrel Layers (A and C, A Only, C Only)*/
+	m_trt_b_hist->rmsResVsPhiZ[side][lay] = MakeHist("trt_b_rmsResVsPhiZ_l"+intToString(lay)+sideName[side],"Residual RMS vs Phi Sector & Z for TRT Barrel Modules in layer "+intToString(lay)+sideName[side],60,-712,712,32,0,32,"z [mm]","#phi Sector");
+	RegisterHisto(al_mon,m_trt_b_hist->rmsResVsPhiZ[side][lay]);
+	
+	/** Residuals vs PhiSector & Eta for 3 Barrel Layers (A and C, A Only, C Only)*/
+	m_trt_b_hist->resVsPhiEta[side][lay] = new TH3F(("trt_b_resVsPhiEta_l"+intToString(lay)+sideName[side]).c_str(),("Residual Distribution vs Phi Sector & Eta for TRT Barrel Modules in layer "+intToString(lay)+sideName[side]).c_str(),60,-1.1,1.1,32,0,32,50*m_FinerBinningFactor,m_minTRTResWindow,m_maxTRTResWindow);
+	RegisterHisto(al_mon,m_trt_b_hist->resVsPhiEta[side][lay]);
+	
+	/** Average residuals vs PhiSector & Eta for 3 Barrel Layers (A and C, A Only, C Only)*/
+	m_trt_b_hist->aveResVsPhiEta[side][lay] = MakeHist("trt_b_aveResVsPhiEta_l"+intToString(lay)+sideName[side],"Average Residual vs Phi Sector & Eta for TRT Barrel Modules in layer "+intToString(lay)+sideName[side],60,-1.1,1.1,32,0,32,"#eta","#phi Sector");
+	RegisterHisto(al_mon,m_trt_b_hist->aveResVsPhiEta[side][lay]);
+
+	/** Residual RMS vs PhiSector & Eta for 3 Barrel Layers (A and C, A Only, C Only)*/
+	m_trt_b_hist->rmsResVsPhiEta[side][lay] = MakeHist("trt_b_rmsResVsPhiEta_l"+intToString(lay)+sideName[side],"Residual RMS vs Phi Sector & Eta for TRT Barrel Modules in layer "+intToString(lay)+sideName[side],60,-1.1,1.1,32,0,32,"#eta","#phi Sector");
+	RegisterHisto(al_mon,m_trt_b_hist->rmsResVsPhiEta[side][lay]);
+      } // extendedPlots
+      
     } 
-            
-    /** Over Phi Sectors*/    
-    for(unsigned int phiSec=0; phiSec<32; ++phiSec){ 
-      /** Average Res Vs Strawlayer for the 3 Barrel Layers (A and C, A Only, C Only)*/
-      m_trt_b_hist->aveResVsStrawLayerStackLevel[side][phiSec] = MakeProfile("trt_b_aveResVsStrawLayerStackLevel_"+intToString(phiSec)+"_"+sideName[side],"Average Residual vs Straw Layer for TRT Barrel Modules in phi sector "+intToString(phiSec)+" "+sideName[side],73,0,73,-1.0, 1.0,"Straw layer","Average Residual (mm)",false);
-      RegisterHisto(al_mon,m_trt_b_hist->aveResVsStrawLayerStackLevel[side][phiSec]);
-			
-      /** Residual RMS Vs Strawlayer for the 3 Barrel Layers (A and C, A Only, C Only)*/
-      m_trt_b_hist->rmsResVsStrawLayerStackLevel[side][phiSec] = MakeProfile("trt_b_rmsResVsStrawLayerStackLevel_"+intToString(phiSec)+"_"+sideName[side],"Residual RMS vs Straw Layer for TRT Barrel Modules in phi sector "+intToString(phiSec)+" "+sideName[side],73,0,73,-1.0, 1.0,"Straw layer","Residual RMS (mm)");
-      RegisterHisto(al_mon,m_trt_b_hist->rmsResVsStrawLayerStackLevel[side][phiSec]);
-    }
-		
+    
+    if (m_extendedPlots)
+      {
+	/** Over Phi Sectors*/    
+	for(unsigned int phiSec=0; phiSec<32; ++phiSec){ 
+	  /** Average Res Vs Strawlayer for the 3 Barrel Layers (A and C, A Only, C Only)*/
+	  m_trt_b_hist->aveResVsStrawLayerStackLevel[side][phiSec] = MakeProfile("trt_b_aveResVsStrawLayerStackLevel_"+intToString(phiSec)+"_"+sideName[side],"Average Residual vs Straw Layer for TRT Barrel Modules in phi sector "+intToString(phiSec)+" "+sideName[side],73,0,73,-1.0, 1.0,"Straw layer","Average Residual (mm)",false);
+	  RegisterHisto(al_mon,m_trt_b_hist->aveResVsStrawLayerStackLevel[side][phiSec]);
+	  
+	  /** Residual RMS Vs Strawlayer for the 3 Barrel Layers (A and C, A Only, C Only)*/
+	  m_trt_b_hist->rmsResVsStrawLayerStackLevel[side][phiSec] = MakeProfile("trt_b_rmsResVsStrawLayerStackLevel_"+intToString(phiSec)+"_"+sideName[side],"Residual RMS vs Straw Layer for TRT Barrel Modules in phi sector "+intToString(phiSec)+" "+sideName[side],73,0,73,-1.0, 1.0,"Straw layer","Residual RMS (mm)");
+	  RegisterHisto(al_mon,m_trt_b_hist->rmsResVsStrawLayerStackLevel[side][phiSec]);
+	}
+      }
     std::string posName[5] = {""," Upper"," Lower"," Left"," Right"};
     /** Average residual and residual RMS Intergrated over each phi module vs straw layer */
     for(unsigned int position=0; position<5; ++position){
@@ -4711,10 +4860,15 @@ void IDAlignMonResiduals::MakeTRTEndcapHistograms(MonGroup& al_mon){
   /** Residual in TRT EndcapC */
   for(unsigned int endcap =0; endcap <2; ++endcap){
         
-    m_trt_ec_hist->pullR_notube_mu[endcap] = MakeHist("trt_ec_pullRnotube_mu_"+endcapName[endcap],"UnBiased Pull vs mu for the TRT Barrel (no tube hits)"+endcapName[endcap],m_nBinsPtRange,-m_PtRange,m_PtRange,100,-m_RangeOfPullHistos,m_RangeOfPullHistos, "#mu","Pull");
-    RegisterHisto(al_mon,m_trt_ec_hist->pullR_notube_mu[endcap]);  
-    
+        
     if(m_extendedPlots){
+      
+      /** Pull noTube vs mu */
+
+      m_trt_ec_hist->pullR_notube_mu[endcap] = MakeHist("trt_ec_pullRnotube_mu_"+endcapName[endcap],"UnBiased Pull vs mu for the TRT Barrel (no tube hits)"+endcapName[endcap],m_nBinsPtRange,-m_PtRange,m_PtRange,100,-m_RangeOfPullHistos,m_RangeOfPullHistos, "#mu","Pull");
+      RegisterHisto(al_mon,m_trt_ec_hist->pullR_notube_mu[endcap]);  
+    
+      
       /** Residuals and pulls vs pT*/
       m_trt_ec_hist->residualR_pt[endcap] = MakeHist("trt_ec_residualR_pt_"+endcapName[endcap],"UnBiased Residual vs pT for the TRT Barrel "+endcapName[endcap],m_nBinsPtRange,-m_PtRange,m_PtRange,200,-1.0,1.0, "Track p_{T} [GeV]","Residual [mm]");
       RegisterHisto(al_mon,m_trt_ec_hist->residualR_pt[endcap]);  
@@ -4732,8 +4886,41 @@ void IDAlignMonResiduals::MakeTRTEndcapHistograms(MonGroup& al_mon){
       m_trt_ec_hist->pullR_mu[endcap] = MakeHist("trt_ec_pullR_mu_"+endcapName[endcap],"UnBiased Pull vs mu for the TRT Barrel "+endcapName[endcap],m_nBinsPtRange,-m_PtRange,m_PtRange,100,-m_RangeOfPullHistos,m_RangeOfPullHistos, "#mu","Pull");
       RegisterHisto(al_mon,m_trt_ec_hist->pullR_mu[endcap]);  
     }
-		
-    for(unsigned int ring=0; ring<41; ++ring){//The "extra one is the total"
+	
+    if(m_extendedPlots){
+      /** Endcap Residual plots vs Phi & Wheel */
+      m_trt_ec_hist->resVsPhiWheel[endcap] = new TH3F(("trt_ec_resVsPhiWheel_"+endcapName[endcap]).c_str(),("Residual Distribution vs Phi Sector & Wheel for TRT "+endcapName[endcap]).c_str(),40,0,40,32,0,32,50*m_FinerBinningFactor,m_minTRTResWindow,m_maxTRTResWindow);
+      RegisterHisto(al_mon,m_trt_ec_hist->resVsPhiWheel[endcap]);
+      m_trt_ec_hist->aveResVsPhiWheel[endcap] = MakeHist("trt_ec_aveResVsPhiWheel_"+endcapName[endcap],"Average Residual vs Phi Sector & Wheel for TRT "+endcapName[endcap],40,0,40,32,0,32,"End-cap 4-plane wheel","#phi Sector");
+      RegisterHisto(al_mon,m_trt_ec_hist->aveResVsPhiWheel[endcap]);
+      m_trt_ec_hist->rmsResVsPhiWheel[endcap] = MakeHist("trt_ec_rmsResVsPhiWheel_"+endcapName[endcap],"Residual RMS vs Phi Sector & Wheel for TRT "+endcapName[endcap],40,0,40,32,0,32,"End-cap 4-plane wheel","#phi Sector");
+      RegisterHisto(al_mon,m_trt_ec_hist->rmsResVsPhiWheel[endcap]);
+      
+      /** Endcap Residual plots vs Radius & Wheel */
+      m_trt_ec_hist->resVsRadiusWheelPos[endcap] = new TH3F(("trt_ec_resVsRadiusWheelPos_"+endcapName[endcap]).c_str(),("Residual Distribution vs Wheel & Radius on Wheel for TRT "+endcapName[endcap]).c_str(),40,0,40,60,644,1004/*these are the radius limits in mm according to TRT SW*/,50*m_FinerBinningFactor,m_minTRTResWindow,m_maxTRTResWindow);
+      RegisterHisto(al_mon,m_trt_ec_hist->resVsRadiusWheelPos[endcap]);
+      m_trt_ec_hist->aveResVsRadiusWheelPos[endcap] = MakeHist("trt_ec_aveResVsRadiusWheelPos_"+endcapName[endcap],"Average Residual vs Wheel & Radius on Wheel for TRT "+endcapName[endcap],40,0,40,60,644,1004,"Wheel Number","Radius on Wheel [mm]");
+      RegisterHisto(al_mon,m_trt_ec_hist->aveResVsRadiusWheelPos[endcap]);
+      m_trt_ec_hist->rmsResVsRadiusWheelPos[endcap] = MakeHist("trt_ec_rmsResVsRadiusWheelPos_"+endcapName[endcap],"Residual RMS vs Wheel & Radius on Wheel for TRT "+endcapName[endcap],40,0,40,60,644,1004,"Wheel Number","Radius on Wheel [mm]");
+      RegisterHisto(al_mon,m_trt_ec_hist->rmsResVsRadiusWheelPos[endcap]);
+      m_trt_ec_hist->resVsRadiusWheelNeg[endcap] = new TH3F(("trt_ec_resVsRadiusWheelNeg_"+endcapName[endcap]).c_str(),("Residual Distribution vs Wheel & Radius on Wheel for TRT "+endcapName[endcap]).c_str(),40,0,40,60,644,1004/*these are the radius limits in mm according to TRT SW*/,50*m_FinerBinningFactor,m_minTRTResWindow,m_maxTRTResWindow);
+      RegisterHisto(al_mon,m_trt_ec_hist->resVsRadiusWheelNeg[endcap]);
+      m_trt_ec_hist->aveResVsRadiusWheelNeg[endcap] = MakeHist("trt_ec_aveResVsRadiusWheelNeg_"+endcapName[endcap],"Average Residual vs Wheel & Radius on Wheel for TRT "+endcapName[endcap],40,0,40,60,644,1004,"Wheel Number","Radius on Wheel [mm]");
+      RegisterHisto(al_mon,m_trt_ec_hist->aveResVsRadiusWheelNeg[endcap]);
+      m_trt_ec_hist->rmsResVsRadiusWheelNeg[endcap] = MakeHist("trt_ec_rmsResVsRadiusWheelNeg_"+endcapName[endcap],"Residual RMS vs Wheel & Radius on Wheel for TRT "+endcapName[endcap],40,0,40,60,644,1004,"Wheel Number","Radius on Wheel [mm]");
+      RegisterHisto(al_mon,m_trt_ec_hist->rmsResVsRadiusWheelNeg[endcap]);
+
+      /** R(t) relation */
+      m_trt_ec_hist->rt[endcap] = MakeHist("trt_ec_rt_"+endcapName[endcap],"rt relation for TRT "+endcapName[endcap], 100,-12.5,59.375,100,0,2,"leading edge [ns] corrected for t0 and EP ","dist from wire to track (mm)");
+      RegisterHisto(al_mon,m_trt_ec_hist->rt[endcap]);
+    
+    
+      
+    } // extended plots
+
+    unsigned int totalRings= (m_extendedPlots) ? 41 : 1;
+    
+    for(unsigned int ring=0; ring<totalRings; ++ring){//The "extra one is the total"
       if(!ring){
 	m_trt_ec_hist->residualR[endcap][ring] = MakeHist("trt_ec_residualR_"+endcapName[endcap],"UnBiased Residual for TRT "+endcapName[endcap],500,m_minTRTResWindow,m_maxTRTResWindow,"Residual (mm)","Entries");
 	RegisterHisto(al_mon,m_trt_ec_hist->residualR[endcap][ring]);  
@@ -4780,11 +4967,7 @@ void IDAlignMonResiduals::MakeTRTEndcapHistograms(MonGroup& al_mon){
 		
     m_trt_ec_hist->aveResVsTrackEta[endcap] = MakeProfile("trt_ec_aveResVsTrackEta_"+endcapName[endcap],"Average Residual vs Eta for TRT "+endcapName[endcap],20,-2.5,2.5,-1.0, 1.0,"Track Eta","Average Residual [mm]",false);
     RegisterHisto(al_mon,m_trt_ec_hist->aveResVsTrackEta[endcap]);    
-		
-    /** R(t) relation */
-    m_trt_ec_hist->rt[endcap] = MakeHist("trt_ec_rt_"+endcapName[endcap],"rt relation for TRT "+endcapName[endcap], 100,-12.5,59.375,100,0,2,"leading edge [ns] corrected for t0 and EP ","dist from wire to track (mm)");
-    RegisterHisto(al_mon,m_trt_ec_hist->rt[endcap]);
-		
+  
     /** L/R Assignment */
     m_trt_ec_hist->lr[endcap] = MakeHist("trt_ec_lr_"+endcapName[endcap],"|0= LRcor !isTube | 1= LRcor isTube| 2= !LRcor !isTube | 3= !LRcor isTube "+endcapName[endcap],4,0,4,"","Entries");
     RegisterHisto(al_mon,m_trt_ec_hist->lr[endcap]);  
@@ -4799,7 +4982,7 @@ void IDAlignMonResiduals::MakeTRTEndcapHistograms(MonGroup& al_mon){
   return;
 }
 
-void IDAlignMonResiduals::fillTRTHistograms(int m_barrel_ec, int m_layer_or_wheel, int m_phi_module, int m_straw_layer,float perdictR, float hitR, float residualR, float pullR, float LE, float EP, float t0, bool isTubeHit ,float trketa, float trkpt, double hweight){
+void IDAlignMonResiduals::fillTRTHistograms(int m_barrel_ec, int m_layer_or_wheel, int m_phi_module, int m_straw_layer,float perdictR, float hitR, float hitZ, float hitGlobalR, float residualR, float pullR, float LE, float EP, float t0, bool isTubeHit ,float trketa, float trkpt, double hweight){
 	
   bool LRcorrect = true;
   if( perdictR*hitR < 0)
@@ -4817,6 +5000,7 @@ void IDAlignMonResiduals::fillTRTHistograms(int m_barrel_ec, int m_layer_or_whee
 			    ,m_straw_layer
 			    ,perdictR
 			    ,hitR
+			    ,hitZ
 			    ,residualR
 			    ,pullR
 			    ,LRcorrect
@@ -4835,6 +5019,7 @@ void IDAlignMonResiduals::fillTRTHistograms(int m_barrel_ec, int m_layer_or_whee
 			    ,m_straw_layer
 			    ,perdictR
 			    ,hitR
+			    ,hitGlobalR
 			    ,residualR
 			    ,pullR
 			    ,LRcorrect
@@ -4849,7 +5034,7 @@ void IDAlignMonResiduals::fillTRTHistograms(int m_barrel_ec, int m_layer_or_whee
 }
 
 //Filling barrel histograms
-void IDAlignMonResiduals::fillTRTBarrelHistograms(int m_barrel_ec, int m_layer_or_wheel, int m_phi_module, int m_straw_layer,float perdictR, float hitR, float residualR, float pullR, bool LRcorrect, float LE, float EP, float t0, bool isTubeHit ,float trketa, float trkpt, double hweight){
+void IDAlignMonResiduals::fillTRTBarrelHistograms(int m_barrel_ec, int m_layer_or_wheel, int m_phi_module, int m_straw_layer,float perdictR, float hitR, float hitZ, float residualR, float pullR, bool LRcorrect, float LE, float EP, float t0, bool isTubeHit ,float trketa, float trkpt, double hweight){
   //Logic to determine Left, Right, Upper, Lower
   bool m_isUpper = (m_phi_module > 4 && m_phi_module < 12 ) ? true : false;
   bool m_isLower = (m_phi_module > 20 && m_phi_module < 28 ) ? true : false;
@@ -4880,22 +5065,23 @@ void IDAlignMonResiduals::fillTRTBarrelHistograms(int m_barrel_ec, int m_layer_o
       m_trt_b_hist->residualR_notube[side] -> Fill(residualR,hweight);
     }
     
-    if (LE != -999)
-      m_trt_b_hist->rt[side]->Fill(LE - EP - t0,fabs(perdictR), hweight);
-		
+    		
     if(LRcorrect  && !isTubeHit)      m_trt_b_hist->lr[side] -> Fill(0.5, hweight);
     if(LRcorrect  && isTubeHit )      m_trt_b_hist->lr[side] -> Fill(1.5, hweight);
     if(!LRcorrect && !isTubeHit)      m_trt_b_hist->lr[side] -> Fill(2.5, hweight);
     if(!LRcorrect && isTubeHit )      m_trt_b_hist->lr[side] -> Fill(3.5, hweight);
         
-    if (!isTubeHit) m_trt_b_hist->pullR_notube_mu[side] -> Fill(m_mu,pullR, hweight);
+    
     
     if(m_extendedPlots){
+      if (LE != -999)
+	m_trt_b_hist->rt[side]->Fill(LE - EP - t0,fabs(perdictR), hweight);
       m_trt_b_hist->residualR_pt[side]-> Fill(trkpt, residualR, hweight);
       m_trt_b_hist->pullR_pt[side]    -> Fill(trkpt, pullR    , hweight);
       if (!isTubeHit) m_trt_b_hist->pullR_notube_pt[side] -> Fill(trkpt,pullR, hweight);
       m_trt_b_hist->residualR_mu[side]-> Fill(m_mu, residualR, hweight);
       m_trt_b_hist->pullR_mu[side]    -> Fill(m_mu, pullR    , hweight);
+      if (!isTubeHit) m_trt_b_hist->pullR_notube_mu[side] -> Fill(m_mu,pullR, hweight);
     }
     		
     //There are different number of straw layers in the differnt types of module layers
@@ -4905,11 +5091,17 @@ void IDAlignMonResiduals::fillTRTBarrelHistograms(int m_barrel_ec, int m_layer_o
     for(int lay=0; lay<3; ++lay){
       if(lay == m_layer_or_wheel){
 	m_trt_b_hist->lrOverPhiVsStrawLayer[side] -> Fill(numStrawLayers[lay]+m_straw_layer, LRcorrect, hweight);
-				
-	for(int m_testPhi=0; m_testPhi < 32; ++m_testPhi ){
-	  if(m_phi_module == m_testPhi)
-	    m_trt_b_hist->aveResVsStrawLayerStackLevel[side][m_testPhi] -> Fill(numStrawLayers[lay]+m_straw_layer, residualR, hweight);
+	if(m_extendedPlots){
+	  m_trt_b_hist->resVsPhiZ[side][lay]->Fill(hitZ,m_phi_module,residualR,hweight);
+	  m_trt_b_hist->resVsPhiEta[side][lay]->Fill(trketa,m_phi_module,residualR,hweight);
 	}
+	if (m_extendedPlots)
+	  {
+	    for(int m_testPhi=0; m_testPhi < 32; ++m_testPhi ){
+	      if(m_phi_module == m_testPhi)
+		m_trt_b_hist->aveResVsStrawLayerStackLevel[side][m_testPhi] -> Fill(numStrawLayers[lay]+m_straw_layer, residualR, hweight);
+	    }
+	  }
 				
 	for(unsigned int position=0; position<5;++position){
 	  bool doFillPosition = false;
@@ -4949,7 +5141,7 @@ void IDAlignMonResiduals::fillTRTBarrelHistograms(int m_barrel_ec, int m_layer_o
   return;
 }//fillTRTBarrelHistograms
 
-void IDAlignMonResiduals::fillTRTEndcapHistograms(int m_barrel_ec, int m_layer_or_wheel, int m_phi_module, int m_straw_layer,float perdictR, float hitR, float residualR, float pullR, bool LRcorrect, float LE, float EP, float t0, bool isTubeHit ,float trketa, float trkpt, double hweight){
+void IDAlignMonResiduals::fillTRTEndcapHistograms(int m_barrel_ec, int m_layer_or_wheel, int m_phi_module, int m_straw_layer,float perdictR, float hitR, float hitGlobalR, float residualR, float pullR, bool LRcorrect, float LE, float EP, float t0, bool isTubeHit ,float trketa, float trkpt, double hweight){
 	
   for(unsigned int endcap=0; endcap<2; ++endcap){
     bool doFill=false;
@@ -4972,18 +5164,16 @@ void IDAlignMonResiduals::fillTRTEndcapHistograms(int m_barrel_ec, int m_layer_o
       }
     m_trt_ec_hist->aveResVsTrackEta[endcap] -> Fill(trketa,residualR, hweight);
 		
-    if (LE != -999)
-      m_trt_ec_hist->rt[endcap] -> Fill(LE - EP - t0,fabs(perdictR), hweight);
-        
-    if (!isTubeHit) m_trt_ec_hist->pullR_notube_mu[endcap] -> Fill(m_mu,pullR, hweight);
-    
     if(m_extendedPlots){
+      if (LE != -999)
+	m_trt_ec_hist->rt[endcap] -> Fill(LE - EP - t0,fabs(perdictR), hweight);
       m_trt_ec_hist->residualR_pt[endcap]-> Fill(trkpt, residualR, hweight);
       m_trt_ec_hist->pullR_pt[endcap]    -> Fill(trkpt, pullR    , hweight);
       if (!isTubeHit) m_trt_ec_hist->pullR_notube_pt[endcap] -> Fill(trkpt,pullR, hweight);
       
       m_trt_ec_hist->residualR_mu[endcap]-> Fill(m_mu, residualR, hweight);
       m_trt_ec_hist->pullR_mu[endcap]    -> Fill(m_mu, pullR    , hweight);
+      if (!isTubeHit) m_trt_ec_hist->pullR_notube_mu[endcap] -> Fill(m_mu,pullR, hweight);
     }
     
     if(LRcorrect  && !isTubeHit)      m_trt_ec_hist->lr[endcap] -> Fill(0.5, hweight);
@@ -4998,7 +5188,24 @@ void IDAlignMonResiduals::fillTRTEndcapHistograms(int m_barrel_ec, int m_layer_o
       }
     }
 		
-    for(unsigned int ring=0; ring<40; ++ring){
+    // fill TH3F of ave residual vs phi & wheel
+    if(m_extendedPlots){
+      m_trt_ec_hist->resVsPhiWheel[endcap]->Fill(getRing(m_layer_or_wheel,m_straw_layer),m_phi_module,residualR,hweight);
+      // fill TH3F of ave residual vs wheel & radius vs charge & LOW PT ONLY
+      if(fabs(trkpt) < m_maxPtEC){
+	int charge = (trkpt > 0 ? 1 : -1);
+	if(charge > 0){
+	  m_trt_ec_hist->resVsRadiusWheelPos[endcap]->Fill(getRing(m_layer_or_wheel,m_straw_layer),hitGlobalR,residualR,hweight);
+	}
+	else{
+	  m_trt_ec_hist->resVsRadiusWheelNeg[endcap]->Fill(getRing(m_layer_or_wheel,m_straw_layer),hitGlobalR,residualR,hweight);
+	}
+      }
+    }
+    
+    unsigned int totalRings = (m_extendedPlots) ? 41 : 1;
+
+    for(unsigned int ring=0; ring<totalRings-1; ++ring){
       if(getRing(m_layer_or_wheel,m_straw_layer) == ring){
 	m_trt_ec_hist->residualR[endcap][ring+1]-> Fill(residualR, hweight);
 	m_trt_ec_hist->pullR[endcap][ring+1]    -> Fill(pullR    , hweight);
diff --git a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonResiduals.h b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonResiduals.h
index 4a84c90a56f0ffaa4aabe0eff9d922e581401647..3eca260ef190ccc88e81f45d088b5aecb1f50ddb 100755
--- a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonResiduals.h
+++ b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/src/IDAlignMonResiduals.h
@@ -90,9 +90,9 @@ class IDAlignMonResiduals : public ManagedMonitorToolBase
   void MakeTRTBarrelHistograms(MonGroup& al_mon);
   void MakeTRTEndcapHistograms(MonGroup& al_mon);
   void MakeSiliconHistograms(MonGroup&);
-  void fillTRTHistograms(int m_barrel_ec, int m_layer_or_wheel, int m_phi_module, int m_straw_layer,float perdictR, float hitR, float residualR, float pullR, float LE, float EP, float t0, bool isTubeHit ,float trketa, float trkpt, double hweight);
-  void fillTRTBarrelHistograms(int m_barrel_ec, int m_layer_or_wheel, int m_phi_module, int m_straw_layer,float perdictR, float hitR, float residualR, float pullR, bool LRcorrect, float LE, float EP, float t0, bool isTubeHit ,float trketa, float trkpt, double hweight);
-  void fillTRTEndcapHistograms(int m_barrel_ec, int m_layer_or_wheel, int m_phi_module, int m_straw_layer,float perdictR, float hitR, float residualR, float pullR, bool LRcorrect, float LE, float EP, float t0, bool isTubeHit ,float trketa, float trkpt, double hweight);
+  void fillTRTHistograms(int m_barrel_ec, int m_layer_or_wheel, int m_phi_module, int m_straw_layer,float perdictR, float hitR, float hitZ, float hitGlobalR, float residualR, float pullR, float LE, float EP, float t0, bool isTubeHit ,float trketa, float trkpt, double hweight);
+  void fillTRTBarrelHistograms(int m_barrel_ec, int m_layer_or_wheel, int m_phi_module, int m_straw_layer,float perdictR, float hitR, float hitZ, float residualR, float pullR, bool LRcorrect, float LE, float EP, float t0, bool isTubeHit ,float trketa, float trkpt, double hweight);
+  void fillTRTEndcapHistograms(int m_barrel_ec, int m_layer_or_wheel, int m_phi_module, int m_straw_layer,float perdictR, float hitR, float hitGlobalR, float residualR, float pullR, bool LRcorrect, float LE, float EP, float t0, bool isTubeHit ,float trketa, float trkpt, double hweight);
   unsigned int getRing(unsigned int wheel,unsigned int strawlayer);
 
   /** Convert from an int to a string */
@@ -131,7 +131,7 @@ class IDAlignMonResiduals : public ManagedMonitorToolBase
   StatusCode getSiResiduals(const Trk::Track*, const Trk::TrackStateOnSurface*, bool, double*);
   const Trk::TrackParameters* getUnbiasedTrackParameters(const Trk::Track*, const Trk::TrackStateOnSurface*);
   void meanRMSProjections(TH2F*, TH1F*, int);
-  void meanRMSProjection2D(TH3F*, TH2F*, int);
+  void meanRMSProjection2D(TH3F*, TH2F*, int, bool);
   void fillRMSFromProfile(TProfile*, TProfile*);
   void fillGaussianMeanOrWidth(TH2F*, TH1F*, float, float, int);
   bool trackRequiresRefit(const Trk::Track*);
@@ -196,6 +196,8 @@ class IDAlignMonResiduals : public ManagedMonitorToolBase
   float m_LBGranularity;
   std::vector<TString> m_siliconBarrelLayersLabels; 
   std::vector<TString> m_siliconEndcapLayersLabels;
+  bool m_useGausFit;
+  float m_maxPtEC; // threshold for low-pt EC distributions
   
   //tools
   const AtlasDetectorID*                m_idHelper;
diff --git a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/utils/include/fileutils.py b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/utils/include/fileutils.py
index 4d2768453f7979d3d65d7bd8cf52fca4b3decba8..c13e4e541779d245d2371789bf2303df8d6fc40a 100644
--- a/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/utils/include/fileutils.py
+++ b/InnerDetector/InDetMonitoring/InDetAlignmentMonitoring/utils/include/fileutils.py
@@ -3,8 +3,8 @@
 DoFStrings = ['Tx','Ty','Tz','Rx','Ry','Rz','Bx']
 OutputLevel = 1
 
-
-
+runWebMonitor = False
+runLocalTest = False
     
 def openFile(file):
     try:
@@ -26,10 +26,20 @@ def writeCorr(outputfile, detector):
     
 def readConstants(file, useBarrels=True,  useEndCaps=True):
     import imp
-    m_utils = imp.load_source('Module', 'include/moduleutils.py')
-    m_utils = imp.load_source('Detector', 'include/moduleutils.py')
+    print " <fileutils.readconstants> runWebMonitor=",runWebMonitor, "   runLocalTest = ", runLocalTest
     #from module import Module
     #from module import Detector
+    if (runWebMonitor):
+        if (runLocalTest):
+            m_utils = imp.load_source('Module', '/Users/martis/projectes/atlas/alineament/webmonitoringtest/InDetAlignmentWebMonitor/trunk/WebPage/plot/module.py')
+            m_utils = imp.load_source('Detector', '/Users/martis/projectes/atlas/alineament/webmonitoringtest/InDetAlignmentWebMonitor/trunk/WebPage/plot/module.py')
+        else:
+            m_utils = imp.load_source('Module', '/var/vhost/atlas-alignment/secure/plot/module.py')
+            m_utils = imp.load_source('Detector', '/var/vhost/atlas-alignment/secure/plot/module.py')
+    else:
+        m_utils = imp.load_source('Module', 'include/moduleutils.py')
+        m_utils = imp.load_source('Detector', 'include/moduleutils.py')   
+
     alignText = openFile(file).splitlines()
     # initialize variables
     level, det, bec, layer, phi, eta = -999,-999,-999,-999,-999,-999