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
Esempio n. 6
0
        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
Esempio n. 9
0
        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
Esempio n. 10
0
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
Esempio n. 11
0
# ------ 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
Esempio n. 14
0
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