ATLAS Offline Software
Functions
python.HION5 Namespace Reference

Functions

def HION5SkimmingToolCfg (flags)
 
def HION5Thinning (flags)
 
def HION5KernelCfg (flags, name="HION5Kernel", **kwargs)
 
def HION5Cfg (flags)
 

Function Documentation

◆ HION5Cfg()

def python.HION5.HION5Cfg (   flags)

Definition at line 163 of file HION5.py.

163 def HION5Cfg(flags):
164  acc = ComponentAccumulator()
165 
166  from DerivationFrameworkEGamma.PhotonsCPDetailedContent import PhotonsCPDetailedContent
167  from DerivationFrameworkEGamma.ElectronsCPDetailedContent import ExtraElectronShowerShapes,ExtraElectronGSFVar
168 
169  from DerivationFrameworkPhys.TriggerListsHelper import TriggerListsHelper
170  HION5TriggerListsHelper = TriggerListsHelper(flags)
171 
172  acc.merge(HION5KernelCfg(flags, name="HION5Kernel", StreamName="StreamDAOD_HION5", TriggerListsHelper = HION5TriggerListsHelper,))
173 
174  # configure slimming
175  from OutputStreamAthenaPool.OutputStreamConfig import OutputStreamCfg
176  from xAODMetaDataCnv.InfileMetaDataConfig import SetupMetaDataForStreamCfg
177  from DerivationFrameworkCore.SlimmingHelper import SlimmingHelper
178  from DerivationFrameworkHI import ListSlimming
179 
180  HION5SlimmingHelper = SlimmingHelper("HION5SlimmingHelper", NamesAndTypes = flags.Input.TypedCollections, flags = flags)
181  HION5SlimmingHelper.AppendToDictionary = {'EventInfo':'xAOD::EventInfo','EventInfoAux':'xAOD::EventAuxInfo',
182  'TruthEvents':'xAOD::TruthEventContainer','TruthEventsAux':'xAOD::TruthEventAuxContainer',
183  'MET_Truth':'xAOD::MissingETContainer','MET_TruthAux':'xAOD::MissingETAuxContainer',
184  'TruthLHEParticles':'xAOD::TruthParticleContainer', 'TruthLHEParticlesAux':'xAOD::TruthParticleAuxContainer',
185  'TruthElectrons':'xAOD::TruthParticleContainer','TruthElectronsAux':'xAOD::TruthParticleAuxContainer',
186  'TruthMuons':'xAOD::TruthParticleContainer','TruthMuonsAux':'xAOD::TruthParticleAuxContainer',
187  'TruthPhotons':'xAOD::TruthParticleContainer','TruthPhotonsAux':'xAOD::TruthParticleAuxContainer',
188  'TruthTaus':'xAOD::TruthParticleContainer','TruthTausAux':'xAOD::TruthParticleAuxContainer',
189  'TruthNeutrinos':'xAOD::TruthParticleContainer','TruthNeutrinosAux':'xAOD::TruthParticleAuxContainer',
190  'TruthBSM':'xAOD::TruthParticleContainer','TruthBSMAux':'xAOD::TruthParticleAuxContainer',
191  'TruthBoson':'xAOD::TruthParticleContainer','TruthBosonAux':'xAOD::TruthParticleAuxContainer',
192  'TruthBottom':'xAOD::TruthParticleContainer','TruthBottomAux':'xAOD::TruthParticleAuxContainer',
193  'TruthTop':'xAOD::TruthParticleContainer','TruthTopAux':'xAOD::TruthParticleAuxContainer',
194  'TruthForwardProtons':'xAOD::TruthParticleContainer','TruthForwardProtonsAux':'xAOD::TruthParticleAuxContainer',
195  'BornLeptons':'xAOD::TruthParticleContainer','BornLeptonsAux':'xAOD::TruthParticleAuxContainer',
196  'TruthBosonsWithDecayParticles':'xAOD::TruthParticleContainer','TruthBosonsWithDecayParticlesAux':'xAOD::TruthParticleAuxContainer',
197  'TruthBosonsWithDecayVertices':'xAOD::TruthVertexContainer','TruthBosonsWithDecayVerticesAux':'xAOD::TruthVertexAuxContainer',
198  'TruthBSMWithDecayParticles':'xAOD::TruthParticleContainer','TruthBSMWithDecayParticlesAux':'xAOD::TruthParticleAuxContainer',
199  'TruthBSMWithDecayVertices':'xAOD::TruthVertexContainer','TruthBSMWithDecayVerticesAux':'xAOD::TruthVertexAuxContainer',
200  'AntiKt4TruthDressedWZJets':'xAOD::JetContainer','AntiKt4TruthDressedWZJetsAux':'xAOD::JetAuxContainer',
201  'AntiKt10TruthSoftDropBeta100Zcut10Jets':'xAOD::JetContainer','AntiKt10TruthSoftDropBeta100Zcut10JetsAux':'xAOD::JetAuxContainer',
202  'MET_Track1000':'xAOD::MissingETContainer', 'MET_Track1000Aux':'xAOD::MissingETAuxContainer',
203  'MET_Track2000':'xAOD::MissingETContainer', 'MET_Track2000Aux':'xAOD::MissingETAuxContainer',
204  'MET_Track3000':'xAOD::MissingETContainer', 'MET_Track3000Aux':'xAOD::MissingETAuxContainer',
205  'MET_Track4000':'xAOD::MissingETContainer', 'MET_Track4000Aux':'xAOD::MissingETAuxContainer',
206  'MET_Track5000':'xAOD::MissingETContainer', 'MET_Track5000Aux':'xAOD::MissingETAuxContainer',
207  }
208  # Build track MET with ptCut in MeV and HItight Tracks
209  from DerivationFrameworkHI.TrackMET_config import Cfg_METTrack
210  met_ptCutList = [1000,2000,3000,4000,5000]
211 
212  for ptCut in met_ptCutList:
213  acc.merge(Cfg_METTrack(flags, ptCut))
214 
215  AllVariables = []
216  AllVariables += ListSlimming.HION5AllVariables(flags.Input.RunNumbers[0])
217  AllVariables += ListSlimming.HION5ExtraContainersTrigger()
218 
219  if flags.Input.isMC:
220  from DerivationFrameworkMCTruth.MCTruthCommonConfig import AddStandardTruthContentsCfg
221  acc.merge(AddStandardTruthContentsCfg(flags))
222  AllVariables += ListSlimming.HION5AllTruthVariables()
223 
224  HION5SlimmingHelper.SmartCollections = ListSlimming.HION5SmartCollections()
225  HION5SlimmingHelper.ExtraVariables = ListSlimming.HION5ExtraVariables()
226  HION5SlimmingHelper.ExtraVariables += PhotonsCPDetailedContent
227  HION5SlimmingHelper.ExtraVariables += ExtraElectronShowerShapes
228  HION5SlimmingHelper.ExtraVariables += ExtraElectronGSFVar
229  HION5SlimmingHelper.AllVariables = AllVariables
230 
231  # Add egamma trigger objects
232  HION5SlimmingHelper.IncludeEGammaTriggerContent = True
233  # Add muon trigger objects
234  HION5SlimmingHelper.IncludeMuonTriggerContent = True
235 
236  HION5ItemList = HION5SlimmingHelper.GetItemList()
237 
238  acc.merge(OutputStreamCfg(flags, "DAOD_HION5", ItemList=HION5ItemList, AcceptAlgs=["HION5Kernel"]))
239  acc.merge(SetupMetaDataForStreamCfg(flags, "DAOD_HION5", AcceptAlgs=["HION5Kernel"], createMetadata=[MetadataCategory.CutFlowMetaData]))
240 
241  return acc

