1002 def makeAlgs (self, config) :
1003
1004 suffix = self.suffix()
1005 decorationName = f"{self._prefix}_selection{suffix},as_char"
1006
1007 if not self.noEffSF and config.dataType() is not DataType.Data:
1008 alg = config.createAlgorithm( 'CP::JvtEfficiencyAlg', f'{self._algPrefix}EfficiencyAlg_{self.workingPoint()}' )
1009 config.addPrivateTool( 'efficiencyTool', self._efficiencyTool )
1010 alg.efficiencyTool.JetContainer = config.readName(self.containerName)
1011 if self._maxPtForJvt is not None:
1012 alg.efficiencyTool.MaxPtForJvt = self._maxPtForJvt
1013 alg.efficiencyTool.WorkingPoint = self.workingPoint()
1014 if config.geometry() is LHCPeriod.Run2:
1015 alg.efficiencyTool.SFFile = f"JetJvtEfficiency/May2024/{self._sfFileStem}_Run2_EMPFlow.root"
1016 else:
1017 alg.efficiencyTool.SFFile = f"JetJvtEfficiency/May2024/{self._sfFileStem}_Run3_EMPFlow.root"
1018 alg.selection = decorationName
1019 alg.scaleFactorDecoration = f'{self._prefix}_effSF{suffix}_%SYS%'
1020 alg.outOfValidity = 2
1021 alg.outOfValidityDeco = f'no_{self._prefix}{suffix}'
1022 alg.skipBadEfficiency = False
1023 alg.jets = config.readName (self.containerName)
1024 alg.preselection = config.getPreselection (self.containerName, '')
1025
1026 config.addOutputVar (self.containerName, alg.scaleFactorDecoration, f'{self._prefix}Efficiency{suffix}')
1027
1028