Skip to content

Commit

Permalink
add pixel residuals monitoring at HLT
Browse files Browse the repository at this point in the history
  • Loading branch information
mmusich committed Aug 18, 2024
1 parent 9f8ff8e commit b9a1a9a
Show file tree
Hide file tree
Showing 4 changed files with 163 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

from DQMOffline.Trigger.SiPixel_OfflineMonitoring_Cluster_cff import *
from DQMOffline.Trigger.SiPixel_OfflineMonitoring_TrackCluster_cff import *
from DQMOffline.Trigger.SiPixel_OfflineMonitoring_TrackResiduals_cff import *

from DQM.HLTEvF.dqmCorrelationClient_cfi import *
pixelClusterVsLumi = dqmCorrelationClient.clone(
Expand Down Expand Up @@ -51,9 +52,11 @@
pixelTrackClusterVsLumiPXForward.me2.name = "num_clusters_ontrack_per_Lumisection_PXForward"

sipixelHarvesterHLTsequence = cms.Sequence(
# hltSiPixelPhase1ClustersHarvester
# + hltSiPixelPhase1TrackClustersHarvester
pixelClusterVsLumiPXBarrel
#hltSiPixelPhase1ClustersHarvester
#+ hltSiPixelPhase1TrackClustersHarvester
hltSiPixelPhase1TrackResidualsHarvester
+ hltSiPixelPhase1ResidualsExtra
+ pixelClusterVsLumiPXBarrel
+ pixelClusterVsLumiPXForward
# + pixelTrackClusterVsLumiPXBarrel
# + pixelTrackClusterVsLumiPXForward
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
hltDefaultHistoTrack = DefaultHistoTrack.clone(
topFolderName= "HLT/Pixel/TrackClusters"
)

hltStandardSpecificationPixelmapProfile = [#produces pixel map with the mean (TProfile)
Specification(PerLayer2D)
.groupBy("PXBarrel/PXLayer/SignedLadderCoord/SignedModuleCoord")
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,153 @@
import FWCore.ParameterSet.Config as cms
from DQMServices.Core.DQMEDHarvester import DQMEDHarvester

from DQMOffline.Trigger.SiPixel_OfflineMonitoring_HistogramManager_cfi import *

# order is important and it should follow ordering in hltSiPixelPhase1ClustersConf VPSet
hltSiPixelPhase1TrackResidualsResidualsX = hltDefaultHistoTrack.clone(
name = "residual_x",
title = "Track Residuals X",
range_min = -0.1, range_max = 0.1, range_nbins = 100,
xlabel = "(x_rec - x_pred) [cm]",
dimensions = 1,
specs = VPSet(
StandardSpecification2DProfile,
Specification().groupBy("PXBarrel/PXLayer").saveAll(),
Specification().groupBy("PXForward/PXDisk").saveAll(),

Specification().groupBy("PXBarrel/PXLayer/LumiBlock")
.reduce("MEAN")
.groupBy("PXBarrel/PXLayer", "EXTEND_X")
.save(),

Specification().groupBy("PXForward/PXDisk/LumiBlock")
.reduce("MEAN")
.groupBy("PXForward/PXDisk", "EXTEND_X")
.save(),

Specification(PerLayer1D).groupBy("PXBarrel/Shell/PXLayer").save(),
Specification(PerLayer1D).groupBy("PXForward/HalfCylinder/PXRing/PXDisk").save()
)
)

hltSiPixelPhase1TrackResidualsResidualsY = hltSiPixelPhase1TrackResidualsResidualsX.clone(
name = "residual_y",
title = "Track Residuals Y",
xlabel = "(y_rec - y_pred) [cm]",
)

hltSiPixelPhase1TrackResidualsResOnEdgeX = hltDefaultHistoTrack.clone(
name = "residual_OnEdge_x",
title = "Track Residuals X (OnEdge Clusters)",
range_min = -0.1, range_max = 0.1, range_nbins = 100,
xlabel = "(x_rec - x_pred) [cm]",
dimensions = 1,
specs = VPSet(
Specification().groupBy("PXBarrel/PXLayer").saveAll(),
Specification().groupBy("PXForward/PXDisk").saveAll(),
Specification(PerLayer1D).groupBy("PXBarrel/Shell/PXLayer").save(),
Specification(PerLayer1D).groupBy("PXForward/HalfCylinder/PXRing/PXDisk").save()
)
)

hltSiPixelPhase1TrackResidualsResOnEdgeY = hltSiPixelPhase1TrackResidualsResOnEdgeX.clone(
name = "residual_OnEdge_y",
title = "Track Residuals Y (OnEdge Clusters)",
xlabel = "(y_rec - y_pred) [cm]",
)


hltSiPixelPhase1TrackResidualsResOtherBadX = hltDefaultHistoTrack.clone(
name = "residual_OtherBad_x",
title = "Track Residuals X (OtherBad Clusters)",
range_min = -0.1, range_max = 0.1, range_nbins = 100,
xlabel = "(x_rec - x_pred) [cm]",
dimensions = 1,
specs = VPSet(
Specification().groupBy("PXBarrel/PXLayer").saveAll(),
Specification().groupBy("PXForward/PXDisk").saveAll(),
Specification(PerLayer1D).groupBy("PXBarrel/Shell/PXLayer").save(),
Specification(PerLayer1D).groupBy("PXForward/HalfCylinder/PXRing/PXDisk").save()
)
)

hltSiPixelPhase1TrackResidualsResOtherBadY = hltSiPixelPhase1TrackResidualsResOtherBadX.clone(
name = "residual_OtherBad_y",
title = "Track Residuals Y (OtherBad Clusters)",
xlabel = "(y_rec - y_pred) [cm]",
)


hltSiPixelPhase1TrackNormResX = hltDefaultHistoTrack.clone(
topFolderName= cms.string("HLT/Pixel/Tracks/ResidualsExtra"),
name = "NormRes_x",
title = "Normalized Residuals X",
range_min = -5, range_max = 5, range_nbins = 100,
xlabel = "(x_rec - x_pred)/x_err",
dimensions = 1,
specs = VPSet(
Specification().groupBy("PXBarrel/PXLayer").saveAll(),
Specification().groupBy("PXForward/PXDisk").saveAll(),
Specification(PerLayer1D).groupBy("PXBarrel/Shell/PXLayer").save(),
Specification(PerLayer1D).groupBy("PXForward/HalfCylinder/PXRing/PXDisk").save()
)
)

hltSiPixelPhase1TrackNormResY = hltSiPixelPhase1TrackNormResX.clone(
name = "NormRes_y",
title = "Normalized Residuals Y",
range_min = -5, range_max = 5, range_nbins = 100,
xlabel = "(y_rec - y_pred)/y_err",
)

hltSiPixelPhase1TrackDRnRX = hltDefaultHistoTrack.clone(
topFolderName= cms.string("HLT/Pixel/Tracks/ResidualsExtra"),
name = "DRnR_x",
title = "Distribution of RMS of Normalized Residuals X",
range_min = -5, range_max = 5, range_nbins = 100,
xlabel = "#sigma_{(x_rec - x_pred)/x_err}",
dimensions = 1,
specs = VPSet(
StandardSpecification2DProfile
)
)

hltSiPixelPhase1TrackDRnRY = hltSiPixelPhase1TrackDRnRX.clone(
name = "DRnR_y",
title = "Distribution of RMS of Normalized Residuals Y",
range_min = -5, range_max = 5, range_nbins = 100,
xlabel = "#sigma_{(y_rec - y_pred)/y_err}",
)

hltSiPixelPhase1TrackResidualsConf = cms.VPSet(
hltSiPixelPhase1TrackResidualsResidualsX,
hltSiPixelPhase1TrackResidualsResidualsY,
hltSiPixelPhase1TrackResidualsResOnEdgeX,
hltSiPixelPhase1TrackResidualsResOnEdgeY,
hltSiPixelPhase1TrackResidualsResOtherBadX,
hltSiPixelPhase1TrackResidualsResOtherBadY,
hltSiPixelPhase1TrackNormResX,
hltSiPixelPhase1TrackNormResY,
hltSiPixelPhase1TrackDRnRX,
hltSiPixelPhase1TrackDRnRY
)

from DQMServices.Core.DQMEDAnalyzer import DQMEDAnalyzer
hltSiPixelPhase1TrackResidualsAnalyzer = DQMEDAnalyzer('SiPixelPhase1TrackResiduals',
trajectoryInput = cms.string("hltrefittedForPixelDQM"),
Tracks = cms.InputTag("hltrefittedForPixelDQM"),
vertices = cms.InputTag("hltPixelVertices"),
histograms = hltSiPixelPhase1TrackResidualsConf,
geometry = hltSiPixelPhase1Geometry,
VertexCut = cms.untracked.bool(True)
)

hltSiPixelPhase1TrackResidualsHarvester = DQMEDHarvester("SiPixelPhase1Harvester",
histograms = hltSiPixelPhase1TrackResidualsConf,
geometry = hltSiPixelPhase1Geometry
)

hltSiPixelPhase1ResidualsExtra = DQMEDHarvester("SiPixelPhase1ResidualsExtra",
TopFolderName = cms.string('HLT/Pixel/Tracks/ResidualsExtra'),
MinHits = cms.int32(30)
)
4 changes: 3 additions & 1 deletion DQMOffline/Trigger/python/SiPixel_OfflineMonitoring_cff.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

from DQMOffline.Trigger.SiPixel_OfflineMonitoring_Cluster_cff import *
from DQMOffline.Trigger.SiPixel_OfflineMonitoring_TrackCluster_cff import *
from DQMOffline.Trigger.SiPixel_OfflineMonitoring_TrackResiduals_cff import *
from RecoTracker.PixelLowPtUtilities.siPixelClusterShapeCache_cfi import *
from DQM.SiPixelMonitorTrack.RefitterForPixelDQM import *
from RecoLocalTracker.SiPixelRecHits.SiPixelTemplateStoreESProducer_cfi import *
Expand All @@ -22,6 +23,7 @@
hltSiPixelClusterShapeCache
+ hltSiPixelPhase1ClustersAnalyzer
+ hltrefittedForPixelDQM
+ hltSiPixelPhase1TrackClustersAnalyzer,
+ hltSiPixelPhase1TrackClustersAnalyzer
+ hltSiPixelPhase1TrackResidualsAnalyzer,
cms.Task(SiPixelTemplateStoreESProducer)
)

0 comments on commit b9a1a9a

Please sign in to comment.