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

# User Rev Content
1 lantonel 1.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