◆ HION5KernelCfg()

def python.HION5.HION5KernelCfg (   flags,
  name = "HION5Kernel",
**  kwargs 
)
Configure the derivation framework driving algorithm (kernel)
for HION5

Definition at line 89 of file HION5.py.

89 def HION5KernelCfg(flags, name="HION5Kernel", **kwargs):
90  """Configure the derivation framework driving algorithm (kernel)
91  for HION5"""
92  acc = ComponentAccumulator()
93 
94  # Schedule extra jets collections
95  from JetRecConfig.StandardSmallRJets import AntiKt4PV0Track
96  from JetRecConfig.JetRecConfig import JetRecCfg
97 
98  jetList = [AntiKt4PV0Track]
99  for jd in jetList:
100  acc.merge(JetRecCfg(flags, jd))
101 
102  # Common augmentations
103  # cannot use PhysCommon sequence because
104  # - no triggers
105  # - no TauJets
106  # so we have to use a modified version here
107  from DerivationFrameworkMuons.MuonsCommonConfig import MuonsCommonCfg
108  from DerivationFrameworkEGamma.EGammaCommonConfig import EGammaCommonCfg
109 
110  acc.merge(MuonsCommonCfg(flags))
111  acc.merge(EGammaCommonCfg(flags))
112 
113  # jet cleaning
114  # standard way in PhysCommon is
115  # - calculate tau ID (needed for default jet OR)
116  # - decorate jets with overlap removal
117  # - do event cleaning
118  # but taus are missing in HI derivations so need to do differently
119 
120  # NO JVT criteria in HI data (see pp config for details)
121 
122  # Decorate if jet passes OR and save decoration DFCommonJets_passOR
123  # Use modified OR that does not check overlaps with taus
124  from AssociationUtils.AssociationUtilsConfig import OverlapRemovalToolCfg
125 
126  outputLabel = "DFCommonJets_passOR_HI"
127  bJetLabel = "" # default
128  tauLabel = "" # workaround for missing taus
129  tauKey = "" # workaround for missing taus
130  orTool = acc.popToolsAndMerge(
132  flags, outputLabel=outputLabel, bJetLabel=bJetLabel, doTaus=False
133  )
134  )
135  algOR = CompFactory.OverlapRemovalGenUseAlg(
136  "OverlapRemovalGenUseAlg",
137  OverlapLabel=outputLabel,
138  OverlapRemovalTool=orTool,
139  JetKey = 'AntiKt4HIJets',
140  TauKey=tauKey,
141  TauLabel=tauLabel,
142  BJetLabel=bJetLabel,
143  )
144  acc.addEventAlgo(algOR)
145 
146  # skimming
147  skimmingTool = acc.getPrimaryAndMerge(HION5SkimmingToolCfg(flags))
148 
149  # Thinning
150  thinningTool= acc.getPrimaryAndMerge(HION5Thinning(flags))
151 
152  # setup the kernel
153  acc.addEventAlgo(
154  CompFactory.DerivationFramework.DerivationKernel(
155  name,
156  SkimmingTools = [skimmingTool],
157  ThinningTools = [thinningTool],
158  AugmentationTools = [],
159  ))
160 
161  return acc
162 

