ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/OSUT3Analysis/ControlRegions/python/MuEGSelections.py
Revision: 1.1
Committed: Tue May 7 09:39:32 2013 UTC (12 years ago) by lantonel
Content type: text/x-python
Branch: MAIN
CVS Tags: V02-03-02, V02-03-01, V02-03-00, V02-02-00, V02-01-01, V02-01-00, V01-01-00, V01-00-01, V01-00-00, V00-01-00, HEAD
Log Message:
first commit of control region definitions

File Contents

# Content
1 import FWCore.ParameterSet.Config as cms
2 import copy
3
4 ##########################################################################
5 ##### Set up control regions for use with the doubleElectron dataset #####
6 ##########################################################################
7
8 from OSUT3Analysis.ControlRegions.Preselections import *
9
10 #Z->tautau->emu
11 #WW->emu
12 #WZ->emumu
13 #WZ->eemu
14 #ZZ->eemumu
15 #TTbar->emu
16 #QCD->emu
17
18 muEGTriggerPath = cms.vstring("HLT_Mu17_Ele8_CaloIdT_CaloIsoVL_TrkIdVL_TrkIsoVL_v","HLT_Mu8_Ele17_CaloIdT_CaloIsoVL_TrkIdVL_TrkIsoVL_v")
19
20 #defining these cuts first since they will be used repeatedly
21 e_os_cut = cms.PSet (
22 inputCollection = cms.string("electron-electron pairs"),
23 cutString = cms.string("chargeProduct < 0"),
24 numberRequired = cms.string(">= 1")
25 )
26
27 mu_os_cut = cms.PSet (
28 inputCollection = cms.string("muon-muon pairs"),
29 cutString = cms.string("chargeProduct < 0"),
30 numberRequired = cms.string(">= 1")
31 )
32
33 emu_os_cut = cms.PSet (
34 inputCollection = cms.string("electron-muon pairs"),
35 cutString = cms.string("chargeProduct < 0"),
36 numberRequired = cms.string(">= 1")
37 )
38
39 e_zpeak_cut = cms.PSet (
40 inputCollection = cms.string("electron-electron pairs"),
41 cutString = cms.string("invMass > 60 & invMass < 120"),
42 numberRequired = cms.string(">= 1")
43 )
44
45 mu_zpeak_cut = cms.PSet (
46 inputCollection = cms.string("muon-muon pairs"),
47 cutString = cms.string("invMass > 60 & invMass < 120"),
48 numberRequired = cms.string(">= 1")
49 )
50
51 ##########################################################################
52
53 ZtoTauTautoEMu_Selection = cms.PSet(
54 name = cms.string("Z to TauTau to EMu"),
55 triggers = muEGTriggerPath,
56 cuts = cms.VPSet ()
57 )
58 ZtoTauTautoEMu_Selection.cuts.extend(copy.deepcopy(Event_Preselection.cuts))
59 ZtoTauTautoEMu_Selection.cuts.extend(copy.deepcopy(Electron_Preselection.cuts))
60 ZtoTauTautoEMu_Selection.cuts.extend(copy.deepcopy(Muon_Preselection.cuts))
61 for cut in ZtoTauTautoEMu_Selection.cuts:
62 if "muons" in str(cut.inputCollection) or "electrons" in str(cut.inputCollection):
63 cut.numberRequired = cms.string('== 1')
64
65 e_metMT_cut = cms.PSet (
66 inputCollection = cms.string("electrons"),
67 cutString = cms.string("metMT < 50"),
68 numberRequired = cms.string("== 1")
69 )
70 ZtoTauTautoEMu_Selection.cuts.append(e_metMT_cut)
71
72 mu_metMT_cut = cms.PSet (
73 inputCollection = cms.string("muons"),
74 cutString = cms.string("metMT < 50"),
75 numberRequired = cms.string("== 1")
76 )
77 ZtoTauTautoEMu_Selection.cuts.append(mu_metMT_cut)
78
79 ZtoTauTautoEMu_Selection.cuts.append(emu_os_cut)
80
81 ##########################################################################
82
83 WWtoEMu_Selection = cms.PSet(
84 name = cms.string("WW to EMu"),
85 triggers = muEGTriggerPath,
86 cuts = cms.VPSet ()
87 )
88 WWtoEMu_Selection.cuts.extend(copy.deepcopy(Event_Preselection.cuts))
89 WWtoEMu_Selection.cuts.extend(copy.deepcopy(Electron_Preselection.cuts))
90 WWtoEMu_Selection.cuts.extend(copy.deepcopy(Muon_Preselection.cuts))
91 for cut in WWtoEMu_Selection.cuts:
92 if "muons" in str(cut.inputCollection) or "electrons" in str(cut.inputCollection):
93 cut.numberRequired = cms.string('== 1')
94
95 leptonpair_pt_cut = cms.PSet (
96 inputCollection = cms.string("electron-muon pairs"),
97 cutString = cms.string("pt > 45"),
98 numberRequired = cms.string(">= 1"),
99 )
100 WWtoEMu_Selection.cuts.append(leptonpair_pt_cut)
101
102 WWtoEMu_Selection.cuts.append(emu_os_cut)
103
104 bjet_veto = cms.PSet (
105 inputCollection = cms.string("jets"),
106 cutString = cms.string("pt > 30 | btagCombinedSecVertex > 0.244"),
107 numberRequired = cms.string("== 0")
108 )
109 WWtoEMu_Selection.cuts.append(bjet_veto)
110
111 met_cut = cms.PSet (
112 inputCollection = cms.string("mets"),
113 cutString = cms.string("pt > 60"),
114 numberRequired = cms.string(">= 1"),
115 alias = cms.string("met > 60")
116 )
117 WWtoEMu_Selection.cuts.append(met_cut)
118
119 ##########################################################################
120
121 WZtoEMuMu_Selection = cms.PSet(
122 name = cms.string("WZ to EMuMu"),
123 triggers = muEGTriggerPath,
124 cuts = cms.VPSet ()
125 )
126 WZtoEMuMu_Selection.cuts.extend(copy.deepcopy(Event_Preselection.cuts))
127 WZtoEMuMu_Selection.cuts.extend(copy.deepcopy(Electron_Preselection.cuts))
128 for cut in WZtoEMuMu_Selection.cuts:
129 if "electrons" in str(cut.inputCollection):
130 cut.numberRequired = cms.string('== 1')
131
132 WZtoEMuMu_Selection.cuts.extend(copy.deepcopy(Muon_Preselection.cuts))
133 for cut in WZtoEMuMu_Selection.cuts:
134 if "muons" in str(cut.inputCollection):
135 cut.numberRequired = cms.string('== 2')
136
137 WZtoEMuMu_Selection.cuts.append(mu_os_cut)
138 WZtoEMuMu_Selection.cuts.append(mu_zpeak_cut)
139
140 met_cut = cms.PSet (
141 inputCollection = cms.string("mets"),
142 cutString = cms.string("pt > 30"),
143 numberRequired = cms.string(">= 1"),
144 alias = cms.string("met > 30")
145 )
146 WZtoEMuMu_Selection.cuts.append(met_cut)
147
148 ##########################################################################
149
150 WZtoEEMu_Selection = cms.PSet(
151 name = cms.string("WZ to EEMu"),
152 triggers = muEGTriggerPath,
153 cuts = cms.VPSet ()
154 )
155 WZtoEEMu_Selection.cuts.extend(copy.deepcopy(Event_Preselection.cuts))
156 WZtoEEMu_Selection.cuts.extend(copy.deepcopy(Electron_Preselection.cuts))
157 for cut in WZtoEEMu_Selection.cuts:
158 if "electrons" in str(cut.inputCollection):
159 cut.numberRequired = cms.string('== 2')
160
161 WZtoEEMu_Selection.cuts.extend(copy.deepcopy(Muon_Preselection.cuts))
162 for cut in WZtoEEMu_Selection.cuts:
163 if "muons" in str(cut.inputCollection):
164 cut.numberRequired = cms.string('== 1')
165
166 WZtoEEMu_Selection.cuts.append(e_os_cut)
167 WZtoEEMu_Selection.cuts.append(e_zpeak_cut)
168
169 met_cut = cms.PSet (
170 inputCollection = cms.string("mets"),
171 cutString = cms.string("pt > 30"),
172 numberRequired = cms.string(">= 1"),
173 alias = cms.string("met > 30")
174 )
175 WZtoEEMu_Selection.cuts.append(met_cut)
176
177 ##########################################################################
178
179 ZZtoEEMuMu_Selection = cms.PSet(
180 name = cms.string("ZZ to EEMuMu"),
181 triggers = muEGTriggerPath,
182 cuts = cms.VPSet ()
183 )
184 ZZtoEEMuMu_Selection.cuts.extend(copy.deepcopy(Event_Preselection.cuts))
185 ZZtoEEMuMu_Selection.cuts.extend(copy.deepcopy(Electron_Preselection.cuts))
186 for cut in ZZtoEEMuMu_Selection.cuts:
187 if "electrons" in str(cut.inputCollection):
188 cut.numberRequired = cms.string('== 2')
189 ZZtoEEMuMu_Selection.cuts.extend(copy.deepcopy(Muon_Preselection.cuts))
190 for cut in ZZtoEEMuMu_Selection.cuts:
191 if "muons" in str(cut.inputCollection):
192 cut.numberRequired = cms.string('== 2')
193
194 ZZtoEEMuMu_Selection.cuts.append(e_os_cut)
195 ZZtoEEMuMu_Selection.cuts.append(e_zpeak_cut)
196 ZZtoEEMuMu_Selection.cuts.append(mu_os_cut)
197 ZZtoEEMuMu_Selection.cuts.append(mu_zpeak_cut)
198
199 ##########################################################################
200
201 TTbartoEMu_Selection = cms.PSet(
202 name = cms.string("TTbar to EMu"),
203 triggers = muEGTriggerPath,
204 cuts = cms.VPSet ()
205 )
206 TTbartoEMu_Selection.cuts.extend(copy.deepcopy(Event_Preselection.cuts))
207 TTbartoEMu_Selection.cuts.extend(copy.deepcopy(Electron_Preselection.cuts))
208 for cut in TTbartoEMu_Selection.cuts:
209 if "electrons" in str(cut.inputCollection):
210 cut.numberRequired = cms.string('== 1')
211 TTbartoEMu_Selection.cuts.extend(copy.deepcopy(Muon_Preselection.cuts))
212 for cut in TTbartoEMu_Selection.cuts:
213 if "muons" in str(cut.inputCollection):
214 cut.numberRequired = cms.string('== 1')
215
216 TTbartoEMu_Selection.cuts.append(emu_os_cut)
217
218 jet_eta_cut = cms.PSet (
219 inputCollection = cms.string("jets"),
220 cutString = cms.string("abs(eta) < 2.4"),
221 numberRequired = cms.string(">= 2")
222 )
223 TTbartoEMu_Selection.cuts.append(jet_eta_cut)
224
225 jet_pt_cut = cms.PSet (
226 inputCollection = cms.string("jets"),
227 cutString = cms.string("pt > 30"),
228 numberRequired = cms.string(">= 2")
229 )
230 TTbartoEMu_Selection.cuts.append(jet_pt_cut)
231
232 btag_cut = cms.PSet (
233 inputCollection = cms.string("jets"),
234 cutString = cms.string("btagCombinedSecVertex > 0.679"),
235 numberRequired = cms.string(">= 1")
236 )
237 TTbartoEMu_Selection.cuts.append(btag_cut)
238
239
240 ##########################################################################
241
242 QCDtoEMu_Selection = cms.PSet(
243 name = cms.string("QCD to EMu"),
244 triggers = muEGTriggerPath,
245 cuts = cms.VPSet ()
246 )
247 QCDtoEMu_Selection.cuts.extend(copy.deepcopy(Event_Preselection.cuts))
248 QCDtoEMu_Selection.cuts.extend(copy.deepcopy(Electron_Preselection.cuts))
249 for cut in QCDtoEMu_Selection.cuts:
250 if "electrons" in str(cut.inputCollection):
251 cut.numberRequired = cms.string('== 1')
252 if "relPFrhoIso" in str(cut.cutString) and "electrons" in str(cut.inputCollection):
253 cut.cutString = cms.string('relPFrhoIso > 0.1')
254 QCDtoEMu_Selection.cuts.extend(copy.deepcopy(Muon_Preselection.cuts))
255 for cut in QCDtoEMu_Selection.cuts:
256 if "muons" in str(cut.inputCollection):
257 cut.numberRequired = cms.string('== 1')
258 if "relPFdBetaIso" in str(cut.cutString) and "muons" in str(cut.inputCollection):
259 cut.cutString = cms.string('relPFdBetaIso > 0.12')
260
261 ##########################################################################
262
263
264
265