Skip to content

Commit

Permalink
Merge pull request #14315 from sushilchauhan/dqmOnlineBSconfig_cmssw806
Browse files Browse the repository at this point in the history
update dqm  client config for online beam spot running pixel tracking
  • Loading branch information
cmsbuild committed May 11, 2016
2 parents 36953fc + 15809a9 commit 11b05ea
Show file tree
Hide file tree
Showing 2 changed files with 112 additions and 43 deletions.
18 changes: 15 additions & 3 deletions DQM/BeamMonitor/plugins/BeamMonitor.cc
Expand Up @@ -37,6 +37,7 @@ V00-03-25
#include <TMath.h>
#include <iostream>
#include <TStyle.h>
#include <ctime>

using namespace std;
using namespace edm;
Expand All @@ -45,17 +46,28 @@ void BeamMonitor::formatFitTime(char *ts, const time_t & t ) {
#define CET (+1)
#define CEST (+2)

//tm * ptm;
//ptm = gmtime ( &t );
//int year = ptm->tm_year;

//get correct year from ctime
time_t currentTime;
struct tm *localTime;
time( &currentTime ); // Get the current time
localTime = localtime( &currentTime ); // Convert the current time to the local time
int year = localTime->tm_year + 1900;

tm * ptm;
ptm = gmtime ( &t );
int year = ptm->tm_year;

//check if year is ok
if (year <= 37) year += 2000;
if (year >= 70 && year <= 137) year += 1900;

if (year < 1995){
edm::LogError("BadTimeStamp") << "year reported is " << year <<" !!"<<std::endl;
year = 2015; //overwritten later by BeamFitter.cc for fits but needed here for TH1
edm::LogError("BadTimeStamp") << "Resetting to " <<year<<std::endl;
//year = 2015; //overwritten later by BeamFitter.cc for fits but needed here for TH1
//edm::LogError("BadTimeStamp") << "Resetting to " <<year<<std::endl;
}
sprintf( ts, "%4d-%02d-%02d %02d:%02d:%02d", year,ptm->tm_mon+1,ptm->tm_mday,(ptm->tm_hour+CEST)%24, ptm->tm_min, ptm->tm_sec);

Expand Down
137 changes: 97 additions & 40 deletions DQM/Integration/python/clients/beam_dqm_sourceclient-live_cfg.py
Expand Up @@ -6,7 +6,7 @@
# Switch to change between firstStep and Pixel
#-----------------------------------------------

runFirstStepTrk = True
runFirstStepTrk = False

#----------------------------
# Common part for PP and H.I Running
Expand Down Expand Up @@ -158,7 +158,10 @@

process.load("Configuration.StandardSequences.Reconstruction_cff")
# Offline Beam Spot
process.load("RecoVertex.BeamSpotProducer.BeamSpot_cff")
#process.load("RecoVertex.BeamSpotProducer.BeamSpot_cff")
# copy from online
import RecoVertex.BeamSpotProducer.BeamSpotOnline_cfi
offlineBeamSpot = RecoVertex.BeamSpotProducer.BeamSpotOnline_cfi.onlineBeamSpotProducer.clone()

process.dqmBeamMonitor.OnlineMode = True
process.dqmBeamMonitor.resetEveryNLumi = 5
Expand All @@ -184,7 +187,9 @@
process.InitialStepPreSplitting.remove(process.siPixelRecHits)
process.InitialStepPreSplitting.remove(process.MeasurementTrackerEvent)
process.InitialStepPreSplitting.remove(process.siPixelClusterShapeCache)

# if z is very far due to bad fit
process.initialStepSeedsPreSplitting.RegionFactoryPSet.RegionPSet.originRadius = 1.5
process.initialStepSeedsPreSplitting.RegionFactoryPSet.RegionPSet.originHalfLength = cms.double(30.0)
#Increase pT threashold at seeding stage (not so accurate)
process.initialStepSeedsPreSplitting.RegionFactoryPSet.RegionPSet.ptMin = 0.9

Expand All @@ -206,13 +211,15 @@
)
else: # pixel tracking
print "[beam_dqm_sourceclient-live_cfg]:: pixelTracking"
process.load("RecoVertex.PrimaryVertexProducer.OfflinePixel3DPrimaryVertices_cfi")
#pixel track/vertices reco
from RecoTracker.TkTrackingRegions.GlobalTrackingRegion_cfi import *
process.RegionPSetBlock.RegionPSet.originRadius = cms.double(0.4)

