diff --git a/DQM/BeamMonitor/plugins/BeamMonitor.cc b/DQM/BeamMonitor/plugins/BeamMonitor.cc index 5a9a6d799f4ad..9000532818507 100644 --- a/DQM/BeamMonitor/plugins/BeamMonitor.cc +++ b/DQM/BeamMonitor/plugins/BeamMonitor.cc @@ -49,10 +49,15 @@ const char * BeamMonitor::formatFitTime( const time_t & t ) { tm * ptm; ptm = gmtime ( &t ); int year = ptm->tm_year; - if (year < 1995) { - edm::LogError("BadTimeStamp") << "year reported is " << year << "!! resetting to 2011..." << std::endl; - year = 2012; - } + //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 <<" !!"<tm_mon+1,ptm->tm_mday,(ptm->tm_hour+CEST)%24, ptm->tm_min, ptm->tm_sec); #ifdef STRIP_TRAILING_BLANKS_IN_TIMEZONE @@ -263,7 +268,7 @@ void BeamMonitor::beginJob() { h_vy_dz = dbe_->bookProfile("vy_dz","v_{y} vs. dz of selected tracks",dzBin,dzMin,dzMax,dxBin,dxMin,dxMax,""); h_vy_dz->setAxisTitle("dz (cm)",1); - h_vy_dz->setAxisTitle("x coordinate of input track at PCA (cm)",2); + h_vy_dz->setAxisTitle("y coordinate of input track at PCA (cm)",2); h_x0 = dbe_->book1D("BeamMonitorFeedBack_x0","x coordinate of beam spot (Fit)",100,-0.01,0.01); h_x0->setAxisTitle("x_{0} (cm)",1); diff --git a/DQM/Integration/python/test/beam_dqm_sourceclient-live_cfg.py b/DQM/Integration/python/test/beam_dqm_sourceclient-live_cfg.py index fb716e7cba225..611444ffb5d52 100644 --- a/DQM/Integration/python/test/beam_dqm_sourceclient-live_cfg.py +++ b/DQM/Integration/python/test/beam_dqm_sourceclient-live_cfg.py @@ -2,6 +2,12 @@ process = cms.Process("BeamMonitor") +#---------------------------------------------- +# Switch to change between firstStep and Pixel +#----------------------------------------------- + +runFirstStepTrk = True + #---------------------------- # Common part for PP and H.I Running #----------------------------- @@ -33,11 +39,15 @@ #---------------------------- # BeamMonitor #----------------------------- -#process.load("DQM.BeamMonitor.BeamMonitor_cff") # for reducing/normal tracking -process.load("DQM.BeamMonitor.BeamMonitor_Pixel_cff") #for pixel tracks/vertices + +if(runFirstStepTrk): + process.load("DQM.BeamMonitor.BeamMonitor_cff") # for reduced/firsStep/normal tracking +else: + process.load("DQM.BeamMonitor.BeamMonitor_Pixel_cff") #for pixel tracks/vertices + process.load("DQM.BeamMonitor.BeamSpotProblemMonitor_cff") -process.load("DQM.BeamMonitor.BeamMonitorBx_cff") -process.load("DQM.BeamMonitor.BeamMonitor_PixelLess_cff") +#process.load("DQM.BeamMonitor.BeamMonitorBx_cff") +#process.load("DQM.BeamMonitor.BeamMonitor_PixelLess_cff") process.load("DQM.BeamMonitor.BeamConditionsMonitor_cff") @@ -65,10 +75,10 @@ process.dqmBeamMonitor.BeamFitter.AsciiFileName = '/nfshome0/yumiceva/BeamMonitorDQM/BeamFitResults.txt' process.dqmBeamMonitor.BeamFitter.WriteDIPAscii = True process.dqmBeamMonitor.BeamFitter.DIPFileName = '/nfshome0/dqmpro/BeamMonitorDQM/BeamFitResults.txt' -#process.dqmBeamMonitor.BeamFitter.SaveFitResults = False -#process.dqmBeamMonitor.BeamFitter.OutputFileName = '/nfshome0/yumiceva/BeamMonitorDQM/BeamFitResults.root' - process.dqmBeamMonitorBx.BeamFitter.WriteAscii = True - process.dqmBeamMonitorBx.BeamFitter.AsciiFileName = '/nfshome0/yumiceva/BeamMonitorDQM/BeamFitResults_Bx.txt' + #process.dqmBeamMonitor.BeamFitter.SaveFitResults = False + #process.dqmBeamMonitor.BeamFitter.OutputFileName = '/nfshome0/yumiceva/BeamMonitorDQM/BeamFitResults.root' + #process.dqmBeamMonitorBx.BeamFitter.WriteAscii = False + #process.dqmBeamMonitorBx.BeamFitter.AsciiFileName = '/nfshome0/yumiceva/BeamMonitorDQM/BeamFitResults_Bx.txt' ## TKStatus @@ -93,6 +103,10 @@ process.dqmBeamSpotProblemMonitor.AlarmOFFThreshold = 12 process.dqmBeamSpotProblemMonitor.nCosmicTrk = 10 process.dqmBeamSpotProblemMonitor.doTest = False +if (runFirstStepTrk): + process.dqmBeamSpotProblemMonitor.pixelTracks = 'initialStepTracksPreSplitting' +else: + process.dqmBeamSpotProblemMonitor.pixelTracks = 'pixelTracks' process.qTester = cms.EDAnalyzer("QualityTester", @@ -123,7 +137,7 @@ if (process.runType.getRunType() == process.runType.pp_run or process.runType.getRunType() == process.runType.cosmic_run or process.runType.getRunType() == process.runType.hpu_run): - print "Running pp" + print "[beam_dqm_sourceclient-live_cfg]:: Running pp" process.castorDigis.InputLabel = cms.InputTag("rawDataCollector") process.csctfDigis.producer = cms.InputTag("rawDataCollector") @@ -143,50 +157,87 @@ process.load("Configuration.StandardSequences.Reconstruction_cff") - process.load("RecoVertex.PrimaryVertexProducer.OfflinePixel3DPrimaryVertices_cfi") - - # Offline Beam Spot process.load("RecoVertex.BeamSpotProducer.BeamSpot_cff") - process.dqmBeamMonitor.OnlineMode = True process.dqmBeamMonitor.resetEveryNLumi = 5 process.dqmBeamMonitor.resetPVEveryNLumi = 5 process.dqmBeamMonitor.PVFitter.minNrVerticesForFit = 20 process.dqmBeamMonitor.PVFitter.minVertexNdf = 10 - process.dqmBeamMonitor.PVFitter.errorScale = 1.3 #keep checking this with new release - + + + if (runFirstStepTrk): # for first Step Tracking + print "[beam_dqm_sourceclient-live_cfg]:: firstStepTracking" + # Import TrackerLocalReco sequence + process.load('RecoLocalTracker.Configuration.RecoLocalTracker_cff') + # Import MeasurementTrackerEvents used during patter recognition + process.load('RecoTracker.MeasurementDet.MeasurementTrackerEventProducer_cfi') + #Import stuff to run the initial step - PreSplitting - of the + #iterative tracking and remove Calo-related sequences + 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) + + #Increase pT threashold at seeding stage (not so accurate) + process.initialStepSeedsPreSplitting.RegionFactoryPSet.RegionPSet.ptMin = 0.9 + + # some inputs to BeamMonitor + process.dqmBeamMonitor.BeamFitter.TrackCollection = 'initialStepTracksPreSplitting' + process.dqmBeamMonitor.primaryVertex = 'firstStepPrimaryVerticesPreSplitting' + process.dqmBeamMonitor.PVFitter.VertexCollection = 'firstStepPrimaryVerticesPreSplitting' + + process.dqmBeamMonitor.PVFitter.errorScale = 0.95 #keep checking this with new release expected close to 1 + + process.tracking_FirstStep = cms.Sequence( process.siPixelDigis* + process.siStripDigis* + process.pixeltrackerlocalreco* + process.striptrackerlocalreco* + process.offlineBeamSpot* + process.MeasurementTrackerEventPreSplitting* + process.siPixelClusterShapeCachePreSplitting* + process.InitialStepPreSplitting + ) + else: # pixel tracking + print "[beam_dqm_sourceclient-live_cfg]:: pixelTracking" + process.load("RecoVertex.PrimaryVertexProducer.OfflinePixel3DPrimaryVertices_cfi") + #pixel track/vertices reco + process.load("RecoPixelVertexing.Configuration.RecoPixelVertexing_cff") + 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 + + + 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.pixelTracks.OrderedHitsFactoryPSet.GeneratorPSet.SeedComparitorPSet.clusterShapeCacheSrc = cms.InputTag('siPixelClusterShapeCachePreSplitting') + + process.tracking_FirstStep = cms.Sequence(process.siPixelDigis* + process.offlineBeamSpot* + process.siPixelClustersPreSplitting* + process.siPixelRecHitsPreSplitting* + process.siPixelClusterShapeCachePreSplitting* + process.recopixelvertexing + ) + #TriggerName for selecting pv for DIP publication, NO wildcard needed here #it will pick all triggers which has these strings in theri name process.dqmBeamMonitor.jetTrigger = cms.untracked.vstring("HLT_PAZeroBias_v", "HLT_ZeroBias_v", - "HLT_QuadJet60_Di", - "HLT_QuadJet80_L1", - "HLT_QuadJet90_L1") + "HLT_QuadJet") process.dqmBeamMonitor.hltResults = cms.InputTag("TriggerResults","","HLT") - #pixel track/vertices reco - process.load("RecoPixelVertexing.Configuration.RecoPixelVertexing_cff") - - process.pixelVertices.TkFilterParameters.minPt = process.pixelTracks.RegionFactoryPSet.RegionPSet.ptMin - - process.offlinePrimaryVertices.TrackLabel = cms.InputTag("pixelTracks") - - process.tracking_FirstStep = cms.Sequence(process.siPixelDigis* - process.offlineBeamSpot* - process.siPixelClusters* - process.siPixelRecHits* - process.siPixelClusterShapeCache* - process.PixelLayerTriplets* -# process.pixelTracks* -# process.pixelVertices - process.recopixelvertexing - ) - - #--pixel tracking ends here----- process.p = cms.Path(process.scalersRawToDigi *process.dqmTKStatus @@ -205,7 +256,7 @@ #-------------------------------------------------- if (process.runType.getRunType() == process.runType.hi_run): - print "Running HI" + print "beam_dqm_sourceclient-live_cfg:Running HI" process.castorDigis.InputLabel = cms.InputTag("rawDataRepacker") process.csctfDigis.producer = cms.InputTag("rawDataRepacker") process.dttfDigis.DTTF_FED_Source = cms.InputTag("rawDataRepacker") @@ -232,7 +283,7 @@ process.dqmBeamMonitor.BeamFitter.MinimumTotalLayers = 3 ## using pixel triplets process.dqmBeamMonitor.PVFitter.minVertexNdf = 10 process.dqmBeamMonitor.PVFitter.minNrVerticesForFit = 20 - process.dqmBeamMonitor.PVFitter.errorScale = 1.3 + process.dqmBeamMonitor.PVFitter.errorScale = 1.25 process.dqmBeamMonitor.jetTrigger = cms.untracked.vstring("HLT_HI")