4 """(Semi-)Leptonic Working Group Skims for leptonic analyses.
14 import modularAnalysis
as ma
15 from skimExpertFunctions
import BaseSkim, fancy_skim_header
16 from stdCharged
import stdE, stdMu
17 from variables
import variables
as vm
19 __liaison__ =
"Shanette De La Motte <shanette.delamotte@adelaide.edu.au>"
26 * :math:`B^- \\to e^-`
27 * :math:`B^- \\to \\mu^-`
30 * :math:`p_{\\ell}^{*} > 2\\,\\text{GeV}` in CMS Frame
31 * :math:`\\text{electronID} > 0.5`
32 * :math:`\\text{muonID} > 0.5`
33 * :math:`n_{\\text{tracks}} \\geq 3`
36 __authors__ = [
"Phillip Urquijo"]
37 __contact__ = __liaison__
39 "Skim for leptonic analyses, "
40 ":math:`B_{\\text{sig}}^-\\to\\ell\\nu`, where :math:`\\ell=e,\\mu`"
42 __category__ =
"physics, leptonic"
45 stdE(
"all", path=path)
46 stdMu(
"all", path=path)
50 "e-:LeptonicUntagged",
52 "useCMSFrame(p) > 2.0 and electronID > 0.5",
57 "mu-:LeptonicUntagged",
59 "useCMSFrame(p) > 2.0 and muonID > 0.5",
63 ma.reconstructDecay(
"B-:LeptonicUntagged_0 -> e-:LeptonicUntagged",
"", 1, path=path)
64 ma.reconstructDecay(
"B-:LeptonicUntagged_1 -> mu-:LeptonicUntagged",
"", 2, path=path)
65 ma.applyCuts(
"B-:LeptonicUntagged_0",
"nTracks>=3", path=path)
66 ma.applyCuts(
"B-:LeptonicUntagged_1",
"nTracks>=3", path=path)
67 lepList = [
"B-:LeptonicUntagged_0",
"B-:LeptonicUntagged_1"]
75 ma.cutAndCopyLists(
"B-:LeptonicUntagged", [
"B-:LeptonicUntagged_0",
"B-:LeptonicUntagged_1"],
"", path=path)
77 ma.buildRestOfEvent(
"B-:LeptonicUntagged", path=path)
79 "B-:LeptonicUntagged",
81 "pt>0.05 and -2<dr<2 and -4.0<dz<4.0",
85 vm.addAlias(
"d0_p",
"daughter(0,p)")
86 vm.addAlias(
"d0_electronID",
"daughter(0,electronID)")
87 vm.addAlias(
"d0_muonID",
"daughter(0,muonID)")
88 vm.addAlias(
"MissP",
"weMissP(basic,0)")
90 histogramFilename =
"LeptonicUntagged_Validation.root"
91 contact =
"Phil Grace <philip.grace@adelaide.edu.au>"
93 create_validation_histograms(
94 rootfile=histogramFilename,
95 particlelist=
"B-:LeptonicUntagged",
97 (
"Mbc", 100, 4.0, 5.3,
"Mbc", contact,
"",
""),
98 (
"d0_p", 100, 0, 5.2,
"Signal-side lepton momentum", contact,
"",
""),
99 (
"d0_electronID", 100, 0, 1,
"electronID of signal-side lepton",
101 (
"d0_muonID", 100, 0, 1,
"electronID of signal-side lepton", contact,
103 (
"R2", 100, 0, 1,
"R2", contact,
"",
""),
104 (
"MissP", 100, 0, 5.3,
"Missing momentum of event (CMS frame)", contact,
108 (
"deltaE", 100, -5, 5,
"Mbc", 100, 4.0, 5.3,
"Mbc vs deltaE", contact,
119 * :math:`BBar \\to l^+l^-`
120 * :math:`BBar \\to l^+l^+`
121 * :math:`BBar \\to l^-l^-`
123 __authors__ = [
"Alessandro Gaz, Chiara La Licata"]
124 __contact__ = __liaison__
126 "Inclusive dilepton skim"
128 __category__ =
"physics, leptonic"
131 stdE(
"all", path=path)
132 stdMu(
"all", path=path)
138 "abs(d0) < 1 and abs(z0) < 4 and p > 1.2 and electronID > 0.5",
145 "abs(d0) < 1 and abs(z0) < 4 and p > 1.2 and muonID > 0.5",
152 default_cleanup=
True,
157 harmonicMoments=
True,
161 checkForDuplicates=
False,
164 ma.applyEventCuts(cut=
'foxWolframR2 < 0.5 and nTracks > 3', path=path)
166 ma.reconstructDecay(
'Upsilon(4S):ee -> e+:pid e-:pid',
'M < 15', path=path)
167 ma.reconstructDecay(
'Upsilon(4S):emu -> e+:pid mu-:pid',
'M < 15', path=path)
168 ma.reconstructDecay(
'Upsilon(4S):mumu -> mu+:pid mu-:pid',
'M < 15', path=path)
170 ma.reconstructDecay(
'Delta++:ee -> e+:pid e+:pid',
'M < 15', path=path)
171 ma.reconstructDecay(
'Delta++:emu -> e+:pid mu+:pid',
'M < 15', path=path)
172 ma.reconstructDecay(
'Delta++:mumu -> mu+:pid mu+:pid',
'M < 15', path=path)
174 ma.copyLists(outputListName=
'Upsilon(4S):ll',
175 inputListNames=[
'Upsilon(4S):ee',
'Upsilon(4S):emu',
'Upsilon(4S):mumu'],
178 ma.copyLists(outputListName=
'Delta++:ll',
179 inputListNames=[
'Delta++:ee',
'Delta++:emu',
'Delta++:mumu'],
182 dileptonList = [
"Upsilon(4S):ll",
"Delta++:ll"]