◆ HION5SkimmingToolCfg()

def python.HION5.HION5SkimmingToolCfg (   flags)
Configure the example skimming tool

Definition at line 9 of file HION5.py.

9 def HION5SkimmingToolCfg(flags):
10  """Configure the example skimming tool"""
11  acc = ComponentAccumulator()
12 
13  ExtraData = []
14  ExtraData += ['xAOD::MuonContainer/Muons']
15  ExtraData += ['xAOD::ElectronContainer/Electrons']
16  ExtraData += ['xAOD::PhotonContainer/Photons']
17  ExtraData += ['xAOD::TrackParticleContainer/InDetTrackParticles']
18 
19  acc.addSequence( seqAND("HION5Sequence") )
20  acc.getSequence("HION5Sequence").ExtraDataForDynamicConsumers = ExtraData
21  acc.getSequence("HION5Sequence").ProcessDynamicDataDependencies = True
22 
23  from DerivationFrameworkHI import ListTriggers
24 
25  triggers = ListTriggers.HION5SkimmingTriggers()
26 
27  req_electrons = 'count( Electrons.DFCommonElectronsLHLoose && ( Electrons.pt > 15*GeV ))>0'
28  req_muons = 'count( Muons.DFCommonMuonPassPreselection && (Muons.pt > 15*GeV) && ( abs(Muons.eta) < 2.7))>0'
29  req_photons = 'count( Photons.DFCommonPhotonsIsEMLoose && (Photons.pt > 30*GeV) ) > 0'
30  req_total = '(' + req_electrons + ' || ' + req_muons + ' || ' + req_photons + ')'
31 
32  expression = ' ( ' +' || '.join(triggers) + ' ) && ' + req_total
33 
34 
35  from TrigDecisionTool.TrigDecisionToolConfig import TrigDecisionToolCfg
36  tdt = acc.getPrimaryAndMerge(TrigDecisionToolCfg(flags))
37  acc.addPublicTool(CompFactory.DerivationFramework.xAODStringSkimmingTool(name = "HION5StringSkimmingTool",
38  expression = expression,
39  TrigDecisionTool=tdt),
40  primary = True)
41 
42  return acc
43 

