File indexing completed on 2024-11-26 02:34:37
0001
0002
0003
0004 import FWCore.ParameterSet.Config as cms
0005 process = cms.Process("validation")
0006
0007
0008 process.load("Configuration.StandardSequences.MagneticField_cff")
0009 process.load("Configuration.StandardSequences.GeometryRecoDB_cff")
0010 process.load("Configuration.StandardSequences.FrontierConditions_GlobalTag_cff")
0011 process.load("Configuration.StandardSequences.Reconstruction_cff")
0012
0013 whichJets = "ak4PFJetsCHS"
0014 applyJEC = True
0015 corrLabel = 'ak4PFCHS'
0016 from Configuration.AlCa.GlobalTag import GlobalTag
0017 tag = GlobalTag(process.GlobalTag, 'auto:run2_mc', '')
0018 useTrigger = False
0019 triggerPath = "HLT_PFJet80_v*"
0020 runOnMC = True
0021
0022
0023 flavPlots = "allbcldusg"
0024
0025
0026 print("jet collcetion asked : ", whichJets)
0027 print("JEC applied?", applyJEC, ", correction:", corrLabel)
0028 print("trigger will be used ? : ", useTrigger, ", Trigger paths:", triggerPath)
0029 print("is it MC ? : ", runOnMC, ", Flavours:", flavPlots)
0030 print("Global Tag : ", tag.globaltag)
0031
0032
0033 process.load("DQMServices.Components.DQMEnvironment_cfi")
0034 process.load("DQMServices.Core.DQM_cfg")
0035
0036 process.load("JetMETCorrections.Configuration.JetCorrectors_cff")
0037 process.load("CommonTools.ParticleFlow.goodOfflinePrimaryVertices_cfi")
0038 process.load("RecoJets.JetAssociationProducers.ak4JTA_cff")
0039 process.load("RecoBTag.Configuration.RecoBTag_cff")
0040 process.load("PhysicsTools.JetMCAlgos.HadronAndPartonSelector_cfi")
0041 process.load("PhysicsTools.JetMCAlgos.AK4PFJetsMCFlavourInfos_cfi")
0042 process.load("PhysicsTools.JetMCAlgos.CaloJetsMCFlavour_cfi")
0043 process.JECseq = cms.Sequence(getattr(process,corrLabel+"L1FastL2L3CorrectorChain"))
0044
0045 newjetID=cms.InputTag(whichJets)
0046 process.ak4JetFlavourInfos.jets = newjetID
0047 process.ak4JetFlavourInfos.hadronFlavourHasPriority = cms.bool(True)
0048 if not "ak4PFJetsCHS" in whichJets:
0049 process.ak4JetTracksAssociatorAtVertexPF.jets = newjetID
0050 process.pfImpactParameterTagInfos.jets = newjetID
0051 process.softPFMuonsTagInfos.jets = newjetID
0052 process.softPFElectronsTagInfos.jets = newjetID
0053 process.patJetGenJetMatch.src = newjetID
0054
0055 process.btagging = cms.Sequence(process.legacyBTagging + process.pfBTagging)
0056 process.btagSequence = cms.Sequence(
0057 process.ak4JetTracksAssociatorAtVertexPF *
0058 process.btagging
0059 )
0060 process.jetSequences = cms.Sequence(process.goodOfflinePrimaryVertices * process.btagSequence)
0061
0062
0063 print("inputTag : ", process.ak4JetTracksAssociatorAtVertexPF.jets)
0064
0065
0066 process.load("Validation.RecoB.bTagAnalysis_firststep_cfi")
0067 if runOnMC:
0068 process.flavourSeq = cms.Sequence(
0069 process.selectedHadronsAndPartons *
0070 process.ak4JetFlavourInfos
0071 )
0072 process.bTagValidationFirstStep.jetMCSrc = 'ak4JetFlavourInfos'
0073 process.bTagValidationFirstStep.applyPtHatWeight = False
0074 process.bTagValidationFirstStep.doJetID = True
0075 process.bTagValidationFirstStep.doJEC = applyJEC
0076 process.bTagValidation.JECsourceMC = cms.InputTag(corrLabel+"L1FastL2L3Corrector")
0077 process.bTagValidationFirstStep.flavPlots = flavPlots
0078
0079 process.bTagValidationFirstStep.genJetsMatched = cms.InputTag("patJetGenJetMatch")
0080 process.bTagValidationFirstStep.doPUid = cms.bool(True)
0081 process.ak4GenJetsForPUid = cms.EDFilter("GenJetSelector",
0082 src = cms.InputTag("ak4GenJets"),
0083 cut = cms.string('pt > 8.'),
0084 filter = cms.bool(False)
0085 )
0086 process.load("PhysicsTools.PatAlgos.mcMatchLayer0.jetMatch_cfi")
0087 process.patJetGenJetMatch.matched = cms.InputTag("ak4GenJetsForPUid")
0088 process.patJetGenJetMatch.maxDeltaR = cms.double(0.25)
0089 process.patJetGenJetMatch.resolveAmbiguities = cms.bool(True)
0090 else:
0091 process.bTagValidationFirstStepData.doJEC = applyJEC
0092 process.bTagAnalysis.JECsourceData = cms.InputTag(corrLabel+"L1FastL2L3ResidualCorrector")
0093 process.JECseq *= (getattr(process,corrLabel+"ResidualCorrector") * getattr(process,corrLabel+"L1FastL2L3ResidualCorrector"))
0094
0095 process.maxEvents = cms.untracked.PSet(
0096 input = cms.untracked.int32(10)
0097 )
0098 process.source = cms.Source("PoolSource",
0099 fileNames = cms.untracked.vstring()
0100 )
0101
0102 process.EDM = cms.OutputModule("DQMRootOutputModule",
0103 outputCommands = cms.untracked.vstring('drop *',
0104 "keep *_MEtoEDMConverter_*_*"),
0105 fileName = cms.untracked.string('MEtoEDMConverter.root')
0106 )
0107 from HLTrigger.HLTfilters.hltHighLevel_cfi import *
0108 if useTrigger:
0109 process.bTagHLT = hltHighLevel.clone(TriggerResultsTag = "TriggerResults::HLT", HLTPaths = ["HLT_PFJet40_v*"])
0110 process.bTagHLT.HLTPaths = [triggerPath]
0111
0112 if runOnMC:
0113 process.dqmSeq = cms.Sequence(process.ak4GenJetsForPUid * process.patJetGenJetMatch * process.flavourSeq * process.bTagValidationFirstStep)
0114 else:
0115 process.dqmSeq = cms.Sequence(process.bTagValidationFirstStepData)
0116
0117 if useTrigger:
0118 process.plots = cms.Path(process.bTagHLT * process.JECseq * process.jetSequences * process.dqmSeq)
0119 else:
0120 process.plots = cms.Path(process.JECseq * process.jetSequences * process.dqmSeq)
0121
0122 process.outpath = cms.EndPath(process.EDM)
0123
0124 process.dqmEnv.subSystemFolder = 'BTAG'
0125 process.dqmSaver.producer = 'DQM'
0126 process.dqmSaver.workflow = '/POG/BTAG/BJET'
0127 process.dqmSaver.convention = 'Offline'
0128 process.dqmSaver.saveByRun = cms.untracked.int32(-1)
0129 process.dqmSaver.saveAtJobEnd =cms.untracked.bool(True)
0130 process.dqmSaver.forceRunNumber = cms.untracked.int32(1)
0131 process.PoolSource.fileNames = [
0132
0133 ]
0134
0135
0136 process.load("FWCore.MessageLogger.MessageLogger_cfi")
0137 process.MessageLogger.cerr.FwkReport.reportEvery = 100
0138
0139 process.GlobalTag = tag
0140