ATLAS Offline Software
ParticleLevelJetsConfig.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2 
3 from AnalysisAlgorithmsConfig.ConfigBlock import ConfigBlock
4 
5 
6 class ParticleLevelJetsBlock(ConfigBlock):
7  """ConfigBlock for particle-level truth jets"""
8 
9  def __init__(self):
10  super(ParticleLevelJetsBlock, self).__init__()
11  self.addOption('containerName', 'AntiKt4TruthDressedWZJets', type=str,
12  info='the name of the input truth jets container')
13  self.addOption('outputTruthLabelIDs', False, type=bool,
14  info='Enable or disable HadronConeExclTruthLabelID and PartonTruthLabelID decorations')
15  # Always skip on data
16  self.setOptionValue('skipOnData', True)
17 
18  def instanceName (self) :
19  """Return the instance name for this block"""
20  return self.containerName
21 
22  def makeAlgs(self, config):
23  config.setSourceName (self.containerName, self.containerName)
24 
25  # count the number of heavy-flavour jets for normalisation of e.g. V+HF samples
26  if "AntiKt4" in self.containerName:
27  alg = config.createAlgorithm('CP::ParticleLevelJetsAlg',
28  'ParticleLevelJetsAlg',
29  reentrant=True)
30  alg.jets = self.containerName
31 
32  # decorate the energy so we can save it later
33  alg = config.createAlgorithm( 'CP::AsgEnergyDecoratorAlg', 'ParticleLevelEnergyDecorator' )
34  alg.particles = self.containerName
35 
36  outputVars = [
37  ['pt', 'pt'],
38  ['eta', 'eta'],
39  ['phi', 'phi'],
40  ['e_%SYS%', 'e'],
41  ['GhostBHadronsFinalCount', 'nGhosts_bHadron'],
42  ['GhostCHadronsFinalCount', 'nGhosts_cHadron'],
43  ]
44 
45  if self.outputTruthLabelIDs:
46  outputVars += [
47  ['HadronConeExclTruthLabelID', 'HadronConeExclTruthLabelID'],
48  ['PartonTruthLabelID', 'PartonTruthLabelID'],
49  ]
50 
51  for decoration, branch in outputVars:
52  config.addOutputVar (self.containerName, decoration, branch, noSys=True)
53 
54  if "AntiKt4" in self.containerName:
55  config.addOutputVar('EventInfo', 'num_truth_bjets_nocuts', 'num_truth_bjets_nocuts', noSys=True)
56  config.addOutputVar('EventInfo', 'num_truth_cjets_nocuts', 'num_truth_cjets_nocuts', noSys=True)
ParticleLevelJetsConfig.ParticleLevelJetsBlock.__init__
def __init__(self)
Definition: ParticleLevelJetsConfig.py:9
ParticleLevelJetsConfig.ParticleLevelJetsBlock.makeAlgs
def makeAlgs(self, config)
Definition: ParticleLevelJetsConfig.py:22
ParticleLevelJetsConfig.ParticleLevelJetsBlock
Definition: ParticleLevelJetsConfig.py:6
ParticleLevelJetsConfig.ParticleLevelJetsBlock.instanceName
def instanceName(self)
Definition: ParticleLevelJetsConfig.py:18