Skip to content
Snippets Groups Projects
Commit 2608e220 authored by Frank Winklmeier's avatar Frank Winklmeier
Browse files

PanTauAnalysis: delete obsolete package

parent 763fcf3e
No related branches found
No related tags found
No related merge requests found
Showing
with 0 additions and 5429 deletions
################################################################################
# Package: PanTauAnalysis
################################################################################
# Declare the package name:
atlas_subdir( PanTauAnalysis )
# tag ROOTBasicLibs was not recognized in automatic conversion in cmt2cmake
# tag ROOTMathLibs was not recognized in automatic conversion in cmt2cmake
# tag ROOTSTLDictLibs was not recognized in automatic conversion in cmt2cmake
# tag ROOTGraphicsLibs was not recognized in automatic conversion in cmt2cmake
# tag ROOTTableLibs was not recognized in automatic conversion in cmt2cmake
# Install files from the package:
atlas_install_python_modules( python/*.py )
atlas_install_joboptions( share/*.py )
This diff is collapsed.
# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
import string
class InformationHandler:
def __init__(self):
#setup the member variables
# they are filled in the helper functions setupInfo_*
self.m_Infos_Int = {}
self.m_Infos_Double = {}
self.m_Infos_String = {}
self.m_Infos_VecDouble = {}
self.m_Infos_VecString = {}
#fill member variables
self.setupInfo_Int()
self.setupInfo_Double()
self.setupInfo_String()
self.setupInfo_VecDouble()
self.setupInfo_VecString()
#fill the feature types and default values
# -> a bit more involved, have extra function for this
self.setupInfo_Features()
#end init
def dump(self):
print("PanTau::InformationHandler: Printing stored information")
print("PanTau::InformationHandler: \tIntegers:")
for iInfo in sorted(self.m_Infos_Int.keys()):
print("\t\t" + string.ljust(iInfo, 50) + ": " + string.rjust(str(self.m_Infos_Int[iInfo]), 10) )
print("PanTau::InformationHandler: \tDoubles:")
for iInfo in sorted(self.m_Infos_Double.keys()):
print("\t\t" + string.ljust(iInfo, 50) + ": " + string.rjust(str(self.m_Infos_Double[iInfo]), 10) )
print("PanTau::InformationHandler: \tStrings:")
for iInfo in sorted(self.m_Infos_String.keys()):
print("\t\t" + string.ljust(iInfo, 50) + ": " + string.ljust(self.m_Infos_String[iInfo], 80) )
print("PanTau::InformationHandler: \tVecDoubles:")
for iInfo in sorted(self.m_Infos_VecDouble.keys()):
print("InformationHandler: \t\t" + string.ljust(iInfo, 50) + ":")
for iVal in self.m_Infos_VecDouble[iInfo]:
print("InformationHandler: \t\t\t" + string.rjust(str(iVal), 10) )
print("PanTau::InformationHandler: \tVecStrings:")
for iInfo in sorted(self.m_Infos_VecString.keys()):
print("InformationHandler: \t\t" + string.ljust(iInfo, 50) + ":")
for iVal in self.m_Infos_VecString[iInfo]:
print("InformationHandler: \t\t\t" + string.ljust(str(iVal), 80) )
print("PanTau::InformationHandler: Done printing stored information")
#end dump
def setupInfo_Int(self):
from PanTauAnalysis.Config_PanTau import config_PanTau
self.m_Infos_Int["EnableXAODMigrationHacks"] = int(config_PanTau.EnableXAODMigrationHacks())
self.m_Infos_Int["TauConstituents_UsePionMass"] = int(config_PanTau.TauConstituents_UsePionMass())
self.m_Infos_Int["FeatureExtractor_UseEmptySeeds"] = int(config_PanTau.FeatureExtractor_UseEmptySeeds())
self.m_Infos_Int["TauConstituents_eflowRec_UseMomentumAsEnergy"] = int(config_PanTau.TauConstituents_eflowRec_UseMomentumAsEnergy())
self.m_Infos_Int["TauConstituents_UseShrinkingCone"] = int(config_PanTau.TauConstituents_UseShrinkingCone())
#nothing to do here yet (no integer infos...)
#end def setupInfo_Int
def setupInfo_Double(self):
from PanTauAnalysis.Config_PanTau import config_PanTau
self.m_Infos_Double["eflowRec_Assoc_DeltaR"] = config_PanTau.eflowRec_Assoc_DeltaR()
self.m_Infos_Double["TauConstituents_Types_DeltaRCore"] = config_PanTau.TauConstituents_Types_DeltaRCore()
self.m_Infos_Double["TauConstituents_MaxEta"] = config_PanTau.TauConstituents_MaxEta()
self.m_Infos_Double["TauConstituents_PreselectionMinEnergy"] = config_PanTau.TauConstituents_PreselectionMinEnergy()
self.m_Infos_Double["TauConstituents_eflowRec_BDTThreshold_Pi0Neut"] = config_PanTau.TauConstituents_eflowRec_BDTThreshold_Pi0Neut()
self.m_Infos_Double["DecayModeDeterminator_BDTCutValue_R10X_CellBased"] = config_PanTau.DecayModeDeterminator_BDTCutValue_R10X_CellBased()
self.m_Infos_Double["DecayModeDeterminator_BDTCutValue_R11X_CellBased"] = config_PanTau.DecayModeDeterminator_BDTCutValue_R11X_CellBased()
self.m_Infos_Double["DecayModeDeterminator_BDTCutValue_R110_CellBased"] = config_PanTau.DecayModeDeterminator_BDTCutValue_R110_CellBased()
self.m_Infos_Double["DecayModeDeterminator_BDTCutValue_R1XX_CellBased"] = config_PanTau.DecayModeDeterminator_BDTCutValue_R1XX_CellBased()
self.m_Infos_Double["DecayModeDeterminator_BDTCutValue_R30X_CellBased"] = config_PanTau.DecayModeDeterminator_BDTCutValue_R30X_CellBased()
self.m_Infos_Double["DecayModeDeterminator_BDTCutValue_R3XX_CellBased"] = config_PanTau.DecayModeDeterminator_BDTCutValue_R3XX_CellBased()
self.m_Infos_Double["DecayModeDeterminator_BDTCutValue_R10X_eflowRec"] = config_PanTau.DecayModeDeterminator_BDTCutValue_R10X_eflowRec()
self.m_Infos_Double["DecayModeDeterminator_BDTCutValue_R11X_eflowRec"] = config_PanTau.DecayModeDeterminator_BDTCutValue_R11X_eflowRec()
self.m_Infos_Double["DecayModeDeterminator_BDTCutValue_R110_eflowRec"] = config_PanTau.DecayModeDeterminator_BDTCutValue_R110_eflowRec()
self.m_Infos_Double["DecayModeDeterminator_BDTCutValue_R1XX_eflowRec"] = config_PanTau.DecayModeDeterminator_BDTCutValue_R1XX_eflowRec()
self.m_Infos_Double["DecayModeDeterminator_BDTCutValue_R30X_eflowRec"] = config_PanTau.DecayModeDeterminator_BDTCutValue_R30X_eflowRec()
self.m_Infos_Double["DecayModeDeterminator_BDTCutValue_R3XX_eflowRec"] = config_PanTau.DecayModeDeterminator_BDTCutValue_R3XX_eflowRec()
#self.m_Infos_Double[""] = config_PanTau.()
#end def setupInfo_Double
def setupInfo_String(self):
from PanTauAnalysis.Config_PanTau import config_PanTau
self.m_Infos_String["Name_TauRecContainer"] = config_PanTau.Name_TauRecContainer()
self.m_Infos_String["Name_eflowRecContainer"] = config_PanTau.Name_eflowRecContainer()
self.m_Infos_String["Name_TrackParticleContainer"] = config_PanTau.Name_TrackParticleContainer()
self.m_Infos_String["Name_PanTauSeedsContainer"] = config_PanTau.Name_PanTauSeedsContainer()
self.m_Infos_String["Name_PanTauDetailsContainer"] = config_PanTau.Name_PanTauDetailsContainer()
self.m_Infos_String["ModeDiscriminator_ReaderOption"] = config_PanTau.ModeDiscriminator_ReaderOption()
self.m_Infos_String["ModeDiscriminator_TMVAMethod"] = config_PanTau.ModeDiscriminator_TMVAMethod()
#self.m_Infos_Double[""] = config_PanTau.()
#end def setupInfo_String
def setupInfo_VecDouble(self):
from PanTauAnalysis.Config_PanTau import config_PanTau
self.m_Infos_VecDouble["TauConstituents_BinEdges_Eta"] = config_PanTau.TauConstituents_BinEdges_Eta()
self.m_Infos_VecDouble["TauConstituents_Selection_Neutral_EtaBinned_EtCut"] = config_PanTau.TauConstituents_Selection_Neutral_EtaBinned_EtCut()
self.m_Infos_VecDouble["TauConstituents_Selection_Pi0Neut_EtaBinned_EtCut"] = config_PanTau.TauConstituents_Selection_Pi0Neut_EtaBinned_EtCut()
self.m_Infos_VecDouble["TauConstituents_Selection_Charged_EtaBinned_EtCut"] = config_PanTau.TauConstituents_Selection_Charged_EtaBinned_EtCut()
self.m_Infos_VecDouble["TauConstituents_Selection_OutNeut_EtaBinned_EtCut"] = config_PanTau.TauConstituents_Selection_OutNeut_EtaBinned_EtCut()
self.m_Infos_VecDouble["TauConstituents_Selection_OutChrg_EtaBinned_EtCut"] = config_PanTau.TauConstituents_Selection_OutChrg_EtaBinned_EtCut()
self.m_Infos_VecDouble["TauConstituents_Selection_NeutLowA_EtaBinned_EtCut"] = config_PanTau.TauConstituents_Selection_NeutLowA_EtaBinned_EtCut()
self.m_Infos_VecDouble["TauConstituents_Selection_NeutLowB_EtaBinned_EtCut"] = config_PanTau.TauConstituents_Selection_NeutLowB_EtaBinned_EtCut()
self.m_Infos_VecDouble["eflowRec_Selection_Pi0Neut_EtaBinned_EtCut_1prong"] = config_PanTau.eflowRec_Selection_Pi0Neut_EtaBinned_EtCut_1prong()
self.m_Infos_VecDouble["eflowRec_Selection_Pi0Neut_EtaBinned_EtCut_3prong"] = config_PanTau.eflowRec_Selection_Pi0Neut_EtaBinned_EtCut_3prong()
self.m_Infos_VecDouble["CellBased_BinEdges_Eta"] = config_PanTau.CellBased_BinEdges_Eta()
self.m_Infos_VecDouble["CellBased_EtaBinned_Pi0MVACut_1prong"] = config_PanTau.CellBased_EtaBinned_Pi0MVACut_1prong()
self.m_Infos_VecDouble["CellBased_EtaBinned_Pi0MVACut_3prong"] = config_PanTau.CellBased_EtaBinned_Pi0MVACut_3prong()
self.m_Infos_VecDouble["eflowRec_BinEdges_Eta"] = config_PanTau.eflowRec_BinEdges_Eta()
self.m_Infos_VecDouble["eflowRec_EtaBinned_Pi0MVACut_1prong"] = config_PanTau.eflowRec_EtaBinned_Pi0MVACut_1prong()
self.m_Infos_VecDouble["eflowRec_EtaBinned_Pi0MVACut_3prong"] = config_PanTau.eflowRec_EtaBinned_Pi0MVACut_3prong()
self.m_Infos_VecDouble["ModeDiscriminator_BinEdges_Pt"] = config_PanTau.ModeDiscriminator_BinEdges_Pt()
#self.m_Infos_VecDouble[""] = config_PanTau.()
#end def setupInfo_VecDouble
def setupInfo_VecString(self):
from PanTauAnalysis.Config_PanTau import config_PanTau
self.m_Infos_VecString["ModeDiscriminator_BDTVariableNames_eflowRec_1p0n_vs_1p1n"] = config_PanTau.ModeDiscriminator_BDTVariableNames_eflowRec_1p0n_vs_1p1n()
self.m_Infos_VecString["ModeDiscriminator_BDTVariableNames_eflowRec_1p1n_vs_1pXn"] = config_PanTau.ModeDiscriminator_BDTVariableNames_eflowRec_1p1n_vs_1pXn()
self.m_Infos_VecString["ModeDiscriminator_BDTVariableNames_eflowRec_3p0n_vs_3pXn"] = config_PanTau.ModeDiscriminator_BDTVariableNames_eflowRec_3p0n_vs_3pXn()
self.m_Infos_VecString["ModeDiscriminator_BDTVariableNames_CellBased_1p0n_vs_1p1n"] = config_PanTau.ModeDiscriminator_BDTVariableNames_CellBased_1p0n_vs_1p1n()
self.m_Infos_VecString["ModeDiscriminator_BDTVariableNames_CellBased_1p1n_vs_1pXn"] = config_PanTau.ModeDiscriminator_BDTVariableNames_CellBased_1p1n_vs_1pXn()
self.m_Infos_VecString["ModeDiscriminator_BDTVariableNames_CellBased_3p0n_vs_3pXn"] = config_PanTau.ModeDiscriminator_BDTVariableNames_CellBased_3p0n_vs_3pXn()
#self.m_Infos_VecString[""] = config_PanTau.()
#end def setupInfo_VecString
def setupInfo_Features(self):
#get list of algorithms and signal modes from config
from PanTauAnalysis.Config_PanTau import config_PanTau
List_InputAlgs = config_PanTau.Names_InputAlgorithms()
List_ModeCases = config_PanTau.Names_ModeCases()
#get the feature handler
from PanTauAnalysis.Class_FeatureHandler import FeatureHandler
theFeatureHandler = FeatureHandler()
#for each algorithm and mode, loop over variables to be used in BDT
# and fetch the type of the variable and the name
# these are needed for the PanTauFillerTool in TauD3PDMaker
for iAlg in List_InputAlgs:
for iModeCase in List_ModeCases:
infoKey_Names = "ModeDiscriminator_BDTVariableNames_" + iAlg + "_" + iModeCase
curVarList = self.m_Infos_VecString[infoKey_Names]
BDTVariable_TypeList = []
BDTVariable_DefaultValList = []
for iVar in curVarList:
theType = theFeatureHandler.m_Feature_Types[iVar]
theDefVal = theFeatureHandler.m_Feature_Defaults[iVar]
BDTVariable_TypeList += [theType]
BDTVariable_DefaultValList += [theDefVal]
#end loop over variables
infoKey_Types = "ModeDiscriminator_BDTVariableTypes_" + iAlg + "_" + iModeCase
self.m_Infos_VecString[infoKey_Types] = BDTVariable_TypeList
infoKey_Defaults = "ModeDiscriminator_BDTVariableDefaults_" + iAlg + "_" + iModeCase
self.m_Infos_VecDouble[infoKey_Defaults] = BDTVariable_DefaultValList
#end loop over signal modes
#end loop over algs for default value creation for ModeDiscriminator tools
#add the prefixes for the variables
self.m_Infos_String["FeatureExtractor_VarTypeName_varTypeName_Sum"] = theFeatureHandler.m_VarTypeName_Sum
self.m_Infos_String["FeatureExtractor_VarTypeName_varTypeName_Ratio"] = theFeatureHandler.m_VarTypeName_Ratio
self.m_Infos_String["FeatureExtractor_VarTypeName_varTypeName_EtInRing"] = theFeatureHandler.m_VarTypeName_EtInRing
self.m_Infos_String["FeatureExtractor_VarTypeName_varTypeName_Isolation"] = theFeatureHandler.m_VarTypeName_Isolation
self.m_Infos_String["FeatureExtractor_VarTypeName_varTypeName_Num"] = theFeatureHandler.m_VarTypeName_Num
self.m_Infos_String["FeatureExtractor_VarTypeName_varTypeName_Mean"] = theFeatureHandler.m_VarTypeName_Mean
self.m_Infos_String["FeatureExtractor_VarTypeName_varTypeName_StdDev"] = theFeatureHandler.m_VarTypeName_StdDev
self.m_Infos_String["FeatureExtractor_VarTypeName_varTypeName_HLV"] = theFeatureHandler.m_VarTypeName_HLV
self.m_Infos_String["FeatureExtractor_VarTypeName_varTypeName_Angle"] = theFeatureHandler.m_VarTypeName_Angle
self.m_Infos_String["FeatureExtractor_VarTypeName_varTypeName_DeltaR"] = theFeatureHandler.m_VarTypeName_DeltaR
self.m_Infos_String["FeatureExtractor_VarTypeName_varTypeName_JetMoment"] = theFeatureHandler.m_VarTypeName_JetMoment
self.m_Infos_String["FeatureExtractor_VarTypeName_varTypeName_Combined"] = theFeatureHandler.m_VarTypeName_Combined
self.m_Infos_String["FeatureExtractor_VarTypeName_varTypeName_JetShape"] = theFeatureHandler.m_VarTypeName_JetShape
self.m_Infos_String["FeatureExtractor_VarTypeName_varTypeName_ImpactParams"]= theFeatureHandler.m_VarTypeName_ImpactParams
self.m_Infos_String["FeatureExtractor_VarTypeName_varTypeName_Basic"] = theFeatureHandler.m_VarTypeName_Basic
self.m_Infos_String["FeatureExtractor_VarTypeName_varTypeName_PID"] = theFeatureHandler.m_VarTypeName_PID
self.m_Infos_String["FeatureExtractor_VarTypeName_varTypeName_Shots"] = theFeatureHandler.m_VarTypeName_Shots
#end def setupInfo_Features
#end class config_FeatureCalculator
# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
##
## @file PanTauAnalysis/python/JobOptionFlags_PanTau.py
## @purpose Python module to hold common flags to configure PanTau
##
""" PanTauFlags
Python module to hold flags to configure PanTau.
From the python prompt:
>>> from PanTauAnalysis.JobOptionFlags_PanTau import panTauFlags
"""
__author__ = "C.Limbach"
__version__= "$Revision: $"
__doc__ = "Config_PanTau"
__all__ = [ "Config_PanTau" ]
##-----------------------------------------------------------------------------
## Import
from AthenaCommon.JobProperties import JobProperty, JobPropertyContainer
from AthenaCommon.JobProperties import jobproperties
import AthenaCommon.SystemOfUnits as Units
##-----------------------------------------------------------------------------
## 1st step: define JobProperty classes
### ==========================================================
###
### Flags to steer job options
###
### ==========================================================
### /////////////////////////
### Boolean values
### /////////////////////////
class UseDefaultCellBasedConfig(JobProperty):
""" If this is true, the configuration for pi0s will be copied from cellbased"""
statusOn = True
allowedTypes = ['bool']
StoredValue = True
class EnableXAODMigrationHacks(JobProperty):
""" IMPORTANT NOTE: This needs to be set to false once the xAOD EDM works fine """
statusOn = True
allowedTypes = ['bool']
StoredValue = False
class TauConstituents_UsePionMass(JobProperty):
""" """
statusOn = True
allowedTypes = ['bool']
StoredValue = True
class FeatureExtractor_UseEmptySeeds(JobProperty):
""" """
statusOn = True
allowedTypes = ['bool']
StoredValue = False
class TauConstituents_eflowRec_UseMomentumAsEnergy(JobProperty):
""" """
statusOn = True
allowedTypes = ['bool']
StoredValue = False
class TauConstituents_UseShrinkingCone(JobProperty):
""" """
statusOn = True
allowedTypes = ['bool']
StoredValue = False
### /////////////////////////
### Float values
### /////////////////////////
class eflowRec_Assoc_DeltaR(JobProperty):
""" """
statusOn = True
allowedTypes = ['float']
StoredValue = 0.4
class TauConstituents_Types_DeltaRCore(JobProperty):
""" """
statusOn = True
allowedTypes = ['float']
StoredValue = 0.2
class TauConstituents_MaxEta(JobProperty):
""" """
statusOn = True
allowedTypes = ['float']
StoredValue = 9.9
class TauConstituents_PreselectionMinEnergy(JobProperty):
""" """
statusOn = True
allowedTypes = ['float']
StoredValue = 500.
class TauConstituents_eflowRec_BDTThreshold_Pi0Neut(JobProperty):
""" """
statusOn = True
allowedTypes = ['float']
StoredValue = -0.04
#
# PanTau BDT Cut values --- CellBased
#
class DecayModeDeterminator_BDTCutValue_R10X_CellBased(JobProperty):
""" """
statusOn = True
allowedTypes = ['float']
StoredValue = 0.19
class DecayModeDeterminator_BDTCutValue_R11X_CellBased(JobProperty):
""" """
statusOn = True
allowedTypes = ['float']
StoredValue = -0.11
class DecayModeDeterminator_BDTCutValue_R110_CellBased(JobProperty):
""" """
statusOn = True
allowedTypes = ['float']
StoredValue = 0.37
class DecayModeDeterminator_BDTCutValue_R1XX_CellBased(JobProperty):
""" """
statusOn = True
allowedTypes = ['float']
StoredValue = 0.07
class DecayModeDeterminator_BDTCutValue_R30X_CellBased(JobProperty):
""" """
statusOn = True
allowedTypes = ['float']
StoredValue = -0.01
class DecayModeDeterminator_BDTCutValue_R3XX_CellBased(JobProperty):
""" """
statusOn = True
allowedTypes = ['float']
StoredValue = -0.03
#
# PanTau BDT Cut values --- eflowRec
#
class DecayModeDeterminator_BDTCutValue_R10X_eflowRec(JobProperty):
""" """
statusOn = True
allowedTypes = ['float']
StoredValue = -0.15
class DecayModeDeterminator_BDTCutValue_R11X_eflowRec(JobProperty):
""" """
statusOn = True
allowedTypes = ['float']
StoredValue = -0.60
class DecayModeDeterminator_BDTCutValue_R110_eflowRec(JobProperty):
""" """
statusOn = True
allowedTypes = ['float']
StoredValue = -0.08
class DecayModeDeterminator_BDTCutValue_R1XX_eflowRec(JobProperty):
""" """
statusOn = True
allowedTypes = ['float']
StoredValue = 0.03
class DecayModeDeterminator_BDTCutValue_R30X_eflowRec(JobProperty):
""" """
statusOn = True
allowedTypes = ['float']
StoredValue = -0.25
class DecayModeDeterminator_BDTCutValue_R3XX_eflowRec(JobProperty):
""" """
statusOn = True
allowedTypes = ['float']
StoredValue = -0.23
### /////////////////////////
### String values
### /////////////////////////
class Name_TauRecContainer(JobProperty):
""" """
statusOn = True
allowedTypes = ['str']
StoredValue = "TauJets"
class Name_eflowRecContainer(JobProperty):
""" """
statusOn = True
allowedTypes = ['str']
StoredValue = "eflowObjects_tauMode"
class Name_TrackParticleContainer(JobProperty):
""" """
statusOn = True
allowedTypes = ['str']
StoredValue = "TrackParticleCandidate"
class Name_PanTauSeedsContainer(JobProperty):
""" """
statusOn = True
allowedTypes = ['str']
StoredValue = "PanTau_OutputSeeds"
class Name_PanTauDetailsContainer(JobProperty):
""" """
statusOn = True
allowedTypes = ['str']
StoredValue = "PanTau_SeedDetails"
class ModeDiscriminator_ReaderOption(JobProperty):
""" """
statusOn = True
allowedTypes = ['str']
StoredValue = "!Color:Silent"
class ModeDiscriminator_TMVAMethod(JobProperty):
""" """
statusOn = True
allowedTypes = ['str']
StoredValue = "BDTG"
### /////////////////////////
### vector<float> values
### /////////////////////////
#
# Eta Binned E T C U T S
#
class TauConstituents_BinEdges_Eta(JobProperty):
""" """
statusOn = True
allowedTypes = ['list']
StoredValue = [0.000, 0.800, 1.400, 1.500, 1.900, 9.900]
class TauConstituents_Selection_Neutral_EtaBinned_EtCut(JobProperty):
""" """
statusOn = True
allowedTypes = ['list']
StoredValue = [ 2.1*Units.GeV, 2.5*Units.GeV, 2.6*Units.GeV, 2.4*Units.GeV, 1.9*Units.GeV ]
class TauConstituents_Selection_Pi0Neut_EtaBinned_EtCut(JobProperty):
""" """
statusOn = True
allowedTypes = ['list']
StoredValue = [ 2.1*Units.GeV, 2.5*Units.GeV, 2.6*Units.GeV, 2.4*Units.GeV, 1.9*Units.GeV ]
class TauConstituents_Selection_Charged_EtaBinned_EtCut(JobProperty):
""" """
statusOn = True
allowedTypes = ['list']
StoredValue = [ 1.0*Units.GeV, 1.0*Units.GeV, 1.0*Units.GeV, 1.0*Units.GeV, 1.0*Units.GeV ]
class TauConstituents_Selection_OutNeut_EtaBinned_EtCut(JobProperty):
""" """
statusOn = True
allowedTypes = ['list']
StoredValue = [ 1.0*Units.GeV, 1.0*Units.GeV, 1.0*Units.GeV, 1.0*Units.GeV, 1.0*Units.GeV ]
class TauConstituents_Selection_OutChrg_EtaBinned_EtCut(JobProperty):
""" """
statusOn = True
allowedTypes = ['list']
StoredValue = [ 1.0*Units.GeV, 1.0*Units.GeV, 1.0*Units.GeV, 1.0*Units.GeV, 1.0*Units.GeV ]
# Temporary test neutral type with lower Et cut (-250 MeV)
class TauConstituents_Selection_NeutLowA_EtaBinned_EtCut(JobProperty):
""" """
statusOn = True
allowedTypes = ['list']
StoredValue = [ 1.85*Units.GeV, 2.25*Units.GeV, 2.35*Units.GeV, 2.15*Units.GeV, 1.65*Units.GeV ]
# Temporary test neutral type with lower Et cut (-500 MeV)
class TauConstituents_Selection_NeutLowB_EtaBinned_EtCut(JobProperty):
""" """
statusOn = True
allowedTypes = ['list']
StoredValue = [ 1.6*Units.GeV, 2.0*Units.GeV, 2.1*Units.GeV, 1.9*Units.GeV, 1.4*Units.GeV ]
class eflowRec_Selection_Pi0Neut_EtaBinned_EtCut_1prong(JobProperty):
""" """
statusOn = True
allowedTypes = ['list']
StoredValue = [ 2.5*Units.GeV, 2.5*Units.GeV, 1.9*Units.GeV, 2.5*Units.GeV, 2.3*Units.GeV ]
class eflowRec_Selection_Pi0Neut_EtaBinned_EtCut_3prong(JobProperty):
""" """
statusOn = True
allowedTypes = ['list']
StoredValue = [ 2.5*Units.GeV, 2.5*Units.GeV, 2.5*Units.GeV, 2.5*Units.GeV, 2.5*Units.GeV ]
#
# Eta Binned P I 0 - B D T C U T S
#
class CellBased_BinEdges_Eta(JobProperty):
""" """
statusOn = True
allowedTypes = ['list']
StoredValue = [0.000, 0.800, 1.400, 1.500, 1.900, 9.900]
class CellBased_EtaBinned_Pi0MVACut_1prong(JobProperty):
""" """
statusOn = True
allowedTypes = ['list']
StoredValue = [ 0.46, 0.39, 0.51, 0.47, 0.54 ]
class CellBased_EtaBinned_Pi0MVACut_3prong(JobProperty):
""" """
statusOn = True
allowedTypes = ['list']
StoredValue = [ 0.47, 0.52, 0.60, 0.55, 0.50 ]
class eflowRec_BinEdges_Eta(JobProperty):
""" """
statusOn = True
allowedTypes = ['list']
StoredValue = [0.000, 0.800, 1.400, 1.500, 1.900, 9.900]
class eflowRec_EtaBinned_Pi0MVACut_1prong(JobProperty):
""" """
statusOn = True
allowedTypes = ['list']
StoredValue = [ 0.09, 0.09, 0.09, 0.08, 0.05 ]
class eflowRec_EtaBinned_Pi0MVACut_3prong(JobProperty):
""" """
statusOn = True
allowedTypes = ['list']
StoredValue = [ 0.09, 0.09, 0.09, 0.09, 0.07 ]
#
# P T B I N S
#
class ModeDiscriminator_BinEdges_Pt(JobProperty):
""" """
statusOn = True
allowedTypes = ['list']
StoredValue = [10*Units.GeV, 100000*Units.GeV]
### /////////////////////////
### vector<string> values
### /////////////////////////
class Names_InputAlgorithms(JobProperty):
""" Valid names are: CellBased and eflowRec """
statusOn = True
allowedTypes = ['list']
StoredValue = ["CellBased"]
class Names_ModeCases(JobProperty):
""" """
statusOn = True
allowedTypes = ['list']
StoredValue = ["1p0n_vs_1p1n",
"1p1n_vs_1pXn",
"3p0n_vs_3pXn"]
### ---> eflowRec BDT variables
class ModeDiscriminator_BDTVariableNames_eflowRec_1p0n_vs_1p1n(JobProperty):
""" """
statusOn = True
allowedTypes = ['list']
StoredValue = ["Charged_Ratio_EtOverEtAllConsts",
"Basic_NPi0NeutConsts",
"Neutral_PID_BDTValues_EtSort_1",
"Combined_DeltaR1stNeutralTo1stCharged"]
class ModeDiscriminator_BDTVariableNames_eflowRec_1p1n_vs_1pXn(JobProperty):
""" """
statusOn = True
allowedTypes = ['list']
StoredValue = ["Neutral_PID_BDTValues_BDTSort_2",
"Neutral_Ratio_EtOverEtAllConsts",
"Basic_NNeutralConsts",
"Neutral_HLV_SumM"]
class ModeDiscriminator_BDTVariableNames_eflowRec_3p0n_vs_3pXn(JobProperty):
""" """
statusOn = True
allowedTypes = ['list']
StoredValue = ["Basic_NPi0NeutConsts",
"Neutral_PID_BDTValues_BDTSort_1",
"Charged_HLV_SumPt",
"Charged_Ratio_EtOverEtAllConsts",
"Neutral_Mean_DRToLeading_WrtEtAllConsts"]
### ---> CellBased BDT variables
class ModeDiscriminator_BDTVariableNames_CellBased_1p0n_vs_1p1n(JobProperty):
""" """
statusOn = True
allowedTypes = ['list']
StoredValue = ["Neutral_PID_BDTValues_BDTSort_1",
"Neutral_Ratio_1stBDTEtOverEtAllConsts",
"Combined_DeltaR1stNeutralTo1stCharged",
"Charged_JetMoment_EtDRxTotalEt",
"Neutral_Shots_NPhotonsInSeed"]
class ModeDiscriminator_BDTVariableNames_CellBased_1p1n_vs_1pXn(JobProperty):
""" """
statusOn = True
allowedTypes = ['list']
StoredValue = ["Neutral_PID_BDTValues_BDTSort_2",
"Neutral_HLV_SumM",
"Neutral_Ratio_EtOverEtAllConsts",
"Basic_NNeutralConsts",
"Neutral_Shots_NPhotonsInSeed"]
class ModeDiscriminator_BDTVariableNames_CellBased_3p0n_vs_3pXn(JobProperty):
""" """
statusOn = True
allowedTypes = ['list']
StoredValue = ["Neutral_Ratio_EtOverEtAllConsts",
"Neutral_PID_BDTValues_BDTSort_1",
"Charged_StdDev_Et_WrtEtAllConsts",
"Neutral_Shots_NPhotonsInSeed",
"Charged_HLV_SumM"]
##-----------------------------------------------------------------------------
## 2nd step
## Definition of the PanTau flag container
class Config_PanTau(JobPropertyContainer):
"""Container for the common flags
"""
pass
##-----------------------------------------------------------------------------
## 3rd step
## adding the container to the general top-level container
jobproperties.add_Container(Config_PanTau)
##-----------------------------------------------------------------------------
## 4th step
## adding athena common flags to the AthenaCommonFlags container
jobproperties.Config_PanTau.add_JobProperty(UseDefaultCellBasedConfig)
jobproperties.Config_PanTau.add_JobProperty(EnableXAODMigrationHacks)
jobproperties.Config_PanTau.add_JobProperty(TauConstituents_UsePionMass)
jobproperties.Config_PanTau.add_JobProperty(FeatureExtractor_UseEmptySeeds)
jobproperties.Config_PanTau.add_JobProperty(TauConstituents_PreselectionMinEnergy)
jobproperties.Config_PanTau.add_JobProperty(TauConstituents_eflowRec_UseMomentumAsEnergy)
jobproperties.Config_PanTau.add_JobProperty(TauConstituents_UseShrinkingCone)
jobproperties.Config_PanTau.add_JobProperty(eflowRec_Assoc_DeltaR)
jobproperties.Config_PanTau.add_JobProperty(TauConstituents_Types_DeltaRCore)
jobproperties.Config_PanTau.add_JobProperty(TauConstituents_MaxEta)
jobproperties.Config_PanTau.add_JobProperty(TauConstituents_eflowRec_BDTThreshold_Pi0Neut)
jobproperties.Config_PanTau.add_JobProperty(DecayModeDeterminator_BDTCutValue_R10X_CellBased)
jobproperties.Config_PanTau.add_JobProperty(DecayModeDeterminator_BDTCutValue_R11X_CellBased)
jobproperties.Config_PanTau.add_JobProperty(DecayModeDeterminator_BDTCutValue_R110_CellBased)
jobproperties.Config_PanTau.add_JobProperty(DecayModeDeterminator_BDTCutValue_R1XX_CellBased)
jobproperties.Config_PanTau.add_JobProperty(DecayModeDeterminator_BDTCutValue_R30X_CellBased)
jobproperties.Config_PanTau.add_JobProperty(DecayModeDeterminator_BDTCutValue_R3XX_CellBased)
jobproperties.Config_PanTau.add_JobProperty(DecayModeDeterminator_BDTCutValue_R10X_eflowRec)
jobproperties.Config_PanTau.add_JobProperty(DecayModeDeterminator_BDTCutValue_R11X_eflowRec)
jobproperties.Config_PanTau.add_JobProperty(DecayModeDeterminator_BDTCutValue_R110_eflowRec)
jobproperties.Config_PanTau.add_JobProperty(DecayModeDeterminator_BDTCutValue_R1XX_eflowRec)
jobproperties.Config_PanTau.add_JobProperty(DecayModeDeterminator_BDTCutValue_R30X_eflowRec)
jobproperties.Config_PanTau.add_JobProperty(DecayModeDeterminator_BDTCutValue_R3XX_eflowRec)
jobproperties.Config_PanTau.add_JobProperty(Name_TauRecContainer)
jobproperties.Config_PanTau.add_JobProperty(Name_eflowRecContainer)
jobproperties.Config_PanTau.add_JobProperty(Name_TrackParticleContainer)
jobproperties.Config_PanTau.add_JobProperty(Name_PanTauSeedsContainer)
jobproperties.Config_PanTau.add_JobProperty(Name_PanTauDetailsContainer)
jobproperties.Config_PanTau.add_JobProperty(ModeDiscriminator_ReaderOption)
jobproperties.Config_PanTau.add_JobProperty(ModeDiscriminator_TMVAMethod)
jobproperties.Config_PanTau.add_JobProperty(TauConstituents_BinEdges_Eta)
jobproperties.Config_PanTau.add_JobProperty(TauConstituents_Selection_Neutral_EtaBinned_EtCut)
jobproperties.Config_PanTau.add_JobProperty(TauConstituents_Selection_Pi0Neut_EtaBinned_EtCut)
jobproperties.Config_PanTau.add_JobProperty(TauConstituents_Selection_Charged_EtaBinned_EtCut)
jobproperties.Config_PanTau.add_JobProperty(TauConstituents_Selection_OutNeut_EtaBinned_EtCut)
jobproperties.Config_PanTau.add_JobProperty(TauConstituents_Selection_OutChrg_EtaBinned_EtCut)
jobproperties.Config_PanTau.add_JobProperty(TauConstituents_Selection_NeutLowA_EtaBinned_EtCut)
jobproperties.Config_PanTau.add_JobProperty(TauConstituents_Selection_NeutLowB_EtaBinned_EtCut)
jobproperties.Config_PanTau.add_JobProperty(eflowRec_Selection_Pi0Neut_EtaBinned_EtCut_1prong)
jobproperties.Config_PanTau.add_JobProperty(eflowRec_Selection_Pi0Neut_EtaBinned_EtCut_3prong)
jobproperties.Config_PanTau.add_JobProperty(CellBased_BinEdges_Eta)
jobproperties.Config_PanTau.add_JobProperty(CellBased_EtaBinned_Pi0MVACut_1prong)
jobproperties.Config_PanTau.add_JobProperty(CellBased_EtaBinned_Pi0MVACut_3prong)
jobproperties.Config_PanTau.add_JobProperty(eflowRec_BinEdges_Eta)
jobproperties.Config_PanTau.add_JobProperty(eflowRec_EtaBinned_Pi0MVACut_1prong)
jobproperties.Config_PanTau.add_JobProperty(eflowRec_EtaBinned_Pi0MVACut_3prong)
jobproperties.Config_PanTau.add_JobProperty(Names_InputAlgorithms)
jobproperties.Config_PanTau.add_JobProperty(Names_ModeCases)
jobproperties.Config_PanTau.add_JobProperty(ModeDiscriminator_BinEdges_Pt)
jobproperties.Config_PanTau.add_JobProperty(ModeDiscriminator_BDTVariableNames_eflowRec_1p0n_vs_1p1n)
jobproperties.Config_PanTau.add_JobProperty(ModeDiscriminator_BDTVariableNames_eflowRec_1p1n_vs_1pXn)
jobproperties.Config_PanTau.add_JobProperty(ModeDiscriminator_BDTVariableNames_eflowRec_3p0n_vs_3pXn)
jobproperties.Config_PanTau.add_JobProperty(ModeDiscriminator_BDTVariableNames_CellBased_1p0n_vs_1p1n)
jobproperties.Config_PanTau.add_JobProperty(ModeDiscriminator_BDTVariableNames_CellBased_1p1n_vs_1pXn)
jobproperties.Config_PanTau.add_JobProperty(ModeDiscriminator_BDTVariableNames_CellBased_3p0n_vs_3pXn)
##-----------------------------------------------------------------------------
## 5th step
## short-cut for lazy people
## carefull: do not select PanTauFlags as a short name as well.
## otherwise problems with pickle
## Note: you still have to import it:
## >>> from PanTauAnalysis.PanTauFlags import panTauFlags
config_PanTau = jobproperties.Config_PanTau
# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
##
## @file PanTauAnalysis/python/PanTauDPDFlags.py
## @brief Python module to hold common flags to configure PanTau DPD writing
##
""" PanTauDPDFlags
Python module to hold flags to configure PanTau DPD writing.
From the python prompt:
>>> from PanTauAnalysis.PanTauDPDFlags import panTauDPDFlags
"""
__author__ = "S.Fleischmann"
__version__= "$Revision: 630996 $"
__doc__ = "PanTauDPDFlags"
__all__ = [ "panTauDPDFlags" ]
##-----------------------------------------------------------------------------
## Import
from AthenaCommon.JobProperties import JobProperty, JobPropertyContainer
from AthenaCommon.JobProperties import jobproperties
##-----------------------------------------------------------------------------
## 1st step: define JobProperty classes
class WritePanTauPerfD3PD(JobProperty):
""" Flag to switch on/off PanTauPerf writing """
statusON = True
allowedTypes = ['bool']
StoredValue = False
class PanTauPerfD3PDName(JobProperty):
""" Name of pantau D3PD if it is created """
statusON = True
allowedTypes = ['str']
StoredValue = 'PanTauPerf'
class PanTauPerfD3PDSize(JobProperty):
""" type of pantau D3PD if it is created (small / medium)"""
statusON = True
allowedTypes = ['str']
StoredValue = 'small'
class GoodRunsListVec(JobProperty):
"""Event Selection: List of good runs list files"""
statusON = True
allowedType = ['list']
StoredValue = [ "MyLBCollection.xml" ]
class GoodRunsListArray(JobProperty):
"""Event Selection: List of good runs list to use"""
statusOn = True
allowedTypes = ['list']
StoredValue = ['MyLBCollection']
class UseGRL(JobProperty):
"""Event Selection: Use GRL in event selection?"""
statusOn = True
allowedTypes = ['bool']
StoredValue = True
class TriggerSelectionExpression(JobProperty):
"""Event Selection: Expression of trigger items to use in event selection"""
statusON = True
allowedTypes = ['str']
StoredValue = 'L1_J5'
class FilterEvents(JobProperty):
"""Event Selection: Do event selection in PanTau perf DPD making?"""
statusON = True
allowedTypes = ['bool']
StoredValue = True
class EventSelTauSGKey(JobProperty):
"""Event Selection: Key of tau SG container"""
statusON = True
allowedTypes = ['str']
StoredValue = 'TauJets'
##-----------------------------------------------------------------------------
## 2nd step
## Definition of the PanTauDPD flag container
class PanTauDPDFlags(JobPropertyContainer):
"""Container for the common flags
"""
pass
##-----------------------------------------------------------------------------
## 3rd step
## adding the container to the general top-level container
jobproperties.add_Container(PanTauDPDFlags)
##-----------------------------------------------------------------------------
## 4th step
## adding athena common flags to the AthenaCommonFlags container
jobproperties.PanTauDPDFlags.add_JobProperty(GoodRunsListVec)
jobproperties.PanTauDPDFlags.add_JobProperty(GoodRunsListArray)
jobproperties.PanTauDPDFlags.add_JobProperty(UseGRL)
jobproperties.PanTauDPDFlags.add_JobProperty(TriggerSelectionExpression)
jobproperties.PanTauDPDFlags.add_JobProperty(FilterEvents)
jobproperties.PanTauDPDFlags.add_JobProperty(EventSelTauSGKey)
jobproperties.PanTauDPDFlags.add_JobProperty(WritePanTauPerfD3PD)
# Helper to create a boolean property.
def _boolean_prop (name, val):
prop = type (name, (JobProperty,), {})
prop.statusOn = True
prop.allowedTypes = ['bool']
prop.StoredValue = val
jobproperties.PanTauDPDFlags.add_JobProperty(prop)
return
_boolean_prop ('UseTriggerSelection', True)
_boolean_prop ('UseJetCleaning', True)
_boolean_prop ('UsePrimaryVertexSelection', True)
#_boolean_prop ('UseTauSelection', True)
_boolean_prop ('UseDiTauSelection', True)
def _sgkey_prop (name, val):
prop = type (name, (JobProperty,), {})
prop.statusOn = True
prop.allowedTypes = ['str']
prop.StoredValue = val
jobproperties.PanTauDPDFlags.add_JobProperty(prop)
return
_sgkey_prop("PanTauPerfD3PDName", "PanTauPerf")
_sgkey_prop("PanTauPerfD3PDSize", "tiny")
_sgkey_prop("EventSelectionDecisionContainerName", "pantau_perf_SkimDecisionsContainer")
##-----------------------------------------------------------------------------
## 5th step
## short-cut for lazy people
## carefull: do not select PanTauFlags as a short name as well.
## otherwise problems with pickle
## Note: you still have to import it:
## >>> from PanTauAnalysis.PanTauDPDFlags import panTauDPDFlags
panTauDPDFlags = jobproperties.PanTauDPDFlags
# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
##
## @file PanTauAnalysis/python/PanTauFlags.py
## @brief Python module to hold common flags to configure PanTau
##
""" PanTauFlags
Python module to hold flags to configure PanTau.
From the python prompt:
>>> from PanTauAnalysis.PanTauFlags import panTauFlags
"""
__author__ = "S.Fleischmann"
__version__= "$Revision: 537172 $"
__doc__ = "PanTauFlags"
__all__ = [ "panTauFlags" ]
##-----------------------------------------------------------------------------
## Import
from AthenaCommon.JobProperties import JobProperty, JobPropertyContainer
from AthenaCommon.JobProperties import jobproperties
import AthenaCommon.SystemOfUnits as Units
##-----------------------------------------------------------------------------
## 1st step: define JobProperty classes
### ==========================================================
###
### Flags to steer job options
###
### ==========================================================
class GetJetFeatures(JobProperty):
"""Add the JetFeatureExtraction tool to the list of tools?"""
statusOn = True
allowedTypes = ['bool']
StoredValue = True
class GetImpactParameterFeatures(JobProperty):
"""Add the ImpactParameterExtraction tool to the list of tools?"""
statusOn = True
allowedTypes = ['bool']
StoredValue = True
class DoTauJetBuilding(JobProperty):
"""Add the TauJetBuilderAlg to the list of algorithms?"""
statusOn = True
allowedTypes = ['bool']
StoredValue = True
class doTruthEtIsolations(JobProperty):
""" Ask Sebastian for its meaning """
statusOn = True
allowedTypes = ['bool']
StoredValue = False
class ExtractAllFeatures(JobProperty):
"""Flag to tell if ALL features should be extracted to D3PD. Is evaluated in tauPerfMedium and TauD3PDMaker"""
statusOn = True
allowedType = ['bool']
StoredValue = False
##-----------------------------------------------------------------------------
## 2nd step
## Definition of the PanTau flag container
class PanTauFlags(JobPropertyContainer):
"""Container for the common flags
"""
pass
##-----------------------------------------------------------------------------
## 3rd step
## adding the container to the general top-level container
jobproperties.add_Container(PanTauFlags)
##-----------------------------------------------------------------------------
## 4th step
## adding athena common flags to the AthenaCommonFlags container
jobproperties.PanTauFlags.add_JobProperty(GetJetFeatures)
jobproperties.PanTauFlags.add_JobProperty(GetImpactParameterFeatures)
jobproperties.PanTauFlags.add_JobProperty(DoTauJetBuilding)
jobproperties.PanTauFlags.add_JobProperty(doTruthEtIsolations)
jobproperties.PanTauFlags.add_JobProperty(ExtractAllFeatures)
##-----------------------------------------------------------------------------
## 5th step
## short-cut for lazy people
## carefull: do not select PanTauFlags as a short name as well.
## otherwise problems with pickle
## Note: you still have to import it:
## >>> from PanTauAnalysis.PanTauFlags import panTauFlags
panTauFlags = jobproperties.PanTauFlags
# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
##
## @file PanTauAnalysis/python/PanTauFlags.py
## @purpose Python module to hold common flags to configure PanTau
##
""" PanTauFlags
Python module to hold flags to configure the PanTau::JetBuilderAlg and its DiscriminantTools.
From the python prompt:
>>> from PanTauAnalysis.PanTauJetBuilderAlg_Flags import PanTauJetBuilderAlgFlags
"""
__author__ = "C.Limbach"
__version__= "$Revision: 500031 $"
__doc__ = "PanTauJetBuilderAlg_Flags"
__all__ = [ "PanTauJetBuilderAlg_Flags" ]
##-----------------------------------------------------------------------------
## Import
from AthenaCommon.JobProperties import JobProperty, JobPropertyContainer
from AthenaCommon.JobProperties import jobproperties
import AthenaCommon.SystemOfUnits as Units
##-----------------------------------------------------------------------------
## 1st step: define JobProperty classes
### ==========================================================
###
### Flags for MVA part in JetBuilderAlg
###
### ==========================================================
class MVA_GeneralWeightFilePrefix(JobProperty):
"""Jet Building: Prefix of TMVA weight files"""
statusOn = True
allowedTypes = ['str']
StoredValue = "TrainModes"
#TrainModes_ET_15_30_1p0n_vs_1p1n1pXn3p0n3pXnFake_BDT
class MVA_VersionName(JobProperty):
"""Jet Building: Suffix of weight files (usefull to switch between different sets of weight files)"""
statusOn = True
allowedTypes = ['str']
StoredValue = ""
class MVA_PtBins(JobProperty):
"""Jet Building: Pt bins for the MVA"""
statusOn = True
allowedTypes = ['list']
StoredValue = [ 15.* Units.GeV, 1000.* Units.GeV ]
class MVA_Method(JobProperty):
"""Jet Building: Name of the MVA method to be used"""
statusOn = True
allowedTypes = ['str']
StoredValue = "BDTBase"
### ### Prefixes for the different classes to be used
class MVA_ModeName1p0n(JobProperty):
statusOn = True
allowedTypes = ['str']
StoredValue = "1p0n"
class MVA_ModeName1p1n(JobProperty):
statusOn = True
allowedTypes = ['str']
StoredValue = "1p1n"
class MVA_ModeName1pXn(JobProperty):
statusOn = True
allowedTypes = ['str']
StoredValue = "1pXn"
class MVA_ModeName3p0n(JobProperty):
statusOn = True
allowedTypes = ['str']
StoredValue = "3p0n"
class MVA_ModeName3pXn(JobProperty):
statusOn = True
allowedTypes = ['str']
StoredValue = "3pXn"
### ### List of variables to be used in the different classes
class MVA_UsedFeatures1p0n(JobProperty):
"""Jet Building: Feature Names in this class"""
statusOn = True
allowedTypes = ['list']
StoredValue = [ "Eflow_QualChrg_Ratio_1stEtOverTypeEt", "Eflow_Pi0Neut_eflowPID_Pi0Val_1st_BDTSort", "Eflow_QualChrg_Ratio_EtOverEtQualEFOs", "Eflow_QualChrg_Mean_DRToLeading_WrtEtQualEFOs", "Eflow_QualChrg_StdDev_E_WrtEAll" ]
class MVA_UsedFeatures1p1n(JobProperty):
"""Jet Building: Feature Names in this class"""
statusOn = True
allowedTypes = ['list']
StoredValue = [ "Eflow_Pi0Neut_eflowPID_Pi0Val_1st_BDTSort", "Eflow_QualChrg_Ratio_1stEtOverTypeEt", "Eflow_Pi0Neut_eflowPID_Pi0Val_2nd_BDTSort", "Basic_NQualChrgEFO", "Eflow_QualChrg_Mean_DRToLeading_WrtEtQualEFOs", "Eflow_QualChrg_Ratio_EtOverEtQualEFOs" ] # to be expanded
class MVA_UsedFeatures1pXn(JobProperty):
"""Jet Building: Feature Names in this class"""
statusOn = True
allowedTypes = ['list']
StoredValue = [ "Eflow_QualChrg_Ratio_EtOverEtQualEFOs", "Eflow_Pi0Neut_eflowPID_Pi0Val_1st_BDTSort", "Eflow_QualChrg_Ratio_1stEtOverTypeEt", "Basic_NQualChrgEFO", "Eflow_Pi0Neut_eflowPID_Pi0Val_2nd_BDTSort" ]
class MVA_UsedFeatures3p0n(JobProperty):
"""Jet Building: Feature Names in this class"""
statusOn = True
allowedTypes = ['list']
StoredValue = [ "Eflow_QualChrg_Mean_Et_WrtEtQualEFOs", "Eflow_QualChrg_Ratio_1stEtOverTypeEt", "Eflow_QualChrg_Ratio_EtOverEtQualEFOs", "Basic_NQualChrgEFO", "Eflow_QualChrg_Mean_DRToLeading_WrtEtQualEFOs", "Eflow_Pi0Neut_eflowPID_Pi0Val_1st_BDTSort", "Eflow_QualChrg_Ratio_1stEtOverEtAll" ]
class MVA_UsedFeatures3pXn(JobProperty):
"""Jet Building: Feature Names in this class"""
statusOn = True
allowedTypes = ['list']
StoredValue = [ "Eflow_QualChrg_Ratio_1stEtOverTypeEt", "Eflow_QualChrg_Ratio_EtOverEtQualEFOs", "Basic_NQualChrgEFO", "Eflow_Pi0Neut_eflowPID_Pi0Val_1st_BDTSort", "Eflow_QualChrg_Mean_DRToLeading_WrtEtQualEFOs" ]
##-----------------------------------------------------------------------------
## 2nd step
## Definition of the PanTau flag container
class PanTauJetBuilderAlg_Flags(JobPropertyContainer):
"""Container for the common flags
"""
pass
##-----------------------------------------------------------------------------
## 3rd step
## adding the container to the general top-level container
jobproperties.add_Container(PanTauJetBuilderAlg_Flags)
##-----------------------------------------------------------------------------
## 4th step
## adding athena common flags to the AthenaCommonFlags container
jobproperties.PanTauJetBuilderAlg_Flags.add_JobProperty(MVA_GeneralWeightFilePrefix)
jobproperties.PanTauJetBuilderAlg_Flags.add_JobProperty(MVA_PtBins)
jobproperties.PanTauJetBuilderAlg_Flags.add_JobProperty(MVA_Method)
jobproperties.PanTauJetBuilderAlg_Flags.add_JobProperty(MVA_VersionName)
jobproperties.PanTauJetBuilderAlg_Flags.add_JobProperty(MVA_ModeName1p0n)
jobproperties.PanTauJetBuilderAlg_Flags.add_JobProperty(MVA_ModeName1p1n)
jobproperties.PanTauJetBuilderAlg_Flags.add_JobProperty(MVA_ModeName1pXn)
jobproperties.PanTauJetBuilderAlg_Flags.add_JobProperty(MVA_ModeName3p0n)
jobproperties.PanTauJetBuilderAlg_Flags.add_JobProperty(MVA_ModeName3pXn)
jobproperties.PanTauJetBuilderAlg_Flags.add_JobProperty(MVA_UsedFeatures1p0n)
jobproperties.PanTauJetBuilderAlg_Flags.add_JobProperty(MVA_UsedFeatures1p1n)
jobproperties.PanTauJetBuilderAlg_Flags.add_JobProperty(MVA_UsedFeatures1pXn)
jobproperties.PanTauJetBuilderAlg_Flags.add_JobProperty(MVA_UsedFeatures3p0n)
jobproperties.PanTauJetBuilderAlg_Flags.add_JobProperty(MVA_UsedFeatures3pXn)
##-----------------------------------------------------------------------------
## 5th step
## short-cut for lazy people
## carefull: do not select PanTauFlags as a short name as well.
## otherwise problems with pickle
## Note: you still have to import it:
## >>> from PanTauAnalysis.PanTauJetBuilderAlg_Flags import PanTauJetBuilderAlgFlags
PanTauJetBuilderAlgFlags = jobproperties.PanTauJetBuilderAlg_Flags
# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
# @file: PanTauAnalysis/python/PanTauSeedBuilderAlg.py
# @purpose: hold a set of customized configurables and factory functions for the seed builder
from __future__ import print_function
__doc__ = "hold a set of customized configurables and factory functions for the seed builder"
__author__ = "S.Fleischmann"
__version__= "$Revision: 540821 $"
from PanTauAlgs.PanTauAlgsConf import PanTau__TauSeedBuilderAlg
class PanTauSeedBuilderAlg( PanTau__TauSeedBuilderAlg ):
__slots__ = { }
def __init__( self, name = "TauSeedBuildCone4",
jetAlgName = "Cone4", **kwargs ):
# have to call base init
kwargs['name'] = name
kwargs['ContainerName_eflowJets'] = "eflowObjects_tauMode"
kwargs['ContainerName_PanTauGoodOutputSeeds'] = "TauSeedsEflow"+jetAlgName
kwargs['ContainerName_PanTauBadOutputSeeds'] = "TauRejectedSeedsEflow"+jetAlgName
super( PanTauSeedBuilderAlg, self ).__init__( **kwargs )
from PanTauAnalysis.PanTauFlags import panTauFlags
from RecExConfig.RecFlags import rec
if panTauFlags.doTruthEtIsolations():
from AthenaCommon.AppMgr import ToolSvc
if not hasattr(ToolSvc, 'TruthIsolationTool'):
ToolSvc += CfgMgr.TruthIsolationTool()
############################
### Set up the configurables
from PanTauAnalysis.PanTauSeedBuilderAlg_Flags import PanTauSeedBuilderAlgFlags as PSB_Flags
# Basic config
self.Config_DoTruth = rec.doTruth()
self.RunTimeHists_Enabled = PSB_Flags.Config_DoRunTimeHists()
self.Config_UseTauRecAsSeeds = PSB_Flags.Config_UseTauRecAsSeeds()
self.Config_EfoCollectionDeltaR = PSB_Flags.Config_EfoCollectionDeltaR()
self.Config_DeltaRCoreRegion = PSB_Flags.Config_DeltaRCoreRegion()
self.Config_DoTauRecVicinityCheck = PSB_Flags.Config_DoTauRecVicinityCheck()
self.Config_DeltaRTauRecVicinityCheck = PSB_Flags.Config_DeltaRTauRecVicinityCheck()
self.Config_KeepOverlapTauRecVicinity = PSB_Flags.Config_KeepOverlapTauRecVicinity()
#Container Names
self.ContainerName_eflowJets = PSB_Flags.ContainerName_eflowJets()
self.ContainerName_eflowObjectsFromTaus = PSB_Flags.ContainerName_eflowObjectsFromTaus()
self.ContainerName_tauRec = PSB_Flags.ContainerName_tauRec()
self.ContainerName_PrimaryVertices = PSB_Flags.ContainerName_PrimaryVertices()
self.ContainerName_TruthTaus = PSB_Flags.ContainerName_TruthTaus()
self.ContainerName_PanTauGoodOutputSeeds = PSB_Flags.ContainerName_PanTauGoodOutputSeeds() + jetAlgName
self.ContainerName_PanTauBadOutputSeeds = PSB_Flags.ContainerName_PanTauBadOutputSeeds() + jetAlgName
self.ContainerName_TruePi0MatchedNeutralEFOs = PSB_Flags.ContainerName_TruePi0MatchedNeutralEFOs()
# Preselection
self.Config_Presel_DoPreselection = PSB_Flags.Config_Presel_DoPreselection()
self.Config_Presel_MaxAbsEta = PSB_Flags.Config_Presel_MaxAbsEta()
self.Config_Presel_MinNumberChargedComp = PSB_Flags.Config_Presel_MinNumberChargedComp()
self.Config_Presel_MaxNumberChargedComp = PSB_Flags.Config_Presel_MaxNumberChargedComp()
self.Config_Presel_MinAbsSeedCharge = PSB_Flags.Config_Presel_MinAbsSeedCharge()
self.Config_Presel_MaxAbsSeedCharge = PSB_Flags.Config_Presel_MaxAbsSeedCharge()
self.Config_Presel_MinSeedPt = PSB_Flags.Config_Presel_MinSeedPt()
# EFO Selection
self.Config_EfoSel_DoEfoSelection = PSB_Flags.Config_EfoSel_DoEfoSelection()
self.Config_EfoSel_EtaBins = PSB_Flags.Config_EfoSel_EtaBins()
self.Config_EfoSel_EtaBinEtCuts = PSB_Flags.Config_EfoSel_EtaBinEtCuts()
self.Config_EfoSel_Pi0EtBins = PSB_Flags.Config_EfoSel_Pi0EtBins()
self.Config_EfoSel_Pi0EtBinBDTCuts = PSB_Flags.Config_EfoSel_Pi0EtBinBDTCuts()
self.Config_EfoSel_MinEflowObjectEt = PSB_Flags.Config_EfoSel_MinEflowObjectEt()
self.Config_EfoSel_MaxEflowObjectEta = PSB_Flags.Config_EfoSel_MaxEflowObjectEta()
self.Config_EfoSel_MinHADNeutralEt = PSB_Flags.Config_EfoSel_MinHADNeutralEt()
self.Config_EfoSel_MinEMNeutralEt = PSB_Flags.Config_EfoSel_MinEMNeutralEt()
self.Config_EfoSel_MinEMNeutralE = PSB_Flags.Config_EfoSel_MinEMNeutralE()
self.Config_EfoSel_MinPi0NeutralE = PSB_Flags.Config_EfoSel_MinPi0NeutralE()
self.Config_EfoSel_MinPi0NeutralEt = PSB_Flags.Config_EfoSel_MinPi0NeutralEt()
self.Config_EfoSel_UseEMNeutralHadronicVeto = PSB_Flags.Config_EfoSel_UseEMNeutralHadronicVeto()
self.Config_EfoSel_ApplyEMNeutralECut = PSB_Flags.Config_EfoSel_ApplyEMNeutralECut()
self.Config_EfoSel_ApplyEMNeutralEtCut = PSB_Flags.Config_EfoSel_ApplyEMNeutralEtCut()
self.Config_EfoSel_ApplyPi0NeutralECut = PSB_Flags.Config_EfoSel_ApplyPi0NeutralECut()
self.Config_EfoSel_ApplyPi0NeutralEtCut = PSB_Flags.Config_EfoSel_ApplyPi0NeutralEtCut()
self.Config_EfoSel_ApplyPionMassHypothesis = PSB_Flags.Config_EfoSel_ApplyPionMassHypothesis()
self.Config_EfoSel_PiZeroBDTThreshold = PSB_Flags.Config_EfoSel_PiZeroBDTThreshold()
self.Config_EfoSel_TrackMatch_DeltaEta = PSB_Flags.Config_EfoSel_TrackMatch_DeltaEta()
self.Config_EfoSel_TrackMatch_DeltaPhi = PSB_Flags.Config_EfoSel_TrackMatch_DeltaPhi()
self.Config_EfoSel_TrackMatch_RelEMatch = PSB_Flags.Config_EfoSel_TrackMatch_RelEMatch()
print("__init__ PanTauSeedBuilderAlg successful")
def setDefaults(cls, hdl):
#print ("*setDefaults before test")
#### continue, only if it is our Configurable
if not isinstance(hdl, PanTauSeedBuilderAlg):
return
#print ("*setDefaults")
from PanTauAnalysis.PanTauFlags import jobproperties as jp
from AthenaCommon.AppMgr import ToolSvc
#from AthenaCommon.Configurable import Configurable
## continue, only if option not already set
if not hasattr(hdl, 'TauFeatureExtractionTools'):
hdl.Tools_TauFeatureExtractionTools = ""#PublicToolHandleArray([])
pass
if not hasattr(hdl, 'TrackSelectorTool'):
trackSel = PanTauSeedTrackSelector()
ToolSvc += trackSel
hdl.Tools_TrackSelectorTool = trackSel
return
#def __str__(self):
#return ""
#return super(PanTauSeedBuilderAlg,self).__str__()
pass # PanTauSeedBuilderAlg
from InDetTrackSelectorTool.InDetTrackSelectorToolConf import InDet__InDetDetailedTrackSelectorTool
class PanTauSeedTrackSelector( InDet__InDetDetailedTrackSelectorTool ):
__slots__ = { }
def __init__( self,
name = "PanTauSeedTrackSelector" ):
#print ("init seed track sel")
from PanTauAnalysis.PanTauFlags import jobproperties as jp
from AthenaCommon.AppMgr import ToolSvc
# ATLAS extrapolator
from TrkExTools.AtlasExtrapolator import AtlasExtrapolator
theAtlasExtrapolator=AtlasExtrapolator()
ToolSvc+=theAtlasExtrapolator
# call base class constructor:
InDet__InDetDetailedTrackSelectorTool.__init__(self,name,\
pTMin = 1000,
IPd0Max = 2.0,
IPz0Max = 10., # z0*sin(theta)
z0Max = 9999.,# z0
useTrackSummaryInfo = True,
nHitBLayer = 0,
nHitPix = 2,
nHitSct = 0,
nHitSi = 7,
nHitTrt = 0,
useSharedHitInfo = False,
fitChi2OnNdfMax = 9999.,
TrackSummaryTool = "",
Extrapolator = theAtlasExtrapolator,
OutputLevel = 4)
print (self)
#class PanTauImpactParameterTrackSelector( InDet__InDetDetailedTrackSelectorTool ):
#__slots__ = { }
#def __init__( self,
#name = "PanTauImpactParamterTrackSelector" ):
#from PanTauAnalysis.PanTauFlags import jobproperties as jp
#from AthenaCommon.AppMgr import ToolSvc
## ATLAS extrapolator
#from TrkExTools.AtlasExtrapolator import AtlasExtrapolator
#theAtlasExtrapolator=AtlasExtrapolator()
#ToolSvc+=theAtlasExtrapolator
## call base class constructor:
#InDet__InDetDetailedTrackSelectorTool.__init__(self,name,\
#pTMin = 1000,
#IPd0Max = 1.5,
#IPz0Max = 1.5, # z0*sin(theta)
#z0Max = 9999.,# z0
#useTrackSummaryInfo = True,
#nHitBLayer = 1,
#nHitPix = 2,
#nHitSct = 0,
#nHitSi = 7,
#nHitTrt = 0,
#useSharedHitInfo = False,
#fitChi2OnNdfMax = 9999.,
#TrackSummaryTool = "",
#Extrapolator = theAtlasExtrapolator)
from PanTauAlgs.PanTauAlgsConf import PanTau__TauImpactParameterExtractionTool
class PanTauImpactParameterExtractionTool( PanTau__TauImpactParameterExtractionTool ):
__slots__ = { }
def __init__( self,
name = "PanTauImpactParameterExtractionTool" ):
from PanTauAnalysis.PanTauFlags import jobproperties as jp
from AthenaCommon.AppMgr import ToolSvc
from TrkExTools.AtlasExtrapolator import AtlasExtrapolator
theAtlasExtrapolator=AtlasExtrapolator()
ToolSvc += theAtlasExtrapolator
# track selector for impact parameter:
from InDetTrackSelectorTool.InDetTrackSelectorToolConf import InDet__InDetDetailedTrackSelectorTool
impactParamTrackSel = InDet__InDetDetailedTrackSelectorTool(name+"TrackSel",
pTMin = 1000,
IPd0Max = 1.5,
IPz0Max = 1.5, # z0*sin(theta)
z0Max = 9999.,# z0
useTrackSummaryInfo = True,
nHitBLayer = 1,
nHitPix = 2,
nHitSct = 0,
nHitSi = 7,
nHitTrt = 0,
useSharedHitInfo = False,
fitChi2OnNdfMax = 9999.,
TrackSummaryTool = "",
Extrapolator = theAtlasExtrapolator)
print (impactParamTrackSel)
ToolSvc += impactParamTrackSel
# TrackToVertexIPEstimator (needed for impact parameter calculation)
from TrkVertexFitterUtils.TrkVertexFitterUtilsConf import Trk__TrackToVertexIPEstimator
trackToVertexIPEstimator = Trk__TrackToVertexIPEstimator(Extrapolator = theAtlasExtrapolator)
print (trackToVertexIPEstimator)
ToolSvc += trackToVertexIPEstimator
# call base class constructor:
PanTau__TauImpactParameterExtractionTool.__init__(self,name,\
TrackToVertexIPEstimator = trackToVertexIPEstimator,
TrackSelectorTool = impactParamTrackSel)
print (self)
def createTauSeedBuilder( jetAlgName = "Cone4",
tauFeatureExtractionTools = None,
trackSelectorTool = None):
#**kw ):
"""
Factory function to create a fully and correctly configured customized
TauSeedBuilderAlg
"""
from PanTauAnalysis.PanTauFlags import jobproperties as jp
from AthenaCommon.AppMgr import ToolSvc
if trackSelectorTool is None:
trackSelectorTool = PanTauSeedTrackSelector()
#print (trackSelectorTool)
ToolSvc += trackSelectorTool
if tauFeatureExtractionTools is None:
tauFeatureExtractionTools = []
if jp.PanTauFlags.GetJetFeatures() :
from PanTauAlgs.PanTauAlgsConf import PanTau__TauJetFeatureExtractionTool
tauJetExtr = PanTau__TauJetFeatureExtractionTool()
print (tauJetExtr)
ToolSvc += tauJetExtr
tauFeatureExtractionTools += [tauJetExtr]
if jp.PanTauFlags.GetImpactParameterFeatures() :
tauImpactParameterExtr = PanTauImpactParameterExtractionTool()
ToolSvc += tauImpactParameterExtr
#print (tauImpactParameterExtr)
tauFeatureExtractionTools += [tauImpactParameterExtr]
#print (tauImpactParameterExtr)
return PanTauSeedBuilderAlg( 'TauSeedBuild'+jetAlgName, jetAlgName,
Tools_TauFeatureExtractionTools = tauFeatureExtractionTools,
Tools_TrackSelectorTool = trackSelectorTool)
#**kw )
# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
##
## @file PanTauAnalysis/python/PanTauSeedBuilderAlg_Flags.py
## @brief Python module to hold the flags that configure the TauSeedBuilderAlg
##
""" PanTauSeedBuilderAlg_Flags
Python module to hold flags to configure PanTau.
From the python prompt:
>>> from PanTauAnalysis.PanTauSeedBuilderAlg_Flags import PanTauSeedBuilerAlgFlags
"""
__author__ = "C.Limbach"
__version__= "$Revision: 500031 $"
__doc__ = "PanTauSeedBuilderAlg_Flags"
__all__ = [ "PanTauSeedBuilderAlg_Flags" ]
##-----------------------------------------------------------------------------
## Import
from AthenaCommon.JobProperties import JobProperty, JobPropertyContainer
from AthenaCommon.JobProperties import jobproperties
import AthenaCommon.SystemOfUnits as Units
##-----------------------------------------------------------------------------
## 1st step: define JobProperty classes
class ContainerName_eflowJets(JobProperty):
"""Name of SG container with jets consisting of EFOs"""
statusOn = True
allowedTypes = ['str']
StoredValue = "EflowCone4Jets"
class ContainerName_eflowObjectsFromTaus(JobProperty):
"""Name of SG container with efos created from tauRec taus"""
statusOn = True
allowedTypes = ['str']
StoredValue = "eflowObjects_tauMode"
class ContainerName_tauRec(JobProperty):
"""Name of SG container with tauRec taus"""
statusOn = True
allowedTypes = ['str']
StoredValue = "TauJets"
class ContainerName_PrimaryVertices(JobProperty):
"""Name of SG container with primary vertices"""
statusOn = True
allowedTypes = ['str']
StoredValue = "VxPrimaryCandidate"
class ContainerName_TruthTaus(JobProperty):
"""Name of SG container with truth taus"""
statusOn = True
allowedTypes = ['str']
StoredValue = "TruthTaus"
class ContainerName_PanTauGoodOutputSeeds(JobProperty):
"""Name of SG container that is used by the JetBuilderAlg and contains the good pantau seeds"""
statusOn = True
allowedTypes = ['str']
StoredValue = "PanTauSeeds"
class ContainerName_PanTauBadOutputSeeds(JobProperty):
"""Name of SG container that is used by the JetBuilderAlg and contains the bad pantau seeds"""
statusOn = True
allowedTypes = ['str']
StoredValue = "PanTauRejectedSeeds"
class ContainerName_TruePi0MatchedNeutralEFOs(JobProperty):
"""Name of SG container with efos that have been matched to neutral pions"""
statusOn = True
allowedTypes = ['str']
StoredValue = "EFOsMatchedToNeutralPions"
# #############################################################################################
# Basic Config flags
class Config_UseTauRecAsSeeds(JobProperty):
"""Use the tauRec container rather than the eflowJet container as input"""
statusOn = True
allowedTypes = ['bool']
StoredValue = True
class Config_EfoCollectionDeltaR(JobProperty):
"""in the case of UseTauRecAsSeeds=true, this is the collection deltaR"""
statusOn = True
allowedTypes = ['float']
StoredValue = 0.4
class Config_DeltaRCoreRegion(JobProperty):
"""DeltaR of core region used to calculate the 4 momentum"""
statusOn = True
allowedTypes = ['float']
StoredValue = 0.2
class Config_DoTauRecVicinityCheck(JobProperty):
"""flag to turn tauRec vicinity check on/off"""
statusOn = True
allowedTypes = ['bool']
StoredValue = False
class Config_DeltaRTauRecVicinityCheck(JobProperty):
"""property to set deltaR of vicinitychecktool"""
statusOn = True
allowedTypes = ['float']
StoredValue = 0.4
class Config_KeepOverlapTauRecVicinity(JobProperty):
"""property to set deltaR of vicinitychecktool"""
statusOn = True
allowedTypes = ['bool']
StoredValue = True
class Config_DoRunTimeHists(JobProperty):
"""Flag to switch creation of root file with runtime hists on/off"""
statusOn = True
allowedTypes = ['bool']
StoredValue = False
# #############################################################################################
# Flags for the seed preselection
class Config_Presel_DoPreselection(JobProperty):
"""flag to tell whether the seed preselection will be executed or not"""
statusOn = True
allowedType = ['bool']
StoredValue = True
class Config_Presel_MaxAbsEta(JobProperty):
"""Maximal seed eta"""
statusOn = True
allowedType = ['float']
StoredValue = 2.7
class Config_Presel_MinNumberChargedComp(JobProperty):
"""Minimal number of charged components in seed"""
statusOn = True
allowedTypes = ['int']
StoredValue = 1
class Config_Presel_MaxNumberChargedComp(JobProperty):
"""Maximal number of charged components in seed"""
statusOn = True
allowedTypes = ['int']
StoredValue = 7
class Config_Presel_MinAbsSeedCharge(JobProperty):
"""Minimal absolute charge of seed"""
statusOn = True
allowedTypes = ['int']
StoredValue = 0
class Config_Presel_MaxAbsSeedCharge(JobProperty):
"""Maximal absolute charge of seed"""
statusOn = True
allowedTypes = ['int']
StoredValue = 5
class Config_Presel_MinSeedPt(JobProperty):
"""Minimal Pt of seed"""
statusOn = True
allowedTypes = ['float']
StoredValue = 15.* Units.GeV
# #############################################################################################
# Flags for eflowObject selection
class Config_EfoSel_DoEfoSelection(JobProperty):
"""Minimal ET of eflow objects"""
statusOn = True
allowedTypes = ['bool']
StoredValue = False
class Config_EfoSel_MinEflowObjectEt(JobProperty):
"""Minimal ET of eflow objects"""
statusOn = True
allowedTypes = ['float']
StoredValue = 0.0* Units.GeV
class Config_EfoSel_EtaBins(JobProperty):
"""Seed Building: Eta Bin edges for eta dependent Et cut on PiNeutral EFOs"""
statusOn = True
allowedTypes = ['list']
StoredValue = [ 0.0, 0.8, 1.35, 1.55, 2.5 ]
#bin edges from Benedict
class Config_EfoSel_EtaBinEtCuts(JobProperty):
"""Seed Building: Et cuts on Pi0Neutral EFOs in the different Eta bins"""
statusOn = True
allowedTypes = ['list']
StoredValue = [ 1.5* Units.GeV, 1.5* Units.GeV, 1.5* Units.GeV, 2.0* Units.GeV]
# et cuts guessed at the moment...
class Config_EfoSel_Pi0EtBins(JobProperty):
"""Seed Building: EtBin edges for the et dependent cut on pi0 BDT"""
statusOn = True
allowedTypes = ['list']
StoredValue = [ 0.0, 100* Units.GeV ]
#bin edges from Benedict
class Config_EfoSel_Pi0EtBinBDTCuts(JobProperty):
"""Seed Building: Pi0 BDT cuts on neutral efos in the different ET bins"""
statusOn = True
allowedTypes = ['list']
StoredValue = [ -0.04]
# et cuts guessed at the moment...
class Config_EfoSel_MaxEflowObjectEta(JobProperty):
"""Max abs(eta) of eflow objects"""
statusOn = True
allowedTypes = ['float']
StoredValue = 2.5
class Config_EfoSel_MinHADNeutralEt(JobProperty):
"""Minimum Et of hadronic neutral eflow objets"""
statusOn = True
allowedTypes = ['float']
StoredValue = 1.* Units.GeV
class Config_EfoSel_MinEMNeutralEt(JobProperty):
"""Minimum EMNeutral ET of neutral eflow objects (MeV)"""
statusOn = True
allowedTypes = ['float']
StoredValue = 1.* Units.GeV
class Config_EfoSel_MinEMNeutralE(JobProperty):
"""Minimum EMNeutral E of neutral eflow objects"""
statusOn = True
allowedTypes = ['float']
StoredValue = 1.* Units.GeV
class Config_EfoSel_MinPi0NeutralE(JobProperty):
"""Minimum EMNeutral E of neutral eflow objects"""
statusOn = True
allowedTypes = ['float']
StoredValue = 1.* Units.GeV
class Config_EfoSel_MinPi0NeutralEt(JobProperty):
"""Minimum EMNeutral E of neutral eflow objects"""
statusOn = True
allowedTypes = ['float']
StoredValue = 2.5* Units.GeV
class Config_EfoSel_UseEMNeutralHadronicVeto(JobProperty):
"""use hadronic veto to define EM neutrals"""
statusOn = True
allowedTypes = ['bool']
StoredValue = True
class Config_EfoSel_ApplyEMNeutralECut(JobProperty):
"""Apply E cut on EM neutral eflow objects"""
statusOn = True
allowedTypes = ['bool']
StoredValue = False
class Config_EfoSel_ApplyEMNeutralEtCut(JobProperty):
"""Apply Et cut on EM neutral eflow objects"""
statusOn = True
allowedTypes = ['bool']
StoredValue = True
class Config_EfoSel_ApplyPi0NeutralECut(JobProperty):
"""Apply Et cut on EM neutral eflow objects"""
statusOn = True
allowedTypes = ['bool']
StoredValue = False
class Config_EfoSel_ApplyPi0NeutralEtCut(JobProperty):
"""Apply Et cut on EM neutral eflow objects"""
statusOn = True
allowedTypes = ['bool']
StoredValue = True
class Config_EfoSel_ApplyPionMassHypothesis(JobProperty):
"""Apply the pion mass hypotheses to eflowObjects"""
statusOn = True
allowedTypes = ['bool']
StoredValue = True
class Config_EfoSel_PiZeroBDTThreshold(JobProperty):
"""Apply the pion mass hypotheses to eflowObjects"""
statusOn = True
allowedTypes = ['float']
StoredValue = -0.04
class Config_EfoSel_TrackMatch_DeltaEta(JobProperty):
"""Apply the pion mass hypotheses to eflowObjects"""
statusOn = True
allowedTypes = ['float']
StoredValue = 0.0001
class Config_EfoSel_TrackMatch_DeltaPhi(JobProperty):
"""Apply the pion mass hypotheses to eflowObjects"""
statusOn = True
allowedTypes = ['float']
StoredValue = 0.0001
class Config_EfoSel_TrackMatch_RelEMatch(JobProperty):
"""Apply the pion mass hypotheses to eflowObjects"""
statusOn = True
allowedTypes = ['float']
StoredValue = 0.10
##-----------------------------------------------------------------------------
## 2nd step
## Definition of the PanTau flag container
class PanTauSeedBuilderAlg_Flags(JobPropertyContainer):
"""Container for the common flags
"""
pass
##-----------------------------------------------------------------------------
## 3rd step
## adding the container to the general top-level container
jobproperties.add_Container(PanTauSeedBuilderAlg_Flags)
##-----------------------------------------------------------------------------
## 4th step
## adding athena common flags to the AthenaCommonFlags container
jobproperties.PanTauSeedBuilderAlg_Flags.add_JobProperty(ContainerName_eflowJets)
jobproperties.PanTauSeedBuilderAlg_Flags.add_JobProperty(ContainerName_eflowObjectsFromTaus)
jobproperties.PanTauSeedBuilderAlg_Flags.add_JobProperty(ContainerName_tauRec)
jobproperties.PanTauSeedBuilderAlg_Flags.add_JobProperty(ContainerName_PrimaryVertices)
jobproperties.PanTauSeedBuilderAlg_Flags.add_JobProperty(ContainerName_TruthTaus)
jobproperties.PanTauSeedBuilderAlg_Flags.add_JobProperty(ContainerName_PanTauGoodOutputSeeds)
jobproperties.PanTauSeedBuilderAlg_Flags.add_JobProperty(ContainerName_PanTauBadOutputSeeds)
jobproperties.PanTauSeedBuilderAlg_Flags.add_JobProperty(ContainerName_TruePi0MatchedNeutralEFOs)
jobproperties.PanTauSeedBuilderAlg_Flags.add_JobProperty(Config_UseTauRecAsSeeds)
jobproperties.PanTauSeedBuilderAlg_Flags.add_JobProperty(Config_EfoCollectionDeltaR)
jobproperties.PanTauSeedBuilderAlg_Flags.add_JobProperty(Config_DeltaRCoreRegion)
jobproperties.PanTauSeedBuilderAlg_Flags.add_JobProperty(Config_DoTauRecVicinityCheck)
jobproperties.PanTauSeedBuilderAlg_Flags.add_JobProperty(Config_DeltaRTauRecVicinityCheck)
jobproperties.PanTauSeedBuilderAlg_Flags.add_JobProperty(Config_KeepOverlapTauRecVicinity)
jobproperties.PanTauSeedBuilderAlg_Flags.add_JobProperty(Config_DoRunTimeHists)
jobproperties.PanTauSeedBuilderAlg_Flags.add_JobProperty(Config_Presel_DoPreselection)
jobproperties.PanTauSeedBuilderAlg_Flags.add_JobProperty(Config_Presel_MaxAbsEta)
jobproperties.PanTauSeedBuilderAlg_Flags.add_JobProperty(Config_Presel_MinNumberChargedComp)
jobproperties.PanTauSeedBuilderAlg_Flags.add_JobProperty(Config_Presel_MaxNumberChargedComp)
jobproperties.PanTauSeedBuilderAlg_Flags.add_JobProperty(Config_Presel_MinAbsSeedCharge)
jobproperties.PanTauSeedBuilderAlg_Flags.add_JobProperty(Config_Presel_MaxAbsSeedCharge)
jobproperties.PanTauSeedBuilderAlg_Flags.add_JobProperty(Config_Presel_MinSeedPt)
jobproperties.PanTauSeedBuilderAlg_Flags.add_JobProperty(Config_EfoSel_DoEfoSelection)
jobproperties.PanTauSeedBuilderAlg_Flags.add_JobProperty(Config_EfoSel_EtaBins)
jobproperties.PanTauSeedBuilderAlg_Flags.add_JobProperty(Config_EfoSel_EtaBinEtCuts)
jobproperties.PanTauSeedBuilderAlg_Flags.add_JobProperty(Config_EfoSel_Pi0EtBins)
jobproperties.PanTauSeedBuilderAlg_Flags.add_JobProperty(Config_EfoSel_Pi0EtBinBDTCuts)
jobproperties.PanTauSeedBuilderAlg_Flags.add_JobProperty(Config_EfoSel_MinEflowObjectEt)
jobproperties.PanTauSeedBuilderAlg_Flags.add_JobProperty(Config_EfoSel_MaxEflowObjectEta)
jobproperties.PanTauSeedBuilderAlg_Flags.add_JobProperty(Config_EfoSel_MinHADNeutralEt)
jobproperties.PanTauSeedBuilderAlg_Flags.add_JobProperty(Config_EfoSel_MinEMNeutralEt)
jobproperties.PanTauSeedBuilderAlg_Flags.add_JobProperty(Config_EfoSel_MinEMNeutralE)
jobproperties.PanTauSeedBuilderAlg_Flags.add_JobProperty(Config_EfoSel_MinPi0NeutralEt)
jobproperties.PanTauSeedBuilderAlg_Flags.add_JobProperty(Config_EfoSel_MinPi0NeutralE)
jobproperties.PanTauSeedBuilderAlg_Flags.add_JobProperty(Config_EfoSel_UseEMNeutralHadronicVeto)
jobproperties.PanTauSeedBuilderAlg_Flags.add_JobProperty(Config_EfoSel_ApplyEMNeutralECut)
jobproperties.PanTauSeedBuilderAlg_Flags.add_JobProperty(Config_EfoSel_ApplyEMNeutralEtCut)
jobproperties.PanTauSeedBuilderAlg_Flags.add_JobProperty(Config_EfoSel_ApplyPi0NeutralECut)
jobproperties.PanTauSeedBuilderAlg_Flags.add_JobProperty(Config_EfoSel_ApplyPi0NeutralEtCut)
jobproperties.PanTauSeedBuilderAlg_Flags.add_JobProperty(Config_EfoSel_ApplyPionMassHypothesis)
jobproperties.PanTauSeedBuilderAlg_Flags.add_JobProperty(Config_EfoSel_PiZeroBDTThreshold)
jobproperties.PanTauSeedBuilderAlg_Flags.add_JobProperty(Config_EfoSel_TrackMatch_DeltaEta)
jobproperties.PanTauSeedBuilderAlg_Flags.add_JobProperty(Config_EfoSel_TrackMatch_DeltaPhi)
jobproperties.PanTauSeedBuilderAlg_Flags.add_JobProperty(Config_EfoSel_TrackMatch_RelEMatch)
##-----------------------------------------------------------------------------
## 5th step
## short-cut for lazy people
## carefull: do not select PanTauFlags as a short name as well.
## otherwise problems with pickle
## Note: you still have to import it:
## >>> from PanTauAnalysis.PanTauSeedBuilderAlg_Flags import PanTauSeedBuilderAlgFlags
PanTauSeedBuilderAlgFlags = jobproperties.PanTauSeedBuilderAlg_Flags
# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
##
## @file PanTauAnalysis/python/PanTauValidationFlags.py
## @brief Python module to hold common flags to configure PanTau validation
##
""" PanTauValidationFlags
Python module to hold flags to configure PanTau.
From the python prompt:
>>> from PanTauAnalysis.PanTauValidationFlags import panTauValidationFlags
"""
__author__ = "S.Fleischmann"
__version__= "$Revision: 545441 $"
__doc__ = "PanTauValidationFlags"
__all__ = [ "panTauValidationFlags" ]
##-----------------------------------------------------------------------------
## Import
from AthenaCommon.JobProperties import JobProperty, JobPropertyContainer
from AthenaCommon.JobProperties import jobproperties
##-----------------------------------------------------------------------------
## 1st step: define JobProperty classes
class DoSeedEfficiency(JobProperty):
"""Seed validation: Call Seed Efficiency Alg?"""
statusOn = True
allowedTypes = ['bool']
StoredValue = True
class DoTauEfficiency(JobProperty):
"""Tau Efficiency: Call Tau Efficiency Alg"""
statusON = True
allowedTypes = ['bool']
StoredValue = True
class DoFeatureWriter(JobProperty):
"""Feature Writer: Call Feature Writer?"""
statusOn = True
allowedTypes = ['bool']
StoredValue = True
class DoFeatureDefaultSmearing(JobProperty):
"""Feature Writer: Smear default values?"""
statusOn = True
allowedTypes = ['bool']
StoredValue = False
class WriteEfoMomentaInFeatureWriter(JobProperty):
"""Feature Writer: Write EFO 4-momenta?"""
statusOn = True
allowedTypes = ['bool']
StoredValue = False
class WriteMissingSeedsInFeatureWriter(JobProperty):
"""Feature Writer: Write missing seeds?"""
statusOn = True
allowedTypes = ['bool']
StoredValue = False
class WriteRejectedSeedsInFeatureWriter(JobProperty):
"""Feature Writer: Write missing seeds?"""
statusOn = True
allowedTypes = ['bool']
StoredValue = False
class DoSubClusterEfficiency(JobProperty):
"""Seed validation: Run sub-cluster efficiency?"""
statusOn = True
allowedTypes = ['bool']
StoredValue = False
class AllFeatureNames(JobProperty):
"""feature validation: List of all feature Names"""
statusOn = True
allowedTypes = ['list']
StoredValue = [ ]
class AllFeatureDefaultValues(JobProperty):
"""feature validation: List of all feature default values, used if feature is not set (same dimension as AllFeatureNames)"""
statusOn = True
allowedTypes = ['list']
StoredValue = [ ]
class AllFeatureDefaultValueSmearingSigma(JobProperty):
"""feature validation: List of all feature sigmas for default value smearing, used if feature is not set (same dimension as AllFeatureNames)"""
statusOn = True
allowedTypes = ['list']
StoredValue = [ ]
class AllFeatureTypes(JobProperty):
statusOn = True
allowedTypes = ['list']
StoredValue = [ ]
##-----------------------------------------------------------------------------
## 2nd step
## Definition of the PanTau flag container
class PanTauValidationFlags(JobPropertyContainer):
"""Container for the common flags
"""
pass
##-----------------------------------------------------------------------------
## 3rd step
## adding the container to the general top-level container
jobproperties.add_Container(PanTauValidationFlags)
##-----------------------------------------------------------------------------
## 4th step
## adding athena common flags to the AthenaCommonFlags container
jobproperties.PanTauValidationFlags.add_JobProperty(DoSeedEfficiency)
jobproperties.PanTauValidationFlags.add_JobProperty(DoTauEfficiency)
jobproperties.PanTauValidationFlags.add_JobProperty(DoFeatureWriter)
jobproperties.PanTauValidationFlags.add_JobProperty(DoFeatureDefaultSmearing)
jobproperties.PanTauValidationFlags.add_JobProperty(WriteEfoMomentaInFeatureWriter)
jobproperties.PanTauValidationFlags.add_JobProperty(WriteMissingSeedsInFeatureWriter)
jobproperties.PanTauValidationFlags.add_JobProperty(WriteRejectedSeedsInFeatureWriter)
jobproperties.PanTauValidationFlags.add_JobProperty(DoSubClusterEfficiency)
jobproperties.PanTauValidationFlags.add_JobProperty(AllFeatureNames)
jobproperties.PanTauValidationFlags.add_JobProperty(AllFeatureDefaultValues)
jobproperties.PanTauValidationFlags.add_JobProperty(AllFeatureDefaultValueSmearingSigma)
jobproperties.PanTauValidationFlags.add_JobProperty(AllFeatureTypes)
##-----------------------------------------------------------------------------
## 5th step
## short-cut for lazy people
## carefull: do not select PanTauFlags as a short name as well.
## otherwise problems with pickle
## Note: you still have to import it:
## >>> from PanTauAnalysis.PanTauValidationFlags import panTauValidationFlags
panTauValidationFlags = jobproperties.PanTauValidationFlags
This diff is collapsed.
# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
# PhysicsAnalysis/PanTauAnalysis/python/__init__.py
\ No newline at end of file
This diff is collapsed.
/*
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
*/
// #include <iostream>
#include <vector>
//#include <map>
#include "TH1F.h"
// #include "TString.h"
// #include "TFile.h"
// #include "TKey.h"
// #include "TList.h"
#include "/afs/cern.ch/user/l/limbach/ATLAS-Style/AtlasUtils.C"
#include "/afs/cern.ch/user/l/limbach/ATLAS-Style/AtlasLabels.C"
void ScanDirectory(TList* keyList, std::vector<TH1F*>* HistListToFill);
void dumpRTHContents() {
gROOT->LoadMacro("/afs/cern.ch/user/l/limbach/ATLAS-Style/AtlasStyle.C");
SetAtlasStyle();
std::cout << "Setup..." << std::endl;
TString InFile_NoVicinity = "PanTau_RunTimeHists_NoVicinity.root";
TString InFile_DoVicinityP = "PanTau_RunTimeHists_DoVicinityP0.4.root";
TString InFile_DoVicinityM = "PanTau_RunTimeHists_DoVicinityM0.4.root";
std::vector<TString> Types;
Types.push_back("NoVic_");
Types.push_back("DoVicP_");
Types.push_back("DoVicM_");
std::vector<int> LineColors;
LineColors.push_back(417);
LineColors.push_back(632);
LineColors.push_back(596);
std::vector<int> LineWidths;
LineWidths.push_back(2);
LineWidths.push_back(2);
LineWidths.push_back(2);
std::vector<int> LineStyles;
LineStyles.push_back(1);
LineStyles.push_back(1);
LineStyles.push_back(1);
//For each inputfile, contains all histograms
std::vector<TH1F*> Histograms_NoVicinity;// = std::vector<TH1F*>(0);
std::vector<TH1F*> Histograms_DoVicinityP;// = std::vector<TH1F*>(0);
std::vector<TH1F*> Histograms_DoVicinityM;// = std::vector<TH1F*>(0);
std:vector<TFile*> OpenInputFiles;// = std::vector< TFile* >(0);
OpenInputFiles.push_back( TFile::Open(InFile_NoVicinity) );
OpenInputFiles.push_back( TFile::Open(InFile_DoVicinityP) );
OpenInputFiles.push_back( TFile::Open(InFile_DoVicinityM) );
//gather histograms
std::cout << "Begin loop over inputfiles to gather histograms..." << std::endl;
for(unsigned int iFile==0; iFile<OpenInputFiles.size(); iFile++) {
TFile* curFile = OpenInputFiles[iFile];
std::cout << "\tInFile opened at " << curFile << std::endl;
if(curFile == 0) {
std::cout << "Pointer to 0! Skip" << std::endl;
continue;
}
//set right vector to fill
std::vector<TH1F*>* HistListToFill = 0;
if(iFile == 0) HistListToFill = &Histograms_NoVicinity;
if(iFile == 1) HistListToFill = &Histograms_DoVicinityP;
if(iFile == 2) HistListToFill = &Histograms_DoVicinityM;
std::cout << "\tFilling histvector at " << HistListToFill << std::endl;
//get list of keys and loop recursively through file contents
TList* keyList = curFile->GetListOfKeys();
ScanDirectory(keyList, HistListToFill);
//finalize single hists
//std::cout << "\tDumping histos in list: " << std::endl;
for(int iHist=0; iHist<HistListToFill->size(); iHist++) {
TH1F* curHist = HistListToFill->at(iHist);
TString newName = Types.at(iFile) + curHist->GetName();
curHist->SetName(newName);
curHist->SetTitle(newName);
// std::cout << "\t\t" << curHist->GetName() << std::endl;
curHist->SetLineColor(LineColors[iFile]);
curHist->SetLineWidth(LineWidths[iFile]);
curHist->SetLineStyle(LineStyles[iFile]);
}
}//end loop over files
//put histograms into canvasses
double xStart = 0.54;
double yStart = 0.70;
TLegend* theLegend = new TLegend(xStart, yStart, 0.93, 0.93);
theLegend->SetFillColor(0);
theLegend->SetFillStyle(0);
theLegend->SetBorderSize(0);
std::vector<TCanvas*> CanvasList;
std::cout << "Begin loop over histograms to fill canvasses..." << std::endl;
for(unsigned int iCan=0; iCan<Histograms_NoVicinity.size(); iCan++) {
TString curHistName = HistListToFill->at(iCan)->GetName();
std::cout << "\tFilling canvas for hist: " << curHistName << std::endl;
//fill the canvas
TCanvas* curCan = new TCanvas(curHistName, curHistName);
curCan->cd();
Histograms_NoVicinity.at(iCan)->Draw();
Histograms_DoVicinityM.at(iCan)->Draw("same");
Histograms_DoVicinityP.at(iCan)->Draw("same");
//complete the legend
if(iCan == 0) {
theLegend->AddEntry(Histograms_NoVicinity.at(iCan), "All tauRec candidates", "l");
theLegend->AddEntry(Histograms_DoVicinityM.at(iCan), "Isolated tauRecs (in #Delta R = 0.4)", "l");
theLegend->AddEntry(Histograms_DoVicinityP.at(iCan), "tauRec with other tauRec in 0.4", "l");
}
CanvasList.push_back(curCan);
}
std::cout << "Saving to outputfile" << std::endl;
TFile* outfile = new TFile("dumpedRTHHists.root", "RECREATE");
outfile->cd();
for(unsigned int iSave=0; iSave<CanvasList.size(); iSave++) {
CanvasList.at(iSave)->cd();
theLegend->Draw();
CanvasList.at(iSave)->Write();
}
return;
}
void ScanDirectory(TList* keyList, std::vector<TH1F*>* HistListToFill) {
//loop through key list
for(int iKey=0; iKey<keyList->GetEntries(); iKey++) {
TKey* curKey = (TKey*)keyList->At(iKey);
TString itsClass = curKey->GetClassName();
// std::cout << "DEBUG\t\tKey: " << curKey->GetName() << " / " << curKey->GetTitle() << " ClassName: |" << itsClass << "|" << std::endl;
//if a key is a directory, get its list of keys and loop through that list
if( itsClass == "TDirectoryFile") {
TDirectoryFile* nextDir = (TDirectoryFile*)curKey->ReadObj();
// std::cout << "DEBUG\t\t\tThis key is a TDirectory! It is named/titled: " << nextDir->GetName() << " / " << nextDir->GetTitle() << std::endl;
TList* nextKeyList = nextDir->GetListOfKeys();
// std::cout << "DEBUG\t\t\tKeys in the next dir " << nextKeyList->GetEntries() << std::endl;
//scan next subdir
ScanDirectory(nextKeyList, HistListToFill);
}
//if it is a TH1, put it into list of histograms
if( itsClass == "TH1F") {
TH1F* curHist = (TH1F*)curKey->ReadObj();
// std::cout << "DEBUG\t\t\tThis key is a TH1! It is named/titled: " << curHist->GetName() << " / " << curHist->GetTitle() << std::endl;
HistListToFill->push_back(curHist);
}
} // end loop over keys
return;
}
0
1
v3
v320
echo "INFO ================================================"
echo "INFO Script to submit all PanTau jobs to grid "
echo "INFO ================================================"
echo "INFO"
SAMPLES[0]=ZTauTau
SAMPLES[1]=ZPrime250TauTau
SAMPLES[2]=ZPrime750TauTau
SAMPLES[3]=WTauNu
SAMPLES[4]=J0
SAMPLES[5]=J1
SAMPLES[6]=J2
SAMPLES[7]=J3
SAMPLES[8]=J4
SAMPLES[9]=J5
if [ "$1" = "submit" ]; then
echo "INFO Will submit a whole bunch of jobs!"
for iSample in "${SAMPLES[@]}"
do
ToExecute=". ../scripts/submit-grid-job_PanTau_User_TopOptions.sh $iSample $2"
echo "INFO ___________________________________________________________________________"
echo "INFO"
echo "INFO ===> Next Job! <==="
echo "INFO ___________________________________________________________________________"
echo "INFO"
echo "INFO Executing: $ToExecute"
$ToExecute
done
else
echo "INFO You have to be inside your \$TestArea/PhysicsAnalysis/PanTauAnalysis/run"
echo "INFO Otherwise this script will not work and do terrible things".
echo "INFO To submit jobs, be sure to be in the directory above and do:"
echo "INFO . ../scripts/Launch_WholeBunchOfSamplesToGrid.sh submit xyz"
echo "INFO where xyz steers the actual submitting script:"
echo "INFO xyz omitted : just print commands, do not execute anything"
echo "INFO xyz = local : runs commands locally (not encouraged!)"
echo "INFO xyz = grid : submit jobs to grid"
fi
\ No newline at end of file
#############################################
# Mechanism to get a unique number
# in the output ds name of each submission
# No need to change this...
#############################################
a=0
while read line
do a=$(($a+1));
# echo $a;
done < "SubmitVersion.source"
# echo "Final line count is: $a";
a=`expr $a + 1`
echo "v$a" >> "SubmitVersion.source"
UNIQUEIDTOUSE="v$a"
# echo "Will append this to output name: "$UNIQUEIDTOUSE
#############################################
# Settings
#
# Adapt to your neeeds
#############################################
JOBOPTIONSDIR="/afs/cern.ch/user/l/limbach/scratch0/PanTauTest/PhysicsAnalysis/PanTauAnalysis/share/" # do NOT forget the / at the end!
JOBOPTIONSFILE="PanTau_ESD-to-D3PD_TopOptions.py"
EXCLUDEDSITES="SLAC,SARA,ANALY_IFIC,ANALY_FZK"
CLOUD="DE"
THESITE=""
NMAXFILES="20"
# DESTINATIONSITE="UNI-BONN_LOCALGROUPDISK" # or something similar
#############################################
# Automatic part
#
#
#############################################
echo "Option 1 (Dataset to use) specified to be:" $1
DATASETTOUSE=$1
if [ "$DATASETTOUSE" = "" ]; then
echo "INFO No sample given!"
fi
echo "Option 2 (do local test) specified to be:" $2
EXECUTEOPTION=$2
if [ "$EXECUTEOPTION" = "local" ]; then
echo "INFO Will do local test"
elif [ "$EXECUTEOPTION" = "grid" ]; then
echo "INFO Will submit the job to the grid using pathena"
else
echo "INFO No second argument provided => Display commands for local & pathena submission and show valid sample names."
echo "INFO ___________________________________________"
echo "INFO "
echo "INFO Command Line options:"
echo "INFO 1. Option: Name of sample (required, will do nothing if not specified"
echo "INFO 2. Option: ExecutionOption"
echo "INFO local -> Do not submit to grid but execute athena locally"
echo "INFO grid -> Submit to grid"
echo "INFO "
echo "INFO "
echo "INFO Allowed values for samples | Note"
echo "INFO -MC Samples:"
echo "INFO ZTauTau"
echo "INFO ZPrime250TauTau"
echo "INFO ZPrime750TauTau"
echo "INFO WTauNu"
echo "INFO ZMuMu"
echo "INFO ZMuMuNp1pt20Jimmy"
echo "INFO -----------------"
echo "INFO ZTauTau6M_Mark | 6.5 Million events in AOD with calib hits, latest eflowRec"
echo "INFO | Used to produce eflowStudy D3PDs for Peter"
echo "INFO ZTauTau_bwinter | Official sample from benedict"
echo "INFO "
echo "INFO -Data"
echo "INFO Data201556Muons | 2012 8TeV Muons"
echo "INFO "
echo "INFO "
echo "INFO "
echo "INFO "
echo "INFO "
echo "INFO ___________________________________________"
fi
INPUTDATA=""
OUTPUTDATA=""
#############################################
# Input Samples
#
#############################################
VALIDSAMPLE="true"
if [ "$DATASETTOUSE" == "ZTauTau" ]; then
INPUTDATA="mc12_8TeV.147818.Pythia8_AU2CTEQ6L1_Ztautau.merge.AOD.e1176_s1479_s1470_r3553_r3549/"
OUTPUTDATA="user.limbach.mc12_8TeV_147818_Pythia8_AU2CTEQ6L1_Ztautau_e1176_s1479_s1470_r3553_r3549_$UNIQUEIDTOUSE.D3PD.root"
elif [ "$DATASETTOUSE" == "ZPrime250TauTau" ]; then
INPUTDATA="mc12_8TeV.170201.Pythia8_AU2CTEQ6L1_Zprime250tautau.merge.AOD.e1176_s1479_s1470_r3553_r3549/"
OUTPUTDATA="user.limbach.mc12_8TeV_170201_Pythia8_AU2CTEQ6L1_Zprime250tautau_e1176_s1479_s1470_r3553_r3549_$UNIQUEIDTOUSE.D3PD.root"
elif [ "$DATASETTOUSE" == "ZPrime750TauTau" ]; then
INPUTDATA="mc12_8TeV.170203.Pythia8_AU2CTEQ6L1_Zprime750tautau.merge.AOD.e1176_s1479_s1470_r3553_r3549/"
OUTPUTDATA="user.limbach.mc12_8TeV_170203_Pythia8_AU2CTEQ6L1_Zprime750tautau_e1176_s1479_s1470_r3553_r3549_$UNIQUEIDTOUSE.D3PD.root"
elif [ "$DATASETTOUSE" == "WTauNu" ]; then
INPUTDATA="mc12_8TeV.147812.Pythia8_AU2CTEQ6L1_Wtaunu.merge.AOD.e1176_s1479_s1470_r3553_r3549/"
OUTPUTDATA="user.limbach.mc12_8TeV_147812_Pythia8_AU2CTEQ6L1_Wtaunu_e1176_s1479_s1470_r3553_r3549_$UNIQUEIDTOUSE.D3PD.root"
# ### ### Attention ### This has not the same pdfs and reco tags as the ones above! ### #
elif [ "$DATASETTOUSE" == "ZMuMu" ]; then
INPUTDATA="mc12_8TeV.147807.PowhegPythia8_AU2CT10_Zmumu.merge.AOD.e1169_s1469_s1470_r3542_r3549/"
OUTPUTDATA="user.limbach.mc12_8TeV_147807_PowhegPythia8_AU2CT10_Zmumu_e1169_s1469_s1470_r3542_r3549_$UNIQUEIDTOUSE.D3PD.root"
elif [ "$DATASETTOUSE" == "ZMuMuNp1pt20Jimmy" ]; then
INPUTDATA="mc12_8TeV.107661.AlpgenJimmy_AUET2CTEQ6L1_ZmumuNp1.merge.AOD.e1218_s1469_s1470_r3542_r3549/"
OUTPUTDATA="user.limbach.mc12_8TeV_107661_AlpgenJimmy_AUET2CTEQ6L1_ZmumuNp1_e1218_s1469_s1470_r3542_r3549_$UNIQUEIDTOUSE.D3PD.root"
# ### ### Marks AOD with Pi0 Tag ### ### #
elif [ "$DATASETTOUSE" == "ZTauTau6M_Mark" ]; then
INPUTDATA="user.mhodgkin.20121123181942.2368/"
OUTPUTDATA="user.limbach.ZTauTau_6M_AODfromMark_$UNIQUEIDTOUSE.D3PD.root"
elif [ "$DATASETTOUSE" == "ZTauTau_bwinter" ]; then
INPUTDATA="user.bwinter.TauPi0RecESD2ESD.147818.Pythia8_AU2CTEQ6L1_Ztautau.recon.ESD.e1176_s1479_s1470_r3553_tid778651_00.v00-00/"
OUTPUTDATA="user.limbach.TauPi0RecESD2ESD.147818.Pythia8_AU2CTEQ6L1_Ztautau.recon.ESD.e1176_s1479_s1470_r3553_tid778651_$UNIQUEIDTOUSE.D3PD.root"
elif [ "$DATASETTOUSE" == "ZTauTau_bwinter2" ]; then
INPUTDATA="user.bwinter.TauPi0RecESD2ESD.147818.Pythia8_AU2CTEQ6L1_Ztautau.recon.ESD.e1176_s1479_s1470_r3553_tid00999072_00.v00-01/"
OUTPUTDATA="user.limbach.TauPi0RecESD2ESD.147818.Pythia8_AU2CTEQ6L1_Ztautau.recon.ESD.e1176_s1479_s1470_r3553_tid00999072_$UNIQUEIDTOUSE.D3PD.root"
# ### Data ### #
elif [ "$DATASETTOUSE" == "Data201556Muons" ]; then
INPUTDATA="data12_8TeV.00201556.physics_Muons.merge.AOD.f437_m1126"
OUTPUTDATA="user.limbach.data12_8TeV_00201556_physics_Muons_f437_m1126_$UNIQUEIDTOUSE.D3PD.root"
elif [ "$DATASETTOUSE" == "Data12PeriodA" ]; then
INPUTDATA="data12_8TeV.periodA.physics_Muons.PhysCont.AOD.t0pro13_v01/"
OUTPUTDATA="user.limbach.data12_8TeV_periodA_physics_Muons_t0pro13_v01_$UNIQUEIDTOUSE.D3PD.root"
else
echo "ERROR The sample $DATASETTOUSE is not valid."
VALIDSAMPLE="false"
fi
if [ "$VALIDSAMPLE" = "true" ]; then
#############################################
# Submission
#
#############################################
#Get command line options correct:
JOBOPTIONS=" "$JOBOPTIONSDIR$JOBOPTIONSFILE
GBPERJOB=" --nGBPerJob=MAX"
SITE=" --site="$THESITE
TMPDIR=" --tmpDir=/tmp"
FILESPERJOB=" --nFilesPerJob=1"
EXCLUDED=" --excludedSite="$EXCLUDEDSITES
USECLOUD=" --cloud="$CLOUD
INDS=" --inDS="$INPUTDATA
OUTDS=" --outDS="$OUTPUTDATA
#get number of files correct
MAXFILES=""
if [ "$NMAXFILES" = "-1" ]; then
MAXFILES=""
else
MAXFILES=" --nFiles="$NMAXFILES
fi
#get destination site correct
DESTSE=""
if [ "$DESTINATIONSITE" = "" ]; then
DESTSE=""
else
DESTSE=" --destSE="$DESTINATIONSITE
fi
echo "INFO ___________________________________________"
echo "INFO "
echo "INFO Submitting a job to panda..."
echo "INFO Options:"
echo "INFO $JOBOPTIONS"
echo "INFO $GBPERJOB"
echo "INFO $SITE"
echo "INFO $TMPDIR"
echo "INFO $FILESPERJOB"
echo "INFO $EXCLUDED"
echo "INFO $USECLOUD"
echo "INFO $MAXFILES"
echo "INFO $DESTSE"
echo "INFO $INDS"
echo "INFO $OUTDS"
echo "INFO ___________________________________________"
echo "INFO "
TRAFOCOMMAND_LOCAL=""
TRAFOCOMMAND_GRID=""
TRAFOCOMMAND_LOCAL="athena.py "$JOBOPTIONS
USESHORTLIVED=" --useShortLivedReplicas"
# TRAFOCOMMAND_GRID="pathena"${GBPERJOB}${TMPDIR}${FILESPERJOB}${MAXFILES}${USESHORTLIVED}${SITE}${INDS}${OUTDS}${DESTSE}${JOBOPTIONS}
TRAFOCOMMAND_GRID="pathena"${GBPERJOB}${TMPDIR}${FILESPERJOB}${MAXFILES}${USESHORTLIVED}${INDS}${OUTDS}${DESTSE}${JOBOPTIONS}
if [ "$EXECUTEOPTION" = "local" ]; then
echo "INFO Will run athena locally to test..."
echo "INFO Command that is executed:"
echo "INFO $TRAFOCOMMAND_LOCAL"
$TRAFOCOMMAND_LOCAL
elif [ "$EXECUTEOPTION" = "grid" ]; then
echo "INFO Will submit pathena job"
echo "INFO Command that is executed:"
echo "INFO $TRAFOCOMMAND_GRID"
$TRAFOCOMMAND_GRID
else
echo "INFO Not submitting anything, only displaying commands:"
echo "INFO "
echo "INFO Local athena command:"
echo "INFO $TRAFOCOMMAND_LOCAL"
echo "INFO "
echo "INFO GRID command for pathena:"
echo "INFO $TRAFOCOMMAND_GRID"
echo "INFO "
fi
else
echo "ERROR No valid sample given!"
fi
echo "INFO End of script."
# end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment