5 from AnalysisAlgorithmsConfig.ConfigBlock
import ConfigBlock
6 from AnalysisAlgorithmsConfig.ConfigAccumulator
import DataType
10 """the ConfigBlock for the JVT sequence"""
13 super (JetJvtAnalysisConfig, self).__init__ ()
14 self.setBlockName(
'JVT')
15 self.addDependency(
'OverlapRemoval', required=
False)
16 self.addOption (
'containerName',
'', type=str,
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 "
22 self.addOption (
'enableFJvt',
False, type=bool,
23 info=
"whether to enable forward JVT calculations. The default is False.")
26 """Return the instance name for this block"""
27 return self.containerName + self.postfix
31 if config.dataType()
is DataType.Data:
return
33 postfix = self.postfix
34 if postfix !=
'' and postfix[0] !=
'_' :
35 postfix =
'_' + postfix
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)
45 config.addOutputVar(
'EventInfo', alg.scaleFactorOutputDecoration,
'weight_jvt_effSF' + postfix)
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)
55 config.addOutputVar(
'EventInfo', alg.scaleFactorOutputDecoration,
'weight_fjvt_effSF' + postfix)