CMS 3D CMS Logo

mitigatedMETSequence_cff.py
Go to the documentation of this file.
1 import FWCore.ParameterSet.Config as cms
2 
4 
5 
6 
11 from RecoJets.JetProducers.PileupJetIDParams_cfi import JetIdParams
12 
13 from RecoJets.JetProducers.kt4PFJets_cfi import kt4PFJets
14 kt6PFJets = kt4PFJets.clone(rParam = 0.6, doRhoFastjet = True )
15 
16 calibratedAK4PFJetsForPFMVAMEt = cms.EDProducer('PFJetCorrectionProducer',
17  src = cms.InputTag('ak4PFJets'),
18  correctors = cms.vstring("ak4PFL1FastL2L3") # NOTE: use "ak5PFL1FastL2L3" for MC / "ak5PFL1FastL2L3Residual" for Data
19 )
20 
21 pfMVAMEt = cms.EDProducer("PFMETProducerMVA",
22  srcCorrJets = cms.InputTag('calibratedAK4PFJetsForPFMVAMEt'),
23  srcUncorrJets = cms.InputTag('ak4PFJets'),
24  srcPFCandidates = cms.InputTag('particleFlow'),
25  srcVertices = cms.InputTag('offlinePrimaryVertices'),
26  srcLeptons = cms.VInputTag('selectedElectrons',
27  'selectedMuons',
28  'selectedTaus',
29  'selectedPhotons',
30  'selectedJets'),
31  minNumLeptons = cms.int32(0),
32  srcRho = cms.InputTag('fixedGridRhoFastjetAll'),
33  globalThreshold = cms.double(-1.),
34  minCorrJetPt = cms.double(-1.),
35  inputFileNames = cms.PSet(
36  U = cms.FileInPath('RecoMET/METPUSubtraction/data/gbrmet_53_June2013_type1.root'),
37  DPhi = cms.FileInPath('RecoMET/METPUSubtraction/data/gbrmetphi_53_June2013_type1.root'),
38  CovU1 = cms.FileInPath('RecoMET/METPUSubtraction/data/gbru1cov_53_Dec2012.root'),
39  CovU2 = cms.FileInPath('RecoMET/METPUSubtraction/data/gbru2cov_53_Dec2012.root')
40  ),
41  loadMVAfromDB = cms.bool(False),
42  is42 = cms.bool(False), # CV: set this flag to true if you are running mvaPFMET in CMSSW_4_2_x
43  corrector = cms.string("ak4PFL1Fastjet"),
44  useType1 = cms.bool(True),
45  useOld42 = cms.bool(False),
46  dZcut = cms.double(0.1),
47  impactParTkThreshold = cms.double(0.),
48  tmvaWeights = cms.string("RecoJets/JetProducers/data/TMVAClassificationCategory_JetID_MET_53X_Dec2012.weights.xml.gz"),
49  tmvaMethod = cms.string("JetID"),
50  version = cms.int32(-1),
51  cutBased = cms.bool(False),
52  tmvaVariables = cms.vstring(
53  "nvtx",
54  "jetPt",
55  "jetEta",
56  "jetPhi",
57  "dZ",
58  "beta",
59  "betaStar",
60  "nCharged",
61  "nNeutrals",
62  "dR2Mean",
63  "ptD",
64  "frac01",
65  "frac02",
66  "frac03",
67  "frac04",
68  "frac05"
69  ),
70  tmvaSpectators = cms.vstring(),
71  JetIdParams = JetIdParams,
72  verbosity = cms.int32(0)
73 )
74 
75 pfMVAMEtTask = cms.Task(
76  kt6PFJets,
77  calibratedAK4PFJetsForPFMVAMEt,
78  pfMVAMEt
79 )
80 pfMVAMEtSequence = cms.Sequence(pfMVAMEtTask)
81 
82 
85 pfNoPUMEtTask = cms.Task()
86 
88 calibratedAK4PFJetsForPFNoPUMEt = cms.EDProducer('PFJetCorrectionProducer',
89  src = cms.InputTag('ak4PFJets'),
90  correctors = cms.vstring('ak4PFL1FastL2L3Residual') # NOTE: use "ak4PFL1FastL2L3" for MC / "ak4PFL1FastL2L3Residual" for Data
91 )
92 ak4PFJetTaskForPFNoPUMEt = cms.Task(calibratedAK4PFJetsForPFNoPUMEt)
93 pfNoPUMEtTask.add(ak4PFJetTaskForPFNoPUMEt)
94 
96 puJetIdForPFNoPUMEt = pileupJetId.clone(
97  algos = cms.VPSet(
98  full_53x,
99  cutbased,
100  PhilV1
101  ),
102 # label = "fullId", #MM does not work for weird reasons, cannot be cloned properly
103  produceJetIds = True,
104  runMvas = True,
105  jets = "calibratedAK4PFJetsForPFNoPUMEt",
106  applyJec = False,
107  inputIsCorrected = True,
108  )
109 pfNoPUMEtTask.add(puJetIdForPFNoPUMEt)
110 
112 pfNoPUMEtTask.add(type0PFMEtCorrection)
113 pfCandidateToVertexAssociationForPFNoPUMEt = pfCandidateToVertexAssociation.clone(
114  MaxNumberOfAssociations = 1,
115  doReassociation = False,
116  FinalAssociation = 1,
117  nTrackWeight = 0.
118 )
119 pfNoPUMEtTask.add(pfCandidateToVertexAssociationForPFNoPUMEt)
120 pfMETcorrType0ForPFNoPUMEt = pfMETcorrType0.clone(
121  srcPFCandidateToVertexAssociations = 'pfCandidateToVertexAssociationForPFNoPUMEt'
122 )
123 pfNoPUMEtTask.add(pfMETcorrType0ForPFNoPUMEt)
124 
125 jvfJetIdForPFNoPUMEt = cms.EDProducer("JVFJetIdProducer",
126  srcJets = cms.InputTag('calibratedAK4PFJetsForPFNoPUMEt'),
127  srcPFCandidates = cms.InputTag('particleFlow'),
128  srcPFCandToVertexAssociations = cms.InputTag('pfCandidateToVertexAssociationForPFNoPUMEt'),
129  srcHardScatterVertex = cms.InputTag('selectedPrimaryVertexHighestPtTrackSumForPFMEtCorrType0'),
130  minTrackPt = cms.double(1.),
131  dZcut = cms.double(0.2), # cm
132  JVFcut = cms.double(0.75),
133  neutralJetOption = cms.string("noPU")
134 )
135 pfNoPUMEtTask.add(jvfJetIdForPFNoPUMEt)
136 
137 import RecoMET.METProducers.METSigParams_cfi as met_config
138 
139 pfNoPUMEt = cms.EDProducer("NoPileUpPFMEtProducer",
140  srcMEt = cms.InputTag('pfMet'),
141  srcMEtCov = cms.InputTag(''), # NOTE: leave empty to take MET covariance matrix from reco::PFMET object //MM 08/29/14, bypass hardcoded as this variable has never been used so far
142  srcMVAMEtData = cms.InputTag('pfNoPUMEtData'),
143  srcLeptons = cms.VInputTag( 'selectedElectrons',
144  'selectedMuons',
145  'selectedTaus',
146  'selectedPhotons',
147  'selectedJets'),
148 # NOTE: you need to set this to collections of electrons, muons and tau-jets
149 #passing the lepton reconstruction & identification criteria applied in your analysis
150  srcMVAMEtDataLeptonMatch = cms.InputTag('pfNoPUMEtData'),
151  srcType0Correction = cms.InputTag('pfMETcorrType0ForPFNoPUMEt'),
152  sfNoPUjets = cms.double(1.0),
153  sfNoPUjetOffsetEnCorr = cms.double(0.0),
154  sfPUjets = cms.double(1.0),
155  sfNoPUunclChargedCands = cms.double(1.0),
156  sfPUunclChargedCands = cms.double(1.0),
157  sfUnclNeutralCands = cms.double(0.6),
158  sfType0Correction = cms.double(1.0),
159  sfLeptonIsoCones = cms.double(0.6),
160  resolution = met_config.METSignificance_params,
161  sfMEtCovMin = cms.double(0.6),
162  sfMEtCovMax = cms.double(1.0),
163  saveInputs = cms.bool(True),
164  verbosity = cms.int32(0)
165 )
166 pfNoPUMEtTask.add(pfNoPUMEt)
167 pfNoPUMEtSequence = cms.Sequence(pfNoPUMEtTask)
168 
169 mitigatedMETTask = cms.Task(
170 selectionSequenceForMVANoPUMETTask,
171 pfMVAMEtTask,
172 pfNoPUMEtTask
173 )
174 mitigatedMETSequence = cms.Sequence(mitigatedMETTask)