Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix crash in Online Tracking for Pixels #22555

Merged
merged 1 commit into from
Mar 22, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
124 changes: 99 additions & 25 deletions DQM/Integration/python/clients/pixel_dqm_sourceclient-live_cfg.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,13 @@

from Configuration.StandardSequences.Eras import eras

process = cms.Process("PIXELDQMLIVE", eras.Run2_2017)
process = cms.Process("PIXELDQMLIVE", eras.Run2_2018)

live=True #set to false for lxplus offline testing
offlineTesting=not live

TAG ="PixelPhase1"

process = cms.Process("PIXELDQMLIVE")

process.MessageLogger = cms.Service("MessageLogger",
debugModules = cms.untracked.vstring('siPixelDigis',
'siStripClusters',
Expand Down Expand Up @@ -47,6 +45,7 @@
process.dqmEnv.subSystemFolder = TAG
process.dqmSaver.tag = TAG


process.DQMStore.referenceFileName = '/dqmdata/dqm/reference/pixel_reference_pp.root'
if (process.runType.getRunType() == process.runType.hi_run):
process.DQMStore.referenceFileName = '/dqmdata/dqm/reference/pixel_reference_hi.root'
Expand Down Expand Up @@ -86,10 +85,14 @@

# Real data raw to digi
process.load("Configuration.StandardSequences.RawToDigi_Data_cff")
process.load("RecoLocalTracker.SiPixelClusterizer.SiPixelClusterizer_cfi")
process.load("RecoLocalTracker.SiStripZeroSuppression.SiStripZeroSuppression_cfi")
process.load("RecoLocalTracker.SiStripClusterizer.SiStripClusterizer_RealData_cfi")

process.load("DPGAnalysis.SiStripTools.eventwithhistoryproducerfroml1abc_cfi")
process.load("DPGAnalysis.SiStripTools.apvcyclephaseproducerfroml1tsDB_cfi")

# PixelPhase1 Real data raw to digi
process.load("EventFilter.SiPixelRawToDigi.SiPixelRawToDigi_cfi")
process.siPixelDigis.IncludeErrors = True

process.siPixelDigis.InputLabel = cms.InputTag("rawDataCollector")
Expand All @@ -98,19 +101,31 @@
#--------------------------------
# Heavy Ion Configuration Changes
#--------------------------------
#
#if (process.runType.getRunType() == process.runType.hi_run):
# process.load('Configuration.StandardSequences.ReconstructionHeavyIons_cff')
# process.load('Configuration.StandardSequences.RawToDigi_Repacked_cff')
# process.siPixelDigis.InputLabel = cms.InputTag("rawDataRepacker")

if (process.runType.getRunType() == process.runType.hi_run):
process.load('Configuration.StandardSequences.ReconstructionHeavyIons_cff')
process.load('Configuration.StandardSequences.RawToDigi_Repacked_cff')
process.siPixelDigis.InputLabel = cms.InputTag("rawDataRepacker")
## Collision Reconstruction
process.load("Configuration.StandardSequences.RawToDigi_Data_cff")

## Cosmic Track Reconstruction
if (process.runType.getRunType() == process.runType.cosmic_run or process.runType.getRunType() == process.runType.cosmic_run_stage1):
process.load("RecoTracker.Configuration.RecoTrackerP5_cff")
process.load("Configuration.StandardSequences.ReconstructionCosmics_cff")
process.load("RecoPixelVertexing.PixelLowPtUtilities.ClusterShapeHitFilterESProducer_cfi")
else:
process.load("Configuration.StandardSequences.Reconstruction_cff")

import RecoVertex.BeamSpotProducer.BeamSpotOnline_cfi
process.offlineBeamSpot = RecoVertex.BeamSpotProducer.BeamSpotOnline_cfi.onlineBeamSpotProducer.clone()

# Phase1 DQM
process.load("DQM.SiPixelPhase1Config.SiPixelPhase1OnlineDQM_cff")

process.PerModule.enabled=True
process.PerReadout.enabled=True
process.OverlayCurvesForTiming.enabled=False
process.OverlayCurvesForTiming.enabled=True
process.IsOffline.enabled=False

#--------------------------
Expand All @@ -129,31 +144,90 @@
)

process.load('HLTrigger.HLTfilters.hltHighLevel_cfi')
process.hltHighLevel.HLTPaths = cms.vstring( 'HLT_ZeroBias_*' , 'HLT_ZeroBias1_*' , 'HLT_PAZeroBias_*' , 'HLT_PAZeroBias1_*', 'HLT_PAL1MinimumBiasHF_OR_SinglePixelTrack_*', 'HLT*SingleMu*')
process.hltHighLevel.HLTPaths = cms.vstring( 'HLT_ZeroBias_*' , 'HLT_ZeroBias1_*' , 'HLT_PAZeroBias_*' , 'HLT_PAZeroBias1_*', 'HLT_PAL1MinimumBiasHF_OR_SinglePixelTrack_*','HLT*SingleMu*')
process.hltHighLevel.andOr = cms.bool(True)
process.hltHighLevel.throw = cms.bool(False)

#--------------------------
# Scheduling
#--------------------------

process.DQMmodules = cms.Sequence(process.dqmEnv*process.dqmSaver)
process.DQMmodules = cms.Sequence(process.dqmEnv* process.dqmSaver)

if (process.runType.getRunType() == process.runType.hi_run):
process.SiPixelClusterSource.src = cms.InputTag("siPixelClustersPreSplitting")
process.Reco = cms.Sequence(process.siPixelDigis*process.pixeltrackerlocalreco)
process.RecoForDQM_LocalReco = cms.Sequence(process.siPixelDigis*process.siStripDigis*process.gtDigis*process.trackerlocalreco)

else:
process.Reco = cms.Sequence(process.siPixelDigis*process.siStripDigis*process.siStripZeroSuppression*process.siStripClusters*process.siPixelClusters)

process.p = cms.Path(
process.hltHighLevel #trigger selection
*process.Reco
*process.DQMmodules
*process.siPixelPhase1OnlineDQM_source
*process.siPixelPhase1OnlineDQM_harvesting
)
### COSMIC RUN SETTING
if (process.runType.getRunType() == process.runType.cosmic_run or process.runType.getRunType() == process.runType.cosmic_run_stage1):

# Reco for cosmic data
process.load('RecoTracker.SpecialSeedGenerators.SimpleCosmicBONSeeder_cfi')
process.simpleCosmicBONSeeds.ClusterCheckPSet.MaxNumberOfCosmicClusters = 450
process.combinatorialcosmicseedfinderP5.MaxNumberOfCosmicClusters = 450



process.RecoForDQM_TrkReco_cosmic = cms.Sequence(process.offlineBeamSpot*process.MeasurementTrackerEvent*process.ctftracksP5*process.siPixelClusterShapeCache)

process.p = cms.Path(
##### TRIGGER SELECTION #####
process.hltHighLevel*
process.scalersRawToDigi*
process.APVPhases*
process.consecutiveHEs*
process.hltTriggerTypeFilter*
process.RecoForDQM_LocalReco*
process.DQMmodules*
process.RecoForDQM_TrkReco_cosmic*
process.siPixelPhase1OnlineDQM_source_cosmics*
process.siPixelPhase1OnlineDQM_harvesting
)

### pp COLLISION SETTING

if (process.runType.getRunType() == process.runType.pp_run or process.runType.getRunType() == process.runType.pp_run_stage1):
# Reco for pp collisions
process.load('RecoTracker.IterativeTracking.InitialStepPreSplitting_cff')
process.InitialStepPreSplittingTask.remove(process.initialStepTrackRefsForJetsPreSplitting)
process.InitialStepPreSplittingTask.remove(process.caloTowerForTrkPreSplitting)
process.InitialStepPreSplittingTask.remove(process.ak4CaloJetsForTrkPreSplitting)
process.InitialStepPreSplittingTask.remove(process.jetsForCoreTrackingPreSplitting)
process.InitialStepPreSplittingTask.remove(process.siPixelClusters)
process.InitialStepPreSplittingTask.remove(process.siPixelRecHits)
process.InitialStepPreSplittingTask.remove(process.MeasurementTrackerEvent)
process.InitialStepPreSplittingTask.remove(process.siPixelClusterShapeCache)

# Redefinition of siPixelClusters: has to be after RecoTracker.IterativeTracking.InitialStepPreSplitting_cff
process.load("RecoLocalTracker.SiPixelClusterizer.SiPixelClusterizer_cfi")

from RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi import *
process.PixelLayerTriplets.BPix.HitProducer = cms.string('siPixelRecHitsPreSplitting')
process.PixelLayerTriplets.FPix.HitProducer = cms.string('siPixelRecHitsPreSplitting')
from RecoPixelVertexing.PixelTrackFitting.PixelTracks_cff import *
process.pixelTracksHitTriplets.SeedComparitorPSet.clusterShapeCacheSrc = 'siPixelClusterShapeCachePreSplitting'
process.RecoForDQM_TrkReco = cms.Sequence(process.offlineBeamSpot*process.MeasurementTrackerEventPreSplitting*process.siPixelClusterShapeCachePreSplitting*process.recopixelvertexing*process.InitialStepPreSplitting)

if (process.runType.getRunType() == process.runType.hi_run):
process.SiPixelClusterSource.src = cms.InputTag("siPixelClustersPreSplitting")
process.Reco = cms.Sequence(process.siPixelDigis*process.pixeltrackerlocalreco)

else:
process.Reco = cms.Sequence(process.siPixelDigis*process.siStripDigis*process.trackerlocalreco)


process.p = cms.Path(
process.hltHighLevel #trigger selection
*process.scalersRawToDigi
*process.APVPhases
*process.consecutiveHEs
*process.Reco
*process.siPixelClusters
*process.DQMmodules
*process.RecoForDQM_TrkReco
*process.siPixelPhase1OnlineDQM_source_pprun
*process.siPixelPhase1OnlineDQM_harvesting
)

### FIXME: to add the HI Track Reconstruction
### process customizations included here
from DQM.Integration.config.online_customizations_cfi import *
process = customise(process)
Expand Down
83 changes: 51 additions & 32 deletions DQM/SiPixelPhase1Config/python/SiPixelPhase1OnlineDQM_cff.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,10 @@

from DQM.SiPixelPhase1Common.HistogramManager_cfi import *

SuperimoposePlotsInOnlineBlocks=False
SuperimoposePlotsInOnlineBlocks=True
IsOffline.enabled=False




StandardSpecifications1D.append(
Specification(OverlayCurvesForTiming).groupBy("PXBarrel/PXLayer/OnlineBlock") # per-layer with history for online
.groupBy("PXBarrel/PXLayer", "EXTEND_Y")
Expand All @@ -31,39 +29,13 @@
.save()
)

StandardSpecifications1D_Num.append(
Specification(OverlayCurvesForTiming).groupBy("DetId/Event") # per-layer with history for online
.reduce("COUNT")
.groupBy("PXBarrel/PXLayer/OnlineBlock")
.groupBy("PXBarrel/PXLayer", "EXTEND_Y")
.save()
)
StandardSpecifications1D_Num.append(
Specification(OverlayCurvesForTiming).groupBy("DetId/Event") # per-layer with history for online
.reduce("COUNT")
.groupBy("PXForward/PXDisk/OnlineBlock")
.groupBy("PXForward/PXDisk", "EXTEND_Y")
.save()
)
StandardSpecifications1D_Num.append(
Specification(OverlayCurvesForTiming).groupBy("DetId/Event") # per-layer with history for online
.reduce("COUNT")
.groupBy("PXBarrel/OnlineBlock")
.groupBy("PXBarrel", "EXTEND_Y")
.save()
)
StandardSpecifications1D_Num.append(
Specification(OverlayCurvesForTiming).groupBy("DetId/Event") # per-layer with history for online
.reduce("COUNT")
.groupBy("PXForward/OnlineBlock")
.groupBy("PXForward", "EXTEND_Y")
.save()
)


# To Configure Phase1 DQM for Phase0 data
SiPixelPhase1Geometry.upgradePhase = 1

#define number of lumis for overlayed plots
SiPixelPhase1Geometry.onlineblock = 50

# Turn on 'online' harvesting. This has to be set before other configs are
# loaded (due to how the DefaultHisto PSet is later cloned), therefore it is
# here and not in the harvestng config.
Expand Down Expand Up @@ -95,22 +67,69 @@
#Summary maps
from DQM.SiPixelPhase1Summary.SiPixelPhase1Summary_cfi import *

# Track cluster
from DQM.SiPixelPhase1TrackClusters.SiPixelPhase1TrackClusters_cfi import *
from DQM.SiPixelPhase1TrackResiduals.SiPixelPhase1TrackResiduals_cfi import *

siPixelPhase1OnlineDQM_source = cms.Sequence(
SiPixelPhase1DigisAnalyzer
+ SiPixelPhase1ClustersAnalyzer
+ SiPixelPhase1RawDataAnalyzer
+ SiPixelPhase1TrackClustersAnalyzer
+ SiPixelPhase1TrackResidualsAnalyzer
# + SiPixelPhase1GeometryDebugAnalyzer
)

siPixelPhase1OnlineDQM_harvesting = cms.Sequence(
SiPixelPhase1DigisHarvester
+ SiPixelPhase1ClustersHarvester
+ SiPixelPhase1RawDataHarvester
+ SiPixelPhase1TrackClustersHarvester
+ SiPixelPhase1TrackResidualsHarvester
+ RunQTests_online
+ SiPixelPhase1SummaryOnline
# + SiPixelPhase1GeometryDebugHarvester
)

## Additional settings for cosmic runs

SiPixelPhase1TrackClustersAnalyzer_cosmics = SiPixelPhase1TrackClustersAnalyzer.clone()
SiPixelPhase1TrackClustersAnalyzer_cosmics.tracks = cms.InputTag( "ctfWithMaterialTracksP5" )
SiPixelPhase1TrackClustersAnalyzer_cosmics.VertexCut = cms.untracked.bool(False)

SiPixelPhase1TrackResidualsAnalyzer_cosmics = SiPixelPhase1TrackResidualsAnalyzer.clone()
SiPixelPhase1TrackResidualsAnalyzer_cosmics.Tracks = cms.InputTag( "ctfWithMaterialTracksP5" )
SiPixelPhase1TrackResidualsAnalyzer_cosmics.trajectoryInput = "ctfWithMaterialTracksP5"
SiPixelPhase1TrackResidualsAnalyzer_cosmics.VertexCut = cms.untracked.bool(False)

siPixelPhase1OnlineDQM_source_cosmics = cms.Sequence(
SiPixelPhase1DigisAnalyzer
+ SiPixelPhase1ClustersAnalyzer
+ SiPixelPhase1RawDataAnalyzer
+ SiPixelPhase1TrackClustersAnalyzer_cosmics
+ SiPixelPhase1TrackResidualsAnalyzer_cosmics
)

## Additional settings for pp_run
SiPixelPhase1TrackClustersAnalyzer_pprun = SiPixelPhase1TrackClustersAnalyzer.clone()
SiPixelPhase1TrackClustersAnalyzer_pprun.tracks = cms.InputTag( "initialStepTracksPreSplitting" )
SiPixelPhase1TrackClustersAnalyzer_pprun.clusterShapeCache = cms.InputTag("siPixelClusterShapeCachePreSplitting")
SiPixelPhase1TrackClustersAnalyzer_pprun.vertices = cms.InputTag('firstStepPrimaryVerticesPreSplitting')
SiPixelPhase1TrackClustersAnalyzer_pprun.VertexCut = cms.untracked.bool(False)

SiPixelPhase1TrackResidualsAnalyzer_pprun = SiPixelPhase1TrackResidualsAnalyzer.clone()
SiPixelPhase1TrackResidualsAnalyzer_pprun.Tracks = cms.InputTag( "initialStepTracksPreSplitting" )
SiPixelPhase1TrackResidualsAnalyzer_pprun.trajectoryInput = "initialStepTracksPreSplitting"
SiPixelPhase1TrackResidualsAnalyzer_pprun.VertexCut = cms.untracked.bool(False)

siPixelPhase1OnlineDQM_source_pprun = cms.Sequence(
SiPixelPhase1DigisAnalyzer
+ SiPixelPhase1ClustersAnalyzer
+ SiPixelPhase1RawDataAnalyzer
+ SiPixelPhase1TrackClustersAnalyzer_pprun
+ SiPixelPhase1TrackResidualsAnalyzer_pprun
)

siPixelPhase1OnlineDQM_timing_harvesting = siPixelPhase1OnlineDQM_harvesting.copyAndExclude([
RunQTests_online,
SiPixelPhase1SummaryOnline,
Expand Down