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

back port of pixel lumi dqm from 76X to 75X #10074

Merged
merged 3 commits into from
Jul 31, 2015
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.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
248 changes: 91 additions & 157 deletions DQM/Integration/python/test/pixellumi_dqm_sourceclient-live_cfg.py
100644 → 100755
Original file line number Diff line number Diff line change
@@ -1,191 +1,125 @@
######################################################################
## File: pixellumidqm_live_cfg.py
##
## Unpacks AlCaLumiPixels, then runs some basic selection,
## followed by the PixelLumi Calculation, separately for the three trigger types.
## NB: only one, ZeroBias trigger, used for now.
## Bug Adder: Amita Raval
######################################################################
import FWCore.ParameterSet.Config as cms
import os

#####################
# Configurable pieces
#####################

process = cms.Process("PixelLumiDQM")

#-------------------------------
# Import standard configurations
#-------------------------------
process.load('Configuration.StandardSequences.Services_cff')
#process.load('Configuration.EventContent.EventContent_cff')
process.load('FWCore.MessageService.MessageLogger_cfi')
#process.load('SimGeneral.HepPDTESSource.pythiapdt_cfi')
process.MessageLogger = cms.Service("MessageLogger",
debugModules = cms.untracked.vstring('siPixelDigis',
'sipixelEDAClient'),
cout = cms.untracked.PSet(threshold = cms.untracked.string('ERROR')),
destinations = cms.untracked.vstring('cout')
)

#----------------------------
# Event Source
#-----------------------------
# for live online DQM in P5
process.load("DQM.Integration.test.inputsource_cfi")

# for testing in lxplus
#process.load("DQM.Integration.test.fileinputsource_cfi")

##
#----------------------------
# DQM Environment
#-----------------------------
process.load("DQMServices.Components.DQMEnvironment_cfi")

#---------------
#----------------------------
# DQM Live Environment
#-----------------------------
process.load("DQM.Integration.test.environment_cfi")
process.dqmEnv.subSystemFolder = "PixelLumi"
# for local running
process.dqmSaver.dirName = '.'

process.source.SelectEvents = cms.untracked.vstring("HLT_ZeroBias*")
#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'

if (process.runType.getRunType() == process.runType.cosmic_run):
process.source.SelectEvents = cms.untracked.vstring('HLT*SingleMu*')

#----------------------------
# Magnetic Field
#---------------
#-----------------------------
# 3.8T field
process.load('Configuration.StandardSequences.MagneticField_AutoFromDBCurrent_cff')
#process.load('Configuration.StandardSequences.MagneticField_38T_cff')

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

#----------
#-------------------------------------------------
# GLOBALTAG
#----------
#-------------------------------------------------
# Condition for P5 cluster
process.load("DQM.Integration.test.FrontierCondition_GT_cfi")
# Condition for lxplus
#process.load("DQM.Integration.test.FrontierCondition_GT_Offline_cfi")

#----------------
# DQM Environment
#----------------
process.load("DQMServices.Components.DQMEnvironment_cfi")

#-----------------------------------------------------------------------------
# DQM Live Environment (for integration, replace with standard for deployment)
#-----------------------------------------------------------------------------
process.load("DQM.Integration.test.environment_cfi")
process.dqmEnv.subSystemFolder = "PixelLumi"
process.dqmSaver.dirName = '.'
#------------------------
#-----------------------
# Reconstruction Modules
#------------------------
# Replace the whole reco config with just the local pixel reco
#-------------------------------------------------------------
#process.load('Configuration.StandardSequences.Reconstruction_cff')
#process.load("Configuration.StandardSequences.ReconstructionCosmics_cff")
#process.load("RecoLocalTracker.SiPixelRecHits.SiPixelRecHits_cfi")
#process.load("RecoLocalTracker.SiPixelRecHits.PixelCPEESProducers_cff")
#-----------------------
# Real data raw to digi
process.load("EventFilter.SiPixelRawToDigi.SiPixelRawToDigi_cfi")
process.siPixelDigis.IncludeErrors = True

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

