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

firststep and pixel tracking for 74X and minor fixes as for 73X #8779

Merged
merged 1 commit into from Apr 22, 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
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