ATLAS Offline Software
JetJvtAnalysisConfig.py
Go to the documentation of this file.
1 # Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
2 
3 
4 # AnaAlgorithm import(s):
5 from AnalysisAlgorithmsConfig.ConfigBlock import ConfigBlock
6 from AnalysisAlgorithmsConfig.ConfigAccumulator import DataType
7 
8 
9 class JetJvtAnalysisConfig (ConfigBlock) :
10  """the ConfigBlock for the JVT sequence"""
11 
12  def __init__ (self) :
13  super (JetJvtAnalysisConfig, self).__init__ ()
14  self.setBlockName('JVT')
15  self.addDependency('OverlapRemoval', required=False)
16  self.addOption ('containerName', '', type=str,
17  noneAction='error',
18  info="the name of the input container.")
19  self.addOption ('postfix', '', type=str,
20  info="a postfix to apply to decorations and algorithm names. Typically "
21  "not needed here.")
22  self.addOption ('enableFJvt', False, type=bool,
23  info="whether to enable forward JVT calculations. The default is False.")
24 
25  def instanceName (self) :
26  """Return the instance name for this block"""
27  return self.containerName + self.postfix
28 
29  def makeAlgs (self, config) :
30 
31  if config.dataType() is DataType.Data: return
32 
33  postfix = self.postfix
34  if postfix != '' and postfix[0] != '_' :
35  postfix = '_' + postfix
36 
37  # Set up the per-event jet efficiency scale factor calculation algorithm
38  alg = config.createAlgorithm( 'CP::AsgEventScaleFactorAlg', 'JvtEventScaleFactorAlg' )
39  preselection = config.getFullSelection (self.containerName, '')
40  alg.preselection = preselection + '&&no_jvt' if preselection else 'no_jvt'
41  alg.scaleFactorInputDecoration = 'jvt_effSF_%SYS%'
42  alg.scaleFactorOutputDecoration = 'jvt_effSF_%SYS%'
43  alg.particles = config.readName (self.containerName)
44 
45  config.addOutputVar('EventInfo', alg.scaleFactorOutputDecoration, 'weight_jvt_effSF' + postfix)
46 
47  if self.enableFJvt:
48  alg = config.createAlgorithm( 'CP::AsgEventScaleFactorAlg', 'ForwardJvtEventScaleFactorAlg' )
49  preselection = config.getFullSelection (self.containerName, '')
50  alg.preselection = preselection + '&&no_fjvt' if preselection else 'no_fjvt'
51  alg.scaleFactorInputDecoration = 'fjvt_effSF_%SYS%'
52  alg.scaleFactorOutputDecoration = 'fjvt_effSF_%SYS%'
53  alg.particles = config.readName (self.containerName)
54 
55  config.addOutputVar('EventInfo', alg.scaleFactorOutputDecoration, 'weight_fjvt_effSF' + postfix)
56 
python.JetJvtAnalysisConfig.JetJvtAnalysisConfig
Definition: JetJvtAnalysisConfig.py:9
python.JetJvtAnalysisConfig.JetJvtAnalysisConfig.__init__
def __init__(self)
Definition: JetJvtAnalysisConfig.py:12
python.JetJvtAnalysisConfig.JetJvtAnalysisConfig.instanceName
def instanceName(self)
Definition: JetJvtAnalysisConfig.py:25
python.JetJvtAnalysisConfig.JetJvtAnalysisConfig.makeAlgs
def makeAlgs(self, config)
Definition: JetJvtAnalysisConfig.py:29