Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-11-25 02:29:07

0001 import FWCore.ParameterSet.Config as cms
0002 import sys
0003 from enum import Enum
0004 import FWCore.ParameterSet.VarParsing as VarParsing
0005 from Configuration.StandardSequences.Eras import eras
0006 from Alignment.OfflineValidation.TkAlAllInOneTool.defaultInputFiles_cff import filesDefaultMC_TTBarPU 
0007 
0008 process = cms.Process("Demo") 
0009 
0010 options = VarParsing.VarParsing ()
0011 options.register('maxEvents',
0012                  -1,
0013                  VarParsing.VarParsing.multiplicity.singleton,
0014                  VarParsing.VarParsing.varType.int,
0015                  "number of events to process (\"-1\" for all)")
0016 options.parseArguments()
0017 
0018 ###################################################################
0019 # Event source and run selection
0020 ###################################################################
0021 process.source = cms.Source("PoolSource",
0022                             fileNames = filesDefaultMC_TTBarPU,
0023                             duplicateCheckMode = cms.untracked.string('checkAllFilesOpened')
0024                             )
0025 
0026 process.maxEvents = cms.untracked.PSet( input = cms.untracked.int32(options.maxEvents) )
0027 
0028 ###################################################################
0029 # Messages
0030 ###################################################################
0031 process.load('FWCore.MessageService.MessageLogger_cfi')   
0032 process.MessageLogger.cerr.enable = False
0033 process.MessageLogger.PrimaryVertexValidation=dict()
0034 process.MessageLogger.FilterOutLowPt=dict()  
0035 process.MessageLogger.cout = cms.untracked.PSet(
0036     enable = cms.untracked.bool(True),
0037     threshold = cms.untracked.string("INFO"),
0038     default   = cms.untracked.PSet(limit = cms.untracked.int32(0)),                       
0039     FwkReport = cms.untracked.PSet(limit = cms.untracked.int32(-1),
0040                                    reportEvery = cms.untracked.int32(1000)
0041                                    ),                                                      
0042     PrimaryVertexValidation = cms.untracked.PSet( limit = cms.untracked.int32(-1)),
0043     FilterOutLowPt          = cms.untracked.PSet( limit = cms.untracked.int32(-1)),
0044     enableStatistics = cms.untracked.bool(True)
0045     )
0046 
0047 ####################################################################
0048 # Produce the Transient Track Record in the event
0049 ####################################################################
0050 process.load("TrackingTools.TransientTrack.TransientTrackBuilder_cfi")
0051 
0052 ####################################################################
0053 # Get the Magnetic Field
0054 ####################################################################
0055 process.load('Configuration.StandardSequences.MagneticField_cff')
0056 
0057 ###################################################################
0058 # Standard loads
0059 ###################################################################
0060 process.load("Configuration.Geometry.GeometryRecoDB_cff")
0061 
0062 ####################################################################
0063 # Get the BeamSpot
0064 ####################################################################
0065 process.load("RecoVertex.BeamSpotProducer.BeamSpot_cff")
0066 
0067 ####################################################################
0068 # Get the GlogalTag
0069 ####################################################################
0070 process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff")
0071 from Configuration.AlCa.GlobalTag import GlobalTag
0072 process.GlobalTag = GlobalTag(process.GlobalTag, 'auto:phase1_2017_realistic', '')
0073 
0074 ####################################################################
0075 # Load and Configure event selection
0076 ####################################################################
0077 process.primaryVertexFilter = cms.EDFilter("VertexSelector",
0078                                            src = cms.InputTag("offlinePrimaryVertices"),
0079                                            cut = cms.string("!isFake && ndof > 4 && abs(z) <= 24 && position.Rho <= 2"),
0080                                            filter = cms.bool(True))
0081 
0082 process.noscraping = cms.EDFilter("FilterOutScraping",
0083                                   applyfilter = cms.untracked.bool(True),
0084                                   src =  cms.untracked.InputTag("generalTracks"),
0085                                   debugOn = cms.untracked.bool(False),
0086                                   numtrack = cms.untracked.uint32(10),
0087                                   thresh = cms.untracked.double(0.25))
0088 
0089 process.noslowpt = cms.EDFilter("FilterOutLowPt",
0090                                 applyfilter = cms.untracked.bool(True),
0091                                 src =  cms.untracked.InputTag("generalTracks"),
0092                                 debugOn = cms.untracked.bool(False),
0093                                 numtrack = cms.untracked.uint32(0),
0094                                 thresh = cms.untracked.int32(1),
0095                                 ptmin  = cms.untracked.double(3.),
0096                                 runControl = cms.untracked.bool(True),
0097                                 runControlNumber = cms.untracked.vuint32(1))
0098 
0099 process.goodvertexSkim = cms.Sequence(process.primaryVertexFilter + process.noscraping + process.noslowpt)
0100      
0101 import Alignment.CommonAlignment.tools.trackselectionRefitting as trackselRefit
0102 process.seqTrackselRefit = trackselRefit.getSequence(process, 'generalTracks',
0103                                                      isPVValidation=True, 
0104                                                      TTRHBuilder='WithAngleAndTemplate',
0105                                                      usePixelQualityFlag=True,
0106                                                      openMassWindow=False,
0107                                                      cosmicsDecoMode=True,
0108                                                      cosmicsZeroTesla=False,
0109                                                      momentumConstraint=None,
0110                                                      cosmicTrackSplitting=False,
0111                                                      use_d0cut=False,
0112                                                      g4Refitting=True) # this activates the G4 refiting
0113 
0114 ####################################################################
0115 # Output file
0116 ####################################################################
0117 process.TFileService = cms.Service("TFileService",
0118                                    fileName=cms.string("PVValidation_testG4Refit_0.root"))
0119 
0120 ####################################################################
0121 # Imports of parameters
0122 ####################################################################
0123 from RecoVertex.PrimaryVertexProducer.OfflinePrimaryVertices_cfi import offlinePrimaryVertices
0124 ## modify the parameters which differ
0125 FilteringParams = offlinePrimaryVertices.TkFilterParameters.clone(
0126      maxNormalizedChi2 = 5.0,  # chi2ndof < 5
0127      maxD0Significance = 5.0,  # fake cut (requiring 1 PXB hit)
0128      maxEta = 5.0,             # as per recommendation in PR #18330
0129 )
0130 
0131 ## MM 04.05.2017 (use settings as in: https://github.com/cms-sw/cmssw/pull/18330)
0132 from RecoVertex.PrimaryVertexProducer.OfflinePrimaryVertices_cfi import DA_vectParameters
0133 DAClusterizationParams = DA_vectParameters.clone()
0134 
0135 ####################################################################
0136 # Configure the PVValidation Analyzer module
0137 ####################################################################
0138 process.PVValidation = cms.EDAnalyzer("PrimaryVertexValidation",
0139                                       TrackCollectionTag = cms.InputTag("FinalTrackRefitter"),
0140                                       VertexCollectionTag = cms.InputTag("offlinePrimaryVertices"),
0141                                       Debug = cms.bool(False),
0142                                       storeNtuple = cms.bool(False),
0143                                       useTracksFromRecoVtx = cms.bool(False),
0144                                       isLightNtuple = cms.bool(True),
0145                                       askFirstLayerHit = cms.bool(False),
0146                                       forceBeamSpot = cms.untracked.bool(False),
0147                                       probePt = cms.untracked.double(3.),
0148                                       minPt   = cms.untracked.double(1.),
0149                                       maxPt   = cms.untracked.double(30.),
0150                                       runControl = cms.untracked.bool(True),
0151                                       runControlNumber = cms.untracked.vuint32(1),
0152                                       TkFilterParameters = FilteringParams,
0153                                       TkClusParameters = DAClusterizationParams)
0154 
0155 ####################################################################
0156 # Path
0157 ####################################################################
0158 process.p = cms.Path(process.goodvertexSkim*
0159                      process.seqTrackselRefit*
0160                      process.PVValidation)