ATLAS Offline Software
JetReclusteringConfig.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 from AthenaCommon.SystemOfUnits import GeV
5 
6 class JetReclusteringBlock(ConfigBlock):
7  """ConfigBlock for the jet reclustering algorithm:
8  run FastJet with small-R jets as input. The output
9  is a new container containing the reclustered jets.
10  The default output variables are the RC jet kinematics
11  as well as a vector of indices pointing to the
12  small-R jets that formed the RC jets.
13  ---- to be updated with substructure variables!"""
14 
15  def __init__(self):
16  super(JetReclusteringBlock, self).__init__()
17  self.addOption ('containerName', None, type=str,
18  info='name of the output reclustered jets container.')
19  self.addOption ('jets', None, type=str,
20  info='the input jet collection to recluster, with a possible selection, in the format `container` or `container.selection`.')
21  self.addOption ('clusteringAlgorithm', 'AntiKt', type=str,
22  info='algorithm to use to recluster the jets: `AntiKt`, `Kt`, `CamKt`.')
23  self.addOption ('reclusteredJetsRadius', 1.0, type=float,
24  info='radius parameter of the reclustering algorithm. The default is 1.0.')
25  self.addOption ('minPt', 200*GeV, type=float,
26  info='minimum pT requirement (in MeV) on the reclustered jets, creating the selection `passed_sel`. The default is 200 GeV.')
27  self.addOption ('maxEta', 2.5, type=float,
28  info='maximum eta requirement on the reclustered jets, creating the selection `passed_sel`. The default is 2.5.')
29 
30  def makeAlgs(self, config):
31 
32  alg = config.createAlgorithm('CP::JetReclusteringAlg', 'JetReclusteringAlg' + self.containerName)
33 
34  alg.jets, alg.jetSelection = config.readNameAndSelection(self.jets)
35  alg.reclusteredJets = config.writeName(self.containerName)
36  alg.smallRjetIndices = 'smallRjetIndices_%SYS%'
37  alg.rcJetEnergy = 'e_%SYS%'
38  alg.clusteringAlgorithm = self.clusteringAlgorithm
39  alg.reclusteredJetsRadius = self.reclusteredJetsRadius
40 
41  # prepare selection algorithm
42  if self.minPt > 0 or self.maxEta > 0 :
43  selAlg = config.createAlgorithm('CP::AsgSelectionAlg', 'RCJetsMinPtAlg' + self.containerName)
44  selAlg.selectionDecoration = 'passed_sel,as_bits'
45  config.addPrivateTool('selectionTool', 'CP::AsgPtEtaSelectionTool')
46  selAlg.selectionTool.minPt = self.minPt
47  selAlg.selectionTool.maxEta = self.maxEta
48  selAlg.particles = config.readName(self.containerName)
49  selAlg.preselection = config.getPreselection(self.containerName, '')
50  config.addSelection(self.containerName, 'passed_sel', selAlg.selectionDecoration)
51 
52  config.addOutputVar(self.containerName, 'pt', 'pt')
53  config.addOutputVar(self.containerName, 'eta', 'eta')
54  config.addOutputVar(self.containerName, 'phi', 'phi')
55  config.addOutputVar(self.containerName, 'm', 'm')
56  config.addOutputVar(self.containerName, alg.rcJetEnergy, 'e')
57  config.addOutputVar(self.containerName, alg.smallRjetIndices, 'small_r_jet_indices')
SystemOfUnits
python.JetReclusteringConfig.JetReclusteringBlock
Definition: JetReclusteringConfig.py:6
python.JetReclusteringConfig.JetReclusteringBlock.makeAlgs
def makeAlgs(self, config)
Definition: JetReclusteringConfig.py:30
python.JetReclusteringConfig.JetReclusteringBlock.__init__
def __init__(self)
Definition: JetReclusteringConfig.py:15