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 trackRequirementsNoIso = '(InDetTrackParticles.pt > 10.*GeV && abs(DFCommonInDetTrackZ0AtPV*sin(InDetTrackParticles.theta)) < 5.0*mm )'
39
40 muonsRequirements = '(Muons.pt >= 20.*GeV) && (abs(Muons.eta) < 2.6) && (Muons.DFCommonMuonPassPreselection)'
41 electronsRequirements = '(Electrons.pt > 20.*GeV) && (abs(Electrons.eta) < 2.6) && ((Electrons.Loose) || (Electrons.DFCommonElectronsLHLoose))'
42
43
44 expression_W = '( count('+trackRequirements+') >=1 )'
45 expression_Mu = '( count('+trackRequirementsMu+') >=1 )'
46 expression_ttbarEl = '( count('+electronsRequirements+') >=1 ) && ( count('+jetRequirementsTtbar+') >=1 ) && ( count('+trackRequirementsNoIso+') >=2 ) && ( count('+trackRequirements+') >=1 )'
47 expression_ttbarElNoTag = '( count('+electronsRequirements+') >=1 ) && ( count('+trackRequirements+') >=1 )'
48 expression_ttbarMu = '( count('+muonsRequirements+') >=1 ) && ( count('+jetRequirementsTtbar+') >=1 ) && ( count('+trackRequirementsNoIso+') >=2 ) && ( count('+trackRequirements+') >=1 )'
49 expression_ttbarMuNoTag = '( count('+muonsRequirements+') >=1 ) && ( count('+trackRequirements+') >=1 )'
50
51 skimmingTool_W = acc.getPrimaryAndMerge(xAODStringSkimmingToolCfg(
52 flags, name = "skimmingTool_W", expression = expression_W))
53 filterList_W = [skimmingTool_W]
54 skimmingTool_Mu = acc.getPrimaryAndMerge(xAODStringSkimmingToolCfg(
55 flags, name = "skimmingTool_mu", expression = expression_Mu))
56 filterList_Mu = [skimmingTool_Mu]
57
58
59 if flags.Trigger.EDMVersion >= 0:
60 JETM12TriggerSkimmingTool_W = (
61 CompFactory.DerivationFramework.TriggerSkimmingTool(
62 name = "JETM12TriggerSkimmingTool_W",
63 TriggerListOR = metTriggers))
64 acc.addPublicTool(JETM12TriggerSkimmingTool_W)
65 filterList_W += [JETM12TriggerSkimmingTool_W]
66
67 JETM12TriggerSkimmingTool_ele = (
68 CompFactory.DerivationFramework.TriggerSkimmingTool(
69 name = "JETM12TriggerSkimmingTool_ele",
70 TriggerListOR = elTriggers))
71 acc.addPublicTool(JETM12TriggerSkimmingTool_ele)
72
73 JETM12TriggerSkimmingTool_mu = (
74 CompFactory.DerivationFramework.TriggerSkimmingTool(
75 name = "JETM12TriggerSkimmingTool_mu",
76 TriggerListOR = muTriggers))
77 acc.addPublicTool(JETM12TriggerSkimmingTool_mu)
78 filterList_Mu += [JETM12TriggerSkimmingTool_mu]
79
80 JETM12SkimmingTool_W = (
81 CompFactory.DerivationFramework.FilterCombinationAND(
82 name="JETM12SkimmingTool_W", FilterList=filterList_W))
83 acc.addPublicTool(JETM12SkimmingTool_W)
84 JETM12SkimmingTool_Mu = (
85 CompFactory.DerivationFramework.FilterCombinationAND(
86 name="JETM12SkimmingTool_Mu", FilterList=filterList_Mu))
87 acc.addPublicTool(JETM12SkimmingTool_Mu)
88
89 finalSkimmingTools = [JETM12SkimmingTool_W,JETM12SkimmingTool_Mu]
90
91 if addTtbarEvents:
92 skimmingTool_ttbarEl = acc.getPrimaryAndMerge(
93 xAODStringSkimmingToolCfg(
94 flags, name = "skimmingTool_ttbarEl",
95 expression = expression_ttbarEl))
96 acc.addPublicTool(skimmingTool_ttbarEl)
97 filterList_ttbarEl = [skimmingTool_ttbarEl]
98
99 skimmingTool_ttbarElNoTag = acc.getPrimaryAndMerge(
100 xAODStringSkimmingToolCfg(
101 flags, name = "skimmingTool_ttbarElNoTag",
102 expression = expression_ttbarElNoTag))
103 acc.addPublicTool(skimmingTool_ttbarElNoTag)
104 filterList_ttbarElNoTag = [skimmingTool_ttbarElNoTag]
105
106 skimmingTool_ttbarMu = acc.getPrimaryAndMerge(
107 xAODStringSkimmingToolCfg(
108 flags, name = "skimmingTool_ttbarMu",
109 expression = expression_ttbarMu))
110 acc.addPublicTool(skimmingTool_ttbarMu)
111 filterList_ttbarMu = [skimmingTool_ttbarMu]
112
113 skimmingTool_ttbarMuNoTag = acc.getPrimaryAndMerge(
114 xAODStringSkimmingToolCfg(
115 flags, name = "skimmingTool_ttbarMuNoTag",
116 expression = expression_ttbarMuNoTag))
117 acc.addPublicTool(skimmingTool_ttbarMuNoTag)
118 filterList_ttbarMuNoTag = [skimmingTool_ttbarMuNoTag]
119
120 if flags.Trigger.EDMVersion >= 0:
121 filterList_ttbarEl += [JETM12TriggerSkimmingTool_ele]
122 filterList_ttbarElNoTag += [JETM12TriggerSkimmingTool_ele]
123 filterList_ttbarMu += [JETM12TriggerSkimmingTool_mu]
124 filterList_ttbarMuNoTag += [JETM12TriggerSkimmingTool_mu]
125
126 JETM12SkimmingTool_ttbarEl = (
127 CompFactory.DerivationFramework.FilterCombinationAND(
128 name="JETM12SkimmingTool_ttbarEl",
129 FilterList=filterList_ttbarEl))
130 acc.addPublicTool(JETM12SkimmingTool_ttbarEl)
131 JETM12SkimmingTool_ttbarElNoTag = (
132 CompFactory.DerivationFramework.FilterCombinationAND(
133 name="JETM12SkimmingTool_ttbarElNoTag",
134 FilterList=filterList_ttbarElNoTag))
135 acc.addPublicTool(JETM12SkimmingTool_ttbarElNoTag)
136 JETM12SkimmingTool_ttbarMu = (
137 CompFactory.DerivationFramework.FilterCombinationAND(
138 name="JETM12SkimmingTool_ttbarMu",
139 FilterList=filterList_ttbarMu))
140 acc.addPublicTool(JETM12SkimmingTool_ttbarMu)
141 JETM12SkimmingTool_ttbarMuNoTag = (
142 CompFactory.DerivationFramework.FilterCombinationAND(
143 name="JETM12SkimmingTool_ttbarMuNoTag",
144 FilterList=filterList_ttbarMuNoTag))
145 acc.addPublicTool(JETM12SkimmingTool_ttbarMuNoTag)
146
147 finalSkimmingTools = [
148 JETM12SkimmingTool_W, JETM12SkimmingTool_Mu,
149 JETM12SkimmingTool_ttbarEl, JETM12SkimmingTool_ttbarMu,
150 JETM12SkimmingTool_ttbarElNoTag, JETM12SkimmingTool_ttbarMuNoTag]
151
152 JETM12SkimmingTool = CompFactory.DerivationFramework.FilterCombinationOR(
153 name="JETM12SkimmingTool", FilterList=finalSkimmingTools)
154 acc.addPublicTool(JETM12SkimmingTool, primary = True)
155
156 return(acc)
157