Skip to content

Commit

Permalink
Fix crash in Online Tracking
Browse files Browse the repository at this point in the history
  • Loading branch information
fioriNTU committed Mar 9, 2018
1 parent 92af311 commit bbf013a
Show file tree
Hide file tree
Showing 2 changed files with 150 additions and 57 deletions.
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

0 comments on commit bbf013a

Please sign in to comment.