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

adding Phase1 timing client with tracking #18529

Merged
merged 2 commits into from May 5, 2017
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
@@ -0,0 +1,248 @@
import FWCore.ParameterSet.Config as cms

process = cms.Process("PixelTrackTimingDQMLive")


live=True
# uncomment for running on lxplus
#live=False
offlineTesting=not live
#print "live: "+str(live)+" ==> offlineTesting: "+str(offlineTesting)

#----------------------------
# Event Source
#-----------------------------
# for live online DQM in P5
if (live):
process.load("DQM.Integration.config.inputsource_cfi")
# for testing in lxplus
elif(offlineTesting):
process.load("DQM.Integration.config.fileinputsource_cfi")


print process.runType

process.load("DQM.Integration.config.environment_cfi")
#process.DQM.filter = '^(TrackTimingPixelPhase1|SiStrip|Tracking)(/[^/]+){0,5}$'

process.dqmEnv.subSystemFolder = "TrackTimingPixelPhase1"
process.dqmSaver.tag = "TrackTimingPixelPhase1"
process.dqmSaver.backupLumiCount = 30

process.dqmEnvTr = cms.EDAnalyzer("DQMEventInfo",
subSystemFolder = cms.untracked.string('TrackTimingPixelPhase1'),
eventRateWindow = cms.untracked.double(0.5),
eventInfoFolder = cms.untracked.string('EventInfo')
)


#-----------------------------
# Magnetic Field
#-----------------------------
process.load('Configuration.StandardSequences.MagneticField_AutoFromDBCurrent_cff')

#-------------------------------------------------
# GEOMETRY
#-------------------------------------------------
process.load("Configuration.StandardSequences.GeometryRecoDB_cff")

#--------------------------
# Calibration
#--------------------------
# Condition for P5 cluster
if (live):
process.load("DQM.Integration.config.FrontierCondition_GT_cfi")
# Condition for lxplus: change and possibly customise the GT
elif(offlineTesting):
from Configuration.AlCa.GlobalTag import GlobalTag as gtCustomise
process.GlobalTag = gtCustomise(process.GlobalTag, 'auto:run2_data', '')

#--------------------------------------------

#-------------------------------------------

#-----------------------
# Reconstruction Modules
#-----------------------

# Redirecting the SiPixelPhase1 output plots to under SiStrip
from DQM.SiPixelPhase1Common.HistogramManager_cfi import *
DefaultHisto.enabled = True
DefaultHisto.topFolderName = "TrackTimingPixelPhase1"
DefaultHistoDigiCluster.topFolderName=cms.string( "TrackTimingPixelPhase1/Phase1_MechanicalView")
DefaultHistoReadout.topFolderName=cms.string( "TrackTimingPixelPhase1/FED/Readout")
DefaultHistoTrack.topFolderName=cms.string( "TrackTimingPixelPhase1/Phase1_Track")


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

# PixelPhase1 Local Reconstruction
process.load("RecoLocalTracker.SiPixelClusterizer.SiPixelClusterizer_cfi")

# SiPixelTrack cosmics/pp settings
process.load("DQM.SiPixelPhase1Config.SiPixelPhase1OnlineDQM_Timing_cff")

## Collision Reconstruction
process.load("Configuration.StandardSequences.RawToDigi_Data_cff")
#process.siStripDigis.UnpackBadChannels = cms.bool(True)

## 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")
else:
process.load("Configuration.StandardSequences.Reconstruction_cff")


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

#--------------------------
# Service
#--------------------------
process.AdaptorConfig = cms.Service("AdaptorConfig")

# Simple filter for event
process.eventFilter = cms.EDFilter("SimpleEventFilter",
# EventsToSkip = cms.untracked.int32(3)
EventsToSkip = cms.untracked.int32(100)
)

#--------------------------
# Producers
#--------------------------
# Event History Producer
process.load("DPGAnalysis.SiStripTools.eventwithhistoryproducerfroml1abc_cfi")

# APV Phase Producer
process.load("DPGAnalysis.SiStripTools.apvcyclephaseproducerfroml1tsDB_cfi")

#--------------------------
# Filters
#--------------------------
# HLT Filter
# 0=random, 1=physics, 2=calibration, 3=technical
process.hltTriggerTypeFilter = cms.EDFilter("HLTTriggerTypeFilter",
SelectedTriggerType = cms.int32(1)
)

# L1 Trigger Bit Selection (bit 40 and 41 for BSC trigger)
process.load('L1TriggerConfig.L1GtConfigProducers.L1GtTriggerMaskTechTrigConfig_cff')
process.load('HLTrigger/HLTfilters/hltLevel1GTSeed_cfi')
process.hltLevel1GTSeed.L1TechTriggerSeeding = cms.bool(True)
process.hltLevel1GTSeed.L1SeedsLogicalExpression = cms.string('NOT (36 OR 37 OR 38 OR 39)')

