3 from AnalysisAlgorithmsConfig.ConfigBlock
import 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!"""
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.')
32 alg = config.createAlgorithm(
'CP::JetReclusteringAlg',
'JetReclusteringAlg' + self.containerName)
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
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)
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')