◆ HION5Thinning()

def python.HION5.HION5Thinning (   flags)

Definition at line 44 of file HION5.py.

44 def HION5Thinning(flags):
45  from DerivationFrameworkInDet.InDetToolsConfig import TrackParticleThinningCfg,JetTrackParticleThinningCfg
46  acc = ComponentAccumulator()
47 
48  # find collision type
49  from CoolConvUtilities.ParticleTypeUtil import getTypeForRun
50  info=getTypeForRun(flags.Input.RunNumbers[0])
51  isOxygenOxygenCollision = False
52  if (info.getBeam1Type() == 8) or (info.getBeam2Type() == 8):
53  isOxygenOxygenCollision = True
54 
55  pTCut = 0.9
56  if isOxygenOxygenCollision:
57  pTCut = 0.5
58 
59  track_thinning_expression = f"InDetTrackParticles.pt > {pTCut}*GeV"
60  TrackParticleThinningTool = acc.getPrimaryAndMerge(TrackParticleThinningCfg(
61  flags,
62  name = "PHYSTrackParticleThinningTool",
63  StreamName = "StreamDAOD_HION5",
64  SelectionString = track_thinning_expression,
65  InDetTrackParticlesKey = "InDetTrackParticles"))
66 
67  AntiKt2HIJetsThinningTool = acc.getPrimaryAndMerge(JetTrackParticleThinningCfg(
68  flags,
69  name = "AntiKt2HIJetsThinningTool",
70  StreamName = "StreamDAOD_HION5",
71  JetKey = "AntiKt2HIJets",
72  SelectionString = "AntiKt2HIJets.pt > 15*GeV",
73  InDetTrackParticlesKey = "InDetTrackParticles"))
74 
75  AntiKt4HIJetsThinningTool = acc.getPrimaryAndMerge(JetTrackParticleThinningCfg(
76  flags,
77  name = "AntiKt4HIJetsThinningTool",
78  StreamName = "StreamDAOD_HION5",
79  JetKey = "AntiKt4HIJets",
80  SelectionString = "AntiKt4HIJets.pt > 15*GeV",
81  InDetTrackParticlesKey = "InDetTrackParticles"))
82 
83  acc.addPublicTool(TrackParticleThinningTool,primary = True)
84  acc.addPublicTool(AntiKt2HIJetsThinningTool)
85  acc.addPublicTool(AntiKt4HIJetsThinningTool)
86 
87  return acc
88 
python.OutputStreamConfig.OutputStreamCfg
def OutputStreamCfg(flags, streamName, ItemList=None, MetadataItemList=None, disableEventTag=False, trigNavThinningSvc=None, takeItemsFromInput=False, extendProvenanceRecord=True, keepProvenanceTagsRegEx=None, AcceptAlgs=None, HelperTools=None)
Definition: OutputStreamConfig.py:13
AssociationUtilsConfig.OverlapRemovalToolCfg
def OverlapRemovalToolCfg(ConfigFlags, masterName='OverlapRemovalTool', inputLabel='selected', outputLabel='overlaps', bJetLabel='', maxElePtForBJetAwareOR=100. *1000, boostedLeptons=False, outputPassValue=False, linkOverlapObjects=False, doEleEleOR=False, doElectrons=True, doMuons=True, doJets=True, doTaus=True, doPhotons=True, doFatJets=False, **kwargs)
Definition: AssociationUtilsConfig.py:5
python.JetAnalysisCommon.ComponentAccumulator
ComponentAccumulator
Definition: JetAnalysisCommon.py:302
python.InDetToolsConfig.TrackParticleThinningCfg
def TrackParticleThinningCfg(flags, name, **kwargs)
Definition: InDetToolsConfig.py:516
python.EGammaCommonConfig.EGammaCommonCfg
def EGammaCommonCfg(ConfigFlags)
Definition: EGammaCommonConfig.py:15
python.ParticleTypeUtil.getTypeForRun
def getTypeForRun(run, quiet=False)
Definition: ParticleTypeUtil.py:24
python.HION5.HION5KernelCfg
def HION5KernelCfg(flags, name="HION5Kernel", **kwargs)
Definition: HION5.py:89
python.TrackMET_config.Cfg_METTrack
def Cfg_METTrack(configFlags, ptCut)
Definition: TrackMET_config.py:7
python.JetRecConfig.JetRecCfg
def JetRecCfg(flags, jetdef, returnConfiguredDef=False)
Top level functions returning ComponentAccumulator out of JetDefinition.
Definition: JetRecConfig.py:36
python.HION5.HION5SkimmingToolCfg
def HION5SkimmingToolCfg(flags)
Definition: HION5.py:9
python.MuonsCommonConfig.MuonsCommonCfg
def MuonsCommonCfg(flags, suff="")
Definition: MuonsCommonConfig.py:13
python.HION5.HION5Cfg
def HION5Cfg(flags)
Definition: HION5.py:163
python.InDetToolsConfig.JetTrackParticleThinningCfg
def JetTrackParticleThinningCfg(flags, name, **kwargs)
Definition: InDetToolsConfig.py:632
python.MCTruthCommonConfig.AddStandardTruthContentsCfg
def AddStandardTruthContentsCfg(flags, decorationDressing='dressedPhoton', includeTausInDressingPhotonRemoval=False, navInputCollections=["TruthElectrons", "TruthMuons", "TruthPhotons", "TruthTaus", "TruthNeutrinos", "TruthBSM", "TruthBottom", "TruthTop", "TruthBoson"], prefix='')
Definition: MCTruthCommonConfig.py:179
TCS::join
std::string join(const std::vector< std::string > &v, const char c=',')
Definition: Trigger/TrigT1/L1Topo/L1TopoCommon/Root/StringUtils.cxx:10
python.TriggerInterface.TrigDecisionToolCfg
def TrigDecisionToolCfg(flags)
Definition: TriggerInterface.py:14
python.CFElements.seqAND
def seqAND(name, subs=[], invert=False)
Definition: CFElements.py:27
InfileMetaDataConfig.SetupMetaDataForStreamCfg
def SetupMetaDataForStreamCfg(flags, streamName="", AcceptAlgs=None, createMetadata=None, propagateMetadataFromInput=True, *args, **kwargs)
Definition: InfileMetaDataConfig.py:222
SlimmingHelper
Definition: SlimmingHelper.py:1
python.HION5.HION5Thinning
def HION5Thinning(flags)
Definition: HION5.py:44