CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
hltHiggsValidator_cfi.py
Go to the documentation of this file.
2 
3 
4 hltHiggsValidator = cms.EDAnalyzer("HLTHiggsValidator",
5 
6  hltProcessName = cms.string("HLT"),
7  analysis = cms.vstring("HWW", "HZZ", "Hgg", "HggControlPaths", "Htaunu", "H2tau", "VBFHbb_0btag", "VBFHbb_1btag", "VBFHbb_2btag", "ZnnHbb","DoubleHinTaus","HiggsDalitz","X4b","TTHbbej","AHttH","WHToENuBB"),
8  histDirectory = cms.string("HLT/Higgs"),
9 
10  # -- The instance name of the reco::GenParticles collection -
11  genParticleLabel = cms.string("genParticles"),
12 
13  # -- The instance name of the reco::GenJets collection
14  genJetLabel = cms.string("ak4GenJets"),
15 
16  # -- The instance name of the reco::PFJetCollection collection
17  recoHtJetLabel = cms.untracked.string("ak4PFJetsCHS"),
18 
19  # -- The number of interactions in the event
20  pileUpInfoLabel = cms.string("addPileupInfo"),
21 
22  # -- The binning of the Pt efficiency plots
23  parametersTurnOn = cms.vdouble(0,
24  1, 8, 9, 10,
25  11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
26  22, 24, 26, 28, 30, 32, 34, 36, 38, 40,
27  45, 50, 55, 60, 65, 70,
28  80, 100,
29  ),
30 
31  # -- (NBins, minVal, maxValue) for the Eta,Phi and nInterations efficiency plots
32  parametersEta = cms.vdouble(48, -2.400, 2.400),
33  parametersPhi = cms.vdouble(50, -3.142, 3.142),
34  parametersPu = cms.vdouble(10, 0, 50),
35  parametersHt = cms.untracked.vdouble(100, 0, 1000),
36 
37  # TO BE DEPRECATED --------------------------------------------
38  cutsDr = cms.vdouble(0.4, 0.4, 0.015), # TO BE DEPRECATED
39  # parameters for attempting an L1 match using a propagator
40  maxDeltaPhi = cms.double(0.4), # TO BE DEPRECATED
41  maxDeltaR = cms.double(0.4), # TO BE DEPRECATED
42  # TO BE DEPRECATED --------------------------------------------
43 
44  # Definition of generic cuts on generated and reconstructed objects (note that
45  # these cuts can be overloaded inside a particular analysis)
46  # Objects recognized: Mu Ele Photon PFTau MET
47  # Syntax in the strings: valid syntax of the StringCutObjectSelector class
48  # --- Muons
49  Mu_genCut = cms.string("pt > 10 && abs(eta) < 2.4 && abs(pdgId) == 13 && status == 1"),
50  Mu_recCut = cms.string("pt > 10 && abs(eta) < 2.4 && isGlobalMuon"),
51  Mu_cutMinPt = cms.double(10), # TO BE DEPRECATED
52  Mu_cutMaxEta = cms.double(2.4), # TO BE DEPRECATED
53 
54  # --- Electrons
55  Ele_genCut = cms.string("pt > 10 && abs(eta) < 2.5 && abs(pdgId) == 11 && status == 1"),
56  Ele_recCut = cms.string("pt > 10 && abs(eta) < 2.5 && hadronicOverEm < 0.05 && eSuperClusterOverP > 0.5 && eSuperClusterOverP < 2.5"),
57  Ele_cutMinPt = cms.double(10), # TO BE DEPRECATED
58  Ele_cutMaxEta = cms.double(2.5), # TO BE DEPRECATED
59 
60  # --- Photons
61  Photon_genCut = cms.string("abs(pdgId) == 22 && status == 1"),
62  Photon_recCut = cms.string("pt > 20 && abs(eta) < 2.4 && hadronicOverEm < 0.1 && "+\
63  " ( ( abs(eta) < 1.479 && r9 > 0.85 ) || "+\
64  " ( abs(eta) > 1.479 && r9 > 0.90 ) || "+\
65  " ( abs(eta) < 1.479 && r9 > 0.50 && sigmaIetaIeta < 0.014 && "+\
66  " ecalRecHitSumEtConeDR03 < (6.0+0.012*et) && trkSumPtSolidConeDR03 < (6.0 + 0.002*et) ) || "+\
67  " ( abs(eta) > 1.479 && r9 > 0.80 && sigmaIetaIeta < 0.035 && "+\
68  " ecalRecHitSumEtConeDR03 < (6.0+0.012*et) && trkSumPtSolidConeDR03 < (6.0 + 0.002*et) ) ) "
69  ),
70 
71  Photon_cutMinPt = cms.double(20), # TO BE DEPRECATED
72  Photon_cutMaxEta = cms.double(2.4),# TO BE DEPRECATED
73 
74  # --- Taus:
75  PFTau_genCut = cms.string("pt > 20 && abs(eta) < 2.4 && abs(pdgId) == 15 && status == 3"),
76  PFTau_recCut = cms.string("pt > 20 && abs(eta) < 2.4"), # STILL MISSING THIS INFO
77  PFTau_cutMinPt = cms.double(20), # TO BE DEPRECATED
78  PFTau_cutMaxEta = cms.double(2.5),# TO BE DEPRECATED
79 
80  # --- MET (calo)
81  MET_genCut = cms.string("(abs(pdgId) == 12 || abs(pdgId)==14 || abs(pdgId) == 16 ) && status == 1"),
82  MET_recCut = cms.string("pt > 75."),
83  MET_cutMinPt = cms.double(75), # TO BE DEPRECATED
84  MET_cutMaxEta = cms.double(0), # TO BE DEPRECATED
85 
86  # --- PFMET
87  PFMET_genCut = cms.string("(abs(pdgId) == 12 || abs(pdgId)==14 || abs(pdgId) == 16 ) && status == 1"),
88  PFMET_recCut = cms.string("pt > 75."),
89  PFMET_cutMinPt = cms.double(75), # TO BE DEPRECATED
90  PFMET_cutMaxEta = cms.double(0), # TO BE DEPRECATED
91 
92  # --- Jets:
93  Jet_genCut = cms.string("pt > 10"),
94  Jet_recCut = cms.string("pt > 10"),
95  Jet_cutMinPt = cms.double(0), # TO BE DEPRECATED
96  Jet_cutMaxEta = cms.double(0), # TO BE DEPRECATED
97 
98 
99 
100  # The specific parameters per analysis: the name of the parameter set has to be
101  # the same as the defined ones in the 'analysis' datamember. Each analysis is a PSet
102  # with the mandatory attributes:
103  # - hltPathsToCheck (cms.vstring) : a list of all the trigger pats to be checked
104  # in this analysis. Up to the version number _v, but not including
105  # the number in order to avoid this version dependence. Example: HLT_Mu18_v
106  # - recVarLabel (cms.string): where Var can be Muon, Elec, Photon, CaloMET, PFTau, Jet. This
107  # attribute is the name of the INSTANCE LABEL for each RECO collection to
108  # be considered in the analysis. Note that the trigger paths rely on some
109  # objects which need to be defined here, otherwise the code will complain.
110  # - minCandidates (cms.uint32): the minimum number of GEN/RECO objects in the event
111  # Besides the mandatory attributes, you can redefine the generation and reconstruction cuts
112  # for any object you want.
113  # * Var_genCut, Var_recCut (cms.string): where Var=Mu, Ele, Photon, MET, PFTau (see above)
114 
115  HWW = cms.PSet(
116  hltPathsToCheck = cms.vstring(
117  #dileptons for Hww and Hzz
118  "HLT_Ele23_Ele12_CaloIdL_TrackIdL_IsoVL_DZ_v",
119  "HLT_Mu8_TrkIsoVVL_Ele23_CaloIdL_TrackIdL_IsoVL_v",
120  "HLT_Mu23_TrkIsoVVL_Ele12_CaloIdL_TrackIdL_IsoVL_v",
121  "HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_DZ_v",
122  "HLT_Mu17_TrkIsoVVL_TkMu8_TrkIsoVVL_DZ_v",
123  #dilepton path for the 7e33 menu at 25ns
124  "HLT_Ele17_Ele12_CaloIdL_TrackIdL_IsoVL_DZ_v",
125  "HLT_Mu8_TrkIsoVVL_Ele17_CaloIdL_TrackIdL_IsoVL_v",
126  "HLT_Mu17_TrkIsoVVL_Ele12_CaloIdL_TrackIdL_IsoVL_v",
127  #prescaled control paths
128  "HLT_Ele17_CaloIdL_TrackIdL_IsoVL_v",
129  "HLT_Ele23_Ele12_CaloIdL_TrackIdL_IsoVL_v",
130  "HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_v",
131  "HLT_Mu17_TrkIsoVVL_TkMu8_TrkIsoVVL_v",
132  "HLT_Ele23_CaloIdL_TrackIdL_IsoVL_v",
133  "HLT_Ele12_CaloIdL_TrackIdL_IsoVL_v",
134  "HLT_Ele17_Ele12_CaloIdL_TrackIdL_IsoVL_v"
135  ),
136  recMuonLabel = cms.string("muons"),
137  recElecLabel = cms.string("gedGsfElectrons"),
138  # -- Analysis specific cuts
139  minCandidates = cms.uint32(2),
140  ),
141  HZZ = cms.PSet(
142  hltPathsToCheck = cms.vstring(
143  #tri-leptons for Hzz
144  "HLT_Ele16_Ele12_Ele8_CaloIdL_TrackIdL_v",
145  "HLT_Mu8_DiEle12_CaloIdL_TrackIdL_v",
146  "HLT_DiMu9_Ele9_CaloIdL_TrackIdL_v",
147  "HLT_TripleMu_12_10_5_1PairDZ_v",
148  "HLT_TripleMu_12_10_5_v"
149  ),
150  recMuonLabel = cms.string("muons"),
151  recElecLabel = cms.string("gedGsfElectrons"),
152  #recTrackLabel = cms.string("globalMuons"),
153  # -- Analysis specific cuts
154  minCandidates = cms.uint32(4),
155  ),
156  Hgg = cms.PSet(
157  hltPathsToCheck = cms.vstring(
158  "HLT_Diphoton10_10_R9Id_OR_IsoCaloId_AND_HE_R9Id_Mass10_ForMC_v",
159  "HLT_Diphoton30_18_R9Id_OR_IsoCaloId_AND_HE_R9Id_Mass95_v",
160  "HLT_Diphoton30PV_18PV_R9Id_AND_IsoCaloId_AND_HE_R9Id_DoublePixelVeto_Mass55_v",
161  "HLT_Diphoton30_18_Solid_R9Id_AND_IsoCaloId_AND_HE_R9Id_Mass55_v",
162  "HLT_Diphoton30EB_18EB_R9Id_OR_IsoCaloId_AND_HE_R9Id_DoublePixelVeto_Mass55_v"
163  ),
164  recPhotonLabel = cms.string("photons"),
165  # -- Analysis specific cuts
166  minCandidates = cms.uint32(2),
167  ),
168  HggControlPaths = cms.PSet(
169  hltPathsToCheck = cms.vstring(
170  "HLT_Diphoton30_18_R9Id_OR_IsoCaloId_AND_HE_R9Id_DoublePixelSeedMatch_Mass70_v"
171  ),
172  recPhotonLabel = cms.string("photons"),
173  # -- Analysis specific cuts
174  minCandidates = cms.uint32(2),
175  ),
176  DoubleHinTaus = cms.PSet(
177  hltPathsToCheck = cms.vstring(
178  "HLT_Mu17_Mu8_v",
179  "HLT_Mu17_Mu8_DZ_v",
180  "HLT_Mu17_Mu8_SameSign_DZ_v",
181  "HLT_Mu20_Mu10_v",
182  "HLT_Mu20_Mu10_DZ_v",
183  "HLT_Mu20_Mu10_SameSign_DZ_v"
184  ),
185  recMuonLabel = cms.string("muons"),
186  # -- Analysis specific cuts
187  minCandidates = cms.uint32(2),
188  ),
189  HiggsDalitz = cms.PSet(
190  hltPathsToCheck = cms.vstring(
191  "HLT_Mu12_Photon25_CaloIdL_v",
192  "HLT_Mu12_Photon25_CaloIdL_L1ISO_v",
193  "HLT_Mu12_Photon25_CaloIdL_L1OR_v"
194  ),
195  recMuonLabel = cms.string("muons"),
196  recPhotonLabel = cms.string("photons"),
197  # -- Analysis specific cuts
198  minCandidates = cms.uint32(2),
199  ),
200  Htaunu = cms.PSet(
201  hltPathsToCheck = cms.vstring(
202 # "HLT_LooseIsoPFTau35_Trk20_Prong1_MET70_v",
203 # "HLT_LooseIsoPFTau35_Trk20_Prong1_MET75_v",
204  "HLT_LooseIsoPFTau50_Trk30_eta2p1_MET80_v",
205  "HLT_LooseIsoPFTau50_Trk30_eta2p1_MET120_v",
206  # monitoring triggers for efficiency measurement
207  "HLT_LooseIsoPFTau50_Trk30_eta2p1_v",
208  "HLT_IsoMu16_eta2p1_CaloMET30_LooseIsoPFTau50_Trk30_eta2p1_v",
209  "HLT_IsoMu16_eta2p1_CaloMET30_v"
210  ),
211  recPFTauLabel = cms.string("hpsPFTauProducer"),
212  recCaloMETLabel = cms.string("caloMet"),
213  recMuonLabel = cms.string("muons"),
214  # -- Analysis specific cuts
215  minCandidates = cms.uint32(1),
216  parametersTurnOn = cms.vdouble(0,
217  1, 8, 9, 10,
218  11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
219  22, 24, 26, 28, 30, 32, 34, 36, 38, 40,
220  45, 50, 55, 60, 65, 70,
221  80, 100, 120, 140, 160, 180, 200,
222  ),
223  ),
224  H2tau = cms.PSet(
225  hltPathsToCheck = cms.vstring(
226  #"HLT_Ele22_eta2p1_WP90Rho_LooseIsoPFTau20_v",#?
227  #"HLT_Ele22_eta2p1_WP90Rho_Gsf_LooseIsoPFTau20_v",
228  #"HLT_Ele20_CaloIdVT_CaloIsoRhoT_TrkIdT_TrkIsoT_LooseIsoPFTau20_v",
229  "HLT_IsoMu17_eta2p1_LooseIsoPFTau20_v",
230  "HLT_DoubleMediumIsoPFTau40_Trk1_eta2p1_Reg_v",
231  #"HLT_IsoMu24_eta2p1_IterTrk02_LooseIsoPFTau20_v",
232  "HLT_IsoMu17_eta2p1_LooseIsoPFTau20_SingleL1_v",
233  "HLT_IsoMu17_eta2p1_MediumIsoPFTau40_Trk1_eta2p1_Reg_v",
234  "HLT_IsoMu17_eta2p1_v",
235  "HLT_DoubleIsoMu17_eta2p1_v",
236  "HLT_IsoMu16_eta2p1_CaloMET30_v",
237  "HLT_Mu16_eta2p1_CaloMET30_v",
238  "HLT_Ele27_eta2p1_WPLoose_Gsf_DoubleMediumIsoPFTau40_Trk1_eta2p1_Reg_v",
239  "HLT_Ele32_eta2p1_WPLoose_Gsf_DoubleMediumIsoPFTau40_Trk1_eta2p1_Reg_v",
240  "HLT_Ele27_eta2p1_WPLoose_Gsf_LooseIsoPFTau20_v",
241  "HLT_Ele32_eta2p1_WPLoose_Gsf_LooseIsoPFTau20_v",
242  "HLT_Ele22_eta2p1_WPLoose_Gsf_v",
243  "HLT_Ele22_eta2p1_WPTight_Gsf_v",
244  "HLT_DoubleEle24_22_eta2p1_WPLoose_Gsf_v",
245  "HLT_IsoMu24_eta2p1_LooseIsoPFTau20_v",
246  "HLT_IsoMu24_eta2p1_IterTrk02_v",
247  "HLT_Mu17_TrkIsoVVL_Mu8_TrkIsoVVL_v",
248  "HLT_Ele22_eta2p1_WPLoose_Gsf_LooseIsoPFTau20_v",
249  "HLT_Ele27_eta2p1_WPLoose_Gsf_v",
250  "HLT_Ele27_eta2p1_WPTight_Gsf_v",
251  "HLT_Ele32_eta2p1_WPLoose_Gsf_v",
252  "HLT_Ele32_eta2p1_WPTight_Gsf_v",
253  "HLT_Ele17_Ele8_Gsf_v"
254  ),
255  recPFTauLabel = cms.string("hpsPFTauProducer"),
256  recMuonLabel = cms.string("muons"),
257  recElecLabel = cms.string("gedGsfElectrons"),
258  recCaloMETLabel = cms.string("caloMet"),
259  # -- Analysis specific cuts
260  minCandidates = cms.uint32(2),
261  ),
262  VBFHbb_0btag = cms.PSet(
263  hltPathsToCheck = cms.vstring(
264  "HLT_QuadPFJet_VBF_v",
265  "HLT_L1_TripleJet_VBF_v"
266  ),
267  recJetLabel = cms.string("ak4PFJetsCHS"),
268  jetTagLabel = cms.string("pfCombinedSecondaryVertexBJetTags"),
269  # -- Analysis specific cuts
270  minCandidates = cms.uint32(4),
271  NminOneCuts = cms.untracked.vdouble(2.5, 240, 2.1, 0, 0, 0, 0, 0, 0, 95, 85, 70, 40), #dEtaqq, mqq, dPhibb, CSV1, CSV2, CSV3, maxCSV_jets, maxCSV_E, MET, pt1, pt2, pt3, pt4
272  ),
273  VBFHbb_2btag = cms.PSet(
274  hltPathsToCheck = cms.vstring(
275  "HLT_QuadPFJet_DoubleBTagCSV_VBF_Mqq200_v",
276  "HLT_QuadPFJet_DoubleBTagCSV_VBF_Mqq240_v",
277  ),
278  recJetLabel = cms.string("ak4PFJetsCHS"),
279  jetTagLabel = cms.string("pfCombinedSecondaryVertexBJetTags"),
280  # -- Analysis specific cuts
281  minCandidates = cms.uint32(4),
282  NminOneCuts = cms.untracked.vdouble(2.5, 240, 2.1, 0.8, 0.5, 0, 0, 0, 0, 95, 85, 70, 40), #dEtaqq, mqq, dPhibb, CSV1, CSV2, CSV3, maxCSV_jets, maxCSV_E, MET, pt1, pt2, pt3, pt4
283  ),
284  VBFHbb_1btag = cms.PSet(
285  hltPathsToCheck = cms.vstring(
286  "HLT_QuadPFJet_SingleBTagCSV_VBF_Mqq460_v",
287  "HLT_QuadPFJet_SingleBTagCSV_VBF_Mqq500_v",
288  ),
289  recJetLabel = cms.string("ak4PFJetsCHS"),
290  jetTagLabel = cms.string("pfCombinedSecondaryVertexBJetTags"),
291  # -- Analysis specific cuts
292  minCandidates = cms.uint32(4),
293  NminOneCuts = cms.untracked.vdouble(5, 550, 1.0, 0.8, 0, 0, 0, 0, 0, 95, 85, 70, 40), #dEtaqq, mqq, dPhibb, CSV1, CSV2, CSV3, maxCSV_jets, maxCSV_E, MET, pt1, pt2, pt3, pt4
294  ),
295  ZnnHbb = cms.PSet(
296  hltPathsToCheck = cms.vstring(
297  "HLT_CaloMHTNoPU90_PFMET90_PFMHT90_IDTight_BTagCSV0p72_v",
298  "HLT_CaloMHTNoPU90_PFMET90_PFMHT90_IDTight_v"
299  "HLT_PFMET120_PFMHT120_IDTight_v",
300  "HLT_PFMET110_PFMHT110_IDTight_v",
301  "HLT_PFMET100_PFMHT100_IDTight_v",
302  "HLT_PFMET90_PFMHT90_IDTight_v",
303  ),
304  Jet_recCut = cms.string("pt > 10 && abs(eta) < 2.6"),
305  recJetLabel = cms.string("ak4PFJetsCHS"),
306  jetTagLabel = cms.string("pfCombinedSecondaryVertexBJetTags"),
307  recPFMETLabel = cms.string("pfMet"),
308  # -- Analysis specific cuts
309  minCandidates = cms.uint32(1),
310  NminOneCuts = cms.untracked.vdouble(0, 0, 0, 0.9, 0, 0, 8, 30, 100, 70), #dEtaqq, mqq, dPhibb, CSV1, CSV2, CSV3, maxCSV_jets, maxCSV_E, MET, pt1, pt2, pt3, pt4
311  ),
312  X4b = cms.PSet(
313  hltPathsToCheck = cms.vstring(
314  "HLT_DoubleJet90_Double30_TripleBTagCSV0p67_v",
315  "HLT_DoubleJet90_Double30_DoubleBTagCSV0p67_v",
316  "HLT_QuadJet45_TripleBTagCSV0p67_v",
317  "HLT_QuadJet45_DoubleBTagCSV0p67_v",
318  ),
319  recJetLabel = cms.string("ak4PFJetsCHS"),
320  jetTagLabel = cms.string("pfCombinedSecondaryVertexBJetTags"),
321  # -- Analysis specific cuts
322  minCandidates = cms.uint32(4),
323  NminOneCuts = cms.untracked.vdouble(0, 0, 0, 0.5, 0.5 , 0.5, 0, 0, 0, 0, 90, 0, 45), #dEtaqq, mqq, dPhibb, CSV1, CSV2, CSV3, maxCSV_jets, maxCSV_E, MET, pt1, pt2, pt3, pt4
324  ),
325  TTHbbej = cms.PSet(
326  hltPathsToCheck = cms.vstring(
327  "HLT_Ele27_WP85_Gsf_v",
328  "HLT_Ele27_eta2p1_WP85_Gsf_HT200_v",
329  "HLT_Ele27_eta2p1_WPLoose_Gsf_v",
330  "HLT_Ele27_eta2p1_WPLoose_Gsf_HT200_v"
331  ),
332  recElecLabel = cms.string("gedGsfElectrons"),
333  #recJetLabel = cms.string("ak4PFJetsCHS"),
334  #jetTagLabel = cms.string("pfCombinedSecondaryVertexBJetTags"),
335  ## -- Analysis specific cuts
336  minCandidates = cms.uint32(1),
337  HtJetPtMin = cms.untracked.double(30),
338  HtJetEtaMax = cms.untracked.double(3.0),
339  ),
340  AHttH = cms.PSet(
341  hltPathsToCheck = cms.vstring(
342  "HLT_PFHT450_SixJet40_PFBTagCSV_v",
343  "HLT_PFHT400_SixJet30_BTagCSV0p5_2PFBTagCSV_v",
344  "HLT_PFHT450_SixJet40_v",
345  "HLT_PFHT400_SixJet30_v",
346  ),
347  #recElecLabel = cms.string("gedGsfElectrons"),
348  recJetLabel = cms.string("ak4PFJetsCHS"),
349  jetTagLabel = cms.string("pfCombinedSecondaryVertexBJetTags"),
350  ## -- Analysis specific cuts
351  minCandidates = cms.uint32(6),
352  ),
353  WHToENuBB = cms.PSet(
354  hltPathsToCheck = cms.vstring(
355  "HLT_Ele27_WPLoose_Gsf_WHbbBoost_v",
356  ),
357  recElecLabel = cms.string("gedGsfElectrons"),
358  recJetLabel = cms.string("ak4PFJetsCHS"),
359  minCandidates = cms.uint32(1),
360  ),
361 )