17 """Configure DRAW_TAULH kernel"""
19 mlog = logging.getLogger(name)
20 mlog.info(
'Start configuration')
22 acc = ComponentAccumulator()
23 acc.addSequence(seqAND(
'DRAW_TAULHSequence'))
28 if flags.Trigger.EDMVersion >=0:
29 triggerSkimmingTool = CompFactory.DerivationFramework.TriggerSkimmingTool(
30 name =
"TAULH_TriggerSkimmingTool",
31 TriggerListOR = [
"HLT_e26_lhtight_ivarloose_L1eEM26M",
32 "HLT_e60_lhmedium_L1eEM26M",
33 "HLT_e140_lhloose_L1eEM26M",
34 "HLT_mu24_ivarmedium_L1MU14FCH",
35 "HLT_mu50_L1MU14FCH"] )
36 acc.addPublicTool(triggerSkimmingTool)
37 filterList += [triggerSkimmingTool]
40 from TauAnalysisTools.TauAnalysisToolsConfig
import TauSelectionToolCfg
41 TauSelectorMedium = acc.popToolsAndMerge(TauSelectionToolCfg(flags,
42 name =
'TauSelectorMedium_TAULH',
43 ConfigPath =
'TauAnalysisAlgorithms/tau_selection_medium_noeleid.conf'))
44 acc.addPublicTool(TauSelectorMedium)
46 from DerivationFrameworkTools.DerivationFrameworkToolsConfig
import AsgSelectionToolWrapperCfg
47 TauMediumWrapper = acc.getPrimaryAndMerge(AsgSelectionToolWrapperCfg(flags,
48 name =
"TauMediumWrapper_TAULH",
49 ContainerName =
"TauJets",
50 StoreGateEntryName =
"TauMedium_TAULH",
51 AsgSelectionTool = TauSelectorMedium))
52 acc.addPublicTool(TauMediumWrapper)
55 from MuonSelectorTools.MuonSelectorToolsConfig
import MuonSelectionToolCfg
56 MuonSelectorMedium = acc.popToolsAndMerge(MuonSelectionToolCfg(flags, name=
"MuonSelectorMedium_TAULH",
57 MaxEta=3, MuQuality=2))
59 acc.addPublicTool(MuonSelectorMedium)
61 MuonMediumWrapper = acc.getPrimaryAndMerge(AsgSelectionToolWrapperCfg(flags,
62 name =
"MuonMediumWrapper_TAULH",
63 ContainerName =
"Muons",
64 StoreGateEntryName =
"MuonMedium_TAULH",
65 AsgSelectionTool = MuonSelectorMedium))
66 acc.addPublicTool(MuonMediumWrapper)
70 el_sel =
"(Electrons.pt > 27.0*GeV) && (abs(Electrons.eta) < 2.5) && (Electrons.LHMedium)"
71 mu_sel =
"(Muons.pt > 25.0*GeV) && (abs(Muons.eta) < 3.0) && (Muons.MuonMedium_TAULH==1)"
72 tau_sel =
"(TauJets.pt > 20*GeV) && (abs(TauJets.charge)==1)" \
73 " && ((TauJets.nChargedTracks == 1) || (TauJets.nChargedTracks == 3)) && (TauJets.TauMedium_TAULH==1)"
76 tauLH_DeltaRTool = CompFactory.DerivationFramework.DeltaRTool(name =
"TAUEH_DeltaRTool",
77 ContainerName =
"Electrons",
78 ObjectRequirements = el_sel,
79 SecondContainerName =
"TauJets",
80 SecondObjectRequirements= tau_sel,
81 StoreGateEntryName =
"TAUEH_DeltaR")
82 acc.addPublicTool(tauLH_DeltaRTool)
85 elRequirement =
'( count( ' + el_sel +
' ) == 1 )'
86 muRequirement =
'( count( ' + mu_sel +
' ) == 1 )'
87 tauRequirement =
'( count( ' + tau_sel +
' ) >= 1 )'
90 expression =
"( ("+ elRequirement +
" && (count (TAUEH_DeltaR > 0.1) >=1) ) || " + muRequirement +
") && " + tauRequirement
91 from DerivationFrameworkTools.DerivationFrameworkToolsConfig
import (
92 xAODStringSkimmingToolCfg)
93 stringSkimmingTool = acc.getPrimaryAndMerge(xAODStringSkimmingToolCfg(
94 flags, name=
'TAULH_stringSkimmingTool', expression = expression))
95 filterList += [stringSkimmingTool]
98 combTool = CompFactory.DerivationFramework.FilterCombinationAND(
99 name=
"tauSkim", FilterList=filterList)
100 acc.addPublicTool(combTool,primary =
True)
103 DRAW_TAULHPreKernel = CompFactory.DerivationFramework.DerivationKernel(
104 name=
'DRAW_TAULHPreKernel',
105 AugmentationTools=[TauMediumWrapper, MuonMediumWrapper],
107 acc.addEventAlgo(DRAW_TAULHPreKernel, sequenceName=
'DRAW_TAULHSequence')
110 DRAW_TAULHKernel = CompFactory.DerivationFramework.DerivationKernel(
111 name=
'DRAW_TAULHKernel',
112 doChronoStat=(flags.Concurrency.NumThreads <= 1),
113 AugmentationTools=[tauLH_DeltaRTool],
114 SkimmingTools=[combTool])
116 acc.addEventAlgo(DRAW_TAULHKernel, sequenceName=
'DRAW_TAULHSequence')