#----------------------------------
# High Pileup Configuration Changes
#----------------------------------
#if (process.runType.getRunType() == process.runType.hpu_run):
# process.DQMEventStreamHttpReader.SelectEvents = cms.untracked.PSet(
# SelectEvents = cms.vstring('HLT_600Tower*','HLT_L1*','HLT_Jet*','HLT_*Cosmic*','HLT_HT*','HLT_MinBias_*','HLT_Physics*', 'HLT_ZeroBias*','HLT_HcalNZS*'))


process.siPixelDigis.InputLabel = cms.InputTag("rawDataCollector")
#--------------------------------
# Data - raw to digi; just pixels
# Heavy Ion Configuration Changes
#--------------------------------
#process.load("Configuration.StandardSequences.RawToDigi_cff")
#process.load('Configuration.StandardSequences.RawToDigi_Data_cff')
#process.load('Configuration.StandardSequences.EndOfProcess_cff')
process.load("EventFilter.SiPixelRawToDigi.SiPixelRawToDigi_cfi")
process.siPixelDigis.InputLabel = 'source'
process.siPixelDigis.IncludeErrors = True
if (process.runType.getRunType() == process.runType.hi_run):
process.load('Configuration.StandardSequences.RawToDigi_Repacked_cff')
process.siPixelDigis.InputLabel = cms.InputTag("rawDataRepacker")
# process.DQMEventStreamHttpReader.SelectEvents = cms.untracked.PSet(
# SelectEvents = cms.vstring('HLT_HI*'))

#--------------------------
# Pixel DQM Source and Client
#----------------------
process.load("DQM.PixelLumi.PixelLumiDQM_cfi")

process.dqmSaver.producer = "Playback"

#--------
# Filters
#--------
# HLT Filters: trigger path filters for 3 triggers in the AlCaLumi stream
# NB: Only ZeroBiasSelector_cfi being used for now
process.load("DQM.PixelLumi.ZeroBiasSelector_cfi")
process.load("DQM.PixelLumi.AlCaLumiPixelsZeroBiasSelector_cfi")
process.load("DQM.PixelLumi.RandomTriggerSelector_cfi")

# Make three instances of pixel_lumi_dqm; only 1 being used for now
#------------------------------------------------------------------
from DQM.PixelLumi.PixelLumiDQM_cfi import pixel_lumi_dqm

process.PixelLumiDqmAlcaLumiPixel = pixel_lumi_dqm

process.PixelLumiDqmZeroBias = pixel_lumi_dqm.clone(
resetEveryNLumiSections=cms.untracked.int32(1),
logFileName = cms.untracked.string("/nfshome0/dqmdev/pixel_lumi.txt")
)
if process.dqmSaver.producer.value() is "Playback":
process.PixelLumiDqmZeroBias.logFileName = cms.untracked.string("/nfshome0/dqmdev/pixel_lumi.txt")
process.pixel_lumi_dqm.logFileName = cms.untracked.string("pixel_lumi.txt")
else:
process.PixelLumiDqmZeroBias.logFileName = cms.untracked.string("/nfshome0/dqmpro/pixel_lumi.txt")
process.pixel_lumi_dqm.logFileName = cms.untracked.string("/nfshome0/dqmpro/pixel_lumi.txt")

print process.pixel_lumi_dqm.logFileName

process.PixelLumiDqmRandom = pixel_lumi_dqm.clone(
resetEveryNLumiSections=cms.untracked.int32(20)
)
#--------------------------
# Service
#--------------------------
process.AdaptorConfig = cms.Service("AdaptorConfig")

process.PixelLumiDqmHFGetter = cms.EDAnalyzer("HFLumiGetter")
#--------------------------
# Filters
#--------------------------

#----------------
# Lumi from "DIP"
#-------------------------------------------------
# process.DBService=cms.Service('DBService',
# authPath= cms.untracked.string('/nfshome0/centraltspro/secure/')
# )
process.GlobalTag.DBParameters.authenticationPath = cms.untracked.string('/nfshome0/centraltspro/secure/')
# process.DIPLumiProducer=cms.ESSource("DIPLumiProducer",
# connect=cms.string('oracle://cms_omds_lb/CMS_RUNTIME_LOGGER')
# #Zhen recommends:
# # connect=cms.string('oracle://cms_orcon_prod/cms_lumi_prod')
# # crashes at end of lumisection
# )

