827 def makeAlgs (self, config) :
828
829 if not self.noEffSF and config.dataType() is not DataType.Data:
830 alg = config.createAlgorithm( 'CP::JvtEfficiencyAlg', f'FJvtEfficiencyAlg_{self.fjvtWP}' )
831 config.addPrivateTool( 'efficiencyTool', 'CP::FJvtEfficiencyTool' )
832 alg.efficiencyTool.JetContainer = config.readName(self.containerName)
833 alg.efficiencyTool.WorkingPoint = self.fjvtWP
834 if config.geometry() is LHCPeriod.Run2:
835 alg.efficiencyTool.SFFile = "JetJvtEfficiency/May2024/fJvtSFFile_Run2_EMPFlow.root"
836 else:
837 alg.efficiencyTool.SFFile = "JetJvtEfficiency/May2024/fJvtSFFile_Run3_EMPFlow.root"
838 alg.selection = f'fjvt_selection_{self.fjvtWP},as_char'
839 alg.scaleFactorDecoration = f'fjvt_effSF_{self.fjvtWP}_%SYS%'
840 alg.outOfValidity = 2
841 alg.outOfValidityDeco = f'no_fjvt_{self.fjvtWP}'
842 alg.skipBadEfficiency = False
843 alg.jets = config.readName (self.containerName)
844 alg.preselection = config.getPreselection (self.containerName, '')
845
846 config.addOutputVar (self.containerName, alg.scaleFactorDecoration, f'fjvtEfficiency_{self.fjvtWP}')
847
848
849 if self.eventSF:
850 alg = config.createAlgorithm( 'CP::AsgEventScaleFactorAlg', f'ForwardJvtEventScaleFactorAlg_{self.fjvtWP}' )
851 preselection = config.getFullSelection (self.containerName, '')
852 alg.preselection = preselection + f'&&no_fjvt_{self.fjvtWP}' if preselection else f'no_fjvt_{self.fjvtWP}'
853 alg.scaleFactorInputDecoration = f'fjvt_effSF_{self.fjvtWP}_%SYS%'
854 alg.scaleFactorOutputDecoration = f'fjvt_effSF_{self.fjvtWP}_%SYS%'
855 alg.particles = config.readName (self.containerName)
856
857 config.addOutputVar('EventInfo', alg.scaleFactorOutputDecoration, f'weight_fjvt_effSF_{self.fjvtWP}')
858
859
860@groupBlocks