Skip to content

Commit

Permalink
Merge pull request #6536 from tlampen/fix-offline-validation-for-cosm…
Browse files Browse the repository at this point in the history
…ics_for73X

BUG FIX: remove hard-coded use of sqlite file and enable parallel offlin...
  • Loading branch information
cmsbuild committed Nov 24, 2014
2 parents 9e9ae19 + 9dc8b06 commit 86618a5
Showing 1 changed file with 301 additions and 12 deletions.
Expand Up @@ -312,18 +312,6 @@
##
process.load("Configuration/StandardSequences/MagneticField_38T_cff")
import CalibTracker.Configuration.Common.PoolDBESSource_cfi
process.conditionsInTrackerAlignmentRcd = CalibTracker.Configuration.Common.PoolDBESSource_cfi.poolDBESSource.clone(connect = cms.string('sqlite_file:/afs/cern.ch/cms/CAF/CMSALCA/ALCA_TRACKERALIGN/MP/MPproduction/mp1193/jobData/jobm/alignments_MP.db'),
toGet = cms.VPSet(cms.PSet(record = cms.string('TrackerAlignmentRcd'),
tag = cms.string('Alignments')
)
)
)
process.prefer_conditionsInTrackerAlignmentRcd = cms.ESPrefer("PoolDBESSource", "conditionsInTrackerAlignmentRcd")
.oO[LorentzAngleTemplate]Oo.
##
Expand Down Expand Up @@ -513,6 +501,307 @@
"""


######################################################################
######################################################################
CosmicsAt0TParallelOfflineValidation="""
import FWCore.ParameterSet.Config as cms
process = cms.Process("OfflineValidator")
process.load("Alignment.OfflineValidation..oO[dataset]Oo._cff")
process.options = cms.untracked.PSet(
wantSummary = cms.untracked.bool(False),
Rethrow = cms.untracked.vstring("ProductNotFound"), # make this exception fatal
fileMode = cms.untracked.string('NOMERGE') # no ordering needed, but calls endRun/beginRun etc. at file boundaries
)
##
## Maximum number of Events
## and number of events to be skipped
## in case of parallel job nIndex
## .oO[nIndex]Oo * .oO[nEvents]Oo/.oO[nJobs]Oo
##
process.maxEvents = cms.untracked.PSet(
input = cms.untracked.int32(.oO[nEvents]Oo./.oO[nJobs]Oo.)
)
process.source.skipEvents=cms.untracked.uint32(.oO[nIndex]Oo.*.oO[nEvents]Oo./.oO[nJobs]Oo.)
##
## Messages & Convenience
##
process.load("FWCore.MessageLogger.MessageLogger_cfi")
process.MessageLogger.cerr = cms.untracked.PSet(placeholder = cms.untracked.bool(True))
process.MessageLogger.cout = cms.untracked.PSet(INFO = cms.untracked.PSet(
reportEvery = cms.untracked.int32(1000) # every 1000th only
# limit = cms.untracked.int32(10) # or limit to 10 printouts...
))
process.MessageLogger.statistics.append('cout')
#-- Track hit filter
# TrackerTrackHitFilter takes as input the tracks/trajectories coming out from TrackRefitter1
process.load("RecoTracker.FinalTrackSelectors.TrackerTrackHitFilter_cff")
process.TrackerTrackHitFilter.src = 'TrackRefitter1'
#-- Alignment Track Selection
process.load("Alignment.CommonAlignmentProducer.AlignmentTrackSelector_cfi")
process.AlignmentTrackSelector.src = 'HitFilteredTracks'
process.AlignmentTrackSelector.filter = True
.oO[TrackSelectionTemplate]Oo.
# Override the pmin setting since not meaningful with B=0T
process.AlignmentTrackSelector.pMin = 4.
#### momentum constraint for 0T
# First momentum constraint
process.load("RecoTracker.TrackProducer.MomentumConstraintProducer_cff")
import RecoTracker.TrackProducer.MomentumConstraintProducer_cff
process.AliMomConstraint1 = RecoTracker.TrackProducer.MomentumConstraintProducer_cff.MyMomConstraint.clone()
process.AliMomConstraint1.src = '.oO[TrackCollection]Oo.'
process.AliMomConstraint1.fixedMomentum = 5.0
process.AliMomConstraint1.fixedMomentumError = 0.005
# Second momentum constraint
#process.load("RecoTracker.TrackProducer.MomentumConstraintProducer_cff")
#import RecoTracker.TrackProducer.MomentumConstraintProducer_cff
#process.AliMomConstraint2 = RecoTracker.TrackProducer.MomentumConstraintProducer_cff.MyMomConstraint.clone()
#process.AliMomConstraint2.src = 'AlignmentTrackSelector'
#process.AliMomConstraint2.fixedMomentum = 5.0
#process.AliMomConstraint2.fixedMomentumError = 0.005
#now we give the TrackCandidate coming out of the TrackerTrackHitFilter to the track producer
import RecoTracker.TrackProducer.CTFFinalFitWithMaterialP5_cff
process.HitFilteredTracks = RecoTracker.TrackProducer.CTFFinalFitWithMaterialP5_cff.ctfWithMaterialTracksCosmics.clone(
src = 'TrackerTrackHitFilter',
NavigationSchool = cms.string(''),
TTRHBuilder = "WithAngleAndTemplate"
### ,
### TrajectoryInEvent = True,
### TTRHBuilder = "WithAngleAndTemplate"
)
##
## Load and Configure TrackRefitter1
##
process.load("RecoTracker.TrackProducer.TrackRefitters_cff")
#############
# parameters for TrackRefitter
#process.load("RecoTracker.TrackProducer.RefitterWithMaterial_cff")
import RecoTracker.TrackProducer.TrackRefitters_cff
process.TrackRefitter1 = process.TrackRefitterP5.clone(
src = '.oO[TrackCollection]Oo.', #'AliMomConstraint1',
TrajectoryInEvent = True,
TTRHBuilder = "WithAngleAndTemplate",
NavigationSchool = "",
constraint = 'momentum', ### SPECIFIC FOR CRUZET
srcConstr='AliMomConstraint1' ### SPECIFIC FOR CRUZET$works only with tag V02-10-02 TrackingTools/PatternTools / or CMSSW >=31X
)
process.TrackRefitter2 = process.TrackRefitter1.clone(
src = 'AlignmentTrackSelector',
srcConstr='AliMomConstraint1',
constraint = 'momentum' ### SPECIFIC FOR CRUZET
)
##
## Get the BeamSpot
##
process.load("RecoVertex.BeamSpotProducer.BeamSpot_cff")
##
## GlobalTag Conditions (if needed)
##
process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff")
process.GlobalTag.globaltag = ".oO[GlobalTag]Oo."
# process.GlobalTag.connect="frontier://FrontierProd/CMS_COND_31X_GLOBALTAG"
.oO[LorentzAngleTemplate]Oo.
##
## Geometry
##
process.load("Configuration.StandardSequences.Geometry_cff")
##
## Magnetic Field
##
#process.load("Configuration/StandardSequences/MagneticField_38T_cff")
process.load("Configuration.StandardSequences.MagneticField_0T_cff") # 0T runs
.oO[condLoad]Oo.
##
## Load and Configure OfflineValidation
##
process.load("Alignment.OfflineValidation.TrackerOfflineValidation_.oO[offlineValidationMode]Oo._cff")
process.TrackerOfflineValidation.oO[offlineValidationMode]Oo..Tracks = 'TrackRefitter2'
process.TrackerOfflineValidation.oO[offlineValidationMode]Oo..trajectoryInput = 'TrackRefitter2'
process.TrackerOfflineValidation.oO[offlineValidationMode]Oo..moduleLevelHistsTransient = cms.bool(.oO[offlineModuleLevelHistsTransient]Oo.)
process.TFileService.fileName = '.oO[outputFile]Oo.'
##
## PATH
##
process.p = cms.Path(process.offlineBeamSpot*process.AliMomConstraint1*process.TrackRefitter1*process.TrackerTrackHitFilter*process.HitFilteredTracks
*process.AlignmentTrackSelector*process.TrackRefitter2*process.seqTrackerOfflineValidation.oO[offlineValidationMode]Oo.)
"""


######################################################################
######################################################################
CosmicsParallelOfflineValidation="""
import FWCore.ParameterSet.Config as cms
process = cms.Process("OfflineValidator")
process.load("Alignment.OfflineValidation..oO[dataset]Oo._cff")
process.options = cms.untracked.PSet(
wantSummary = cms.untracked.bool(False),
Rethrow = cms.untracked.vstring("ProductNotFound"), # make this exception fatal
fileMode = cms.untracked.string('NOMERGE') # no ordering needed, but calls endRun/beginRun etc. at file boundaries
)
##
## Maximum number of Events
## and number of events to be skipped
## in case of parallel job nIndex
## .oO[nIndex]Oo * .oO[nEvents]Oo/.oO[nJobs]Oo
##
process.maxEvents = cms.untracked.PSet(
input = cms.untracked.int32(.oO[nEvents]Oo./.oO[nJobs]Oo.)
)
process.source.skipEvents=cms.untracked.uint32(.oO[nIndex]Oo.*.oO[nEvents]Oo./.oO[nJobs]Oo.)
##
## Messages & Convenience
##
process.load("FWCore.MessageLogger.MessageLogger_cfi")
process.MessageLogger.cerr = cms.untracked.PSet(placeholder = cms.untracked.bool(True))
process.MessageLogger.cout = cms.untracked.PSet(INFO = cms.untracked.PSet(
reportEvery = cms.untracked.int32(1000) # every 1000th only
# limit = cms.untracked.int32(10) # or limit to 10 printouts...
))
process.MessageLogger.statistics.append('cout')
##
## Get the BeamSpot
##
process.load("RecoVertex.BeamSpotProducer.BeamSpot_cff")
#-- Refitting
process.load("RecoTracker.TrackProducer.TrackRefitters_cff")
##-- Track hit filter
## TrackerTrackHitFilter takes as input the tracks/trajectories coming out from TrackRefitter1
#process.load("RecoTracker.FinalTrackSelectors.TrackerTrackHitFilter_cff")
#process.TrackerTrackHitFilter.src = 'TrackRefitter1'
#-- 1st refit from file
process.TrackRefitter1 = process.TrackRefitterP5.clone(
src ='ALCARECOTkAlCosmicsCTF0T',
NavigationSchool = cms.string(''),
TrajectoryInEvent = True,
TTRHBuilder = "WithAngleAndTemplate" #default
)
#-- 2nd fit for AlignmentProducer
process.TrackRefitter2 = process.TrackRefitter1.clone(
src = 'AlignmentTrackSelector'
)
#-- Filter bad hits
process.load("RecoTracker.FinalTrackSelectors.TrackerTrackHitFilter_cff")
process.TrackerTrackHitFilter.src = 'TrackRefitter1'
process.TrackerTrackHitFilter.useTrajectories= True # this is needed only if you require some selections; but it will work even if you don't ask for them
process.TrackerTrackHitFilter.minimumHits = 8
process.TrackerTrackHitFilter.commands = cms.vstring("keep PXB","keep PXE","keep TIB","keep TID","keep TOB","keep TEC")
process.TrackerTrackHitFilter.detsToIgnore = []
process.TrackerTrackHitFilter.replaceWithInactiveHits = True
process.TrackerTrackHitFilter.stripAllInvalidHits = False
process.TrackerTrackHitFilter.rejectBadStoNHits = True
process.TrackerTrackHitFilter.StoNcommands = cms.vstring("ALL 18.0")
process.TrackerTrackHitFilter.rejectLowAngleHits = True
process.TrackerTrackHitFilter.TrackAngleCut = 0.35# in rads, starting from the module surface
process.TrackerTrackHitFilter.usePixelQualityFlag = True #False
#-- TrackProducer
## now we give the TrackCandidate coming out of the TrackerTrackHitFilter to the track producer
import RecoTracker.TrackProducer.CTFFinalFitWithMaterialP5_cff
process.TrackCandidateFitter = RecoTracker.TrackProducer.CTFFinalFitWithMaterialP5_cff.ctfWithMaterialTracksCosmics.clone(
src = 'TrackerTrackHitFilter',
NavigationSchool = cms.string(''),
TTRHBuilder = "WithAngleAndTemplate"
)
#-- Filter tracks for alignment
process.load("Alignment.CommonAlignmentProducer.AlignmentTrackSelector_cfi")
process.AlignmentTrackSelector.src = 'TrackCandidateFitter'
process.AlignmentTrackSelector.applyBasicCuts = True
process.AlignmentTrackSelector.pMin = 4
process.AlignmentTrackSelector.pMax = 9999.
process.AlignmentTrackSelector.ptMin = 0
process.AlignmentTrackSelector.etaMin = -999.
process.AlignmentTrackSelector.etaMax = 999.
process.AlignmentTrackSelector.nHitMin = 8
process.AlignmentTrackSelector.nHitMin2D = 2
process.AlignmentTrackSelector.chi2nMax = 99.
process.AlignmentTrackSelector.applyMultiplicityFilter = True# False
process.AlignmentTrackSelector.maxMultiplicity = 1
## GlobalTag Conditions (if needed)
##
process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff")
process.GlobalTag.globaltag = ".oO[GlobalTag]Oo."
##
## Geometry
##
process.load("Configuration.StandardSequences.GeometryDB_cff")
##
## Magnetic Field
##
process.load("Configuration/StandardSequences/MagneticField_38T_cff")
.oO[LorentzAngleTemplate]Oo.
##
## Geometry
##
#process.load("Configuration.StandardSequences.Geometry_cff")
.oO[condLoad]Oo.
##
## Load and Configure OfflineValidation
##
process.load("Alignment.OfflineValidation.TrackerOfflineValidation_.oO[offlineValidationMode]Oo._cff")
process.TrackerOfflineValidation.oO[offlineValidationMode]Oo..Tracks = 'TrackRefitter2'
process.TrackerOfflineValidation.oO[offlineValidationMode]Oo..trajectoryInput = 'TrackRefitter2'
process.TrackerOfflineValidation.oO[offlineValidationMode]Oo..moduleLevelHistsTransient = cms.bool(.oO[offlineModuleLevelHistsTransient]Oo.)
process.TrackerOfflineValidation.oO[offlineValidationMode]Oo..moduleLevelProfiles = cms.bool(.oO[offlineModuleLevelProfiles]Oo.)
process.TFileService.fileName = '.oO[outputFile]Oo.'
##
## PATH
##
process.p = cms.Path( process.offlineBeamSpot
*process.TrackRefitter1
*process.TrackerTrackHitFilter
*process.TrackCandidateFitter
*process.AlignmentTrackSelector
*process.TrackRefitter2
*process.seqTrackerOfflineValidationStandalone
)
"""

######################################################################
######################################################################
TrackSelectionCosmicsDuringCollisions = """
Expand Down

0 comments on commit 86618a5

Please sign in to comment.