def toolNewJetFitterTagFlip(name, useBTagFlagsDefaults = True, **options): """Sets up a NewJetFitterTagFlip tool and returns it. The following options have BTaggingFlags defaults: OutputLevel default: BTaggingFlags.OutputLevel Runmodus default: BTaggingFlags.Runmodus jetCollectionList default: BTaggingFlags.Jets SecVxFinderName default: "NewJetFitterVxFinderFlip" useForcedCalibration default: False input: name: The name of the tool (should be unique). useBTagFlagsDefaults : Whether to use BTaggingFlags defaults for options that are not specified. **options: Python dictionary with options for the tool. output: The actual tool, which can then by added to ToolSvc via ToolSvc += output.""" if useBTagFlagsDefaults: defaults = { 'OutputLevel' : BTaggingFlags.OutputLevel, 'Runmodus' : BTaggingFlags.Runmodus, 'jetCollectionList' : BTaggingFlags.Jets, 'SecVxFinderName' : 'NewJetFitterVxFinderFlip', 'useForcedCalibration' : False } for option in defaults: options.setdefault(option, defaults[option]) options['name'] = name from JetTagTools.JetTagToolsConf import Analysis__JetFitterTag return Analysis__JetFitterTag(**options)
def toolJetFitterTagCOMBNN(name, useBTagFlagsDefaults=True, **options): """Sets up a JetFitterTagCOMBNN tool and returns it. The following options have BTaggingFlags defaults: OutputLevel default: BTaggingFlags.OutputLevel Runmodus default: BTaggingFlags.Runmodus jetCollectionList default: BTaggingFlags.Jets SecVxFinderName default: "JetFitter" useForcedCalibration default: False ipinfoTaggerName default: "IP3D" input: name: The name of the tool (should be unique). useBTagFlagsDefaults : Whether to use BTaggingFlags defaults for options that are not specified. **options: Python dictionary with options for the tool. output: The actual tool, which can then by added to ToolSvc via ToolSvc += output.""" if useBTagFlagsDefaults: defaults = { 'OutputLevel': BTaggingFlags.OutputLevel, 'Runmodus': BTaggingFlags.Runmodus, 'jetCollectionList': BTaggingFlags.Jets, 'SecVxFinderName': 'JetFitter', 'useForcedCalibration': False, # 'supplementalTaggers' : ['IP3D'], # 'storeOnlyBaseObject' : True } 'ipinfoTaggerName': 'IP3D', } for option in defaults: options.setdefault(option, defaults[option]) options['name'] = name from JetTagTools.JetTagToolsConf import Analysis__JetFitterTag return Analysis__JetFitterTag(**options)
CalibrationSubDirectory="NeuralNetwork", OutputLevel = BTaggingFlags.OutputLevel, NeuralNetworkToHistoTool = NeuralNetworkToHistoNNTool, useCombinedIPNN = useNNcombinedWithIP3D, calibrationTool=BTagCalibrationBrokerTool ) ToolSvc += JetFitterCOMBNNTool if BTaggingFlags.OutputLevel < 3: print JetFitterCOMBNNTool from JetTagTools.JetTagToolsConf import Analysis__JetFitterTag JetFitterIP3DPosCOMBNN = Analysis__JetFitterTag( name = "JetFitterTagCOMBNNIP3DPos", OutputLevel = BTaggingFlags.OutputLevel, Runmodus = BTaggingFlags.Runmodus, jetfitterNtupleWriter = JetFitterNtupleWriterCOMBNN, jetfitterClassifier = JetFitterCOMBNNTool, jetfitterVariablesFactory = JetFitterVariablesFactoryCOMBNNIP3DPos, useForcedCalibration = False, supplementalTaggers = ['IP3DPos'] if useNNcombinedWithIP3D else [], storeOnlyBaseObject = True ) ToolSvc += JetFitterIP3DPosCOMBNN JetFitterIP3DPosCOMBNN.jetCollectionList = [] for key in BTaggingFlags.Jets: JetFitterIP3DPosCOMBNN.jetCollectionList += [key] # if (key == 'Cone4Tower' or key == 'Cone7Tower'): if BTaggingFlags.OutputLevel < 3: print JetFitterIP3DPosCOMBNN
if (not BTaggingFlags.JetFitterTag): from JetTagTools.JetTagToolsConf import Analysis__JetFitterLikelihood NewJetFitterLikelihood = Analysis__JetFitterLikelihood( name="NewJetFitterLikelihood", CalibrationDirectory="JetFitter", CalibrationSubDirectory="RooFitLikelihood", calibrationTool=BTagCalibrationBrokerTool, OutputLevel=BTaggingFlags.OutputLevel) ToolSvc += NewJetFitterLikelihood if BTaggingFlags.OutputLevel < 3: print NewJetFitterLikelihood from JetTagTools.JetTagToolsConf import Analysis__JetFitterTag NewJetFitterFlipTagTool = Analysis__JetFitterTag( name="NewJetFitterTagFlip", OutputLevel=BTaggingFlags.OutputLevel, Runmodus=BTaggingFlags.Runmodus, JetFitterNtupleWriter=NewJetFitterNtupleWriter, JetFitterLikelihood=NewJetFitterLikelihoodFlip, jetCollectionList=BTaggingFlags.Jets, JetFitterVariablesFactory=NewJetFitterVariablesFactoryFlip, SecVxFinderName="NewJetFitterVxFinderFlip", useForcedCalibration=False) ToolSvc += NewJetFitterFlipTagTool if BTaggingFlags.OutputLevel < 3: print NewJetFitterFlipTagTool
OutputLevel = BTaggingFlags.OutputLevel, NeuralNetworkToHistoTool = NeuralNetworkToHistoNNTool, usePtCorrectedMass = True, useCombinedIPNN = useNNcombinedWithIP3D, calibrationTool=BTagCalibrationBrokerTool ) ToolSvc += JetFitterCOMBNNTool if BTaggingFlags.OutputLevel < 3: print JetFitterCOMBNNTool from JetTagTools.JetTagToolsConf import Analysis__JetFitterTag JetFitterCOMBNN = Analysis__JetFitterTag( name = "JetFitterTagCOMBNN", OutputLevel = BTaggingFlags.OutputLevel, Runmodus = BTaggingFlags.Runmodus, jetfitterNtupleWriter = JetFitterNtupleWriterCOMBNN, jetfitterClassifier = JetFitterCOMBNNTool, useForcedCalibration = False, ipinfoTaggerName = "IP3D" if useNNcombinedWithIP3D else "", SecVxFinderName="JetFitter", xAODBaseName="JetFitterCombNN" ) ToolSvc += JetFitterCOMBNN JetFitterCOMBNN.jetCollectionList = [] for key in BTaggingFlags.Jets: JetFitterCOMBNN.jetCollectionList += [key] # if (key == 'Cone4Tower' or key == 'Cone7Tower'): if BTaggingFlags.OutputLevel < 3: print JetFitterCOMBNN
CalibrationDirectory="JetFitter", CalibrationSubDirectory="NeuralNetwork", OutputLevel=BTaggingFlags.OutputLevel, NeuralNetworkToHistoTool=NeuralNetworkToHistoNNTool, useCombinedIPNN=useNNcombinedWithIP3D, calibrationTool=BTagCalibrationBrokerTool) ToolSvc += JetFitterNNTool if BTaggingFlags.OutputLevel < 3: print JetFitterNNTool from JetTagTools.JetTagToolsConf import Analysis__JetFitterTag JetFitterFlipTagToolNN = Analysis__JetFitterTag( name="JetFitterTagNNFlip", OutputLevel=BTaggingFlags.OutputLevel, Runmodus=BTaggingFlags.Runmodus, jetfitterNtupleWriter=JetFitterNtupleWriterNN, jetfitterClassifier=JetFitterNNTool, jetfitterVariablesFactory=JetFitterVariablesFactoryNNFlip, jetCollectionList=BTaggingFlags.Jets, useForcedCalibration=False, supplementalTaggers=['IP3D'] if useNNcombinedWithIP3D else [], storeOnlyBaseObject=True) if not BTaggingFlags.JetFitterTagFlip: JetFitterFlipTagToolNN.storeOnlyBaseObject = False ToolSvc += JetFitterFlipTagToolNN if BTaggingFlags.OutputLevel < 3: print JetFitterFlipTagToolNN
NeuralNetworkToHistoTool = NeuralNetworkToHistoNNTool, useCombinedIPNN = useNNcombinedWithIP3D, usePtCorrectedMass = True, calibrationTool=BTagCalibrationBrokerTool ) ToolSvc += JetFitterNNTool if BTaggingFlags.OutputLevel < 3: print JetFitterNNTool from JetTagTools.JetTagToolsConf import Analysis__JetFitterTag JetFitterTagToolNN = Analysis__JetFitterTag( name = "JetFitterTagNN", OutputLevel = BTaggingFlags.OutputLevel, Runmodus = BTaggingFlags.Runmodus, jetfitterNtupleWriter = JetFitterNtupleWriterNN, jetfitterClassifier = JetFitterNNTool, jetCollectionList = BTaggingFlags.Jets, useForcedCalibration = False, ipinfoTaggerName = "IP3D" if useNNcombinedWithIP3D else "", SecVxFinderName="JetFitter", xAODBaseName="JetFitter" ) #if not BTaggingFlags.JetFitterTag: # JetFitterTagToolNN.storeOnlyBaseObject = False ToolSvc += JetFitterTagToolNN
CalibrationSubDirectory="NeuralNetwork", OutputLevel = BTaggingFlags.OutputLevel, NeuralNetworkToHistoTool = NeuralNetworkToHistoNNTool, useCombinedIPNN = useNNcombinedWithIP3D, calibrationTool=BTagCalibrationBrokerTool ) ToolSvc += JetFitterCOMBNNTool if BTaggingFlags.OutputLevel < 3: print JetFitterCOMBNNTool from JetTagTools.JetTagToolsConf import Analysis__JetFitterTag JetFitterIP3DNegCOMBNN = Analysis__JetFitterTag( name = "JetFitterTagCOMBNNIP3DNeg", OutputLevel = BTaggingFlags.OutputLevel, Runmodus = BTaggingFlags.Runmodus, jetfitterNtupleWriter = JetFitterNtupleWriterCOMBNN, jetfitterClassifier = JetFitterCOMBNNTool, jetfitterVariablesFactory = JetFitterVariablesFactoryCOMBNNIP3DNeg, useForcedCalibration = False, supplementalTaggers = ["IP3DNeg"] if useNNcombinedWithIP3D else [], storeOnlyBaseObject = True ) ToolSvc += JetFitterIP3DNegCOMBNN JetFitterIP3DNegCOMBNN.jetCollectionList = [] for key in BTaggingFlags.Jets: JetFitterIP3DNegCOMBNN.jetCollectionList += [key] # if (key == 'Cone4Tower' or key == 'Cone7Tower'): if BTaggingFlags.OutputLevel < 3: print JetFitterIP3DNegCOMBNN
CalibrationDirectory="JetFitter", CalibrationSubDirectory="NeuralNetwork", OutputLevel=BTaggingFlags.OutputLevel, NeuralNetworkToHistoTool=NeuralNetworkToHistoNNTool, useCombinedIPNN=useNNcombinedWithIP3D, calibrationTool=BTagCalibrationBrokerTool) ToolSvc += JetFitterCOMBNNTool if BTaggingFlags.OutputLevel < 3: print JetFitterCOMBNNTool from JetTagTools.JetTagToolsConf import Analysis__JetFitterTag JetFitterIP3DNegCOMBNN = Analysis__JetFitterTag( name="JetFitterTagCOMBNNIP3DNeg", OutputLevel=BTaggingFlags.OutputLevel, Runmodus=BTaggingFlags.Runmodus, jetfitterNtupleWriter=JetFitterNtupleWriterCOMBNN, jetfitterClassifier=JetFitterCOMBNNTool, jetfitterVariablesFactory=JetFitterVariablesFactoryCOMBNNIP3DNeg, useForcedCalibration=False, supplementalTaggers=["IP3DNeg"] if useNNcombinedWithIP3D else [], storeOnlyBaseObject=True) ToolSvc += JetFitterIP3DNegCOMBNN JetFitterIP3DNegCOMBNN.jetCollectionList = [] for key in BTaggingFlags.Jets: JetFitterIP3DNegCOMBNN.jetCollectionList += [key] # if (key == 'Cone4Tower' or key == 'Cone7Tower'): if BTaggingFlags.OutputLevel < 3: print JetFitterIP3DNegCOMBNN
def get_jet_fitter_charm(jet_collection_list, calibration_tool, output_level=3, runmodus='analysis', name_extension='Charm', vx_finder_name='NewJetFitterVxFinder', output_threshold=3, do_neg=False, ): from AthenaCommon.AppMgr import ToolSvc from JetTagTools.JetTagToolsConf import Analysis__JetFitterCharmVariablesFactory VariablesFactory = Analysis__JetFitterCharmVariablesFactory( name = "JetFitterVariablesFactory" + name_extension, OutputLevel=output_level, JetFitterInstance = "JetFitter" + name_extension, secVxFinderName = vx_finder_name, usePtCorrectedMass=True, revertFromPositiveToNegativeTags=do_neg) ToolSvc += VariablesFactory if output_level < output_threshold: print VariablesFactory from JetTagTools.JetTagToolsConf import Analysis__JetFitterCharmNNTool JetFitterCharmNNTool = Analysis__JetFitterCharmNNTool( name = "JetFitter" + name_extension + "NNTool", calibration_tool = calibration_tool, calibration_directory = 'JetFitterCharm', calibration_subdirectory = 'NeuralNetwork' ) ToolSvc += JetFitterCharmNNTool if output_level < output_threshold: print JetFitterCharmNNTool if do_neg: supplemental_taggers = ['IP3DNeg','SV1Flip'] else: supplemental_taggers = ['IP3D','SV1'] from JetTagTools.JetTagToolsConf import Analysis__JetFitterTag JetFitterCharm = Analysis__JetFitterTag( name = "JetFitter" + name_extension, OutputLevel = output_level, Runmodus = runmodus, jetfitterClassifier = JetFitterCharmNNTool, jetfitterVariablesFactory = VariablesFactory, supplementalTaggers = supplemental_taggers, useForcedCalibration = False, svxTaggerName = 'SVInfoPlus', ) ToolSvc += JetFitterCharm JetFitterCharm.jetCollectionList = jet_collection_list if output_level < output_threshold: print JetFitterCharm return JetFitterCharm
# ------ BTagging configuration: redoBtag = True if not 'BTaggingFlags' in dir(): from BTagging.BTaggingFlags import BTaggingFlags if redoBtag: BTaggingFlags.Runmodus = "analysis" BTaggingFlags.PoolInputType = "AOD" from ParticleBuilderOptions.AODFlags import AODFlags AODFlags.TruthParticleJet = False BTaggingFlags.OutputLevel = INFO BTaggingFlags.Jets = ['Cone4H1Tower'] BTaggingFlags.JetsWithInfoPlus = ['Cone4H1Tower'] include( "BTagging/BTagging_jobOptions.py" ) from JetTagTools.JetTagToolsConf import Analysis__JetFitterTag JetFitterTagTool = Analysis__JetFitterTag(name = "JetFitterTag") JetFitterTagTool.jetCollectionList = ['Cone4H1Tower'] # ------ JetTagAna part: include("AnalysisExamples/JetTagAna_jobOptions.py") if redoBtag: MyJetTagAna.JetContainer = 'Cone4H1TowerJetsAOD' else: MyJetTagAna.JetContainer = 'Cone4H1TowerJets' MyJetTagAna.PrimaryVertexContainer = BTaggingFlags.PrimaryVertexCollectionName MyJetTagAna.TrackParticleContainer = BTaggingFlags.TrackParticleCollectionName print MyJetTagAna # ------ MsgSvc: ServiceMgr.MessageSvc.OutputLevel = ERROR ServiceMgr.MessageSvc.defaultLimit = 9999999 # all messages
from JetTagTools.JetTagToolsConf import Analysis__JetFitterLikelihood jetFitterLikelihood = Analysis__JetFitterLikelihood( name="JetFitterLikelihood", CalibrationDirectory="JetFitter", CalibrationSubDirectory="RooFitLikelihood", calibrationTool=BTagCalibrationBrokerTool, OutputLevel=BTaggingFlags.OutputLevel) ToolSvc += jetFitterLikelihood if BTaggingFlags.OutputLevel < 3: print jetFitterLikelihood from JetTagTools.JetTagToolsConf import Analysis__JetFitterTag JetFitterTagTool = Analysis__JetFitterTag( name="JetFitterTag", OutputLevel=BTaggingFlags.OutputLevel, Runmodus=BTaggingFlags.Runmodus, jetCollectionList=BTaggingFlags.Jets, jetfitterNtupleWriter=jetFitterNtupleWriter, jetfitterClassifier=jetFitterLikelihood, jetfitterVariablesFactory=JetFitterVariablesFactory, useForcedCalibration=False, storeOnlyBaseObject=False) ToolSvc += JetFitterTagTool if BTaggingFlags.OutputLevel < 3: print JetFitterTagTool
CalibrationSubDirectory="NeuralNetwork", OutputLevel = BTaggingFlags.OutputLevel, NeuralNetworkToHistoTool = NeuralNetworkToHistoNNTool, useCombinedIPNN = useNNcombinedWithIP3D, calibrationTool=BTagCalibrationBrokerTool ) ToolSvc += JetFitterNNTool if BTaggingFlags.OutputLevel < 3: print JetFitterNNTool from JetTagTools.JetTagToolsConf import Analysis__JetFitterTag JetFitterFlipTagToolNN = Analysis__JetFitterTag( name = "JetFitterTagNNFlip", OutputLevel = BTaggingFlags.OutputLevel, Runmodus = BTaggingFlags.Runmodus, jetfitterNtupleWriter = JetFitterNtupleWriterNN, jetfitterClassifier = JetFitterNNTool, jetfitterVariablesFactory = JetFitterVariablesFactoryNNFlip, jetCollectionList = BTaggingFlags.Jets, useForcedCalibration = False, supplementalTaggers = ['IP3D'] if useNNcombinedWithIP3D else [], storeOnlyBaseObject = True ) if not BTaggingFlags.JetFitterTagFlip: JetFitterFlipTagToolNN.storeOnlyBaseObject = False ToolSvc += JetFitterFlipTagToolNN if BTaggingFlags.OutputLevel < 3: print JetFitterFlipTagToolNN
def get_gaia( jet_collection_list, calibration_tool, output_level=3, runmodus='analysis', output_threshold=3, do_neg=False, ): from AthenaCommon.AppMgr import ToolSvc from JetTagTools.JetTagToolsConf import Analysis__GaiaVariablesFactory VariablesFactory = Analysis__GaiaVariablesFactory( name="GaiaVariablesFactory", OutputLevel=output_level, GaiaName='GaiaNeg' if do_neg else 'Gaia', JetFitterCharmName="JetFitterCharmNeg" if do_neg else "JetFitterCharm", JetFitterName="JetFitterTagNNFlip" if do_neg else "JetFitterTagNN", ) ToolSvc += VariablesFactory if output_level < output_threshold: print VariablesFactory from JetTagTools.JetTagToolsConf import Analysis__GaiaNNTool NNTool = Analysis__GaiaNNTool( name="GaiaNNTool", OutputLevel=output_level, # OutputLevel=output_level, # 2 = debug, 3 = info calibration_tool=calibration_tool, calibration_directory='Gaia', calibration_subdirectory='NeuralNetwork') ToolSvc += NNTool if output_level < output_threshold: print NNTool if do_neg: supplemental_taggers = ['SV1Flip', 'SV0Flip'] multiweight_taggers = ['IP3DNeg'] # add IPFordG else: supplemental_taggers = ['SV1', 'SV0'] multiweight_taggers = ['IP3D'] #,'IPFordG'] ip3d_proxy = [1.0, 0.0, 0.0] proxy_likelihoods = {'IP3D': ip3d_proxy, 'IP3DNeg': ip3d_proxy} from JetTagTools.JetTagToolsConf import Analysis__JetFitterTag Gaia = Analysis__JetFitterTag( name="Gaia", OutputLevel=output_level, Runmodus=runmodus, jetfitterClassifier=NNTool, jetfitterVariablesFactory=VariablesFactory, supplementalTaggers=supplemental_taggers, multiweightSupplementalTaggers=multiweight_taggers, useForcedCalibration=False, svxTaggerName='SVInfoPlus', proxyLikelihoods=proxy_likelihoods, storeOnlyBaseObject=True, ) ToolSvc += Gaia Gaia.jetCollectionList = jet_collection_list if output_level < output_threshold: print Gaia return Gaia