ATLAS Offline Software
Loading...
Searching...
No Matches
ParticleLevelJetsConfig.py
Go to the documentation of this file.
1# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
2
3from AnalysisAlgorithmsConfig.ConfigBlock import ConfigBlock
4
5
6class 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
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)