Skip to content

Commit

Permalink
Merge pull request #8779 from sushilchauhan/beamSpot15
Browse files Browse the repository at this point in the history
firststep and pixel tracking for 74X and minor fixes as for 73X
  • Loading branch information
cmsbuild committed Apr 22, 2015
2 parents 9a58011 + c1f920d commit 004f53c
Show file tree
Hide file tree
Showing 2 changed files with 100 additions and 44 deletions.
15 changes: 10 additions & 5 deletions DQM/BeamMonitor/plugins/BeamMonitor.cc
Expand Up @@ -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 <<" !!"<<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);

#ifdef STRIP_TRAILING_BLANKS_IN_TIMEZONE
Expand Down Expand Up @@ -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);
Expand Down
129 changes: 90 additions & 39 deletions DQM/Integration/python/test/beam_dqm_sourceclient-live_cfg.py
Expand Up @@ -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
#-----------------------------
Expand Down Expand Up @@ -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")


Expand Down Expand Up @@ -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
Expand All @@ -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",
Expand Down Expand Up @@ -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")
Expand All @@ -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
Expand All @@ -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")
Expand All @@ -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")

Expand Down

0 comments on commit 004f53c

Please sign in to comment.