11def JETM12SkimmingToolCfg(flags):
12 """Configure the skimming tool"""
13 acc = ComponentAccumulator()
14
15 from DerivationFrameworkJetEtMiss import TriggerLists
16 metTriggers = TriggerLists.MET_Trig(flags)
17 elTriggers = TriggerLists.single_el_Trig(flags)
18 muTriggers = TriggerLists.single_mu_Trig(flags)
19
20 addTtbarEvents = True
21 if not flags.Input.isMC:
22
23 from CoolConvUtilities.MagFieldUtils import getFieldForRun
24 magfield=getFieldForRun(flags.Input.RunNumbers[0],lumiblock=flags.Input.LumiBlockNumbers[0])
25 addTtbarEvents = magfield.solenoidCurrent() > 0
26
27
28
29 from DerivationFrameworkTools.DerivationFrameworkToolsConfig import (
30 xAODStringSkimmingToolCfg)
31
32 tracks = 'InDetTrackParticles.TrkIsoPt1000_ptcone20 < 0.12*InDetTrackParticles.pt && InDetTrackParticles.DFCommonTightPrimary && abs(DFCommonInDetTrackZ0AtPV*sin(InDetTrackParticles.theta)) < 5.0*mm'
33
34 trackRequirements = '(InDetTrackParticles.pt > 6.*GeV && '+tracks+' )'
35 trackRequirementsMu = '(InDetTrackParticles.pt > 40.*GeV && '+tracks+' )'
36 jetRequirementsTtbar = '(AntiKt4EMPFlowJets.pt > 18*GeV && log(AntiKt4EMPFlowJets.GN2v01_pb/(0.2*AntiKt4EMPFlowJets.GN2v01_pc + (1.-0.2-0.01)*AntiKt4EMPFlowJets.GN2v01_pu + 0.01*AntiKt4EMPFlowJets.GN2v01_ptau))>=0.844)'
37
38
39 if flags.GeoModel.Run >= LHCPeriod.Run4:
40 jetRequirementsTtbar = '(AntiKt4EMPFlowJets.pt > 18*GeV)'
41
42 trackRequirementsNoIso = '(InDetTrackParticles.pt > 10.*GeV && abs(DFCommonInDetTrackZ0AtPV*sin(InDetTrackParticles.theta)) < 5.0*mm )'
43
44 muonsRequirements = '(Muons.pt >= 20.*GeV) && (abs(Muons.eta) < 2.6) && (Muons.DFCommonMuonPassPreselection)'
45 electronsRequirements = '(Electrons.pt > 20.*GeV) && (abs(Electrons.eta) < 2.6) && ((Electrons.Loose) || (Electrons.DFCommonElectronsLHLoose))'
46
47
48 expression_W = '( count('+trackRequirements+') >=1 )'
49 expression_Mu = '( count('+trackRequirementsMu+') >=1 )'
50 expression_ttbarEl = '( count('+electronsRequirements+') >=1 ) && ( count('+jetRequirementsTtbar+') >=1 ) && ( count('+trackRequirementsNoIso+') >=2 ) && ( count('+trackRequirements+') >=1 )'
51 expression_ttbarElNoTag = '( count('+electronsRequirements+') >=1 ) && ( count('+trackRequirements+') >=1 )'
52 expression_ttbarMu = '( count('+muonsRequirements+') >=1 ) && ( count('+jetRequirementsTtbar+') >=1 ) && ( count('+trackRequirementsNoIso+') >=2 ) && ( count('+trackRequirements+') >=1 )'
53 expression_ttbarMuNoTag = '( count('+muonsRequirements+') >=1 ) && ( count('+trackRequirements+') >=1 )'
54
55 skimmingTool_W = acc.getPrimaryAndMerge(xAODStringSkimmingToolCfg(
56 flags, name = "skimmingTool_W", expression = expression_W))
57 filterList_W = [skimmingTool_W]
58 skimmingTool_Mu = acc.getPrimaryAndMerge(xAODStringSkimmingToolCfg(
59 flags, name = "skimmingTool_mu", expression = expression_Mu))
60 filterList_Mu = [skimmingTool_Mu]
61
62
63 if flags.Trigger.EDMVersion >= 0:
64 JETM12TriggerSkimmingTool_W = (
65 CompFactory.DerivationFramework.TriggerSkimmingTool(
66 name = "JETM12TriggerSkimmingTool_W",
67 TriggerListOR = metTriggers))
68 acc.addPublicTool(JETM12TriggerSkimmingTool_W)
69 filterList_W += [JETM12TriggerSkimmingTool_W]
70
71 JETM12TriggerSkimmingTool_ele = (
72 CompFactory.DerivationFramework.TriggerSkimmingTool(
73 name = "JETM12TriggerSkimmingTool_ele",
74 TriggerListOR = elTriggers))
75 acc.addPublicTool(JETM12TriggerSkimmingTool_ele)
76
77 JETM12TriggerSkimmingTool_mu = (
78 CompFactory.DerivationFramework.TriggerSkimmingTool(
79 name = "JETM12TriggerSkimmingTool_mu",
80 TriggerListOR = muTriggers))
81 acc.addPublicTool(JETM12TriggerSkimmingTool_mu)
82 filterList_Mu += [JETM12TriggerSkimmingTool_mu]
83
84 JETM12SkimmingTool_W = (
85 CompFactory.DerivationFramework.FilterCombinationAND(
86 name="JETM12SkimmingTool_W", FilterList=filterList_W))
87 acc.addPublicTool(JETM12SkimmingTool_W)
88 JETM12SkimmingTool_Mu = (
89 CompFactory.DerivationFramework.FilterCombinationAND(
90 name="JETM12SkimmingTool_Mu", FilterList=filterList_Mu))
91 acc.addPublicTool(JETM12SkimmingTool_Mu)
92
93 finalSkimmingTools = [JETM12SkimmingTool_W,JETM12SkimmingTool_Mu]
94
95 if addTtbarEvents:
96 skimmingTool_ttbarEl = acc.getPrimaryAndMerge(
97 xAODStringSkimmingToolCfg(
98 flags, name = "skimmingTool_ttbarEl",
99 expression = expression_ttbarEl))
100 acc.addPublicTool(skimmingTool_ttbarEl)
101 filterList_ttbarEl = [skimmingTool_ttbarEl]
102
103 skimmingTool_ttbarElNoTag = acc.getPrimaryAndMerge(
104 xAODStringSkimmingToolCfg(
105 flags, name = "skimmingTool_ttbarElNoTag",
106 expression = expression_ttbarElNoTag))
107 acc.addPublicTool(skimmingTool_ttbarElNoTag)
108 filterList_ttbarElNoTag = [skimmingTool_ttbarElNoTag]
109
110 skimmingTool_ttbarMu = acc.getPrimaryAndMerge(
111 xAODStringSkimmingToolCfg(
112 flags, name = "skimmingTool_ttbarMu",
113 expression = expression_ttbarMu))
114 acc.addPublicTool(skimmingTool_ttbarMu)
115 filterList_ttbarMu = [skimmingTool_ttbarMu]
116
117 skimmingTool_ttbarMuNoTag = acc.getPrimaryAndMerge(
118 xAODStringSkimmingToolCfg(
119 flags, name = "skimmingTool_ttbarMuNoTag",
120 expression = expression_ttbarMuNoTag))
121 acc.addPublicTool(skimmingTool_ttbarMuNoTag)
122 filterList_ttbarMuNoTag = [skimmingTool_ttbarMuNoTag]
123
124 if flags.Trigger.EDMVersion >= 0:
125 filterList_ttbarEl += [JETM12TriggerSkimmingTool_ele]
126 filterList_ttbarElNoTag += [JETM12TriggerSkimmingTool_ele]
127 filterList_ttbarMu += [JETM12TriggerSkimmingTool_mu]
128 filterList_ttbarMuNoTag += [JETM12TriggerSkimmingTool_mu]
129
130 JETM12SkimmingTool_ttbarEl = (
131 CompFactory.DerivationFramework.FilterCombinationAND(
132 name="JETM12SkimmingTool_ttbarEl",
133 FilterList=filterList_ttbarEl))
134 acc.addPublicTool(JETM12SkimmingTool_ttbarEl)
135 JETM12SkimmingTool_ttbarElNoTag = (
136 CompFactory.DerivationFramework.FilterCombinationAND(
137 name="JETM12SkimmingTool_ttbarElNoTag",
138 FilterList=filterList_ttbarElNoTag))
139 acc.addPublicTool(JETM12SkimmingTool_ttbarElNoTag)
140 JETM12SkimmingTool_ttbarMu = (
141 CompFactory.DerivationFramework.FilterCombinationAND(
142 name="JETM12SkimmingTool_ttbarMu",
143 FilterList=filterList_ttbarMu))
144 acc.addPublicTool(JETM12SkimmingTool_ttbarMu)
145 JETM12SkimmingTool_ttbarMuNoTag = (
146 CompFactory.DerivationFramework.FilterCombinationAND(
147 name="JETM12SkimmingTool_ttbarMuNoTag",
148 FilterList=filterList_ttbarMuNoTag))
149 acc.addPublicTool(JETM12SkimmingTool_ttbarMuNoTag)
150
151 finalSkimmingTools = [
152 JETM12SkimmingTool_W, JETM12SkimmingTool_Mu,
153 JETM12SkimmingTool_ttbarEl, JETM12SkimmingTool_ttbarMu,
154 JETM12SkimmingTool_ttbarElNoTag, JETM12SkimmingTool_ttbarMuNoTag]
155
156 JETM12SkimmingTool = CompFactory.DerivationFramework.FilterCombinationOR(
157 name="JETM12SkimmingTool", FilterList=finalSkimmingTools)
158 acc.addPublicTool(JETM12SkimmingTool, primary = True)
159
160 return(acc)
161