process.load("RecoPixelVertexing.Configuration.RecoPixelVertexing_cff")
process.PixelTrackReconstructionBlock.RegionFactoryPSet = cms.PSet(RegionPSetBlock, ComponentName = cms.string("GlobalTrackingRegion"))
process.pixelVertices.TkFilterParameters.minPt = process.pixelTracks.RegionFactoryPSet.RegionPSet.ptMin
process.offlinePrimaryVertices.TrackLabel = cms.InputTag("pixelTracks")

process.dqmBeamMonitor.PVFitter.errorScale = 1.25 #keep checking this with new release expected close to 1.2
process.dqmBeamMonitor.PVFitter.errorScale = 1.22 #keep checking this with new release expected close to 1.2


from RecoTracker.TkSeedingLayers.PixelLayerTriplets_cfi import *
Expand Down Expand Up @@ -280,59 +287,108 @@
process.dqmBeamMonitor.OnlineMode = True ## in MC the LS are not ordered??
process.dqmBeamMonitor.resetEveryNLumi = 10
process.dqmBeamMonitor.resetPVEveryNLumi = 10

process.dqmBeamMonitor.BeamFitter.MinimumTotalLayers = 3 ## using pixel triplets
process.dqmBeamMonitor.PVFitter.minVertexNdf = 10
process.dqmBeamMonitor.BeamFitter.MinimumPixelLayers = 3
process.dqmBeamMonitor.BeamFitter.MaximumNormChi2 = 30.0

process.dqmBeamMonitor.PVFitter.minVertexNdf = 4
process.dqmBeamMonitor.PVFitter.minNrVerticesForFit = 20
process.dqmBeamMonitor.PVFitter.errorScale = 1.25
process.dqmBeamMonitor.PVFitter.errorScale = 1.25 ## taken from 2012 pixel vtx studies

process.dqmBeamMonitor.jetTrigger = cms.untracked.vstring("HLT_HI")

process.dqmBeamMonitor.hltResults = cms.InputTag("TriggerResults","","HLT")
process.dqmBeamSpotProblemMonitor.pixelTracks = 'hiPixel3PrimTracks'

# copy from online
import RecoVertex.BeamSpotProducer.BeamSpotOnline_cfi
offlineBeamSpot = RecoVertex.BeamSpotProducer.BeamSpotOnline_cfi.onlineBeamSpotProducer.clone()

## Load Heavy Ion Sequence
process.load("Configuration.StandardSequences.ReconstructionHeavyIons_cff") ## HI sequences

process.load('RecoLocalTracker.Configuration.RecoLocalTrackerHeavyIons_cff')
from RecoPixelVertexing.PixelLowPtUtilities.siPixelClusterShapeCache_cfi import *
from RecoPixelVertexing.PixelLowPtUtilities.siPixelClusterShapeCache_cfi import *
siPixelClusterShapeCachePreSplitting = siPixelClusterShapeCache.clone(
src = 'siPixelClustersPreSplitting'
)

# Select events based on the pixel cluster multiplicity
import HLTrigger.special.hltPixelActivityFilter_cfi
process.multFilter = HLTrigger.special.hltPixelActivityFilter_cfi.hltPixelActivityFilter.clone(
inputTag = cms.InputTag('siPixelClusters'),
inputTag = cms.InputTag('siPixelClustersPreSplitting'),
minClusters = cms.uint32(150),
maxClusters = cms.uint32(50000)
maxClusters = cms.uint32(10000) #80% efficiency in HI MC
)

process.filter_step = cms.Sequence( process.siPixelDigis
*process.siPixelClusters
#*process.multFilter
*process.siPixelClustersPreSplitting
*process.multFilter
)


from RecoHI.HiTracking.HIPixelVerticesPreSplitting_cff import *

process.PixelLayerTriplets.BPix.HitProducer = cms.string('siPixelRecHitsPreSplitting')
process.PixelLayerTriplets.FPix.HitProducer = cms.string('siPixelRecHitsPreSplitting')

process.hiPixel3PrimTracks.FilterPSet = cms.PSet(
ComponentName = cms.string('HIPixelTrackFilter'),
VertexCollection = cms.InputTag("hiSelectedVertexPreSplitting"),
chi2 = cms.double(1000.0),
clusterShapeCacheSrc = cms.InputTag("siPixelClusterShapeCachePreSplitting"),
lipMax = cms.double(0.3),
nSigmaLipMaxTolerance = cms.double(0),
nSigmaTipMaxTolerance = cms.double(6.0),
ptMin = cms.double(0.9),
tipMax = cms.double(0),
useClusterShape = cms.bool(False)
)

