Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Functions
TRIG9 Namespace Reference

Functions

def TRIG9KernelCfg (flags, name='TRIG9Kernel', **kwargs)
 
def TRIG9Cfg (flags)
 

Function Documentation

◆ TRIG9Cfg()

def TRIG9.TRIG9Cfg (   flags)

Definition at line 137 of file TRIG9.py.

137 def TRIG9Cfg(flags):
138 
139  acc = ComponentAccumulator()
140 
141  # Get the lists of triggers needed for trigger matching.
142  # This is needed at this scope (for the slimming) and further down in the config chain
143  # for actually configuring the matching, so we create it here and pass it down
144  # TODO: this should ideally be called higher up to avoid it being run multiple times in a train
145  from DerivationFrameworkPhys.TriggerListsHelper import TriggerListsHelper
146  TRIG9TriggerListsHelper = TriggerListsHelper(flags)
147 
148  # Common augmentations
149  acc.merge(TRIG9KernelCfg(flags, name="TRIG9Kernel", StreamName = 'StreamDAOD_TRIG9', TriggerListsHelper = TRIG9TriggerListsHelper))
150 
151 
152  # ============================
153  # Define contents of the format
154  # =============================
155  from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
156  from xAODMetaDataCnv.InfileMetaDataConfig import SetupMetaDataForStreamCfg
157  from DerivationFrameworkCore.SlimmingHelper import SlimmingHelper
158 
159  TRIG9SlimmingHelper = SlimmingHelper("TRIG9SlimmingHelper", NamesAndTypes = flags.Input.TypedCollections, flags = flags)
160 
161  TRIG9SlimmingHelper.SmartCollections = ["EventInfo",
162  "Electrons",
163  "Photons",
164  "Muons",
165  "PrimaryVertices",
166  "InDetTrackParticles",
167  "AntiKt4EMPFlowJets",
168  "MET_Baseline_AntiKt4EMPFlow",
169  "BTagging_AntiKt4EMPFlow",
170  "TauJets",
171  ]
172 
173  TRIG9SlimmingHelper.StaticContent = [
174  "TrigRoiDescriptorCollection#HLT_eTAURoIs",
175  "TrigRoiDescriptorCollection#HLT_jTAURoIs",
176  "TrigRoiDescriptorCollection#HLT_cTAURoIs",
177  "TrigRoiDescriptorCollection#HLT_TAURoI",
178  "TrigRoiDescriptorCollection#HLT_Roi_Tau",
179  "TrigRoiDescriptorCollection#HLT_Roi_Tau_probe",
180  "TrigRoiDescriptorCollection#HLT_Roi_TauCore",
181  "TrigRoiDescriptorCollection#HLT_Roi_TauCore_probe",
182  "TrigRoiDescriptorCollection#HLT_Roi_TauIso",
183  "TrigRoiDescriptorCollection#HLT_Roi_TauIso_probe",
184  ]
185 
186  TRIG9SlimmingHelper.ExtraVariables += [
187  "TruthPrimaryVertices.t.x.y.z",
188  "PrimaryVertices.t.x.y.z.numberDoF.chiSquared.covariance.trackParticleLinks",
189  "EventInfo.hardScatterVertexLink.timeStampNSOffset",
190  ]
191 
192  TRIG9SlimmingHelper.AllVariables += ['HLT_TrigTauRecMerged_MVA','HLT_tautrack_MVA']
193 
194  # Truth containers
195  if flags.Input.isMC:
196  from DerivationFrameworkMCTruth.MCTruthCommonConfig import addTruth3ContentToSlimmerTool
197  addTruth3ContentToSlimmerTool(TRIG9SlimmingHelper)
198  TRIG9SlimmingHelper.AllVariables += ['InTimeAntiKt4TruthJets','OutOfTimeAntiKt4TruthJets']
199  TRIG9SlimmingHelper.ExtraVariables += ["Electrons.TruthLink",
200  "Muons.TruthLink",
201  "Photons.TruthLink"]
202 
203  from DerivationFrameworkMCTruth.MCTruthCommonConfig import AddTauAndDownstreamParticlesCfg
204  acc.merge(AddTauAndDownstreamParticlesCfg(flags))
205  TRIG9SlimmingHelper.AllVariables += ['TruthTausWithDecayParticles','TruthTausWithDecayVertices']
206 
207 
208 
209 
210  # Trigger content
211  TRIG9SlimmingHelper.IncludeTriggerNavigation = True
212  TRIG9SlimmingHelper.IncludeAdditionalTriggerContent = True
213  TRIG9SlimmingHelper.IncludeJetTriggerContent = False
214  TRIG9SlimmingHelper.IncludeMuonTriggerContent = False
215  TRIG9SlimmingHelper.IncludeEGammaTriggerContent = False
216  TRIG9SlimmingHelper.IncludeTauTriggerContent = False
217  TRIG9SlimmingHelper.IncludeEtMissTriggerContent = False
218  TRIG9SlimmingHelper.IncludeBJetTriggerContent = False
219  TRIG9SlimmingHelper.IncludeBPhysTriggerContent = False
220  TRIG9SlimmingHelper.IncludeMinBiasTriggerContent = False
221 
222  # Trigger matching
223  # Run 2
224  if flags.Trigger.EDMVersion == 2:
225  from DerivationFrameworkPhys.TriggerMatchingCommonConfig import AddRun2TriggerMatchingToSlimmingHelper
226  AddRun2TriggerMatchingToSlimmingHelper(SlimmingHelper = TRIG9SlimmingHelper,
227  OutputContainerPrefix = "TrigMatch_",
228  TriggerList = TRIG9TriggerListsHelper.Run2TriggerNamesTau)
229  AddRun2TriggerMatchingToSlimmingHelper(SlimmingHelper = TRIG9SlimmingHelper,
230  OutputContainerPrefix = "TrigMatch_",
231  TriggerList = TRIG9TriggerListsHelper.Run2TriggerNamesNoTau)
232  # Run 3, or Run 2 with navigation conversion
233  if flags.Trigger.EDMVersion == 3 or (flags.Trigger.EDMVersion == 2 and flags.Trigger.doEDMVersionConversion):
234  from TrigNavSlimmingMT.TrigNavSlimmingMTConfig import AddRun3TrigNavSlimmingCollectionsToSlimmingHelper
236 
237  # Output stream
238  TRIG9ItemList = TRIG9SlimmingHelper.GetItemList()
239  acc.merge(OutputStreamCfg(flags, "DAOD_TRIG9", ItemList=TRIG9ItemList, AcceptAlgs=["TRIG9Kernel"]))
240  acc.merge(SetupMetaDataForStreamCfg(flags, "DAOD_TRIG9", AcceptAlgs=["TRIG9Kernel"], createMetadata=[MetadataCategory.CutFlowMetaData,MetadataCategory.TruthMetaData]))
241 
242  return acc
243 

