12 """Configure the skimming tool"""
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)
21 if not flags.Input.isMC:
23 from CoolConvUtilities.MagFieldUtils
import getFieldForRun
24 magfield=
getFieldForRun(flags.Input.RunNumbers[0],lumiblock=flags.Input.LumiBlockNumbers[0])
25 addTtbarEvents = magfield.solenoidCurrent() > 0
29 tracks =
'InDetTrackParticles.TrkIsoPt1000_ptcone20 < 0.12*InDetTrackParticles.pt && InDetTrackParticles.DFCommonTightPrimary && abs(DFCommonInDetTrackZ0AtPV*sin(InDetTrackParticles.theta)) < 5.0*mm'
31 trackRequirements =
'(InDetTrackParticles.pt > 6.*GeV && '+tracks+
' )'
32 trackRequirementsMu =
'(InDetTrackParticles.pt > 40.*GeV && '+tracks+
' )'
33 jetRequirementsTtbar =
'(AntiKt4EMPFlowJets.pt > 18*GeV && log(BTagging_AntiKt4EMPFlow.DL1dv01_pb/(0.018*BTagging_AntiKt4EMPFlow.DL1dv01_pc+(1.0-0.018)*BTagging_AntiKt4EMPFlow.DL1dv01_pu)) > 0.948)'
34 trackRequirementsNoIso =
'(InDetTrackParticles.pt > 10.*GeV && abs(DFCommonInDetTrackZ0AtPV*sin(InDetTrackParticles.theta)) < 5.0*mm )'
36 muonsRequirements =
'(Muons.pt >= 20.*GeV) && (abs(Muons.eta) < 2.6) && (Muons.DFCommonMuonPassPreselection)'
37 electronsRequirements =
'(Electrons.pt > 20.*GeV) && (abs(Electrons.eta) < 2.6) && ((Electrons.Loose) || (Electrons.DFCommonElectronsLHLoose))'
40 expression_W =
'( count('+trackRequirements+
') >=1 )'
41 expression_Mu =
'( count('+trackRequirementsMu+
') >=1 )'
42 expression_ttbarEl =
'( count('+electronsRequirements+
') >=1 ) && ( count('+jetRequirementsTtbar+
') >=1 ) && ( count('+trackRequirementsNoIso+
') >=2 ) && ( count('+trackRequirements+
') >=1 )'
43 expression_ttbarElNoTag =
'( count('+electronsRequirements+
') >=1 ) && ( count('+trackRequirements+
') >=1 )'
44 expression_ttbarMu =
'( count('+muonsRequirements+
') >=1 ) && ( count('+jetRequirementsTtbar+
') >=1 ) && ( count('+trackRequirementsNoIso+
') >=2 ) && ( count('+trackRequirements+
') >=1 )'
45 expression_ttbarMuNoTag =
'( count('+muonsRequirements+
') >=1 ) && ( count('+trackRequirements+
') >=1 )'
47 skimmingTool_W = CompFactory.DerivationFramework.xAODStringSkimmingTool(name =
"skimmingTool_W", expression = expression_W)
48 acc.addPublicTool(skimmingTool_W)
49 skimmingTool_Mu = CompFactory.DerivationFramework.xAODStringSkimmingTool(name =
"skimmingTool_mu", expression = expression_Mu)
50 acc.addPublicTool(skimmingTool_Mu)
53 JETM12TriggerSkimmingTool_W = CompFactory.DerivationFramework.TriggerSkimmingTool(name =
"JETM12TriggerSkimmingTool_W", TriggerListOR = metTriggers)
54 acc.addPublicTool(JETM12TriggerSkimmingTool_W)
55 JETM12TriggerSkimmingTool_ele = CompFactory.DerivationFramework.TriggerSkimmingTool(name =
"JETM12TriggerSkimmingTool_ele", TriggerListOR = elTriggers)
56 acc.addPublicTool(JETM12TriggerSkimmingTool_ele)
57 JETM12TriggerSkimmingTool_mu = CompFactory.DerivationFramework.TriggerSkimmingTool(name =
"JETM12TriggerSkimmingTool_mu", TriggerListOR = muTriggers)
58 acc.addPublicTool(JETM12TriggerSkimmingTool_mu)
60 JETM12SkimmingTool_W = CompFactory.DerivationFramework.FilterCombinationAND(name=
"JETM12SkimmingTool_W", FilterList=[skimmingTool_W, JETM12TriggerSkimmingTool_W])
61 acc.addPublicTool(JETM12SkimmingTool_W)
62 JETM12SkimmingTool_Mu = CompFactory.DerivationFramework.FilterCombinationAND(name=
"JETM12SkimmingTool_Mu", FilterList=[skimmingTool_Mu, JETM12TriggerSkimmingTool_mu])
63 acc.addPublicTool(JETM12SkimmingTool_Mu)
65 finalSkimmingTools = [JETM12SkimmingTool_W,JETM12SkimmingTool_Mu]
68 skimmingTool_ttbarEl = CompFactory.DerivationFramework.xAODStringSkimmingTool(name =
"skimmingTool_ttbarEl", expression = expression_ttbarEl)
69 acc.addPublicTool(skimmingTool_ttbarEl)
70 skimmingTool_ttbarElNoTag = CompFactory.DerivationFramework.xAODStringSkimmingTool(name =
"skimmingTool_ttbarElNoTag", expression = expression_ttbarElNoTag)
71 acc.addPublicTool(skimmingTool_ttbarElNoTag)
72 skimmingTool_ttbarMu = CompFactory.DerivationFramework.xAODStringSkimmingTool(name =
"skimmingTool_ttbarMu", expression = expression_ttbarMu)
73 acc.addPublicTool(skimmingTool_ttbarMu)
74 skimmingTool_ttbarMuNoTag = CompFactory.DerivationFramework.xAODStringSkimmingTool(name =
"skimmingTool_ttbarMuNoTag", expression = expression_ttbarMuNoTag)
75 acc.addPublicTool(skimmingTool_ttbarMuNoTag)
77 JETM12SkimmingTool_ttbarEl = CompFactory.DerivationFramework.FilterCombinationAND(name=
"JETM12SkimmingTool_ttbarEl",FilterList=[skimmingTool_ttbarEl,JETM12TriggerSkimmingTool_ele])
78 acc.addPublicTool(JETM12SkimmingTool_ttbarEl)
79 JETM12SkimmingTool_ttbarElNoTag = CompFactory.DerivationFramework.FilterCombinationAND(name=
"JETM12SkimmingTool_ttbarElNoTag",FilterList=[skimmingTool_ttbarElNoTag,JETM12TriggerSkimmingTool_ele])
80 acc.addPublicTool(JETM12SkimmingTool_ttbarElNoTag)
81 JETM12SkimmingTool_ttbarMu = CompFactory.DerivationFramework.FilterCombinationAND(name=
"JETM12SkimmingTool_ttbarMu",FilterList=[skimmingTool_ttbarMu,JETM12TriggerSkimmingTool_mu])
82 acc.addPublicTool(JETM12SkimmingTool_ttbarMu)
83 JETM12SkimmingTool_ttbarMuNoTag = CompFactory.DerivationFramework.FilterCombinationAND(name=
"JETM12SkimmingTool_ttbarMuNoTag",FilterList=[skimmingTool_ttbarMuNoTag,JETM12TriggerSkimmingTool_mu])
84 acc.addPublicTool(JETM12SkimmingTool_ttbarMuNoTag)
86 finalSkimmingTools = [JETM12SkimmingTool_W, JETM12SkimmingTool_Mu, JETM12SkimmingTool_ttbarEl, JETM12SkimmingTool_ttbarMu, JETM12SkimmingTool_ttbarElNoTag, JETM12SkimmingTool_ttbarMuNoTag]
88 JETM12SkimmingTool = CompFactory.DerivationFramework.FilterCombinationOR(name=
"JETM12SkimmingTool", FilterList=finalSkimmingTools)
89 acc.addPublicTool(JETM12SkimmingTool, primary =
True)