# HLT trigger selection (HLT_ZeroBias)
# modified for 0 Tesla HLT menu (no ZeroBias_*)
process.load('HLTrigger.HLTfilters.hltHighLevel_cfi')
process.hltHighLevel.HLTPaths = cms.vstring( 'HLT_ZeroBias_*' , 'HLT_ZeroBias1_*' , 'HLT_PAZeroBias_*' , 'HLT_PAZeroBias1_*', 'HLT_PAL1MinimumBiasHF_OR_SinglePixelTrack_*')
process.hltHighLevel.andOr = cms.bool(True)
process.hltHighLevel.throw = cms.bool(False)

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

process.DQMCommon = cms.Sequence(process.dqmEnv*process.dqmEnvTr*process.dqmSaver)
process.RecoForDQM_LocalReco = cms.Sequence(process.siPixelDigis*process.siStripDigis*process.gtDigis*process.trackerlocalreco*process.gtEvmDigis)

#--------------------------
# Global Plot Switches
#--------------------------

### COSMIC RUN SETTING
if (process.runType.getRunType() == process.runType.cosmic_run or process.runType.getRunType() == process.runType.cosmic_run_stage1):
# event selection for cosmic data
if (process.runType.getRunType() == process.runType.cosmic_run): process.source.SelectEvents = cms.untracked.vstring('HLT*SingleMu*','HLT_L1*')
# Reference run for cosmic
process.DQMStore.referenceFileName = '/dqmdata/dqm/reference/sistrip_reference_cosmic.root'


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

process.ctfWithMaterialTracksCosmics.TTRHBuilder = 'WithTrackAngle'
process.ctfWithMaterialTracksP5LHCNavigation.TTRHBuilder = 'WithTrackAngle'

process.RecoForDQM_TrkReco_cosmic = cms.Sequence(process.offlineBeamSpot*process.MeasurementTrackerEvent*process.tracksP5)


process.p = cms.Path(
process.scalersRawToDigi*
process.APVPhases*
process.consecutiveHEs*
process.hltTriggerTypeFilter*
process.RecoForDQM_LocalReco*
process.DQMCommon*
process.RecoForDQM_TrkReco_cosmic*
process.siPixelPhase1OnlineDQM_source_cosmics*
process.siPixelPhase1OnlineDQM_harvesting
)


#else :
### pp COLLISION SETTING
if (process.runType.getRunType() == process.runType.pp_run or process.runType.getRunType() == process.runType.pp_run_stage1):
#event selection for pp collisions
if (process.runType.getRunType() == process.runType.pp_run):
process.source.SelectEvents = cms.untracked.vstring(
'HLT_L1*',
'HLT_Jet*',
'HLT_Physics*',
'HLT_ZeroBias*',
'HLT_PAL1*',
'HLT_PAZeroBias*',
'HLT_PAAK*'
)

process.DQMStore.referenceFileName = '/dqmdata/dqm/reference/sistrip_reference_pp.root'
# Source and Client config for pp collisions


# Reco for pp collisions
process.load('RecoTracker.IterativeTracking.InitialStepPreSplitting_cff')
process.InitialStepPreSplitting.remove(process.initialStepTrackRefsForJetsPreSplitting)
process.InitialStepPreSplitting.remove(process.caloTowerForTrkPreSplitting)
process.InitialStepPreSplitting.remove(process.ak4CaloJetsForTrkPreSplitting)
process.InitialStepPreSplitting.remove(process.jetsForCoreTrackingPreSplitting)
process.InitialStepPreSplitting.remove(process.siPixelClusters)
process.InitialStepPreSplitting.remove(process.siPixelRecHits)
process.InitialStepPreSplitting.remove(process.MeasurementTrackerEvent)
process.InitialStepPreSplitting.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)

process.Reco = cms.Sequence(process.siPixelDigis*process.siPixelClusters)

process.p = cms.Path(
process.scalersRawToDigi*
process.APVPhases*
process.consecutiveHEs*
process.hltTriggerTypeFilter*
process.RecoForDQM_LocalReco*
process.siPixelClusters*
process.DQMCommon*
##### TRIGGER SELECTION #####
process.hltHighLevel*
process.RecoForDQM_TrkReco*
process.siPixelPhase1OnlineDQM_source_pprun*
process.siPixelPhase1OnlineDQM_harvesting
)

### process customizations included here
from DQM.Integration.config.online_customizations_cfi import *
process = customise(process)
#print process.dumpPython()