◆ TRIG9KernelCfg()

def TRIG9.TRIG9KernelCfg (   flags,
  name = 'TRIG9Kernel',
**  kwargs 
)
Configure the derivation framework driving algorithm (kernel) for TRIG9

Definition at line 16 of file TRIG9.py.

16 def TRIG9KernelCfg(flags, name='TRIG9Kernel', **kwargs):
17  """Configure the derivation framework driving algorithm (kernel) for TRIG9"""
18  acc = ComponentAccumulator()
19 
20  # Augmentations
21  augmentationTools = [ ]
22 
23  # Common augmentations
24  from DerivationFrameworkPhys.PhysCommonConfig import PhysCommonAugmentationsCfg
25  acc.merge(PhysCommonAugmentationsCfg(flags, TriggerListsHelper = kwargs['TriggerListsHelper']))
26 
27  from TriggerMenuMT.TriggerAPI.TriggerAPI import TriggerAPI
28  from TriggerMenuMT.TriggerAPI.TriggerEnums import TriggerPeriod
29 
30  #allperiods = TriggerPeriod.y2015 | TriggerPeriod.y2016 | TriggerPeriod.y2017 | TriggerPeriod.y2018 | TriggerPeriod.future2e34
31  allperiods = TriggerPeriod.future2e34
32  TriggerAPI.setConfigFlags(flags)
33  trig_all = list(TriggerAPI.getAllHLT(allperiods).keys())
34 
35  # Add in Run 3 triggers
36  TriggerListsHelper = kwargs['TriggerListsHelper']
37  trig_all += TriggerListsHelper.Run3TriggerNames
38 
39  # Thinning tools...
40  # track thinning
41  from DerivationFrameworkInDet.InDetToolsConfig import TrackParticleThinningCfg
42  tp_thinning_expression = "InDetTrackParticles.DFCommonTightPrimary && abs(DFCommonInDetTrackZ0AtPV)*sin(InDetTrackParticles.theta) < 3.0*mm && InDetTrackParticles.pt > 10*GeV"
43  TRIG9TrackParticleThinningTool = acc.getPrimaryAndMerge(TrackParticleThinningCfg(
44  flags,
45  name = 'TRIG9TrackParticleThinningTool',
46  StreamName = kwargs['StreamName'],
47  SelectionString = tp_thinning_expression,
48  InDetTrackParticlesKey = "InDetTrackParticles"))
49 
50  # Include inner detector tracks associated with muons
51  from DerivationFrameworkInDet.InDetToolsConfig import MuonTrackParticleThinningCfg
52  TRIG9MuonTrackParticleThinningTool = acc.getPrimaryAndMerge(MuonTrackParticleThinningCfg(
53  flags,
54  name = 'TRIG9MuonTrackParticleThinningTool',
55  StreamName = kwargs['StreamName'],
56  MuonKey = "Muons",
57  InDetTrackParticlesKey = "InDetTrackParticles"))
58 
59  # tau thinning
60  from DerivationFrameworkTau.TauCommonConfig import TauThinningCfg
61  #tau_thinning_expression = "TauJets.pt >= 20*GeV"
62  tau_thinning_expression = "( TauJets.pt >= 20*GeV && abs(TauJets.eta) < 2.5 && abs(TauJets.charge)==1.0 && (TauJets.nTracks == 1 || TauJets.nTracks == 3) )"
63 
64  TRIG9TauJetThinningTool = acc.getPrimaryAndMerge(TauThinningCfg(
65  flags,
66  name = 'TRIG9TauJetThinningTool',
67  StreamName = kwargs['StreamName'],
68  Taus = "TauJets",
69  TauTracks = "TauTracks",
70  TrackParticles = "InDetTrackParticles",
71  TauNeutralPFOs = "TauNeutralParticleFlowObjects",
72  TauSecondaryVertices = "TauSecondaryVertices",
73  SelectionString = tau_thinning_expression))
74 
75  # Finally the kernel itself
76  thinningTools = [
77  TRIG9TrackParticleThinningTool,
78  TRIG9MuonTrackParticleThinningTool,
79  TRIG9TauJetThinningTool,
80  ]
81 
82  # Skimming
83  skimmingTools = []
84 
85  # skimming events based on electron/muon + tau counting
86  tauProngs13 = "( abs(TauJets.charge)==1.0 && (TauJets.nTracks == 1 || TauJets.nTracks == 3) )"
87  #MuTrig: (pT(mu)>18 && pT(tau)>18), EleTrig: (pT(el)>22 && pT(tau)>18)
88  e22 = '(count( Electrons.pt > 22.0*GeV && abs(Electrons.eta) < 2.5 && Electrons.DFCommonElectronsLHLoose) >= 1)'
89  mu18 = '(count( Muons.pt > 18.0*GeV && abs(Muons.eta) < 2.5 && Muons.DFCommonMuonPassPreselection) >= 1)'
90  tau20 = '(count( TauJets.pt > 20.0*GeV && abs(TauJets.eta) < 2.5 && '+tauProngs13+' && TauJets.DFTauLoose ) >= 1)'
91  mutau = '('+mu18+' && '+tau20+')'
92  etau = '('+e22+' && '+tau20+')'
93  skim_expression = '('+mutau+') || ('+etau+')'
94 
95  EventSkimmingTool = CompFactory.DerivationFramework.xAODStringSkimmingTool(
96  name="EventSkimmingTool", expression=skim_expression,
97  )
98  acc.addPublicTool(EventSkimmingTool)
99  skimmingTools.append(EventSkimmingTool)
100 
101  # Pieces of trigger names to keep
102  trig_keys = ['mediumRNN',]
103  # Add specific triggers
104  additional_triggers = [
105  "HLT_mu24_ivarmedium_L1MU14FCH",
106  "HLT_e26_lhtight_ivarloose_L1eEM26M",
107  ]
108  trig_keys += additional_triggers
109  triggers = [t for t in trig_all for k in trig_keys if k in t]
110 
111  # remove not used triggers
112  trig_veto = ['HLT_g','HLT_e17_','HLT_e24_','HLT_mu14_',]
113  final_triggers = [t for t in triggers for k in trig_veto if k not in t]
114 
115  #remove duplicates
116  final_triggers = sorted(list(set(final_triggers)))
117  print('TRIG9 list of triggers used for skimming:')
118  for trig in final_triggers: print(trig)
119 
120  TriggerSkimmingTool = CompFactory.DerivationFramework.TriggerSkimmingTool
121  TRIG9TriggerSkimmingTool = TriggerSkimmingTool(name = "TRIG9TriggerPreSkimmingTool",
122  TriggerListAND = [],
123  TriggerListOR = final_triggers)
124  acc.addPublicTool(TRIG9TriggerSkimmingTool)
125 
126  skimmingTools.append(TRIG9TriggerSkimmingTool)
127 
128  DerivationKernel = CompFactory.DerivationFramework.DerivationKernel
129  acc.addEventAlgo(DerivationKernel(name,
130  SkimmingTools = skimmingTools,
131  ThinningTools = thinningTools,
132  AugmentationTools = augmentationTools))
133 
134  return acc
135 
136 
DerivationFramework::TriggerMatchingUtils::sorted
std::vector< typename R::value_type > sorted(const R &r, PROJ proj={})
Helper function to create a sorted vector from an unsorted range.
TrigNavSlimmingMTConfig.AddRun3TrigNavSlimmingCollectionsToSlimmingHelper
def AddRun3TrigNavSlimmingCollectionsToSlimmingHelper(slimmingHelper)
Definition: TrigNavSlimmingMTConfig.py:98
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
python.MCTruthCommonConfig.AddTauAndDownstreamParticlesCfg
def AddTauAndDownstreamParticlesCfg(flags, generations=-1, rejectHadronChildren=False)
Definition: MCTruthCommonConfig.py:267
python.OutputStreamConfig.OutputStreamCfg
def OutputStreamCfg(flags, streamName, ItemList=[], MetadataItemList=[], disableEventTag=False, trigNavThinningSvc=None, takeItemsFromInput=False, extendProvenanceRecord=True, keepProvenanceTagsRegEx=None, AcceptAlgs=[], HelperTools=[])
Definition: OutputStreamConfig.py:16
TRIG9.TRIG9KernelCfg
def TRIG9KernelCfg(flags, name='TRIG9Kernel', **kwargs)
Definition: TRIG9.py:16
python.InDetToolsConfig.TrackParticleThinningCfg
def TrackParticleThinningCfg(flags, name, **kwargs)
Definition: InDetToolsConfig.py:458
python.TriggerMatchingCommonConfig.AddRun2TriggerMatchingToSlimmingHelper
def AddRun2TriggerMatchingToSlimmingHelper(**kwargs)
Definition: TriggerMatchingCommonConfig.py:49
TRIG9.TRIG9Cfg
def TRIG9Cfg(flags)
Definition: TRIG9.py:137
histSizes.list
def list(name, path='/')
Definition: histSizes.py:38
python.InDetToolsConfig.MuonTrackParticleThinningCfg
def MuonTrackParticleThinningCfg(flags, name, **kwargs)
Definition: InDetToolsConfig.py:542
CxxUtils::set
constexpr std::enable_if_t< is_bitmask_v< E >, E & > set(E &lhs, E rhs)
Convenience function to set bits in a class enum bitmask.
Definition: bitmask.h:232
print
void print(char *figname, TCanvas *c1)
Definition: TRTCalib_StrawStatusPlots.cxx:25
python.MCTruthCommonConfig.addTruth3ContentToSlimmerTool
def addTruth3ContentToSlimmerTool(slimmer)
Definition: MCTruthCommonConfig.py:466
python.TauCommonConfig.TauThinningCfg
def TauThinningCfg(flags, name, **kwargs)
Definition: TauCommonConfig.py:197
python.PhysCommonConfig.PhysCommonAugmentationsCfg
def PhysCommonAugmentationsCfg(flags, **kwargs)
Definition: PhysCommonConfig.py:14
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:798
InfileMetaDataConfig.SetupMetaDataForStreamCfg
def SetupMetaDataForStreamCfg(flags, streamName="", AcceptAlgs=None, createMetadata=None, propagateMetadataFromInput=True, *args, **kwargs)
Definition: InfileMetaDataConfig.py:222
SlimmingHelper
Definition: SlimmingHelper.py:1
python.HION12.DerivationKernel
DerivationKernel
Definition: HION12.py:66