ATLAS Offline Software
RPVLLTriggers.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
2 
3 from AthenaConfiguration.AllConfigFlags import ConfigFlags
4 from TriggerMenuMT.TriggerAPI.TriggerAPI import TriggerAPI
5 from TriggerMenuMT.TriggerAPI.TriggerEnums import TriggerPeriod, TriggerType
6 
7 from AthenaCommon.JobProperties import JobProperty, JobPropertyContainer
8 from AthenaCommon.JobProperties import jobproperties
9 
10 # general function to get current menu unprescaled triggers for given trigger type
11 #def getTriggerList( trigger_type, matching_pattern="", rejection_pattern="", test=[] ):
12 def getTriggerList( trigger_type, matching_pattern="", reject_list=[] ):
13 
14  # Gets list of unprescaled triggers from the current/future menu
15  # -- uses "list_unprescaled1p8e34" + "list_unprescaled2e34" generated during build
16  # Loops through retrieved trigger list to search for given type/pattern
17  # -- trigger_type format = TriggerType.(physics object + _ + single/multi)
18  # -- physics objects: el, mu, j, bj, tau, g [also xe, ht, exotics]
19 
20  triggerList = []
21 
22  TriggerAPI.setConfigFlags(ConfigFlags)
23  lowestUnprescaled = TriggerAPI.getLowestUnprescaled(
24  TriggerPeriod.future, trigger_type, matchPattern=matching_pattern )
25  lowestUnprescaledAny = TriggerAPI.getLowestUnprescaledAnyPeriod(
26  TriggerPeriod.future, trigger_type, matchPattern=matching_pattern )
27  unprescaled = TriggerAPI.getUnprescaled(
28  TriggerPeriod.future, trigger_type, matchPattern=matching_pattern )
29 
30  unprescaled_triggers = lowestUnprescaled + lowestUnprescaledAny + unprescaled
31 
32  for trigger in unprescaled_triggers:
33  if trigger in triggerList: continue
34  isRejected = False
35  for reject in reject_list:
36  if reject != "" and reject in trigger: isRejected = True
37  if isRejected is True: continue
38  triggerList.append( trigger )
39 
40  return triggerList
41 
42 
43 
44 # RPVLLTriggers class to call filter-specific functions
46 
47  # methods to return analysis-filter-specific trigger lists
48 
49  # DV+Muon - Barrel
51  #DV_MuonBarrelFilterFlags.triggers
52  DVMuonBarrelList = getTriggerList( TriggerType.mu_single, "msonly", ["3layersEC"] )
53  return DVMuonBarrelList
54 
55  # DV+Muon - Full MS
57  #DV_MuonFullMSFilterFlags.triggers
58  DVMuonFullMSList = getTriggerList( TriggerType.mu_single, "msonly_3layersEC" )
59  return DVMuonFullMSList
60 
61  # DV+Photon
63  #DV_PhotonFilterFlags.triggers
64  DVPhotonList = getTriggerList( TriggerType.g_single, "", ["etcut", "L1"] )
65  return DVPhotonList
66 
67  # DV+MultiJet
69  #DV_MultiJetTriggerFlags.triggers
70  DVMultiJetList = getTriggerList( TriggerType.j_multi, "HLT_4j|HLT_5j|HLT_6j|HLT_7j",
71  ["boffperf_split_0eta240", "boffperf_split_L14J15", "boffperf_split_L15J15"] )
72  return DVMultiJetList
73 
74  # DV+MET
75  def getDVMETTriggers(self):
76  #DV_METFilterFlags.triggers
77  DVMETList = getTriggerList( TriggerType.xe, "", ["pufit_xe", "wEFMu"] )
78  return DVMETList
79 
80  # DiLep:SiPh
82  #DiLep_FilterFlags.SiPhTriggers
83  DiLepSiPhList = getTriggerList( TriggerType.g_single, "", ["etcut"] )
84  return DiLepSiPhList
85 
86  # DiLep:DiPh
88  #DiLep_FilterFlags.DiPhTriggers
89  DiLepDiPhList = getTriggerList( TriggerType.g_multi, "HLT_2g", ["_g", "tight"] )
90  return DiLepDiPhList
91 
92  # DiLep:SiMu
94  #DiLep_FilterFlags.SiMuTriggers
95  DiLepSiMuList = getTriggerList( TriggerType.mu_single, "msonly_3layersEC" )
96  return DiLepSiMuList
97 
98  # DiLep:SiMuBa
100  #DiLep_FilterFlags.SiMuBaTriggers
101  DiLepSiMuBaList = getTriggerList( TriggerType.mu_single, "msonly", ["3layersEC"] )
102  return DiLepSiMuBaList
103 
104  # Emerging
106  #Emerging_FilterFlags.Triggers
107  EmergingList = getTriggerList( TriggerType.j_multi, "HLT_4j", ["boffperf_split"] )
108  return EmergingList
109 
110  # HNL (single prompt muon)
112  #HnlSkimmingTool.Triggers
113  HNLSingleMuonList = getTriggerList( TriggerType.mu_single, "ivarmedium" )
114  return HNLSingleMuonList
115 
116  # HNL (single prompt electron)
118  #HnlSkimmingTool.Triggers
119  HNLSingleElectronList = getTriggerList( TriggerType.el_single, "",
120  ["etcut", "lhloose", "noringer"] ) # Copied from getKinkedTrackZeeTriggers
121  return HNLSingleElectronList
122 
123  # HNL (multi muons)
125  #HnlSkimmingTool.Triggers
126  HNLMultiMuonList = getTriggerList( TriggerType.mu_multi, "" )
127  # We may need to restrict di-muon triggers.
128  return HNLMultiMuonList
129 
130  # HNL (multi electrons)
132  #HnlSkimmingTool.Triggers
133  HNLMultiElectronList = getTriggerList( TriggerType.el_multi, "" )
134  # We may need to restrict di-electron triggers.
135  return HNLMultiElectronList
136 
137  # HV Muvtx
139  #HV_MuvtxTriggerFlags.TriggerNames
140  HVMuvtxList = getTriggerList( TriggerType.ALL, "muvtx", ["noiso"] )
141  return HVMuvtxList
142 
143  # HV Prescaled Muvtx
145  #HV_prescaledMuvtxTriggerFlags.TriggerNames
146  HVprescaledMuvtxList = getTriggerList( TriggerType.ALL, "muvtx_noiso" )
147  return HVprescaledMuvtxList
148 
149 
153 
154  # HV CalRatio
156  #HV_CalRatioTriggerFlags.TriggerNames
157  HVCalRatioList = getTriggerList( TriggerType.exotics, "cleanLLP" )
158  return HVCalRatioList
159 
160  # KinkedTrack:JetMet
162  #KinkedTrack_singleJetMetFilterFlags.triggerNames
163  KinkedTrackJetMetList = getTriggerList( TriggerType.xe, "" )
164  return KinkedTrackJetMetList
165 
166  # KinkedTrack:Zee
168  #KinkedTrack_ZeeFilterFlags.triggerNames
169  KinkedTrackZeeList = getTriggerList( TriggerType.el_single, "",
170  ["etcut", "lhloose", "noringer"] )
171  return KinkedTrackZeeList
172 
173  # KinkedTrack:Zmumu
175  #KinkedTrack_ZmumuFilterFlags.triggerNames
176  KinkedTrackZmumuList = getTriggerList( TriggerType.mu_single, "", ["eta", "msonly"] )
177  return KinkedTrackZmumuList
178 
179  # HIPs
180  def getHIPsTriggers(self):
181  #HipsTriggerFilterExpression
182  HIPsList = getTriggerList( TriggerType.exotics, "hiptrt" )
183  return HIPsList
184 
186  #DV_METFilterFlags.triggers
187  SingleRNNTauList = getTriggerList( TriggerType.tau_single )
188  return SingleRNNTauList
189 
190  def getTauDiTriggers(self):
191  #DV_METFilterFlags.triggers
192  SingleRNNTauList = getTriggerList( TriggerType.tau_multi )
193  return SingleRNNTauList
194 
195  def getTauMETTriggers(self):
196  #DV_METFilterFlags.triggers
197  SingleRNNTauList = getTriggerList( TriggerType.ALL, matching_pattern="HLT_tau.*xe.*" )
198  return SingleRNNTauList
199 
200 
201 # Flags to turn RPVLL TriggerAPI implementation on/off
202 class RPVLLTriggerAPIFlags(JobPropertyContainer):
203  """ RPV/LL TriggerAPI flag container """
204 
205 jobproperties.add_Container(RPVLLTriggerAPIFlags)
206 
207 rpvllTrig=jobproperties.RPVLLTriggerAPIFlags
208 
209 class doRPVLLTriggerAPI(JobProperty):
210  statusOn = True
211  allowedTypes = ["bool"]
212  StoredValue = False # TriggerAPI is not correctly working now. See DATREP-183
213 rpvllTrig.add_JobProperty(doRPVLLTriggerAPI)
python.RPVLLTriggers.RPVLLTriggers
Definition: RPVLLTriggers.py:45
python.RPVLLTriggers.RPVLLTriggers.getHNLMultiElectronTriggers
def getHNLMultiElectronTriggers(self)
Definition: RPVLLTriggers.py:131
python.RPVLLTriggers.RPVLLTriggers.getEmergingTriggers
def getEmergingTriggers(self)
Definition: RPVLLTriggers.py:105
python.RPVLLTriggers.RPVLLTriggers.getDVMultiJetTriggers
def getDVMultiJetTriggers(self)
Definition: RPVLLTriggers.py:68
python.RPVLLTriggers.RPVLLTriggers.getHNLSingleMuonTriggers
def getHNLSingleMuonTriggers(self)
Definition: RPVLLTriggers.py:111
python.RPVLLTriggers.RPVLLTriggers.getHVCalRatioTriggers
def getHVCalRatioTriggers(self)
HV Jet/MET def getHVJetMETTriggers(self): #HV_JetMETFilterFlags.TriggerNames.
Definition: RPVLLTriggers.py:155
python.RPVLLTriggers.RPVLLTriggers.getDiLepSiPhTriggers
def getDiLepSiPhTriggers(self)
Definition: RPVLLTriggers.py:81
python.RPVLLTriggers.getTriggerList
def getTriggerList(trigger_type, matching_pattern="", reject_list=[])
Definition: RPVLLTriggers.py:12
python.RPVLLTriggers.RPVLLTriggers.getDVPhotonTriggers
def getDVPhotonTriggers(self)
Definition: RPVLLTriggers.py:62
python.RPVLLTriggers.RPVLLTriggers.getKinkedTrackZmumuTriggers
def getKinkedTrackZmumuTriggers(self)
Definition: RPVLLTriggers.py:174
python.RPVLLTriggers.RPVLLTriggers.getDiLepSiMuTriggers
def getDiLepSiMuTriggers(self)
Definition: RPVLLTriggers.py:93
python.RPVLLTriggers.doRPVLLTriggerAPI
Definition: RPVLLTriggers.py:209
python.RPVLLTriggers.RPVLLTriggers.getHVMuvtxTriggers
def getHVMuvtxTriggers(self)
Definition: RPVLLTriggers.py:138
python.RPVLLTriggers.RPVLLTriggers.getTauSingleTriggers
def getTauSingleTriggers(self)
Definition: RPVLLTriggers.py:185
python.RPVLLTriggers.RPVLLTriggers.getDiLepSiMuBaTriggers
def getDiLepSiMuBaTriggers(self)
Definition: RPVLLTriggers.py:99
python.RPVLLTriggers.RPVLLTriggers.getHNLSingleElectronTriggers
def getHNLSingleElectronTriggers(self)
Definition: RPVLLTriggers.py:117
python.RPVLLTriggers.RPVLLTriggers.getHIPsTriggers
def getHIPsTriggers(self)
Definition: RPVLLTriggers.py:180
python.RPVLLTriggers.RPVLLTriggers.getTauDiTriggers
def getTauDiTriggers(self)
Definition: RPVLLTriggers.py:190
python.RPVLLTriggers.RPVLLTriggers.getDVMuonBarrelTriggers
def getDVMuonBarrelTriggers(self)
Definition: RPVLLTriggers.py:50
python.RPVLLTriggers.RPVLLTriggers.getDVMuonFullMSTriggers
def getDVMuonFullMSTriggers(self)
Definition: RPVLLTriggers.py:56
python.RPVLLTriggers.RPVLLTriggers.getKinkedTrackZeeTriggers
def getKinkedTrackZeeTriggers(self)
Definition: RPVLLTriggers.py:167
python.RPVLLTriggers.RPVLLTriggers.getTauMETTriggers
def getTauMETTriggers(self)
Definition: RPVLLTriggers.py:195
python.RPVLLTriggers.RPVLLTriggers.getHNLMultiMuonTriggers
def getHNLMultiMuonTriggers(self)
Definition: RPVLLTriggers.py:124
python.RPVLLTriggers.RPVLLTriggers.getKinkedTrackJetMetTriggers
def getKinkedTrackJetMetTriggers(self)
Definition: RPVLLTriggers.py:161
python.RPVLLTriggers.RPVLLTriggers.getHVprescaledMuvtxTriggers
def getHVprescaledMuvtxTriggers(self)
Definition: RPVLLTriggers.py:144
python.RPVLLTriggers.RPVLLTriggerAPIFlags
Definition: RPVLLTriggers.py:202
python.RPVLLTriggers.RPVLLTriggers.getDiLepDiPhTriggers
def getDiLepDiPhTriggers(self)
Definition: RPVLLTriggers.py:87
python.RPVLLTriggers.RPVLLTriggers.getDVMETTriggers
def getDVMETTriggers(self)
Definition: RPVLLTriggers.py:75