1 from LongLivedParticleDPDMaker.LongLivedParticleDPDMakerConf
import DerivationFramework__HnlSkimmingTool
as skimtool
2 from DerivationFrameworkCore.DerivationFrameworkCoreConf
import DerivationFramework__DerivationKernel
as kernel
4 from AthenaCommon.Logging
import logging
5 msg = logging.getLogger(
"PhysDESDM_HNL")
6 msg.setLevel(logging.INFO)
9 from LongLivedParticleDPDMaker.RPVLLTriggers
import RPVLLTriggers
10 apitriggers = RPVLLTriggers()
11 from LongLivedParticleDPDMaker.RPVLLTriggers
import rpvllTrig
14 apiSingleMuonTriggerlist = [
16 "HLT_mu20_iloose_L1MU15",
22 "HLT_mu24_ivarmedium",
28 "HLT_mu26_ivarmedium",
34 "HLT_mu60_0eta105_msonly",
36 apiSingleElectronTriggerlist = [
38 "HLT_e24_lhmedium_L1EM20VH",
40 "HLT_e24_lhtight_nod0_ivarloose",
42 "HLT_e26_lhtight_nod0",
44 "HLT_e26_lhtight_nod0_ivarloose",
46 "HLT_e60_lhmedium_nod0",
54 "HLT_e140_lhloose_nod0",
58 apiMultiMuonTriggerlist = [
68 "HLT_mu20_nomucomb_mu6noL1_nscan03",
74 "HLT_mu22_mu8noL1_calotag_0eta010",
88 "HLT_mu11_nomucomb_2mu4noL1_nscan03_L1MU11_2MU6",
90 "HLT_mu11_nomucomb_2mu4noL1_nscan03_L1MU11_2MU6_bTau",
92 "HLT_mu20_msonly_mu10noL1_msonly_nscan05_noComb",
94 "HLT_mu11_nomucomb_mu6noL1_nscan03_L1MU11_2MU6_bTau",
96 "HLT_mu6_nomucomb_2mu4_nomucomb_bTau_L1MU6_3MU4",
98 "HLT_2mu6_nomucomb_mu4_nomucomb_bTau_L12MU6_3MU4",
100 apiMultiElectronTriggerlist = [
102 "HLT_2e12_lhloose_L12EM10VH",
104 "HLT_2e15_lhvloose_nod0_L12EM13VH",
106 "HLT_e17_lhloose_2e9_lhloose",
108 "HLT_e17_lhloose_nod0_2e9_lhloose_nod0",
110 "HLT_e17_lhloose_nod0_2e10_lhloose_nod0_L1EM15VH_3EM8VH",
112 "HLT_2e17_lhvloose_nod0",
114 "HLT_2e17_lhvloose_nod0_L12EM15VHI",
116 "HLT_2e24_lhvloose_nod0",
118 "HLT_e24_lhvloose_nod0_2e12_lhvloose_nod0_L1EM20VH_3EM10VH",
120 apiElectronMuonTriggerlist = [
122 "HLT_e17_lhloose_mu14",
124 "HLT_e17_lhloose_nod0_mu14",
126 "HLT_e24_lhmedium_nod0_L1EM20VHI_mu8noL1",
128 "HLT_e26_lhmedium_nod0_mu8noL1",
130 "HLT_e7_lhmedium_nod0_mu24",
132 "HLT_e12_lhloose_nod0_2mu10",
134 "HLT_2e12_lhloose_mu10",
136 "HLT_2e12_lhloose_nod0_mu10",
138 "HLT_e7_lhmedium_mu24",
140 "HLT_e12_lhloose_2mu10",
142 if rpvllTrig.doRPVLLTriggerAPI:
143 apiSingleMuonTriggerlist = apitriggers.getHNLSingleMuonTriggers()
144 apiSingleElectronTriggerlist = apitriggers.getHNLSingleElectronTriggers()
145 apiMultiMuonTriggerlist = apitriggers.getHNLMultiMuonTriggers()
146 apiMultiElectronTriggerlist = apitriggers.getHNLMultiElectronTriggers()
148 from LongLivedParticleDPDMaker.PrimaryDPDFlags_RPVLLStream
import primRPVLLDESDM
151 HnlMuMuTriggers = apiSingleMuonTriggerlist
152 if primRPVLLDESDM.doHnlMultiLeptonTriggers():
153 HnlMuMuTriggers += apiMultiMuonTriggerlist
154 HnlMuMuFilterTool = skimtool( name =
"HnlMuMuFilterTool",
156 IsDisplacedMuon =
True,
157 Triggers = HnlMuMuTriggers,
158 Mu1PtMin = primRPVLLDESDM.promptMuonPtThreshHnl(),
159 Mu1Types = primRPVLLDESDM.promptMuonTypesHnl(),
160 Mu1IsoCut = primRPVLLDESDM.promptMuonIsoThreshHnl(),
161 Mu2PtMin = primRPVLLDESDM.displacedMuonPtThreshHnl(),
162 Mu2Types = primRPVLLDESDM.displacedMuonTypesHnl(),
163 Mu2IsoCut = primRPVLLDESDM.displacedMuonIsoThreshHnl(),
164 Mu2d0Min = primRPVLLDESDM.displacedMuonD0ThreshHnl(),
165 dPhiMin = primRPVLLDESDM.leptonDphiThreshHnl())
166 ToolSvc += HnlMuMuFilterTool
167 msg.info(
"HnlMuMuFilterTool.Triggers:")
168 msg.info(HnlMuMuFilterTool.Triggers)
169 topSequence += kernel(
"RPVLL_HnlMuMuFilterKernel",
170 SkimmingTools = [HnlMuMuFilterTool] )
171 RPVLLfilterNames.extend([
"RPVLL_HnlMuMuFilterKernel"])
174 if primRPVLLDESDM.doHnlElMu():
175 HnlElMuTriggers = apiSingleElectronTriggerlist
176 if primRPVLLDESDM.doHnlMultiLeptonTriggers():
177 HnlElMuTriggers += apiElectronMuonTriggerlist
178 HnlElMuFilterTool = skimtool( name =
"HnlElMuFilterTool",
179 IsPromptMuon =
False,
180 IsDisplacedMuon =
True,
181 Triggers = HnlElMuTriggers,
182 El1PtMin = primRPVLLDESDM.promptElectronPtThreshHnl(),
183 El1ID = primRPVLLDESDM.promptElectronIDHnl(),
184 El1IsoType= primRPVLLDESDM.promptElectronIsoTypeHnl(),
185 El1IsoCut = primRPVLLDESDM.promptElectronIsoThreshHnl(),
186 Mu2PtMin = primRPVLLDESDM.displacedMuonPtThreshHnl(),
187 Mu2Types = primRPVLLDESDM.displacedMuonTypesHnl(),
188 Mu2IsoCut = primRPVLLDESDM.displacedMuonIsoThreshHnl(),
189 Mu2d0Min = primRPVLLDESDM.displacedMuonD0ThreshHnl(),
190 dPhiMin = primRPVLLDESDM.leptonDphiThreshHnl())
191 ToolSvc += HnlElMuFilterTool
192 msg.info(
"HnlElMuFilterTool.Triggers:")
193 msg.info(HnlElMuFilterTool.Triggers)
194 topSequence += kernel(
"RPVLL_HnlElMuFilterKernel",
195 SkimmingTools = [HnlElMuFilterTool] )
196 RPVLLfilterNames.extend([
"RPVLL_HnlElMuFilterKernel"])
199 if primRPVLLDESDM.doHnlElEl():
200 HnlElElTriggers = apiSingleElectronTriggerlist
201 if primRPVLLDESDM.doHnlMultiLeptonTriggers():
202 HnlElElTriggers += apiMultiElectronTriggerlist
203 HnlElElFilterTool = skimtool( name =
"HnlElElFilterTool",
204 IsPromptMuon =
False,
205 IsDisplacedMuon =
False,
206 Triggers = HnlElElTriggers,
207 El1PtMin = primRPVLLDESDM.promptElectronPtThreshHnl(),
208 El1ID = primRPVLLDESDM.promptElectronIDHnl(),
209 El1IsoType= primRPVLLDESDM.promptElectronIsoTypeHnl(),
210 El1IsoCut = primRPVLLDESDM.promptElectronIsoThreshHnl(),
211 El2PtMin = primRPVLLDESDM.displacedElectronPtThreshHnl(),
212 El2IsoType= primRPVLLDESDM.displacedElectronIsoTypeHnl(),
213 El2IsoCut = primRPVLLDESDM.displacedElectronIsoThreshHnl(),
214 El2d0Min = primRPVLLDESDM.displacedElectronD0ThreshHnl(),
215 dPhiMin = primRPVLLDESDM.leptonDphiThreshHnl())
216 ToolSvc += HnlElElFilterTool
217 msg.info(
"HnlElElFilterTool.Triggers:")
218 msg.info(HnlElElFilterTool.Triggers)
219 topSequence += kernel(
"RPVLL_HnlElElFilterKernel",
220 SkimmingTools = [HnlElElFilterTool] )
221 RPVLLfilterNames.extend([
"RPVLL_HnlElElFilterKernel"])
224 if primRPVLLDESDM.doHnlMuEl():
225 HnlMuElTriggers = apiSingleMuonTriggerlist
226 if primRPVLLDESDM.doHnlMultiLeptonTriggers():
227 HnlMuElTriggers += apiElectronMuonTriggerlist
228 HnlMuElFilterTool = skimtool( name =
"HnlMuElFilterTool",
230 IsDisplacedMuon =
False,
231 Triggers = HnlMuElTriggers,
232 Mu1PtMin = primRPVLLDESDM.promptMuonPtThreshHnl(),
233 Mu1Types = primRPVLLDESDM.promptMuonTypesHnl(),
234 Mu1IsoCut = primRPVLLDESDM.promptMuonIsoThreshHnl(),
235 El2PtMin = primRPVLLDESDM.displacedElectronPtThreshHnl(),
236 El2IsoType= primRPVLLDESDM.displacedElectronIsoTypeHnl(),
237 El2IsoCut = primRPVLLDESDM.displacedElectronIsoThreshHnl(),
238 El2d0Min = primRPVLLDESDM.displacedElectronD0ThreshHnl(),
239 dPhiMin = primRPVLLDESDM.leptonDphiThreshHnl())
240 ToolSvc += HnlMuElFilterTool
241 msg.info(
"HnlMuElFilterTool.Triggers:")
242 msg.info(HnlMuElFilterTool.Triggers)
243 topSequence += kernel(
"RPVLL_HnlMuElFilterKernel",
244 SkimmingTools = [HnlMuElFilterTool] )
245 RPVLLfilterNames.extend([
"RPVLL_HnlMuElFilterKernel"])