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