process.options = cms.untracked.PSet(
wantSummary = cms.untracked.bool(True)
)
process.MessageLogger.cerr.threshold = cms.untracked.string("INFO")
process.MessageLogger.cerr.INFO.limit = cms.untracked.int32(-1)
process.MessageLogger.cerr.FwkReport.reportEvery = cms.untracked.int32(100)

#-------------
# Input Source
#-------------
process.load("DQM.Integration.test.inputsource_cfi")
#process.DQMEventStreamHttpReader.consumerName = 'DQM Pixel Luminosity Consumer'
#process.DQMEventStreamHttpReader.SelectHLTOutput = cms.untracked.string('hltOutputALCALUMIPIXELS')
#process.DQMEventStreamHttpReader.maxEventRequestRate = cms.untracked.double(200.0)
#process.DQMEventStreamHttpReader.SelectEvents = cms.untracked.PSet(SelectEvents = cms.vstring('AlCa_LumiPixels_ZeroBias_v*'))


# Only unpack pixel data; there is nothing else, really.
process.MyRawToDigi = cms.Sequence(process.siPixelDigis)
# Change this to test without stable beams
process.siPixelDigis.InputLabel = cms.InputTag("hltFEDSelectorLumiPixels")
#process.siPixelDigis.InputLabel = cms.InputTag("rawDataCollector")

# Only reconstruct the pixel clusters.
process.MyReconstruction = cms.Sequence(process.siPixelClusters)
process.reconstruction_step = cms.Path(process.MyReconstruction)

#-------------
# DQM services
#-------------
process.dqm_step = cms.Path(process.dqmEnv*process.dqmSaver)

# Lumi DQM settings. These are from J's code, now default in the _cfi for PixelLumiDQM.
#process.pixel_lumi_tupler.includeVertexInfo = cms.untracked.bool(False)
#process.pixel_lumi_tupler.includeTrackInfo = cms.untracked.bool(False)
#process.pixel_lumi_tupler.includeStripClusterInfo = cms.untracked.bool(False)

#-------------------------------
# Path and schedule definitions.
#-------------------------------
process.raw2digi_step = cms.Path(process.MyRawToDigi)
process.HF = cms.Path(process.PixelLumiDqmHFGetter)
#process.plumdqm_alca_lumipixel_step = cms.Path(process.alca_lumi_pixels_zerobias_selector*
# process.PixelLumiDqmAlcaLumiPixel)
process.plumdqm_alca_zerobias_step = cms.Path(
#process.scraping_filter * # this seems to need tracks so cannot be used
process.zerobias_selector *
process.PixelLumiDqmZeroBias)
#
#process.plumdqm_alca_random_step = cms.Path(
# process.scraping_filter * # this seems to need tracks so cannot be used
# process.random_trigger_selector *
# process.PixelLumiDqmRandom)

#--------------------
# Schedule definition
#--------------------
process.schedule = cms.Schedule(process.raw2digi_step,
process.reconstruction_step,
# process.HF,
process.plumdqm_alca_zerobias_step,
#process.plumdqm_alca_random_step,
process.dqm_step)
#--------------------------
# Scheduling
#--------------------------
process.Reco = cms.Sequence(process.siPixelDigis*process.siPixelClusters)
process.DQMmodules = cms.Sequence(process.dqmEnv*
process.pixel_lumi_dqm*
process.dqmSaver)

process.p = cms.Path(process.Reco*process.DQMmodules)

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

######################################################################
18 changes: 18 additions & 0 deletions DQM/PixelLumi/plugins/BuildFile.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<use name="DataFormats/Common"/>
<use name="DataFormats/DetId"/>
<use name="DataFormats/GeometryVector"/>
<use name="DataFormats/SiPixelDetId"/>
<use name="DataFormats/SiPixelCluster"/>
<use name="DQMServices/Core"/>
<use name="FWCore/Framework"/>
<use name="FWCore/ParameterSet"/>
<use name="FWCore/MessageLogger"/>
<use name="FWCore/ServiceRegistry"/>
<use name="FWCore/Utilities"/>
<use name="Geometry/CommonTopologies"/>
<use name="Geometry/Records"/>
<use name="Geometry/TrackerGeometryBuilder"/>

<library name="DQMPLumDQMPlugins" file="*.cc">
<flags EDM_PLUGIN="1"/>
</library>