process.hiPixel3PrimTracks.RegionFactoryPSet = cms.PSet(
ComponentName = cms.string('GlobalTrackingRegionWithVerticesProducer'),
RegionPSet = cms.PSet(
VertexCollection = cms.InputTag("hiSelectedVertexPreSplitting"),
beamSpot = cms.InputTag("offlineBeamSpot"),
fixedError = cms.double(0.2),
nSigmaZ = cms.double(3.0),
originRadius = cms.double(0.1),
precise = cms.bool(True),
ptMin = cms.double(0.9),
sigmaZVertex = cms.double(3.0),
useFixedError = cms.bool(True),
useFoundVertices = cms.bool(True)
)
)
process.hiPixel3PrimTracks.OrderedHitsFactoryPSet.GeneratorPSet.SeedComparitorPSet.clusterShapeCacheSrc = cms.InputTag('siPixelClusterShapeCachePreSplitting')
process.hiPixel3PrimTracks.OrderedHitsFactoryPSet.GeneratorPSet.SeedComparitorPSet.clusterShapeCacheSrc = cms.InputTag('siPixelClusterShapeCachePreSplitting')
## From HI group
process.HIRecoForDQM = cms.Sequence( process.siPixelDigis
*process.siPixelClusters
*process.siPixelRecHits
*process.offlineBeamSpot
*process.hiPixelVertices
*process.hiPixel3PrimTracks
)

*process.siStripDigis
*process.offlineBeamSpot #<-clone of onlineBS
*process.pixeltrackerlocalreco
*process.striptrackerlocalreco
*process.MeasurementTrackerEventPreSplitting
*process.siPixelClusterShapeCachePreSplitting
*process.hiPixelVerticesPreSplitting
*process.PixelLayerTriplets
*process.hiPixel3PrimTracks
)

# use HI pixel tracking and vertexing
process.dqmBeamMonitor.BeamFitter.TrackCollection = cms.untracked.InputTag('hiPixel3PrimTracks')
process.dqmBeamMonitorBx.BeamFitter.TrackCollection = cms.untracked.InputTag('hiPixel3PrimTracks')
process.dqmBeamMonitor.primaryVertex = cms.untracked.InputTag('hiSelectedVertex')
process.dqmBeamMonitor.PVFitter.VertexCollection = cms.untracked.InputTag('hiSelectedVertex')


# make pixel vertexing less sensitive to incorrect beamspot
process.hiPixel3ProtoTracks.RegionFactoryPSet.RegionPSet.originRadius = 0.2
process.hiPixel3ProtoTracks.RegionFactoryPSet.RegionPSet.fixedError = 0.5
process.hiSelectedProtoTracks.maxD0Significance = 100
process.hiPixelAdaptiveVertex.TkFilterParameters.maxD0Significance = 100
process.hiPixelAdaptiveVertex.vertexCollections.useBeamConstraint = False
#not working due to wrong tag of reco
process.hiPixelAdaptiveVertex.vertexCollections.maxDistanceToBeam = 1.0




process.dqmBeamMonitor.primaryVertex = cms.untracked.InputTag('hiSelectedVertexPreSplitting')
process.dqmBeamMonitor.PVFitter.VertexCollection = cms.untracked.InputTag('hiSelectedVertexPreSplitting')


# make pixel VERTEXING less sensitive to incorrect beamspot
process.hiPixel3ProtoTracksPreSplitting.RegionFactoryPSet.RegionPSet.originRadius = 0.2 #default 0.2
process.hiPixel3ProtoTracksPreSplitting.RegionFactoryPSet.RegionPSet.fixedError = 0.5 #default 3.0
process.hiSelectedProtoTracksPreSplitting.maxD0Significance = 100 #default 5.0
process.hiPixelAdaptiveVertexPreSplitting.TkFilterParameters.maxD0Significance = 100 #default 3.0
process.hiPixelAdaptiveVertexPreSplitting.vertexCollections.useBeamConstraint = False #default False
process.hiPixelAdaptiveVertexPreSplitting.vertexCollections.maxDistanceToBeam = 1.0 #default 0.1


process.p = cms.Path(process.scalersRawToDigi
*process.dqmTKStatus
*process.hltTriggerTypeFilter
Expand All @@ -341,4 +397,5 @@
*process.dqmcommon
*process.monitor
*process.BeamSpotProblemModule)


0 comments on commit 11b05ea

Please sign in to comment.