diff --git a/PhysicsAnalysis/PanTauAnalysis/CMakeLists.txt b/PhysicsAnalysis/PanTauAnalysis/CMakeLists.txt deleted file mode 100644 index 83eb53458f01d69d505db5a69fe3a466ee511fb0..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/PanTauAnalysis/CMakeLists.txt +++ /dev/null @@ -1,21 +0,0 @@ -################################################################################ -# 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 ) - diff --git a/PhysicsAnalysis/PanTauAnalysis/python/Class_FeatureHandler.py b/PhysicsAnalysis/PanTauAnalysis/python/Class_FeatureHandler.py deleted file mode 100644 index 7d5d139231e191ffde50d85f299c1177243fe6f1..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/PanTauAnalysis/python/Class_FeatureHandler.py +++ /dev/null @@ -1,690 +0,0 @@ -# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration - -from __future__ import print_function - -import string - -class FeatureHandler: - - def getFeatureNames(self): - listFeatNames = [] - for iFeature in self.m_Feature_Names: - listFeatNames += [self.m_Feature_Names[iFeature]] - return listFeatNames - #end getFeatureNames - - def getFeatureTypes(self): - listFeatTypes = [] - for iFeature in self.m_Feature_Types: - listFeatTypes += [self.m_Feature_Types[iFeature]] - return listFeatTypes - #end getFeatureTypes - - def getFeatureDefaultValues(self): - listFeatDefaults = [] - for iFeature in self.m_Feature_Defaults: - listFeatDefaults += [self.m_Feature_Defaults[iFeature]] - return listFeatDefaults - #end getFeatureDefaultValues - - def addToFeatures(self, theBaseName, theVarTypeName, theFeatureType, defaultValueOverride=0): - """ Add a single feature with given name, type and default value """ - - #set feature name and default value - featureName = theVarTypeName + "_" + theBaseName - defaultValue = self.m_DefaultValues[theVarTypeName] - if defaultValueOverride != 0: - defaultValue = defaultValueOverride - - #add to features - self.m_Feature_Names[featureName] = featureName - self.m_Feature_Defaults[featureName] = defaultValue - self.m_Feature_Types[featureName] = theFeatureType - #end addToFeatures - - def addToFeatures_FullName(self, completeFeatureName, theVarTypeName, theFeatureType, defaultValueOverride=0): - #set feature name and default value - featureName = completeFeatureName - defaultValue = self.m_DefaultValues[theVarTypeName] - if defaultValueOverride != 0: - defaultValue = defaultValueOverride - - #add to features - self.m_Feature_Names[featureName] = featureName - self.m_Feature_Defaults[featureName] = defaultValue - self.m_Feature_Types[featureName] = theFeatureType - #end addToFeatures_FullName - - - def addToFeatures_AllTypes(self, theBaseName, theVarTypeName, theFeatureType, defaultValueOverride=0): - """ Add the feature described by theName, theType and theDefault for all known constituent types""" - - #set default value - defaultValue = self.m_DefaultValues[theVarTypeName] - if defaultValueOverride != 0: - defaultValue = defaultValueOverride - - #fill feature for all types - for iConstType in self.m_ConstituentTypes: - featureName = iConstType + "_" + theVarTypeName + "_" + theBaseName - - self.m_Feature_Names[featureName] = featureName - self.m_Feature_Defaults[featureName] = defaultValue - self.m_Feature_Types[featureName] = theFeatureType - #end loop over types - #end addToFeatures_AllTypes - - - def addToFeatures_AllTypes_AllEnergyVariants(self, theBaseName, theVarTypeName, theFeatureType, defaultValueOverride=0): - """ Add the feature described by theName, theType and theDefault for all known constituent types""" - for iEnergyType in self.m_EnergyVariantsList: - featureName = theBaseName + iEnergyType - self.addToFeatures_AllTypes(featureName, theVarTypeName, theFeatureType, defaultValueOverride) - #end loop over energy types - #end addToFeatures_AllTypes - - def __init__(self): - - #setup the varType prefixes - # they are passed to the feature extractor later on - avoids errors due to typos - self.m_VarTypeName_Sum = "Sum" - self.m_VarTypeName_Ratio = "Ratio" - self.m_VarTypeName_EtInRing = "EtInRing" - self.m_VarTypeName_Isolation = "Isolation" - self.m_VarTypeName_Num = "Num" - self.m_VarTypeName_Mean = "Mean" - self.m_VarTypeName_StdDev = "StdDev" - self.m_VarTypeName_HLV = "HLV" - self.m_VarTypeName_Angle = "Angle" - self.m_VarTypeName_DeltaR = "DeltaR" - self.m_VarTypeName_JetMoment = "JetMoment" - self.m_VarTypeName_Combined = "Combined" - self.m_VarTypeName_JetShape = "JetShape" - self.m_VarTypeName_ImpactParams = "ImpactParams" - self.m_VarTypeName_Basic = "Basic" - self.m_VarTypeName_PID = "PID" - self.m_VarTypeName_Shots = "Shots" - - #setup the default values for the different variable types - self.m_DefaultValues = {} - self.m_DefaultValues[self.m_VarTypeName_Sum] = -4000.0 - self.m_DefaultValues[self.m_VarTypeName_Ratio] = -0.2 - self.m_DefaultValues[self.m_VarTypeName_EtInRing] = -1000.0 - self.m_DefaultValues[self.m_VarTypeName_Isolation] = -0.2 - self.m_DefaultValues[self.m_VarTypeName_Num] = -5.0 - self.m_DefaultValues[self.m_VarTypeName_Mean] = -0.2 - self.m_DefaultValues[self.m_VarTypeName_StdDev] = -0.2 - self.m_DefaultValues[self.m_VarTypeName_HLV] = -4000.0 - self.m_DefaultValues[self.m_VarTypeName_Angle] = -0.2 - self.m_DefaultValues[self.m_VarTypeName_DeltaR] = -0.2 - self.m_DefaultValues[self.m_VarTypeName_JetMoment] = -0.2 - self.m_DefaultValues[self.m_VarTypeName_Combined] = -10.0 - self.m_DefaultValues[self.m_VarTypeName_JetShape] = -2.0 - self.m_DefaultValues[self.m_VarTypeName_ImpactParams] = -100. - self.m_DefaultValues[self.m_VarTypeName_Basic] = -5.0 - self.m_DefaultValues[self.m_VarTypeName_PID] = -9.0 - self.m_DefaultValues[self.m_VarTypeName_Shots] = -2.0 - - #setup the constituent types - self.m_ConstituentTypeName_All = "All" - self.m_ConstituentTypeName_Charged = "Charged" - self.m_ConstituentTypeName_Neutral = "Neutral" - self.m_ConstituentTypeName_Pi0Neut = "Pi0Neut" - self.m_ConstituentTypeName_OutNeut = "OuterNeut" - self.m_ConstituentTypeName_OutChrg = "OuterChrg" - self.m_ConstituentTypeName_NeutLowA = "NeutLowA" - self.m_ConstituentTypeName_NeutLowB = "NeutLowB" - - self.m_ConstituentTypes = [] - #baseline - self.m_ConstituentTypes += [self.m_ConstituentTypeName_Charged] - self.m_ConstituentTypes += [self.m_ConstituentTypeName_Neutral] - self.m_ConstituentTypes += [self.m_ConstituentTypeName_Pi0Neut] - #for testing - self.m_ConstituentTypes += [self.m_ConstituentTypeName_NeutLowA] - self.m_ConstituentTypes += [self.m_ConstituentTypeName_NeutLowB] - - self.m_EnergyVariantsList = [] - self.m_EnergyVariantsList += ["EtAllConsts"] - self.m_EnergyVariantsList += ["EtNeutLowA"] - self.m_EnergyVariantsList += ["EtNeutLowB"] - # ============================================== - - - #setup member variables to hold feature info - self.m_Feature_Names = {} - self.m_Feature_Defaults = {} - self.m_Feature_Types = {} - - #fill member variables - self.addSingleVariables() - self.addMultiplicities() - self.addFourMomentum() - self.addTypeSpecificFeatures_Num() - self.addTypeSpecificFeatures_PID() - self.addTypeSpecificFeatures_Shots() - self.addTypeSpecificFeatures_Ratios() - #self.addTypeSpecificFeatures_EtRings() #Note wrt EtRings and Isolations: - #self.addTypeSpecificFeatures_Isolations() # Move to different function in FeatureCalc - self.addTypeSpecificFeatures_Mean() - self.addTypeSpecificFeatures_StdDevs() - self.addTypeSpecificFeatures_HLV() - self.addTypeSpecificFeatures_Angle() - self.addTypeSpecificFeatures_DeltaR() - self.addTypeSpecificFeatures_JetMoment() - self.addCombinedFeatures_Single() - self.addCombinedFeatures_TypeVsType() - self.addCombinedFeatures_SelectedTypes() - self.addGenericJetFeatures() - self.addImpactParameterFeatures() - - #end init - - - def dump(self): - print("config_FeatureCalculator: Dumping features:") - for iFeature in sorted(self.m_Feature_Names.keys()): - featName = self.m_Feature_Names[iFeature] - featType = self.m_Feature_Types[iFeature] - featDefault = self.m_Feature_Defaults[iFeature] - print("\t" + string.ljust(featName, 50) + " of type " + featType + " defaults to " + string.rjust(str(featDefault), 10) ) - #print("\t" + featName + " of type " + featType + " defaults to " + str(featDefault) ) - #end for over features - print("config_FeatureCalculator: Done dumping features") - #end dump - - - def addSingleVariables(self): - Variables = [] - Variables += ["isPanTauCandidate"] - Variables += ["RecoMode"] - Variables += ["RecoMode_PanTau"] - Variables += ["BDTValue_1p0n_vs_1p1n"] - Variables += ["BDTValue_1p1n_vs_1pXn"] - Variables += ["BDTValue_3p0n_vs_3pXn"] - Variables += ["SumCharge"] - Variables += ["AbsCharge"] - for iVar in Variables: - curDefVal = self.m_DefaultValues[self.m_VarTypeName_Basic] - if iVar == "isPanTauCandidate": - curDefVal = 0 - if iVar == "RecoMode" or iVar == "RecoMode_PanTau": - curDefVal = -10 - self.addToFeatures(iVar, self.m_VarTypeName_Basic, "F", curDefVal) - #end loop over variables - #end def addSingleVariables - - - def addMultiplicities(self): - Variables = self.m_ConstituentTypes - - for iVar in Variables: - featName = "N" + iVar + "Consts" - self.addToFeatures(featName, self.m_VarTypeName_Basic, "F") - #end loop over variables - - #add the inclusive one - self.addToFeatures("N" + self.m_ConstituentTypeName_All + "Consts", self.m_VarTypeName_Basic, "F") - self.addToFeatures("N" + self.m_ConstituentTypeName_OutChrg + "Consts", self.m_VarTypeName_Basic, "F") - self.addToFeatures("N" + self.m_ConstituentTypeName_OutNeut + "Consts", self.m_VarTypeName_Basic, "F") - - #end def addMultiplicities - - - def addFourMomentum(self): - Variables = [] - Variables += ["pt"] - Variables += ["eta"] - Variables += ["phi"] - Variables += ["m"] - - Types = [] - Types += ["ProtoMomentumCore"] - Types += ["ProtoMomentumWide"] - #Types += ["ValMomCore2GeV"] - - - for iVar in Variables: - for iType in Types: - curFeatName = iType + "_" + iVar - curDefVal = -4000. - if iVar == "eta" or iVar == "phi": - curDefVal = -9. - if iVar == "m": - curDefVal = -200. - self.addToFeatures(curFeatName, self.m_VarTypeName_Basic, "F", curDefVal) - #end loop types - #end loop vars - #end def addFourMomentum - - - def addTypeSpecificFeatures_Num(self): - Variables = [] - Variables += ["ConstsIn00To01"] - Variables += ["ConstsIn01To02"] - Variables += ["ConstsIn02To03"] - Variables += ["ConstsIn03To04"] - for iVar in Variables: - self.addToFeatures_AllTypes(iVar, self.m_VarTypeName_Num, "F") - #end addTypeSpecificFeatures - - - def addTypeSpecificFeatures_PID(self): - Variables = [] - Variables += ["BDTValues"] - Variables += ["BDTValuesSum"] - - Sorts = [] - Sorts += ["BDTSort"] - Sorts += ["EtSort"] - - MaxNum = 4 - - for iVar in Variables: - for iSort in Sorts: - for iNum in range(1, MaxNum): - featName = iVar + "_" + iSort + "_" + str(iNum) - self.addToFeatures_AllTypes(featName, self.m_VarTypeName_PID, "F") - #end loop over num - #end loop over sort - #end loop over variables - #end addTypeSpecificFeatures - - - def addTypeSpecificFeatures_Shots(self): - Variables = [] - Variables += ["nPhotons"] - Variables += ["nShots"] - Variables += ["SumShots_Et"] - Variables += ["SumShots_Eta"] - Variables += ["SumShots_Phi"] - Variables += ["SumShots_M"] - Variables += ["ConstDeltaRToSumShots"] - Variables += ["EtSumShotsOverConstEt"] - Variables += ["TauDeltaRToSumShots"] - Variables += ["EtSumShotsOverTauEt"] - - Sorts = [] - Sorts += ["BDTSort"] - - MaxNum = 4 - - for iVar in Variables: - for iSort in Sorts: - for iNum in range(1, MaxNum): - featName = iVar + "_" + iSort + "_" + str(iNum) - curDefVal = self.m_DefaultValues[self.m_VarTypeName_Shots] - if iVar == "Et": - curDefVal = -1000 - if iVar == "Eta" or iVar == "Phi": - curDefVal = -8 - if iVar == "M": - curDefVal = -200 - - self.addToFeatures_FullName(self.m_ConstituentTypeName_Neutral + "_" + self.m_VarTypeName_Shots + "_" + featName, self.m_VarTypeName_Shots, "F", curDefVal) - self.addToFeatures_FullName(self.m_ConstituentTypeName_Pi0Neut + "_" + self.m_VarTypeName_Shots + "_" + featName, self.m_VarTypeName_Shots, "F", curDefVal) - self.addToFeatures_FullName(self.m_ConstituentTypeName_NeutLowA + "_" + self.m_VarTypeName_Shots + "_" + featName, self.m_VarTypeName_Shots, "F", curDefVal) - self.addToFeatures_FullName(self.m_ConstituentTypeName_NeutLowB + "_" + self.m_VarTypeName_Shots + "_" + featName, self.m_VarTypeName_Shots, "F", curDefVal) - #end loop over iNum - #end loop over sorts - #end loop over variables - - Variables = [] - Variables += ["MaxDeltaRSumShotToConst"] - Variables += ["MinDeltaRSumShotToConst"] - Variables += ["MaxDeltaRSumShotToTau"] - Variables += ["MinDeltaRSumShotToTau"] - Variables += ["DeltaRAllShotsToTau"] - Variables += ["EtAllShotsOverEtTau"] - Variables += ["NShotsInSeed"] - Variables += ["NPhotonsInSeed"] - Variables += ["BestDiShotMass"] - Variables += ["MinDiShotMass"] - Variables += ["MaxDiShotMass"] - for iVar in Variables: - featName = iVar - curDefVal = self.m_DefaultValues[self.m_VarTypeName_Shots] - if iVar == "BestDiShotMass" or iVar == "MinDiShotMass" or iVar == "MaxDiShotMass": - curDefVal = -200 - - self.addToFeatures_FullName(self.m_ConstituentTypeName_Neutral + "_" + self.m_VarTypeName_Shots + "_" + featName, self.m_VarTypeName_Shots, "F", curDefVal) - self.addToFeatures_FullName(self.m_ConstituentTypeName_Pi0Neut + "_" + self.m_VarTypeName_Shots + "_" + featName, self.m_VarTypeName_Shots, "F", curDefVal) - self.addToFeatures_FullName(self.m_ConstituentTypeName_NeutLowA + "_" + self.m_VarTypeName_Shots + "_" + featName, self.m_VarTypeName_Shots, "F", curDefVal) - self.addToFeatures_FullName(self.m_ConstituentTypeName_NeutLowB + "_" + self.m_VarTypeName_Shots + "_" + featName, self.m_VarTypeName_Shots, "F", curDefVal) - - #end loop over variables - #end addTypeSpecificFeatures_Shots - - def addTypeSpecificFeatures_Ratios(self): - - Variables_WithEnergyTypes = [] - Variables_WithEnergyTypes += ["EtOver"] - Variables_WithEnergyTypes += ["1stEtOver"] - Variables_WithEnergyTypes += ["1stBDTEtOver"] - for iVar in Variables_WithEnergyTypes: - self.addToFeatures_AllTypes_AllEnergyVariants(iVar, self.m_VarTypeName_Ratio, "F") - #end loop over variables with energy types - - Variables = [] - Variables += ["1stEtOverTypeEt"] - Variables += ["1stBDTEtOverTypeEt"] - Variables += ["EFOsOverTotalEFOs"] - Variables += ["Log1stEtOver2ndEt"] - Variables += ["Log1stEtOver3rdEt"] - Variables += ["Log2ndEtOver3rdEt"] - Variables += ["Log1stEtOver2ndEt_BDTSort"] - Variables += ["Log1stEtOver3rdEt_BDTSort"] - Variables += ["Log2ndEtOver3rdEt_BDTSort"] - for iVar in Variables: - self.addToFeatures_AllTypes(iVar, self.m_VarTypeName_Ratio, "F") - #end loop over variables with energy types - #end addTypeSpecificFeatures_Ratios - - - def addTypeSpecificFeatures_EtRings(self): - Variables = [] - Variables += ["00To01"] - Variables += ["01To02"] - Variables += ["02To03"] - Variables += ["03To04"] - Variables += ["04To05"] - for iVar in Variables: - completeFeatureName = self.m_ConstituentTypeName_All + "_" + self.m_VarTypeName_EtInRing + "_" + iVar - self.addToFeatures_FullName(completeFeatureName, self.m_VarTypeName_EtInRing, "F") - #end loop over variables - #end addTypeSpecificFeatures_EtRings - - - def addTypeSpecificFeatures_Isolations(self): - Variables = [] - Variables += ["EtIn01Over"] - Variables += ["EtIn02Over"] - Variables += ["EtIn03Over"] - Variables += ["EtIn04Over"] - Variables += ["EtIn00To02Over"] - Variables += ["EtIn02To04Over"] - - for iVar in Variables: - for iEnergyType in self.m_EnergyVariantsList: - completeFeatureName = self.m_ConstituentTypeName_All + "_" + self.m_VarTypeName_Isolation + "_" + iVar + iEnergyType - self.addToFeatures_FullName(completeFeatureName, self.m_VarTypeName_Isolation, "F") - #end loop over variables - - Variables = [] - Variables += ["EtIn01OverEtIn02"] - Variables += ["EtIn01OverEtIn04"] - for iVar in Variables: - completeFeatureName = self.m_ConstituentTypeName_All + "_" + self.m_VarTypeName_Isolation + iVar - self.addToFeatures_FullName(completeFeatureName, self.m_VarTypeName_Isolation, "F") - #end loop over variables - - #end addTypeSpecificFeatures_Isolations - - - def addTypeSpecificFeatures_Mean(self): - Variables_WithEnergyTypes = [] - Variables_WithEnergyTypes += ["Et_Wrt"] - Variables_WithEnergyTypes += ["DRToJetAxis_Wrt"] - Variables_WithEnergyTypes += ["DRToLeading_Wrt"] - for iVar in Variables_WithEnergyTypes: - self.addToFeatures_AllTypes_AllEnergyVariants(iVar, self.m_VarTypeName_Mean, "F") - #end loop over variables - #end addTypeSpecificFeatures_Mean - - - def addTypeSpecificFeatures_StdDevs(self): - Variables = [] - Variables += ["E"] - Variables += ["Et"] - Variables += ["DRToJetAxis"] - Variables += ["DRToLeading"] - for iVar in Variables: - self.addToFeatures_AllTypes(iVar, self.m_VarTypeName_StdDev, "F") - #end loop over variables - - Variables_WithEnergyTypes = [] - Variables_WithEnergyTypes += ["Et_Wrt"] - for iVar in Variables_WithEnergyTypes: - self.addToFeatures_AllTypes_AllEnergyVariants(iVar, self.m_VarTypeName_StdDev, "F") - #end addTypeSpecificFeatures_StdDevs - - - def addTypeSpecificFeatures_HLV(self): - Variables = [] - Variables += ["SumPt"] - Variables += ["SumEta"] - Variables += ["SumPhi"] - Variables += ["SumM"] - for iVar in Variables: - curDefVal = -4000. - if iVar == "SumEta" or iVar == "SumPhi": - curDefVal = -9. - if iVar == "SumM": - curDefVal = -200. - self.addToFeatures_AllTypes(iVar, self.m_VarTypeName_HLV, "F", curDefVal) - - # also add the OutChrg and OutNeut - featName = self.m_ConstituentTypeName_OutChrg + "_" + self.m_VarTypeName_HLV + "_" + iVar - self.addToFeatures_FullName(featName, self.m_VarTypeName_HLV, "F", curDefVal) - - featName = self.m_ConstituentTypeName_OutNeut + "_" + self.m_VarTypeName_HLV + "_" + iVar - self.addToFeatures_FullName(featName, self.m_VarTypeName_HLV, "F", curDefVal) - - #end loop over variables - - VariablesVec = [] - VariablesVec += ["Constituents_pt"] - VariablesVec += ["Constituents_eta"] - VariablesVec += ["Constituents_phi"] - VariablesVec += ["Constituents_m"] - - VariablesVecSort = [] - VariablesVecSort += ["EtSort"] - VariablesVecSort += ["BDTSort"] - - for iSort in VariablesVecSort: - for iVecVar in VariablesVec: - featName = iSort + "_" + iVecVar - curDefVal = -4000. - if iVecVar == "Constituents_eta" or iVecVar == "Constituents_phi": - curDefVal = -9. - if iVecVar == "Constituents_m": - curDefVal = -200. - self.addToFeatures_AllTypes(featName, self.m_VarTypeName_HLV, "V", curDefVal) - - # also add the OutChrg and OutNeut - featName = self.m_ConstituentTypeName_OutChrg + "_" + self.m_VarTypeName_HLV + "_" + iSort + "_" + iVecVar - self.addToFeatures_FullName(featName, self.m_VarTypeName_HLV, "V", curDefVal) - - featName = self.m_ConstituentTypeName_OutNeut + "_" + self.m_VarTypeName_HLV + "_" + iSort + "_" + iVecVar - self.addToFeatures_FullName(featName, self.m_VarTypeName_HLV, "V", curDefVal) - - #end loop over variables - #end addTypeSpecificFeatures_HLV - - - def addTypeSpecificFeatures_Angle(self): - Variables = [] - Variables += ["ToJetAxis"] - Variables += ["1stToJetAxis"] - Variables += ["2ndToJetAxis"] - Variables += ["3rdToJetAxis"] - Variables += ["1stTo2nd"] - Variables += ["1stTo3rd"] - Variables += ["2ndTo3rd"] - Variables += ["MaxToJetAxis"] - Variables += ["MeanValue123"] - Variables += ["Btw1213Planes"] - for iVar in Variables: - self.addToFeatures_AllTypes(iVar, self.m_VarTypeName_Angle, "F") - #end loop over variables - #end addTypeSpecificFeatures_Angle - - - def addTypeSpecificFeatures_DeltaR(self): - Variables = [] - Variables += ["ToJetAxis"] - Variables += ["MaxToJetAxis"] - Variables += ["1stToJetAxis"] - Variables += ["2ndToJetAxis"] - Variables += ["3rdToJetAxis"] - Variables += ["1stTo2nd"] - Variables += ["1stTo3rd"] - Variables += ["2ndTo3rd"] - - Sorts = [] - Sorts += ["EtSort"] - Sorts += ["BDTSort"] - - for iSort in Sorts: - for iVar in Variables: - featName = iVar + "_" + iSort - self.addToFeatures_AllTypes(featName, self.m_VarTypeName_DeltaR, "F") - #end loop over variables - #end addTypeSpecificFeatures_DeltaR - - - def addTypeSpecificFeatures_JetMoment(self): - Variables = [] - Variables += ["EtDR"] - Variables += ["EtDRprime"] - Variables += ["EtDR2"] - Variables += ["EtAngle"] - Variables += ["EtDRxTotalEt"] - for iVar in Variables: - self.addToFeatures_AllTypes(iVar, self.m_VarTypeName_JetMoment, "F") - #end loop over variables - #end addTypeSpecificFeatures_JetMoment - - - def addCombinedFeatures_Single(self): - Variables = [] - Variables += ["NumChargedOverNumNeutral"] - Variables += ["NumChargedOverNumTotal"] - Variables += ["AnglePlane1stCharged1st2ndNeutral"] - Variables += ["FarthestNeutral_AngleToCharged"] - Variables += ["FarthestNeutral_BDTScore"] - Variables += ["FarthestNeutral_EtOverChargedEt"] - - for iVar in Variables: - self.addToFeatures(iVar, self.m_VarTypeName_Combined, "F") - #end loop over variables - #end addCombinedFeatures_Single - - - def addCombinedFeatures_TypeVsType(self): - Types = [] - Types += ["Charged"] - Types += ["Neutral"] - Types += ["Pi0Neut"] - - Variables = [] - Variables += [ ["Log1st", "EtOver", "Et"] ] - Variables += [ ["Log", "EtOver", "Et"] ] - Variables += [ ["Angle", "To", ""] ] - Variables += [ ["DeltaR1st", "To1st", ""] ] - Variables += [ ["Angle1st", "To1st", ""] ] - for iType in Types: - for jType in Types: - - #skip if types are equal - if iType == jType: - continue - - for iVar in Variables: - featName = iVar[0] + iType + iVar[1] + jType + iVar[2] - #if iVar[2] != "-": - #featName = featName + iVar[2] - self.addToFeatures(featName, self.m_VarTypeName_Combined, "F") - #end loop over variables - #end loop over jType - #end loop over iType - #end addCombinedFeatures_TypeVsType - - - def addCombinedFeatures_SelectedTypes(self): - iTypes = [] - iTypes += ["Charged"] - - jTypes = [] - jTypes += ["Pi0Neut"] - jTypes += ["Neutral"] - - Variables_WithEnergyTypes = [] - Variables_WithEnergyTypes += [ ["Mean", "Et_Wrt"] ] - - Variables = [] - Variables += [ ["InvMass", ""] ] - Variables += [ ["Angle1st2nd", ""] ] - for iType in iTypes: - for jType in jTypes: - - for iVar in Variables: - featName = iVar[0] + iType + jType + iVar[1] - self.addToFeatures(featName, self.m_VarTypeName_Combined, "F") - #end loop over variables - - for iVar in Variables_WithEnergyTypes: - featName = iVar[0] + iType + jType + iVar[1] - for iEnergyType in self.m_EnergyVariantsList: - featNameWithEnergy = featName + iEnergyType - self.addToFeatures(featNameWithEnergy, self.m_VarTypeName_Combined, "F") - #end loop over variables for energy types - - #end loop over jTypes - #end loop over iTypes - #end addCombinedFeatures_SelectedTypes - - - def addGenericJetFeatures(self): - Variables = [] - - #thrust and such - Variables += ["JetThrust"] - Variables += ["JetThrustMajor"] - Variables += ["JetThrustMinor"] - Variables += ["JetOblateness"] - Variables += ["JetSphericity"] - Variables += ["JetAplanarity"] - Variables += ["JetPlanarity"] - - #fox wolfram moments - Variables += ["JetFoxWolfram1"] - Variables += ["JetFoxWolfram1"] - Variables += ["JetFoxWolfram1"] - Variables += ["JetFoxWolfram1"] - Variables += ["JetFoxWolframRatioFW2OverFW1"] - Variables += ["JetFoxWolframRatioFW4pow4OverFW1"] - Variables += ["JetFoxWolframRatioFW234OverFW1pow4"] - Variables += ["JetFoxWolframRatioFW1PlusFW2OverFW4"] - - for iVar in Variables: - self.addToFeatures(iVar, self.m_VarTypeName_JetShape, "F") - #end loop over variables - #end addGenericJetFeatures - - - def addImpactParameterFeatures(self): - maxTrack = 4 - - Variables = [] - Variables += [ ["TransIPTrack", "_SortByEt"] ] - Variables += [ ["LongIPTrack", "_SortByEt"] ] - Variables += [ ["TransSignfIPTrack", "_SortByEt"] ] - Variables += [ ["LongSignfIPTrack", "_SortByEt"] ] - Variables += [ ["TransIP", "_SortByValue"] ] - Variables += [ ["TransSignfIP", "_SortByValue"] ] - - for iTrk in range(1, maxTrack): - for iVar in Variables: - featName = iVar[0] + str(iTrk) + iVar[1] - self.addToFeatures(featName, self.m_VarTypeName_ImpactParams, "F") - #end loop over variables - #end loop over tracks - #end addGenericJetFeatures - - -#end class config_FeatureCalculator - - - diff --git a/PhysicsAnalysis/PanTauAnalysis/python/Class_InformationHandler.py b/PhysicsAnalysis/PanTauAnalysis/python/Class_InformationHandler.py deleted file mode 100644 index 64ec8f763d81d3b3618666d029e91bd080588c40..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/PanTauAnalysis/python/Class_InformationHandler.py +++ /dev/null @@ -1,219 +0,0 @@ -# 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 - - - - diff --git a/PhysicsAnalysis/PanTauAnalysis/python/Config_PanTau.py b/PhysicsAnalysis/PanTauAnalysis/python/Config_PanTau.py deleted file mode 100644 index 027168d07565c50c699f76aa51b93ffb4c9b9f85..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/PanTauAnalysis/python/Config_PanTau.py +++ /dev/null @@ -1,560 +0,0 @@ -# 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 diff --git a/PhysicsAnalysis/PanTauAnalysis/python/PanTauDPDFlags.py b/PhysicsAnalysis/PanTauAnalysis/python/PanTauDPDFlags.py deleted file mode 100644 index fa6c3ac3e59649461d0d42d01fc6003ec6b9a2e9..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/PanTauAnalysis/python/PanTauDPDFlags.py +++ /dev/null @@ -1,144 +0,0 @@ -# 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 diff --git a/PhysicsAnalysis/PanTauAnalysis/python/PanTauFlags.py b/PhysicsAnalysis/PanTauAnalysis/python/PanTauFlags.py deleted file mode 100644 index de3612ea3c178a26b0b5b3db94c98a683adc0052..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/PanTauAnalysis/python/PanTauFlags.py +++ /dev/null @@ -1,99 +0,0 @@ -# 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 diff --git a/PhysicsAnalysis/PanTauAnalysis/python/PanTauJetBuilderAlg_Flags.py b/PhysicsAnalysis/PanTauAnalysis/python/PanTauJetBuilderAlg_Flags.py deleted file mode 100644 index d10669e04461539d15b40e8fc93d46fb69e3d299..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/PanTauAnalysis/python/PanTauJetBuilderAlg_Flags.py +++ /dev/null @@ -1,170 +0,0 @@ -# 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 diff --git a/PhysicsAnalysis/PanTauAnalysis/python/PanTauSeedBuilderAlg.py b/PhysicsAnalysis/PanTauAnalysis/python/PanTauSeedBuilderAlg.py deleted file mode 100644 index 69d50e1fbfa91700c3eefeb6ee4219673b08c184..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/PanTauAnalysis/python/PanTauSeedBuilderAlg.py +++ /dev/null @@ -1,265 +0,0 @@ -# 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 ) diff --git a/PhysicsAnalysis/PanTauAnalysis/python/PanTauSeedBuilderAlg_Flags.py b/PhysicsAnalysis/PanTauAnalysis/python/PanTauSeedBuilderAlg_Flags.py deleted file mode 100644 index e1369afdeaaf3c5ea63d21791906f3f26a177a35..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/PanTauAnalysis/python/PanTauSeedBuilderAlg_Flags.py +++ /dev/null @@ -1,393 +0,0 @@ -# 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 diff --git a/PhysicsAnalysis/PanTauAnalysis/python/PanTauValidationFlags.py b/PhysicsAnalysis/PanTauAnalysis/python/PanTauValidationFlags.py deleted file mode 100644 index 6e9af42ee340a66d956caabae0d20bf88c99cc6b..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/PanTauAnalysis/python/PanTauValidationFlags.py +++ /dev/null @@ -1,138 +0,0 @@ -# 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 diff --git a/PhysicsAnalysis/PanTauAnalysis/python/RunTimeHistConfig.py b/PhysicsAnalysis/PanTauAnalysis/python/RunTimeHistConfig.py deleted file mode 100644 index e1610dafa62ff5ee6b2100e9240e5cc82c2613d4..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/PanTauAnalysis/python/RunTimeHistConfig.py +++ /dev/null @@ -1,373 +0,0 @@ -# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration - -# @file: PanTauAnalysis/python/RunTimeHistos.py -# @purpose: Add a list of histograms to monitor variables in the seed builder - -from __future__ import print_function - -__doc__ = "Add a list of histograms to monitor variables in the seed builder" -__author__ = "C.Limbach" -#__version__= "$Revision: $" - - -def getRTHList(): - - #Note the hists have to be inside this variable: - RunTimeHisto_List = [] - - ########################################### - # CREATION OF HISTOGRAMS - # - # NOTE: The NameOfHisto must match the string assigned to a variable in the TauSeedBuilderAlg! - # NOTE: i.e. if a histo is created with - # RunTimeHisto_List += ['(X)ImportantVariable', '(X) itsXaxistitle', 100, 0.0, 1.0] - # where (for convenience) add the (X) bit like this: - # (G) for 'G'lobal variables that exist once per event - # (T) for 'T'au variables that exist once per tau - # (E) for 'E'FO variables that exist once per EFO - # (SY) for 'S'ingle variables that are filled with values directly (see below) - # In addition, specify whether this single variable is - # (G) per Event -> (SG) - # (T) per Tau -> (ST) - # (E) per EFO -> (SE) - # NOTE: for the x axis title, G, T or E should suffice, since the S is only for - # internal convenience. - - ########################################### - # FILLING OF HISTOGRAMS - # - # Filling is done in PanTauAlgs/src/TauSeedBuilderAlg.cxx - # Histograms are filled at the end of each event. - # The value that is to be filled has to be added to the RunTimeMonitoring by using - # m_RunTimeMonitoring->AddEventVariable("eventVar", eventVar); - # m_RunTimeMonitoring->AddTauVariable("tauVar", eventVar); - # m_RunTimeMonitoring->AddEFOVariable("efoVar", eventVar); - # - # Then, if FillHists() is invoked, it is looped through all the histograms given here in this - # file, and for each histogram it is searched for a variable (Event, Tau or EFO) with the same name. - # If such a variable is found (and this is the case if it has been added in the way described above), - # then its value will be filled into the histogram. - # Note that more than one value can be added to the variable (they are vectors) - # - # Since there can be more than one tau per event, you need to make sure, that - # m_RunTimeMonitoring->AddTau(); - # is called exactly once at the beginning of the loop over the tau seeds. - # Analogously, you need to call - # m_RunTimeMonitoring->AddEFO(); - # since a tau may consist of more than one EFO. - # - # There is also the possibility to fill histograms directly. This is done by (for instance) - # FillSingleHisto->("(SG)singleVar", 4711); - # FillSingleHisto->("(ST)singleVar", 4711); - # FillSingleHisto->("(SE)singleVar", 4711); - # NOTE: It is sufficient to fill the single variables like this, because the value is dumped - # into the hist directly. - # - # WARNING: If you use FillSingleHisto on a histo that is already filled with a variable - # that has been added by Add...Variable(...), you mess up your histograms! - # HOWEVER: If you stick with using the (X) prefix you should be save :) - # STILL: There is no protection in the framework to catch any errors you make in this context - - - ########################################### - # GLOBAL VARIABLES (i.e. once per event) - # - # RunTimeHisto_List += [['(G)', '(G)', , ,]] - RunTimeHisto_List += [['(G)Number_TausInTauContainer', '(G) N(#tau) in tauRec container', 101, -0.5, 100.5]] - RunTimeHisto_List += [['(G)Number_EFOsInEFOContainer', '(G) N(EFO) in eflow tauMode container', 201, -0.5, 200.5]] - RunTimeHisto_List += [['(G)Number_InputSeeds', '(G) Number of input seeds for PanTau', 101, -0.5, 100.5]] - RunTimeHisto_List += [['(G)Number_OutputSeeds', '(G) Number of output seeds', 101, -0.5, 100.5]] - RunTimeHisto_List += [['(G)Number_GoodSeeds', '(G) Number of good seeds', 101, -0.5, 100.5]] - RunTimeHisto_List += [['(G)Number_BadSeeds', '(G) Number of bad seeds', 101, -0.5, 100.5]] - RunTimeHisto_List += [['(G)Number_BadSeeds_Invalid', '(G) Number of bad seeds due to invalid seeds', 101, -0.5, 100.5]] - RunTimeHisto_List += [['(G)Number_BadSeeds_FailPresel', '(G) Number of bad seeds due to failed preselection', 101, -0.5, 100.5]] - RunTimeHisto_List += [['(G)Number_InputSeeds-OutputSeeds', '(G) N(input seeds) - N(output seeds)', 41, -20.5, 20.5]] - RunTimeHisto_List += [['(G)Number_Used_EFOs_Sum', '(G) N(EFOs used) sum-region', 151, -0.5, 150.5]] - RunTimeHisto_List += [['(G)Number_Used_EFOs_Core', '(G) N(EFOs used) core-region', 151, -0.5, 150.5]] - RunTimeHisto_List += [['(G)Number_EFOsAvailable-EFOsUsed_Sum', '(G) N(EFOs) - N(EFOs used)', 171, -20.5, 150.5]] - RunTimeHisto_List += [['(G)Number_EFOsAvailable-EFOsUsed_Core', '(G) N(EFOs) - N(EFOs used core)', 171, -20.5, 150.5]] - RunTimeHisto_List += [['(G)EventsWithInvalidTauSeedsOnly', '(G) All (x) tauRecs invalid', 21, -0.5, 20.5]] - - RunTimeHisto_List += [['(G)Vicinity_DeltaRBetweenTauRecCandidates', '(G) #Delta R(#tau^{tauRec}_{i}, #tau^{tauRec}_{j})', 400, 0.0, 8.0]] - RunTimeHisto_List += [['(G)Vicinity_DeltaRMinTauRecsForSingleTauRecCand', '(G) #Delta R_{min}(#tau^{tauRec}_{i}, #tau^{tauRec}_{j}) for each #tau^{tauRec}', 400, 0.0, 8.0]] - RunTimeHisto_List += [['(G)Vicinity_DeltaRMinTauRecsInEvent', '(G) #Delta R_{min}(#tau^{tauRec}_{i}, #tau^{tauRec}_{j}) in event', 400, 0.0, 8.0]] - - RunTimeHisto_List += [['(G)Usage_UnusedEFO_n', '(G) Number of unused EFO in event', 40, -0.5, 39.5]] - RunTimeHisto_List += [['(G)Usage_UnusedEFO_nCharged', '(G) Number of unused EFO^{#pm} in event', 40, -0.5, 39.5]] - RunTimeHisto_List += [['(G)Usage_UnusedEFO_nNeutral', '(G) Number of unused EFO^{0} in event', 40, -0.5, 39.5]] - RunTimeHisto_List += [['(G)Usage_UnusedEFO_nInCone', '(G) Number of unused EFOs inside 0.4 wrt tauSeed', 40, -0.5, 39.5]] - RunTimeHisto_List += [['(G)Usage_UnusedEFO_nOutOfCone', '(G) Number of unused EFOs outside 0.4 wrt tauSeed', 40, -0.5, 39.5]] - RunTimeHisto_List += [['(G)Usage_UnusedEFO_nOutClusters-nUnused', '(G) N(clusters outside 0.4 wrt tauSeed) - N(unused EFOs)', 41, -20.5, 20.5]] - - RunTimeHisto_List += [['(G)Usage_Unused_MinDrTau', '(G) #Delta R_{min}(EFO_{unused}, #tau)', 200, 0.3, 0.7]] - RunTimeHisto_List += [['(G)Usage_Unused_MoreUnusedThanCluster_MinDrTau', '(G) #Delta R_{min}(EFO_{unused}, #tau) for N(EFO_{unused}) > N(outcluster)', 200, 0.3, 0.7]] - RunTimeHisto_List += [['(G)Usage_Unused_EqualUnusedThanCluster_MinDrTau', '(G) #Delta R_{min}(EFO_{unused}, #tau) for N(EFO_{unused}) = N(outcluster)', 200, 0.3, 0.7]] - RunTimeHisto_List += [['(G)Usage_Unused_LessUnusedThanCluster_MinDrTau', '(G) #Delta R_{min}(EFO_{unused}, #tau) for N(EFO_{unused}) < N(outcluster)', 200, 0.3, 0.7]] - - - ########################################### - # TAU VARIABLES (i.e. once per tau) - # - # RunTimeHisto_List += [['(T)', '(T)', , ,]] - RunTimeHisto_List += [['(T)InSeed_IsValid', '(T) Input Seed is valid', 4, -1.5, 2.5]] - RunTimeHisto_List += [['(T)InSeed_NullTau', '(T) Input seed has null pointer to #tau_{tauRec}', 4, -1.5, 2.5]] - RunTimeHisto_List += [['(T)InSeed_BadNumTrack', '(T) Input Seed has bad numTrack', 4, -1.5, 2.5]] - RunTimeHisto_List += [['(T)InSeed_FlawedPt', '(T) Input Seed has bad p_{T}', 4, -1.5, 2.5]] - RunTimeHisto_List += [['(T)InSeed_FlawedPtNullJet', '(T) Input Seed has bad p_{T} and null jet pointer', 4, -1.5, 2.5]] - RunTimeHisto_List += [['(T)InSeed_FlawedPtBadJetPt', '(T) Input Seed has bad p_{T} and its jet too', 4, -1.5, 2.5]] - RunTimeHisto_List += [['(T)InSeed_numTrackAll', '(T) numTrack of all input tauRec seeds', 21, -0.5, 20.5]] - RunTimeHisto_List += [['(T)InSeed_numTrackValid', '(T) numTrack of valid input tauRec seeds', 21, -0.5, 20.5]] - - RunTimeHisto_List += [['(T)InSeedClus_DeltaRTauJetClusterToTauJet', '(T) #Delta R(#tau^{jet}_{cluster i}, #tau^{jet})', 400, 0.0, 8.0]] - RunTimeHisto_List += [['(T)InSeedClus_DeltaRTauJetClusterToTauSeed', '(T) #Delta R(#tau^{jet}_{cluster i}, #tau^{seed})', 400, 0.0, 8.0]] - RunTimeHisto_List += [['(T)InSeedClus_DeltaRMaxTauJetClusterToTauJet', '(T) #Delta R_{max}(#tau^{jet}_{cluster i}, #tau^{jet})', 400, 0.0, 8.0]] - RunTimeHisto_List += [['(T)InSeedClus_DeltaRMaxTauJetClusterToTauSeed', '(T) #Delta R_{max}(#tau^{jet}_{cluster i}, #tau^{jet})', 400, 0.0, 8.0]] - RunTimeHisto_List += [['(T)InSeedClus_NClusterOutsideCollectionConeWrtSeed','(T) N(clusters) in tau outside of EFO collection cone wrt. Tau', 52, -1.5, 50.5]] - RunTimeHisto_List += [['(T)InSeedClus_NClusterOutsideCollectionConeWrtJet', '(T) N(clusters) in tau outside of EFO collection cone wrt. Jet', 52, -1.5, 50.5]] - - RunTimeHisto_List += [['(T)InSeedClus_DeltaRMaxTauJetValidClusterToTauJet', '(T) #Delta R_{max}(#tau^{jet}_{cluster i}, #tau^{jet}) for E_{T}(cluster)>0.1 GeV', 400, 0.0, 8.0]] - RunTimeHisto_List += [['(T)InSeedClus_DeltaRMaxTauJetValidClusterToTauSeed', '(T) #Delta R_{max}(#tau^{jet}_{cluster i}, #tau^{jet}) for E_{T}(cluster)>0.1 GeV', 400, 0.0, 8.0]] - RunTimeHisto_List += [['(T)InSeedClus_NValidClusterOutsideCollectionConeWrtSeed','(T) N(clusters, E_{T}>0.1GeV) in tau outside of EFO collection cone wrt. Tau', 52, -1.5, 50.5]] - RunTimeHisto_List += [['(T)InSeedClus_NValidClusterOutsideCollectionConeWrtJet', '(T) N(clusters, E_{T}>0.1GeV) in tau outside of EFO collection cone wrt. Jet', 52, -1.5, 50.5]] - - - RunTimeHisto_List += [['(T)InSeedTrak_DeltaRTauSeedTrackToTauSeed', '(T) #Delta R(#tau^{seed}_{track i}, #tau^{seed})', 400, 0.0, 8.0]] - RunTimeHisto_List += [['(T)InSeedTrak_DeltaRMaxTauSeedTrackToTauSeed', '(T) #Delta R_{max}(#tau^{seed}_{track i}, #tau^{seed})', 400, 0.0, 8.0]] - RunTimeHisto_List += [['(T)InSeedTrak_NTracksOutsideCollectionConeWrtSeed', '(T) N(tracks) in tau outside of EFO collection cone wrt. Seed', 52, -1.5, 50.5]] - - RunTimeHisto_List += [['(T)InSeedTrak_DeltaRTauSeedTrackToTauJet', '(T) #Delta R(#tau^{seed}_{track i}, #tau^{jet})', 400, 0.0, 8.0]] - RunTimeHisto_List += [['(T)InSeedTrak_DeltaRMaxTauSeedTrackToTauJet', '(T) #Delta R_{max}(#tau^{seed}_{track i}, #tau^{jet})', 400, 0.0, 8.0]] - RunTimeHisto_List += [['(T)InSeedTrak_NTracksOutsideCollectionConeWrtJet', '(T) N(tracks) in tau outside of EFO collection cone wrt. Jet', 52, -1.5, 50.5]] - - - RunTimeHisto_List += [['(T)AllTauRec_AssociatedEFOs', '(T) Associated EFOs for tauRec with any numTrack', 21, -0.5, 20.5]] - RunTimeHisto_List += [['(T)AllTauRec_AssociatedChargedEFOs', '(T) Associated charged EFOs for tauRec with any numTrack', 21, -0.5, 20.5]] - RunTimeHisto_List += [['(T)AllTauRec_AssociatedNeutralEFOs', '(T) Associated neutral EFOs for tauRec with any numTrack', 21, -0.5, 20.5]] - RunTimeHisto_List += [['(T)AllTauRec_DeltaRSeedToClosestAssocEFO', '(T) #Delta R of associated EFO closest to tauRec with any numTrack', 400, 0.0, 8.0]] - RunTimeHisto_List += [['(T)AllTauRec_DeltaRSeedToFarestAssocEFO', '(T) #Delta R of associated EFO farest from tauRec with any numTrack', 400, 0.0, 8.0]] - RunTimeHisto_List += [['(T)AllTauRec_DeltaRSeedToFarestAssocChrgEFO', '(T) #Delta R of associated EFO^{#pm} farest from tauRec with any numTrack', 400, 0.0, 8.0]] - RunTimeHisto_List += [['(T)AllTauRec_DeltaRSeedToFarestAssocNeutEFO', '(T) #Delta R of associated EFO^{0} farest from tauRec with any numTrack', 400, 0.0, 8.0]] - RunTimeHisto_List += [['(T)AllTauRec_DeltaRSeedToClosestEFO_NoEFOs', '(T) #Delta R of closest EFO to tauRec with any numTrack without EFOs', 400, 0.0, 8.0]] - RunTimeHisto_List += [['(T)AllTauRec_DeltaRSeedToClosestChrgEFO_NoEFOs','(T) #Delta R of closest EFO^{#pm} to tauRec with any numTrack without EFOs', 400, 0.0, 8.0]] - RunTimeHisto_List += [['(T)AllTauRec_DeltaRSeedToClosestNeutEFO_NoEFOs','(T) #Delta R of closest EFO^{0} to tauRec with any numTrack without EFOs', 400, 0.0, 8.0]] - - RunTimeHisto_List += [['(T)MultTrkTauRec_AssociatedEFOs', '(T) Associated EFOs for tauRec with numTrack >5 or 0', 21, -0.5, 20.5]] - RunTimeHisto_List += [['(T)MultTrkTauRec_AssociatedChargedEFOs', '(T) Associated charged EFOs for tauRec_{=0}^{>5}', 21, -0.5, 20.5]] - RunTimeHisto_List += [['(T)MultTrkTauRec_AssociatedNeutralEFOs', '(T) Associated neutral EFOs for tauRec_{=0}^{>5}', 21, -0.5, 20.5]] - RunTimeHisto_List += [['(T)MultTrkTauRec_DeltaRSeedToClosestAssocEFO', '(T) #Delta R of associated EFO closest to tauRec_{=0}^{>5} seed', 400, 0.0, 8.0]] - RunTimeHisto_List += [['(T)MultTrkTauRec_DeltaRSeedToFarestAssocEFO', '(T) #Delta R of associated EFO farest from tauRec_{=0}^{>5} seed', 400, 0.0, 8.0]] - RunTimeHisto_List += [['(T)MultTrkTauRec_DeltaRSeedToFarestAssocChrgEFO', '(T) #Delta R of associated EFO^{#pm} farest from tauRec_{=0}^{>5} seed', 400, 0.0, 8.0]] - RunTimeHisto_List += [['(T)MultTrkTauRec_DeltaRSeedToFarestAssocNeutEFO', '(T) #Delta R of associated EFO^{0} farest from tauRec_{=0}^{>5} seed', 400, 0.0, 8.0]] - RunTimeHisto_List += [['(T)MultTrkTauRec_DeltaRSeedToClosestEFO_NoEFOs', '(T) #Delta R of closest EFO to tauRec_{=0}^{>5} seed without EFOs', 400, 0.0, 8.0]] - RunTimeHisto_List += [['(T)MultTrkTauRec_DeltaRSeedToClosestChrgEFO_NoEFOs','(T) #Delta R of closest EFO^{#pm} to tauRec_{=0}^{>5} seed without EFOs', 400, 0.0, 8.0]] - RunTimeHisto_List += [['(T)MultTrkTauRec_DeltaRSeedToClosestNeutEFO_NoEFOs','(T) #Delta R of closest EFO^{0} to tauRec_{=0}^{>5} seed without EFOs', 400, 0.0, 8.0]] - - - RunTimeHisto_List += [['(T)Seed_AssociatedEFOs', '(T) Associated EFOs in seed', 31, -0.5, 30.5]] - RunTimeHisto_List += [['(T)Seed_AssociatedChargedEFOs', '(T) Associated charged EFOs in seed', 31, -0.5, 30.5]] - RunTimeHisto_List += [['(T)Seed_AssociatedNeutralEFOs', '(T) Associated neutral EFOs in seed', 31, -0.5, 30.5]] - RunTimeHisto_List += [['(T)Seed_DeltaRSeedToClosestAssocEFO', '(T) #Delta R of associated EFO closest to tauRec seed', 400, 0.0, 8.0]] - RunTimeHisto_List += [['(T)Seed_DeltaRSeedToFarestAssocEFO', '(T) #Delta R of associated EFO farest from tauRec seed', 400, 0.0, 8.0]] - RunTimeHisto_List += [['(T)Seed_DeltaRSeedToFarestAssocChrgEFO', '(T) #Delta R of associated EFO^{#pm} farest from tauRec seed', 400, 0.0, 8.0]] - RunTimeHisto_List += [['(T)Seed_DeltaRSeedToFarestAssocNeutEFO', '(T) #Delta R of associated EFO^{0} farest from tauRec seed', 400, 0.0, 8.0]] - RunTimeHisto_List += [['(T)Seed_DeltaRSeedToClosestEFO_NoEFOs', '(T) #Delta R of closest EFO to tauRec seed without EFOs', 400, 0.0, 8.0]] - RunTimeHisto_List += [['(T)Seed_DeltaRSeedToClosestChrgEFO_NoEFOs', '(T) #Delta R of closest EFO^{#pm} to tauRec seed without EFOs', 400, 0.0, 8.0]] - RunTimeHisto_List += [['(T)Seed_DeltaRSeedToClosestNeutEFO_NoEFOs', '(T) #Delta R of closest EFO^{0} to tauRec seed without EFOs', 400, 0.0, 8.0]] - - RunTimeHisto_List += [['(T)Presel_SeedPassesSelection', '(T) Seed passes preselection', 4, -1.5, 2.5]] - RunTimeHisto_List += [['(T)Presel_FailPt', '(T) Preselection: Fail p_{T} cut', 4, -1.5, 2.5]] - RunTimeHisto_List += [['(T)Presel_FailEta', '(T) Preselection: Fail #eta cut', 4, -1.5, 2.5]] - RunTimeHisto_List += [['(T)Presel_FailEtaLower', '(T) Preselection: Fail #eta_{min} cut (too small)', 4, -1.5, 2.5]] - RunTimeHisto_List += [['(T)Presel_FailEtaUpper', '(T) Preselection: Fail #eta_{max} cut (too large)', 4, -1.5, 2.5]] - RunTimeHisto_List += [['(T)Presel_FailAbsSumCharge', '(T) Preselection: Fail cut on |#sum q(EFO)|', 4, -1.5, 2.5]] - RunTimeHisto_List += [['(T)Presel_FailAbsSumChargeLower', '(T) Preselection: Fail cut on |#sum q(EFO)|_{min} (too small)', 4, -1.5, 2.5]] - RunTimeHisto_List += [['(T)Presel_FailAbsSumChargeUpper', '(T) Preselection: Fail cut on |#sum q(EFO)|_{max} (too large)', 4, -1.5, 2.5]] - RunTimeHisto_List += [['(T)Presel_FailNChargedEFO', '(T) Preselection: Fail cut on N(EFO^{#pm})', 4, -1.5, 2.5]] - RunTimeHisto_List += [['(T)Presel_FailNChargedEFOLower', '(T) Preselection: Fail cut on N(EFO^{#pm})_{min} (too small)', 4, -1.5, 2.5]] - RunTimeHisto_List += [['(T)Presel_FailNChargedEFOUpper', '(T) Preselection: Fail cut on N(EFO^{#pm})_{max} (too large)', 4, -1.5, 2.5]] - - - - RunTimeHisto_List += [['(T)Seed_NumTrack_ChargedEFOs', '(T) numTrack(tauRec) - NChargedEFO', 41, -20.5, 20.5]] - - - ########################################### - # EFO VARIABLES (i.e. once per EFO in tauSeed) - # - # RunTimeHisto_List += [['(E)', '(E)', , ,]] - RunTimeHisto_List += [['(E)ChrgEFOpt_ChrgEFOTrkpt', '(E) Charged EFO pt - Charged EFO track pt [MeV]', 200, -10000.0, 10000.0]] - - RunTimeHisto_List += [['(E)EFOTruthMatch_EFOIsMatched', '(E) Neutral EFO is matched to true pi0', 4, -1.5, 2.5]] - RunTimeHisto_List += [['(E)EFOTruthMatch_Reso_Et', '(E) True #pi^{0}: #frac{E^{reco}_{T} - E^{true}_{T}}{E^{true}_{T}}', 80, -1.0, 1.0]] - RunTimeHisto_List += [['(E)EFOTruthMatch_Reso_Phi', '(E) True #pi^{0}: #frac{#phi^{reco} - #phi^{true}}{#phi^{true}}', 80, -1.0, 1.0]] - RunTimeHisto_List += [['(E)EFOTruthMatch_Reso_Eta', '(E) True #pi^{0}: #frac{#eta^{reco} - #eta^{true}}{#eta^{true}}', 80, -1.0, 1.0]] - RunTimeHisto_List += [['(E)EFOTruthMatch_Match_DeltaR', '(E) #Delta R(#pi^{0}_{true}, EFO^{0})', 40, 0.0, 0.4]] - - RunTimeHisto_List += [['(E)AllEFOs_Charge', '(E) All EFOs: Charge', 7, -3.5, 3.5]] - RunTimeHisto_List += [['(E)AllEFOs_E', '(E) All EFOs: E', 300, -5000, 25000]] - RunTimeHisto_List += [['(E)AllEFOs_Et', '(E) All EFOs: Et', 300, -5000, 25000]] - RunTimeHisto_List += [['(E)AllEFOs_Eta', '(E) All EFOs: Eta', 100, -5.0, 5.0]] - RunTimeHisto_List += [['(E)AllEFOs_Phi', '(E) All EFOs: Phi', 64, -3.2, 3.2]] - RunTimeHisto_List += [['(E)AllEFOs_MinDrTau', '(E) All EFOs: MinDrToTau', 400, 0.0, 8.0]] - RunTimeHisto_List += [['(E)AllEFOs_MinDrTau_ChrgEFO', '(E) All EFOs: MinDrToTau (EFO^{#pm})', 400, 0.0, 8.0]] - RunTimeHisto_List += [['(E)AllEFOs_MinDrTau_NeutEFO', '(E) All EFOs: MinDrToTau (EFO^{0})', 400, 0.0, 8.0]] - - RunTimeHisto_List += [['(E)Usage_EFOIsUsedXTimes', '(E) EFO is used x times', 12, -2.5, 9.5]] - RunTimeHisto_List += [['(E)Usage_MultiUsedEFO_Charge', '(E) MultiUsedEFO: Charge', 7, -3.5, 3.5]] - RunTimeHisto_List += [['(E)Usage_MultiUsedEFO_E', '(E) MultiUsedEFO: E', 300, -5000, 25000]] - RunTimeHisto_List += [['(E)Usage_MultiUsedEFO_Et', '(E) MultiUsedEFO: Et', 300, -5000, 25000]] - RunTimeHisto_List += [['(E)Usage_MultiUsedEFO_Eta', '(E) MultiUsedEFO: Eta', 100, -5.0, 5.0]] - RunTimeHisto_List += [['(E)Usage_MultiUsedEFO_Phi', '(E) MultiUsedEFO: Phi', 64, -3.2, 3.2]] - RunTimeHisto_List += [['(E)Usage_MultiUsedEFO_MinDrTau', '(E) MultiUsedEFO: MinDrToTau', 400, 0.0, 8.0]] - RunTimeHisto_List += [['(E)Usage_MultiUsedEFO_MinDrTau_ChrgEFO', '(E) MultiUsedEFO: MinDrToTau (EFO^{#pm})', 400, 0.0, 8.0]] - RunTimeHisto_List += [['(E)Usage_MultiUsedEFO_MinDrTau_NeutEFO', '(E) MultiUsedEFO: MinDrToTau (EFO^{0})', 400, 0.0, 8.0]] - - RunTimeHisto_List += [['(E)Usage_UsedEFO_Charge', '(E) UsedEFO: Charge', 7, -3.5, 3.5]] - RunTimeHisto_List += [['(E)Usage_UsedEFO_E', '(E) UsedEFO: E', 300, -5000, 25000]] - RunTimeHisto_List += [['(E)Usage_UsedEFO_Et', '(E) UsedEFO: Et', 300, -5000, 25000]] - RunTimeHisto_List += [['(E)Usage_UsedEFO_Eta', '(E) UsedEFO: Eta', 100, -5.0, 5.0]] - RunTimeHisto_List += [['(E)Usage_UsedEFO_Phi', '(E) UsedEFO: Phi', 64, -3.2, 3.2]] - RunTimeHisto_List += [['(E)Usage_UsedEFO_MinDrTau', '(E) UsedEFO: MinDrToTau', 400, 0.0, 8.0]] - RunTimeHisto_List += [['(E)Usage_UsedEFO_MinDrTau_ChrgEFO', '(E) UsedEFO: MinDrToTau (EFO^{#pm})', 400, 0.0, 8.0]] - RunTimeHisto_List += [['(E)Usage_UsedEFO_MinDrTau_NeutEFO', '(E) UsedEFO: MinDrToTau (EFO^{0})', 400, 0.0, 8.0]] - - RunTimeHisto_List += [['(E)Usage_UnusedEFO_Charge', '(E) UnusedEFO: Charge', 7, -3.5, 3.5]] - RunTimeHisto_List += [['(E)Usage_UnusedEFO_E', '(E) UnusedEFO: E', 300, -5000, 25000]] - RunTimeHisto_List += [['(E)Usage_UnusedEFO_Et', '(E) UnusedEFO: Et', 300, -5000, 25000]] - RunTimeHisto_List += [['(E)Usage_UnusedEFO_Eta', '(E) UnusedEFO: Eta', 100, -5.0, 5.0]] - RunTimeHisto_List += [['(E)Usage_UnusedEFO_Phi', '(E) UnusedEFO: Phi', 64, -3.2, 3.2]] - RunTimeHisto_List += [['(E)Usage_UnusedEFO_MinDrTau', '(E) UnusedEFO: MinDrToTau', 400, 0.0, 8.0]] - RunTimeHisto_List += [['(E)Usage_UnusedEFO_MinDrTau_ChrgEFO', '(E) UnusedEFO: MinDrToTau (EFO^{#pm})', 400, 0.0, 8.0]] - RunTimeHisto_List += [['(E)Usage_UnusedEFO_MinDrTau_NeutEFO', '(E) UnusedEFO: MinDrToTau (EFO^{0})', 400, 0.0, 8.0]] - - RunTimeHisto_List += [['(E)Usage_UnusedEFO_OutOfInDet_Charge', '(E) UnusedEFO with |#eta| > 2.5: Charge', 7, -3.5, 3.5]] - RunTimeHisto_List += [['(E)Usage_UnusedEFO_OutOfInDet_E', '(E) UnusedEFO with |#eta| > 2.5: E', 300, -5000, 25000]] - RunTimeHisto_List += [['(E)Usage_UnusedEFO_OutOfInDet_Et', '(E) UnusedEFO with |#eta| > 2.5: Et', 300, -5000, 25000]] - RunTimeHisto_List += [['(E)Usage_UnusedEFO_OutOfInDet_Eta', '(E) UnusedEFO with |#eta| > 2.5: Eta', 100, -5.0, 5.0]] - RunTimeHisto_List += [['(E)Usage_UnusedEFO_OutOfInDet_Phi', '(E) UnusedEFO with |#eta| > 2.5: Phi', 64, -3.2, 3.2]] - RunTimeHisto_List += [['(E)Usage_UnusedEFO_OutOfInDet_MinDrTau', '(E) UnusedEFO with |#eta| > 2.5: MinDrToTau', 400, 0.0, 8.0]] - RunTimeHisto_List += [['(E)Usage_UnusedEFO_OutOfInDet_MinDrTau_ChrgEFO', '(E) UnusedEFO with |#eta| > 2.5: MinDrToTau (EFO^{#pm})', 400, 0.0, 8.0]] - RunTimeHisto_List += [['(E)Usage_UnusedEFO_OutOfInDet_MinDrTau_NeutEFO', '(E) UnusedEFO with |#eta| > 2.5: MinDrToTau (EFO^{0})', 400, 0.0, 8.0]] - - RunTimeHisto_List += [['(E)Usage_VetoedEFO_Charge', '(E) VetoedEFO: Charge', 7, -3.5, 3.5]] - RunTimeHisto_List += [['(E)Usage_VetoedEFO_E', '(E) VetoedEFO: E', 300, -5000, 25000]] - RunTimeHisto_List += [['(E)Usage_VetoedEFO_Et', '(E) VetoedEFO: Et', 300, -5000, 25000]] - RunTimeHisto_List += [['(E)Usage_VetoedEFO_Eta', '(E) VetoedEFO: Eta', 100, -5.0, 5.0]] - RunTimeHisto_List += [['(E)Usage_VetoedEFO_Phi', '(E) VetoedEFO: Phi', 64, -3.2, 3.2]] - RunTimeHisto_List += [['(E)Usage_VetoedEFO_MinDrTau', '(E) VetoedEFO: MinDrToTau', 400, 0.0, 8.0]] - RunTimeHisto_List += [['(E)Usage_VetoedEFO_MinDrTau_ChrgEFO', '(E) VetoedEFO: MinDrToTau (EFO^{#pm})', 400, 0.0, 8.0]] - RunTimeHisto_List += [['(E)Usage_VetoedEFO_MinDrTau_NeutEFO', '(E) VetoedEFO: MinDrToTau (EFO^{0})', 400, 0.0, 8.0]] - - ########################################### - # SPECIAL RUNTIME VARIABLES (i.e. once for all efos in event, or once for every EFO<->Track combination - # - # - - - return RunTimeHisto_List -# end getRTHList - -def getRTH2DList(): - - #NOTE: This variable must be filled with the TH2F information: - RunTimeHisto2D_List = [] - - ########################################### - # CREATION OF HISTOGRAMS - # - # To create a new TH2F for the RunTime Monitoring, add this to the RunTimeHisto2D_List - # RunTimeHisto2D_List += [['(A)variableX', '(A)variableY', 'xAxisTitle', 'yAxisTitle', nBinsX, MinX, MaxX, nBinsY, minY, MaxY]] - # where (A) is (G), (T) or (E). - # - # These histograms are filled automatically, if variableX and variableY have been added via Add...Variables like described above. - RunTimeHisto2D_List += [['(G)nEflowObjects_Total', '(G)nEflowObjects_Used', 'N(EFO) in event', 'N(EFO) used in seeds', 200, -0.5, 199.5, 200, -0.5, 199.5]] - - return RunTimeHisto2D_List -#end getRTH2DList - -def configRunTimeHistos( seedBuilder = None): - - if seedBuilder == None: - print("PanTau: RunTimeHistConfig.py: No seedBuilder given! Not adding any RunTimeHists!") - return - # end if - - ########################################### - # 1 DIMENSIONAL HISTOGRAMS - # create the lists/vectors to be passed to the seedbuilder - #print("RunTimeHistConfig.py: Gathering information about one dimenstional RunTimeHistograms...") - HistNames = [] - HistAxisTitle = [] - HistNBins = [] - HistMinBins = [] - HistMaxBins = [] - - #include the file which contains the histogram information - RunTimeHisto_List = getRTHList() - - #process contents of file - for iRTH in RunTimeHisto_List: - #print("RunTimeHistConfig.py: Adding information: %s / %s / %d / %d / %d" % (iRTH[0], iRTH[1], iRTH[2], iRTH[3], iRTH[4])) - HistNames.append(iRTH[0]) - HistAxisTitle.append(iRTH[1]) - HistNBins.append(iRTH[2]) - HistMinBins.append(iRTH[3]) - HistMaxBins.append(iRTH[4]) - #end for - - #let seedbuilder know about the RTHs - seedBuilder.RunTimeHists_Names = HistNames - seedBuilder.RunTimeHists_AxisTitles = HistAxisTitle - seedBuilder.RunTimeHists_NBins = HistNBins - seedBuilder.RunTimeHists_MinBin = HistMinBins - seedBuilder.RunTimeHists_MaxBin = HistMaxBins - - - ########################################### - # 2 DIMENSIONAL HISTOGRAMS - # create the lists/vectors to be passed to the seedbuilder - #print("RunTimeHistConfig.py: Gathering information about two dimenstional RunTimeHistograms...") - Hist2DVarX = [] - Hist2DVarY = [] - Hist2DTitleX = [] - Hist2DTitleY = [] - HistnBinsX = [] - HistMinBinsX = [] - HistMaxBinsX = [] - HistnBinsY = [] - HistMinBinsY = [] - HistMaxBinsY = [] - - #include the file which contains the histogram information - RunTimeHisto_List2D = getRTH2DList() - - #process contents of file - for iRTH2D in RunTimeHisto_List2D: - #print("RunTimeHistConfig.py ====> New 2D RunTimeHisto:") - #print("RunTimeHistConfig.py Adding information for x (var, title, binning): %s, %s (%d: %d - %d)" % (iRTH2D[0], iRTH2D[2], iRTH2D[4], iRTH2D[5], iRTH2D[6])) - #print("RunTimeHistConfig.py Adding information for x (var, title, binning): %s, %s (%d: %d - %d)" % (iRTH2D[1], iRTH2D[3], iRTH2D[7], iRTH2D[8], iRTH2D[9])) - - Hist2DVarX.append(iRTH2D[0]) - Hist2DVarY.append(iRTH2D[1]) - Hist2DTitleX.append(iRTH2D[2]) - Hist2DTitleY.append(iRTH2D[3]) - - HistnBinsX.append(iRTH2D[4]) - HistMinBinsX.append(iRTH2D[5]) - HistMaxBinsX.append(iRTH2D[6]) - - HistnBinsY.append(iRTH2D[7]) - HistMinBinsY.append(iRTH2D[8]) - HistMaxBinsY.append(iRTH2D[9]) - #end for - - #let seedbuilder know about the RTHs - #seedBuilder.RunTimeHists_Names = HistNames - #seedBuilder.RunTimeHists_AxisTitles = HistAxisTitle - #seedBuilder.RunTimeHists_NBins = HistNBins - #seedBuilder.RunTimeHists_MinBin = HistMinBins - #seedBuilder.RunTimeHists_MaxBin = HistMaxBins - - return -#end configRunTimeHistos - diff --git a/PhysicsAnalysis/PanTauAnalysis/python/__init__.py b/PhysicsAnalysis/PanTauAnalysis/python/__init__.py deleted file mode 100644 index 2f050073a76f13e0c63eb10c5506f70e216fbec2..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/PanTauAnalysis/python/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -# Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration - -# PhysicsAnalysis/PanTauAnalysis/python/__init__.py \ No newline at end of file diff --git a/PhysicsAnalysis/PanTauAnalysis/root/RTHHistsGetter.C b/PhysicsAnalysis/PanTauAnalysis/root/RTHHistsGetter.C deleted file mode 100644 index 77cb650fe9c6410caf23e6eea4cec90692ac883b..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/PanTauAnalysis/root/RTHHistsGetter.C +++ /dev/null @@ -1,860 +0,0 @@ -/* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration -*/ - -#include <vector> - -#include "/afs/cern.ch/user/l/limbach/ATLAS-Style/AtlasUtils.C" -#include "/afs/cern.ch/user/l/limbach/ATLAS-Style/AtlasLabels.C" - -//for easy usage, make input and outputfile global constants... - -// const TString g_InFileName = "PanTau_RunTimeHists_MC12_IsolatedIn12_5k.root"; -const TString g_InFileName = "PanTauHists.root"; - -const TString g_OutFileName = "OrderedHists_" + g_InFileName; - - -//constant names in the inputfile -TFile* g_InFile = 0; -const TString g_TopLevelDir = "RunTimeHistograms"; -const TString g_EFO = "EFOVariables"; -const TString g_Event = "EventVariables"; -const TString g_Tau = "TauVariables"; - - -//main histo access function -TH1F* getHist(TString histName, TString Type); - -//helpers to easily get histo from inputfile -TH1F* getEFOHist(TString histName); -TH1F* getTauHist(TString histName); -TH1F* getEventHist(TString histName); - -TCanvas* singleEFOTypePlot(TString varName, double xMin = 0, double xMax = -1); -TCanvas* singleTauPlot(TString varName, double xMax = -1); - -void getBinValueTimesEntries(TH1F* hist, TCanvas* targetCan, double yPos); - -void storeCanvasList(std::vector<TCanvas*> canList, TFile* outfile); - -std::string numToString(double number); - - -void RTHHistsGetter() { - gROOT->LoadMacro("/afs/cern.ch/user/l/limbach/ATLAS-Style/AtlasStyle.C"); - SetAtlasStyle(); - - TFile* InputFile = TFile::Open(g_InFileName); -// TString InFileName = "PanTau_RunTimeHists_macrotest.root"; -// TString OutFileName = "OrderedHists_" + InFileName; - - g_InFile = TFile::Open(g_InFileName); - TFile* OutputFile = new TFile(g_OutFileName, "RECREATE"); - - - //! ============================================================== - //! Plots for EFO Types and usage - //! ============================================================== - - /// Overview plot for EFO types - TCanvas* EFO_Usage_Overview_C = new TCanvas("EFO_Usage_Overview", "EFO_Usage_Overview"); - TH1F* EFO_Usage_Overview_H = getEFOHist("(E)Usage_EFOIsUsedXTimes"); - EFO_Usage_Overview_H->GetXaxis()->SetBinLabel(2, "Vetoed"); - EFO_Usage_Overview_H->GetXaxis()->SetBinLabel(3, "Unused"); - EFO_Usage_Overview_H->GetXaxis()->SetBinLabel(4, "Once"); - EFO_Usage_Overview_H->GetXaxis()->SetBinLabel(5, "Twice"); - EFO_Usage_Overview_H->GetXaxis()->SetBinLabel(6, "Three times"); - EFO_Usage_Overview_H->GetXaxis()->SetBinLabel(7, "Four times"); - EFO_Usage_Overview_H->GetXaxis()->SetTitle("EFO Usage"); - EFO_Usage_Overview_H->Draw("text"); - EFO_Usage_Overview_H->GetYaxis()->SetRangeUser(0, EFO_Usage_Overview_H->GetMaximum()*1.5); - EFO_Usage_Overview_C->Write(); - - /// Overlay plots of 4 momentum and deltaR of different EFO Types - std::vector<TCanvas*> EFOTypesOverlay; - EFOTypesOverlay.push_back(singleEFOTypePlot("E")); - EFOTypesOverlay.push_back(singleEFOTypePlot("E", -1000, 10000)); - EFOTypesOverlay.push_back(singleEFOTypePlot("Et")); - EFOTypesOverlay.push_back(singleEFOTypePlot("Et", -1000, 10000)); - EFOTypesOverlay.push_back(singleEFOTypePlot("Eta", -6, 6)); - EFOTypesOverlay.push_back(singleEFOTypePlot("Phi", -4, 4)); - EFOTypesOverlay.push_back(singleEFOTypePlot("MinDrTau", 0.0, 3.)); - EFOTypesOverlay.push_back(singleEFOTypePlot("MinDrTau_ChrgEFO", 0.0, 1.)); - EFOTypesOverlay.push_back(singleEFOTypePlot("MinDrTau_NeutEFO", 0.0, 1.)); - EFOTypesOverlay.push_back(singleEFOTypePlot("Charge", -5, 5)); - storeCanvasList(EFOTypesOverlay, OutputFile); - - - - //! ============================================================== - //! Plots for Tau properties - //! ============================================================== - - /// Plot for max delta R of tau-associated objects to tau - TCanvas* Tau_ClusTrak_DeltaRMax_C = new TCanvas("Tau_ClusTrak_DeltaRMaxToTau", "Tau_ClusTrak_DeltaRMaxToTau"); - Tau_ClusTrak_DeltaRMax_C->cd(); - -// TH1F* Tau_ClusTrak_DeltaRMax_TrakTau_H = getTauHist("(T)InSeedTrak_DeltaRMaxTauSeedTrackToTauSeed"); -// -// Tau_ClusTrak_DeltaRMax_TrakTau_H->GetXaxis()->SetRangeUser(0.0, 1.0); -// Tau_ClusTrak_DeltaRMax_TrakTau_H->SetLineColor(kGreen+2); -// Tau_ClusTrak_DeltaRMax_TrakTau_H->Draw(); -// -// TH1F* Tau_ClusTrak_DeltaRMax_TrakJet_H = getTauHist("(T)InSeedTrak_DeltaRMaxTauSeedTrackToTauJet"); -// Tau_ClusTrak_DeltaRMax_TrakJet_H->GetXaxis()->SetRangeUser(0.0, 1.0); -// Tau_ClusTrak_DeltaRMax_TrakJet_H->SetLineColor(kYellow+2); -// Tau_ClusTrak_DeltaRMax_TrakJet_H->Draw("same"); -// -// TH1F* Tau_ClusTrak_DeltaRMax_ClusJet_H = getTauHist("(T)InSeedClus_DeltaRMaxTauJetClusterToTauJet"); -// Tau_ClusTrak_DeltaRMax_ClusJet_H->GetXaxis()->SetRangeUser(0., 1.); -// Tau_ClusTrak_DeltaRMax_ClusJet_H->SetLineColor(kBlue); -// Tau_ClusTrak_DeltaRMax_ClusJet_H->Draw("same"); - - TH1F* Tau_ClusTrak_DeltaRMax_ClusTau_H = getTauHist("(T)InSeedClus_DeltaRMaxTauJetClusterToTauSeed"); - Tau_ClusTrak_DeltaRMax_ClusTau_H->GetXaxis()->SetTitle("#Delta R_{max}(associated clusters and tau)"); - Tau_ClusTrak_DeltaRMax_ClusTau_H->SetLineColor(kRed); - Tau_ClusTrak_DeltaRMax_ClusTau_H->Draw(); - - TLegend* Tau_ClusTrak_DeltaRMax_L = new TLegend(0.5, 0.7, 0.90, 0.93); - Tau_ClusTrak_DeltaRMax_L->SetFillColor(0); - Tau_ClusTrak_DeltaRMax_L->SetFillStyle(0); - Tau_ClusTrak_DeltaRMax_L->SetBorderSize(0); -// Tau_ClusTrak_DeltaRMax_L->AddEntry(Tau_ClusTrak_DeltaRMax_ClusJet_H, "#Delta R(Assoc. Clusters, #tau_{Jet})", "l"); - Tau_ClusTrak_DeltaRMax_L->AddEntry(Tau_ClusTrak_DeltaRMax_ClusTau_H, "#Delta R(Assoc. Clusters, #tau_{HLV})", "l"); -// Tau_ClusTrak_DeltaRMax_L->AddEntry(Tau_ClusTrak_DeltaRMax_TrakJet_H, "#Delta R(Assoc. Tracks, #tau_{Jet})", "l"); -// Tau_ClusTrak_DeltaRMax_L->AddEntry(Tau_ClusTrak_DeltaRMax_TrakTau_H, "#Delta R(Assoc. Tracks, #tau_{HLV})", "l"); - Tau_ClusTrak_DeltaRMax_L->Draw(); - - Tau_ClusTrak_DeltaRMax_C->Write(); - - - - - - /// Plot for number of tau-associated objects out of collection region - TCanvas* Tau_ClusTrak_NOutsideCone_C = new TCanvas("Tau_ClusTrak_NOutsideCollectionCone", "Tau_ClusTrak_NOutsideCollectionCone"); - Tau_ClusTrak_NOutsideCone_C->cd(); - -// TH1F* Tau_ClusTrak_NOutsideCone_ClusJet_H = getTauHist("(T)InSeedClus_NClusterOutsideCollectionConeWrtJet"); -// Tau_ClusTrak_NOutsideCone_ClusJet_H->SetLineColor(kBlue); - - TH1F* Tau_ClusTrak_NOutsideCone_ClusTau_H = getTauHist("(T)InSeedClus_NClusterOutsideCollectionConeWrtSeed"); - Tau_ClusTrak_NOutsideCone_ClusTau_H->SetLineColor(kRed); - -// TH1F* Tau_ClusTrak_NOutsideCone_TrakTau_H = getTauHist("(T)InSeedTrak_NTracksOutsideCollectionConeWrtSeed"); -// Tau_ClusTrak_NOutsideCone_TrakTau_H->SetLineColor(kGreen+2); - -// TH1F* Tau_ClusTrak_NOutsideCone_TrakJet_H = getTauHist("(T)InSeedTrak_NTracksOutsideCollectionConeWrtJet"); -// Tau_ClusTrak_NOutsideCone_TrakJet_H->SetLineColor(kYellow+2); - - Tau_ClusTrak_NOutsideCone_ClusTau_H->GetXaxis()->SetTitle("N(tracks/cluster) outside collection cone (of #Delta R = 0.4)"); - Tau_ClusTrak_NOutsideCone_ClusTau_H->GetXaxis()->SetRangeUser(0., 10.); - Tau_ClusTrak_NOutsideCone_ClusTau_H->Draw(); -// Tau_ClusTrak_NOutsideCone_TrakJet_H->Draw("same"); -// Tau_ClusTrak_NOutsideCone_ClusJet_H->Draw("same"); -// Tau_ClusTrak_NOutsideCone_ClusTau_H->Draw("same"); - - TLegend* Tau_ClusTrak_NOutsideCone_L = new TLegend(0.4, 0.7, 0.90, 0.93); - Tau_ClusTrak_NOutsideCone_L->SetFillColor(0); - Tau_ClusTrak_NOutsideCone_L->SetFillStyle(0); - Tau_ClusTrak_NOutsideCone_L->SetBorderSize(0); -// Tau_ClusTrak_NOutsideCone_L->AddEntry(Tau_ClusTrak_NOutsideCone_ClusJet_H, "N(cluster) out of 0.4-Cone wrt. #tau_{Jet}", "l"); - Tau_ClusTrak_NOutsideCone_L->AddEntry(Tau_ClusTrak_NOutsideCone_ClusTau_H, "N(cluster) out of 0.4-Cone wrt. #tau_{HLV}", "l"); -// Tau_ClusTrak_NOutsideCone_L->AddEntry(Tau_ClusTrak_NOutsideCone_TrakJet_H, "N(tracks) out of 0.4-Cone wrt. #tau_{Jet}", "l"); -// Tau_ClusTrak_NOutsideCone_L->AddEntry(Tau_ClusTrak_NOutsideCone_TrakTau_H, "N(tracks) out of 0.4-Cone wrt. #tau_{HLV}", "l"); - Tau_ClusTrak_NOutsideCone_L->Draw(); - - //also calculate bin_xValue times bin_entries in this case, to get number of tracks / clusters outside collection cone -// getBinValueTimesEntries(Tau_ClusTrak_NOutsideCone_ClusJet_H, Tau_ClusTrak_NOutsideCone_C, 0.60); - getBinValueTimesEntries(Tau_ClusTrak_NOutsideCone_ClusTau_H, Tau_ClusTrak_NOutsideCone_C, 0.55); -// getBinValueTimesEntries(Tau_ClusTrak_NOutsideCone_TrakJet_H, Tau_ClusTrak_NOutsideCone_C, 0.50); -// getBinValueTimesEntries(Tau_ClusTrak_NOutsideCone_TrakTau_H, Tau_ClusTrak_NOutsideCone_C, 0.45); - - Tau_ClusTrak_NOutsideCone_C->Write(); - - - /// Plot for number of tau-associated objects out of collection region -// TCanvas* Tau_ClusTrak_NValidOutsideCone_C = new TCanvas("Tau_ClusTrak_NValidOutsideCollectionCone", "Tau_ClusTrak_NValidOutsideCollectionCone"); -// Tau_ClusTrak_NValidOutsideCone_C->cd(); -// -// TH1F* Tau_ClusTrak_NValidOutsideCone_ClusJet_H = getTauHist("(T)InSeedClus_NClusterOutsideCollectionConeWrtJet"); -// Tau_ClusTrak_NValidOutsideCone_ClusJet_H->SetLineColor(kBlue); -// -// TH1F* Tau_ClusTrak_NValidOutsideCone_ClusTau_H = getTauHist("(T)InSeedClus_NClusterOutsideCollectionConeWrtSeed"); -// Tau_ClusTrak_NValidOutsideCone_ClusTau_H->SetLineColor(kRed); -// -// TH1F* Tau_ClusTrak_NValidOutsideCone_TrakTau_H = getTauHist("(T)InSeedTrak_NTracksOutsideCollectionConeWrtSeed"); -// Tau_ClusTrak_NValidOutsideCone_TrakTau_H->SetLineColor(kGreen+2); -// -// Tau_ClusTrak_NValidOutsideCone_TrakTau_H->GetXaxis()->SetTitle("N(tracks/cluster) outside collection cone (of #Delta R = 0.4)"); -// Tau_ClusTrak_NValidOutsideCone_TrakTau_H->GetXaxis()->SetRangeUser(0., 10.); -// Tau_ClusTrak_NValidOutsideCone_TrakTau_H->Draw(); -// Tau_ClusTrak_NValidOutsideCone_ClusTau_H->Draw("same"); -// Tau_ClusTrak_NValidOutsideCone_ClusJet_H->Draw("same"); -// -// TLegend* Tau_ClusTrak_NValidOutsideCone_L = new TLegend(0.4, 0.7, 0.90, 0.93); -// Tau_ClusTrak_NValidOutsideCone_L->SetFillColor(0); -// Tau_ClusTrak_NValidOutsideCone_L->SetFillStyle(0); -// Tau_ClusTrak_NValidOutsideCone_L->SetBorderSize(0); -// Tau_ClusTrak_NValidOutsideCone_L->AddEntry(Tau_ClusTrak_NValidOutsideCone_ClusJet_H, "N(valid cluster) out of 0.4-Cone wrt. #tau_{Jet}", "l"); -// Tau_ClusTrak_NValidOutsideCone_L->AddEntry(Tau_ClusTrak_NValidOutsideCone_ClusTau_H, "N(valid cluster) out of 0.4-Cone wrt. #tau_{HLV}", "l"); -// Tau_ClusTrak_NValidOutsideCone_L->AddEntry(Tau_ClusTrak_NValidOutsideCone_TrakTau_H, "N(tracks) out of 0.4-Cone wrt. #tau_{HLV}", "l"); -// Tau_ClusTrak_NValidOutsideCone_L->Draw(); -// -// //also calculate bin_xValue times bin_entries in this case, to get number of tracks / clusters outside collection cone -// getBinValueTimesEntries(Tau_ClusTrak_NValidOutsideCone_ClusJet_H, Tau_ClusTrak_NValidOutsideCone_C, 0.60); -// getBinValueTimesEntries(Tau_ClusTrak_NValidOutsideCone_ClusTau_H, Tau_ClusTrak_NValidOutsideCone_C, 0.55); -// getBinValueTimesEntries(Tau_ClusTrak_NValidOutsideCone_TrakTau_H, Tau_ClusTrak_NValidOutsideCone_C, 0.50); - - Tau_ClusTrak_NOutsideCone_C->Write(); - - - /// Plot for numTrack in input seeds - TCanvas* Tau_NumTrack_C = new TCanvas("Tau_NumTrack", "Tau_NumTrack"); - Tau_NumTrack_C->cd(); - - TH1F* Tau_NumTrack_All_H = getTauHist("(T)InSeed_numTrackAll"); - Tau_NumTrack_All_H->GetXaxis()->SetRangeUser(-0.5, 15.5); - Tau_NumTrack_All_H->GetXaxis()->SetTitle("numTrack of tauRec tau"); - Tau_NumTrack_All_H->SetLineColor(kBlack); - Tau_NumTrack_All_H->SetLineStyle(2); - Tau_NumTrack_All_H->SetLineWidth(2); - Tau_NumTrack_All_H->Draw(); - - TH1F* Tau_NumTrack_Val_H = getTauHist("(T)InSeed_numTrackValid"); - Tau_NumTrack_Val_H->SetLineColor(kGreen+2); - Tau_NumTrack_Val_H->Draw("same"); - - TLegend* Tau_NumTrack_L = new TLegend(0.3, 0.8, 0.99, 0.93); - Tau_NumTrack_L->SetFillColor(0); - Tau_NumTrack_L->SetFillStyle(0); - Tau_NumTrack_L->SetBorderSize(0); - Tau_NumTrack_L->AddEntry(Tau_NumTrack_All_H, "All tauRec candidates", "l"); - Tau_NumTrack_L->AddEntry(Tau_NumTrack_Val_H, "tauRec candidates used as seed", "l"); - Tau_NumTrack_L->Draw(); - - int nTotalTauRec = Tau_NumTrack_All_H->GetEntries(); - int nValidTauRec = Tau_NumTrack_All_H->GetBinContent(2) - + Tau_NumTrack_All_H->GetBinContent(3) - + Tau_NumTrack_All_H->GetBinContent(4) - + Tau_NumTrack_All_H->GetBinContent(5) - + Tau_NumTrack_All_H->GetBinContent(6); - int nInvalidTauRec = Tau_NumTrack_All_H->GetEntries() - nValidTauRec; - - std::string nTotalauStr = "Total TauRecs: " + numToString(nTotalTauRec); - std::string nValidTauStr = "Valid TauRecs: " + numToString(nValidTauRec); - std::string nInvalidTauStr = "Invalid TauRecs: " + numToString(nInvalidTauRec); - - TLatex Tau_NumTrack_all_T; - Tau_NumTrack_all_T.SetNDC(); - Tau_NumTrack_all_T.DrawLatex(0.5, 0.65, nTotalauStr.c_str()); - - TLatex Tau_NumTrack_val_T; - Tau_NumTrack_val_T.SetNDC(); - Tau_NumTrack_val_T.DrawLatex(0.5, 0.58, nValidTauStr.c_str()); - - TLatex Tau_NumTrack_inv_T; - Tau_NumTrack_inv_T.SetNDC(); - Tau_NumTrack_inv_T.DrawLatex(0.5, 0.53, nInvalidTauStr.c_str()); - - Tau_NumTrack_C->Write(); - - - /// Plot for Seed is valid - TCanvas* Tau_SeedValid_C = new TCanvas("Seed_IsValid", "Seed_IsValid"); - Tau_SeedValid_C->cd(); - - TH1F* Tau_SeedValid_H = getTauHist("(T)InSeed_IsValid"); - Tau_SeedValid_H->GetXaxis()->SetTitle("Input tauRec candidate is valid"); - Tau_SeedValid_H->GetXaxis()->SetBinLabel(2, "Invalid"); - Tau_SeedValid_H->GetXaxis()->SetBinLabel(3, "Valid"); - Tau_SeedValid_H->Draw("text"); - Tau_SeedValid_H->GetYaxis()->SetRangeUser(0., Tau_SeedValid_H->GetMaximum()*1.5); - - Tau_SeedValid_C->Write(); - - - /// Plot for cluster Delta R in tauRec seed - TCanvas* Tau_ClusterDeltaR_C = new TCanvas("Seed_ClusterDeltaR", "Seed_ClusterDeltaR"); - Tau_ClusterDeltaR_C->cd(); - - TH1F* Tau_ClusterDeltaR_H = getTauHist("(T)InSeedClus_DeltaRTauJetClusterToTauSeed"); - Tau_ClusterDeltaR_H->GetXaxis()->SetTitle("#Delta R(#tau^{jet}_{cluster i}, #tau^{seed})"); - Tau_ClusterDeltaR_H->GetXaxis()->SetRangeUser(0.0, 0.7); - Tau_ClusterDeltaR_H->Draw(); - Tau_ClusterDeltaR_H->GetYaxis()->SetRangeUser(0., Tau_ClusterDeltaR_H->GetMaximum()*1.2); - - double clusterIn04 = 0.; - double clusterOut04 = 0.; - for(int iClusBin=0; iClusBin<Tau_ClusterDeltaR_H->GetNbinsX(); iClusBin++) { - double binCenter = Tau_ClusterDeltaR_H->GetBinCenter(iClusBin); - double binValue = Tau_ClusterDeltaR_H->GetBinContent(iClusBin); - double* clusterLink = 0; - if(binCenter<=0.4) clusterLink = &clusterIn04; - if(binCenter>0.4) clusterLink = &clusterOut04; - *clusterLink += binValue; - } - - std::string clusterInStr = "Cluster in 0.4: " + numToString(clusterIn04); - std::string clusterOutStr = "Cluster out 0.4: " + numToString(clusterOut04); - - TLatex clusIn; - clusIn.SetNDC(); - clusIn.DrawLatex(0.6, 0.8, clusterInStr.c_str()); - - TLatex clusOut; - clusOut.SetNDC(); - clusOut.DrawLatex(0.6, 0.74, clusterOutStr.c_str()); - - Tau_ClusterDeltaR_C->Write(); - - - /// Plots comparing seeds with valid and invalid numTracks - std::vector<TCanvas*> TauSeedsOverlay; - TauSeedsOverlay.push_back( singleTauPlot("AssociatedEFOs") ); - TauSeedsOverlay.push_back( singleTauPlot("AssociatedNeutralEFOs") ); - TauSeedsOverlay.push_back( singleTauPlot("AssociatedChargedEFOs") ); - TauSeedsOverlay.push_back( singleTauPlot("DeltaRSeedToClosestEFO_NoEFOs", 4.) ); - TauSeedsOverlay.push_back( singleTauPlot("DeltaRSeedToClosestChrgEFO_NoEFOs", 4.) ); - TauSeedsOverlay.push_back( singleTauPlot("DeltaRSeedToClosestNeutEFO_NoEFOs", 4.) ); - TauSeedsOverlay.push_back( singleTauPlot("DeltaRSeedToFarestAssocEFO", 1.) ); - TauSeedsOverlay.push_back( singleTauPlot("DeltaRSeedToFarestAssocChrgEFO", 1.) ); - TauSeedsOverlay.push_back( singleTauPlot("DeltaRSeedToFarestAssocNeutEFO", 1.) ); - storeCanvasList(TauSeedsOverlay, OutputFile); - - - //! ============================================================== - //! Plots for Event properties - //! ============================================================== - - - /// EFO Multiplicities -// TCanvas* Event_EFO_Multiplicity_C = new TCanvas("Event_EFO_Multiplicity", "Event_EFO_Multiplicity"); -// Event_EFO_Multiplicity_C->cd(); -// -// double Event_EFO_Multiplicity_yMax = 0; -// TH1F* Event_EFO_Multiplicity_Cont = getEventHist("(G)Number_EFOsInEFOContainer"); -// Event_EFO_Multiplicity_Cont->GetXaxis()->SetRangeUser(0.0, 100.); -// Event_EFO_Multiplicity_Cont->GetXaxis()->SetTitle("Number of eflowObjects"); -// Event_EFO_Multiplicity_Cont->SetLineColor(kBlack); -// Event_EFO_Multiplicity_Cont->SetLineWidth(2); -// Event_EFO_Multiplicity_Cont->Draw(); -// -// TH1F* Event_EFO_Multiplicity_Core = getEventHist("(G)Number_Used_EFOs_Core"); -// Event_EFO_Multiplicity_Core->SetLineColor(kBlue-4); -// Event_EFO_Multiplicity_Core->Draw("same"); -// -// TH1F* Event_EFO_Multiplicity_Sum = getEventHist("(G)Number_Used_EFOs_Sum"); -// Event_EFO_Multiplicity_Sum->SetLineColor(kRed); -// Event_EFO_Multiplicity_Sum->Draw("same"); -// -// TLegend* Event_EFO_Multiplicity_L = new TLegend(0.3, 0.8, 0.99, 0.93); -// Event_EFO_Multiplicity_L->SetFillColor(0); -// Event_EFO_Multiplicity_L->SetFillStyle(0); -// Event_EFO_Multiplicity_L->SetBorderSize(0); -// Event_EFO_Multiplicity_L->AddEntry(Event_EFO_Multiplicity_Cont, "EFOs in container", "l"); -// Event_EFO_Multiplicity_L->AddEntry(Event_EFO_Multiplicity_Core, "EFOs used in core region", "l"); -// Event_EFO_Multiplicity_L->AddEntry(Event_EFO_Multiplicity_Sum, "EFOs used in sum region", "l"); -// Event_EFO_Multiplicity_L->Draw(); -// -// if(Event_EFO_Multiplicity_Cont->GetMaximum() > Event_EFO_Multiplicity_yMax) Event_EFO_Multiplicity_yMax = Event_EFO_Multiplicity_Cont->GetMaximum(); -// if(Event_EFO_Multiplicity_Core->GetMaximum() > Event_EFO_Multiplicity_yMax) Event_EFO_Multiplicity_yMax = Event_EFO_Multiplicity_Core->GetMaximum(); -// if(Event_EFO_Multiplicity_Sum->GetMaximum() > Event_EFO_Multiplicity_yMax) Event_EFO_Multiplicity_yMax = Event_EFO_Multiplicity_Sum->GetMaximum(); -// Event_EFO_Multiplicity_Cont->GetYaxis()->SetRangeUser(0.0, Event_EFO_Multiplicity_yMax*1.2); -// -// Event_EFO_Multiplicity_C->Write(); - - - /// Input and output seeds - TCanvas* Event_InOutSeeds_C = new TCanvas("Event_InOutSeeds", "Event_InOutSeeds"); - Event_InOutSeeds_C->cd(); - - double Event_InOutSeeds_yMax = 0.0; - TH1F* Event_InOutSeeds_Bad = getEventHist("(G)Number_BadSeeds"); - Event_InOutSeeds_Bad->GetXaxis()->SetTitle("Number of Seeds"); - Event_InOutSeeds_Bad->GetXaxis()->SetRangeUser(-0.5, 19.5); - Event_InOutSeeds_Bad->SetLineColor(kRed); - Event_InOutSeeds_Bad->SetLineWidth(1); - Event_InOutSeeds_Bad->Draw(); - - TH1F* Event_InOutSeeds_Good = getEventHist("(G)Number_GoodSeeds"); - Event_InOutSeeds_Good->SetLineColor(kGreen+2); - Event_InOutSeeds_Good->Draw("same"); - - TH1F* Event_InOutSeeds_Input = getEventHist("(G)Number_InputSeeds"); - Event_InOutSeeds_Input->SetLineColor(kBlue); - Event_InOutSeeds_Input->SetLineWidth(2); - Event_InOutSeeds_Input->SetLineStyle(1); - Event_InOutSeeds_Input->Draw("same"); - - TH1F* Event_InOutSeeds_Output = getEventHist("(G)Number_OutputSeeds"); - Event_InOutSeeds_Output->SetLineColor(kMagenta); - Event_InOutSeeds_Output->SetLineWidth(2); - Event_InOutSeeds_Output->SetLineStyle(2); - Event_InOutSeeds_Output->Draw("same"); - - TLegend* Event_InOutSeeds_L = new TLegend(0.6, 0.7, 0.99, 0.93); - Event_InOutSeeds_L->SetFillColor(0); - Event_InOutSeeds_L->SetFillStyle(0); - Event_InOutSeeds_L->SetBorderSize(0); - Event_InOutSeeds_L->AddEntry(Event_InOutSeeds_Bad, "All bad seeds", "l"); - Event_InOutSeeds_L->AddEntry(Event_InOutSeeds_Good, "All good seeds", "l"); - Event_InOutSeeds_L->AddEntry(Event_InOutSeeds_Input, "Inputseeds", "l"); - Event_InOutSeeds_L->AddEntry(Event_InOutSeeds_Output, "Outputseeds", "l"); - Event_InOutSeeds_L->Draw(); - - //put number of bad tauRecs from track requirement - int nBadTotal = 0; - for(int iBin=1; iBin<Event_InOutSeeds_Bad->GetNbinsX(); iBin++) { - double binCenter = Event_InOutSeeds_Bad->GetBinCenter(iBin); - double binValue = Event_InOutSeeds_Bad->GetBinContent(iBin); - double toAdd = binCenter * binValue; - nBadTotal += toAdd; - } - std::string nBadSeedsStr = "Bad seeds in total . . . . .: " + numToString(nBadTotal); - std::string nInvalidTauTrkStr = "N(#tau_{tauRec}) bad numTrack: " + numToString(nInvalidTauRec); - - TLatex Tau_NumTrack_all_T1; - Tau_NumTrack_all_T.SetNDC(); - Tau_NumTrack_all_T.DrawLatex(0.4, 0.60, nBadSeedsStr.c_str()); - - TLatex Tau_NumTrack_all_T2; - Tau_NumTrack_all_T.SetNDC(); - Tau_NumTrack_all_T.DrawLatex(0.4, 0.54, nInvalidTauTrkStr.c_str()); - - if(Event_InOutSeeds_Bad->GetMaximum() > Event_InOutSeeds_yMax) - Event_InOutSeeds_yMax = Event_InOutSeeds_Bad->GetMaximum(); - if(Event_InOutSeeds_Good->GetMaximum() > Event_InOutSeeds_yMax) - Event_InOutSeeds_yMax = Event_InOutSeeds_Good->GetMaximum(); - if(Event_InOutSeeds_Input->GetMaximum() > Event_InOutSeeds_yMax) - Event_InOutSeeds_yMax = Event_InOutSeeds_Input->GetMaximum(); - if(Event_InOutSeeds_Output->GetMaximum() > Event_InOutSeeds_yMax) - Event_InOutSeeds_yMax = Event_InOutSeeds_Output->GetMaximum(); - Event_InOutSeeds_Bad->GetYaxis()->SetRangeUser(0.0, Event_InOutSeeds_yMax*1.2); - - Event_InOutSeeds_C->Write(); - - - /// Bad Seeds composition -// TCanvas* Event_BadSeeds_Composition_C = new TCanvas("Event_BadSeeds_Composition", "Event_BadSeeds_Composition"); -// Event_BadSeeds_Composition_C->cd(); -// -// double Event_BadSeeds_Composition_yMax = 0.0; -// TH1F* Event_BadSeeds_Composition_All = getEventHist("(G)Number_BadSeeds"); -// Event_BadSeeds_Composition_All->GetXaxis()->SetTitle("Number of BadSeeds (not passed to ModeID)"); -// Event_BadSeeds_Composition_All->GetXaxis()->SetRangeUser(-0.5, 19.5); -// Event_BadSeeds_Composition_All->SetLineColor(kBlack); -// Event_BadSeeds_Composition_All->SetLineWidth(2); -// Event_BadSeeds_Composition_All->SetLineStyle(2); -// Event_BadSeeds_Composition_All->Draw(); -// -// TH1F* Event_BadSeeds_Composition_Presel = getEventHist("(G)Number_BadSeeds_FailPresel"); -// Event_BadSeeds_Composition_Presel->SetLineColor(kGreen+2); -// Event_BadSeeds_Composition_Presel->Draw("same"); -// -// TH1F* Event_BadSeeds_Composition_Invalid = getEventHist("(G)Number_BadSeeds_Invalid"); -// Event_BadSeeds_Composition_Invalid->SetLineColor(kRed); -// Event_BadSeeds_Composition_Invalid->Draw("same"); -// -// TLegend* Event_BadSeeds_Composition_L = new TLegend(0.3, 0.8, 0.99, 0.93); -// Event_BadSeeds_Composition_L->SetFillColor(0); -// Event_BadSeeds_Composition_L->SetFillStyle(0); -// Event_BadSeeds_Composition_L->SetBorderSize(0); -// Event_BadSeeds_Composition_L->AddEntry(Event_BadSeeds_Composition_All, "All bad seeds", "l"); -// Event_BadSeeds_Composition_L->AddEntry(Event_BadSeeds_Composition_Presel, "Bad seeds due to preselection", "l"); -// Event_BadSeeds_Composition_L->AddEntry(Event_BadSeeds_Composition_Invalid, "Bad seeds due to technicalities", "l"); -// Event_BadSeeds_Composition_L->Draw(); -// -// if(Event_BadSeeds_Composition_All->GetMaximum() > Event_BadSeeds_Composition_yMax) -// Event_BadSeeds_Composition_yMax = Event_BadSeeds_Composition_All->GetMaximum(); -// if(Event_BadSeeds_Composition_Presel->GetMaximum() > Event_BadSeeds_Composition_yMax) -// Event_BadSeeds_Composition_yMax = Event_BadSeeds_Composition_Presel->GetMaximum(); -// if(Event_BadSeeds_Composition_Invalid->GetMaximum() > Event_BadSeeds_Composition_yMax) -// Event_BadSeeds_Composition_yMax = Event_BadSeeds_Composition_Invalid->GetMaximum(); -// Event_BadSeeds_Composition_All->GetYaxis()->SetRangeUser(0.0, Event_BadSeeds_Composition_yMax*1.2); -// -// Event_BadSeeds_Composition_C->Write(); - - - /// TauRecSeeds and AlTauRecInvalid, compared to nEvents without EFOs - TCanvas* Event_AllTauRecInvalid_C = new TCanvas("Event_AllTauRecInvalid", "Event_AllTauRecInvalid"); - Event_AllTauRecInvalid_C->cd(); - - TH1F* Event_AllTauRecInvalidAll = getEventHist("(G)Number_TausInTauContainer"); - Event_AllTauRecInvalidAll->GetXaxis()->SetTitle("Multiplicity"); - Event_AllTauRecInvalidAll->GetXaxis()->SetRangeUser(-0.5, 19.5); - Event_AllTauRecInvalidAll->SetLineColor(kBlack); - Event_AllTauRecInvalidAll->SetLineWidth(2); - Event_AllTauRecInvalidAll->Draw(); - - TH1F* Event_AllTauRecInvalidEFO = getEventHist("(G)Number_EFOsInEFOContainer"); - Event_AllTauRecInvalidEFO->SetLineColor(kBlue-3); - Event_AllTauRecInvalidEFO->SetLineWidth(2); - Event_AllTauRecInvalidEFO->Draw("same"); - - TH1F* Event_AllTauRecInvalidInvalids = getEventHist("(G)EventsWithInvalidTauSeedsOnly"); - Event_AllTauRecInvalidInvalids->SetLineColor(kRed); - Event_AllTauRecInvalidInvalids->SetFillColor(kRed+1); - Event_AllTauRecInvalidInvalids->SetFillStyle(3254); - Event_AllTauRecInvalidInvalids->Draw("same"); - - double nWithoutEFO = Event_AllTauRecInvalidEFO->GetBinContent(1); - double nAllTauRecInvalid = Event_AllTauRecInvalidInvalids->GetEntries(); - - std::string EventsWithNoEFOs = "no EFOs . . . . . . .: " + numToString(nWithoutEFO); - std::string EventsWithAllInv = "invalid #tau_{tauRec} only: " + numToString(nAllTauRecInvalid); - - TLatex Event_AllTauRecInvalid_Text; - Event_AllTauRecInvalid_Text.SetNDC(); - Event_AllTauRecInvalid_Text.DrawLatex(0.45, 0.55, "Events with..."); - - TLatex Event_AllTauRecInvalid_TEFOs; - Event_AllTauRecInvalid_TEFOs.SetNDC(); - Event_AllTauRecInvalid_TEFOs.DrawLatex(0.48, 0.49, EventsWithNoEFOs.c_str()); - - TLatex Event_AllTauRecInvalid_TTauRec; - Event_AllTauRecInvalid_TTauRec.SetNDC(); - Event_AllTauRecInvalid_TTauRec.DrawLatex(0.48, 0.43, EventsWithAllInv.c_str()); - - TLegend* Event_AllTauRecInvalidL = new TLegend(0.3, 0.7, 0.99, 0.93); - Event_AllTauRecInvalidL->SetFillColor(0); - Event_AllTauRecInvalidL->SetFillStyle(0); - Event_AllTauRecInvalidL->SetBorderSize(0); - Event_AllTauRecInvalidL->AddEntry(Event_AllTauRecInvalidAll, "Taus in TauRec Container", "l"); - Event_AllTauRecInvalidL->AddEntry(Event_AllTauRecInvalidEFO, "EFOs in eflowRec Container", "l"); - Event_AllTauRecInvalidL->AddEntry(Event_AllTauRecInvalidInvalids, "All Taus have bad numTrack", "fl"); - Event_AllTauRecInvalidL->Draw(); - - double yMaxHistogram = 0.5; - if(Event_AllTauRecInvalidAll->GetMaximum() > yMaxHistogram) - yMaxHistogram = Event_AllTauRecInvalidAll->GetMaximum(); - if(Event_AllTauRecInvalidEFO->GetMaximum() > yMaxHistogram) - yMaxHistogram = Event_AllTauRecInvalidEFO->GetMaximum(); - if(Event_AllTauRecInvalidInvalids->GetMaximum() > yMaxHistogram) - yMaxHistogram = Event_AllTauRecInvalidInvalids->GetMaximum(); - Event_AllTauRecInvalidAll->GetYaxis()->SetRangeUser(0.0, yMaxHistogram*1.2); - - Event_AllTauRecInvalid_C->Write(); - - - - /// TauRecSeeds and AlTauRecInvalid, compared to nEvents without EFOs - TCanvas* Event_UnusedEFOAndCluster_C = new TCanvas("Event_UnusedEFOAndCluster", "Event_UnusedEFOAndCluster"); - Event_UnusedEFOAndCluster_C->cd(); - - TH1F* Event_UnusedEFOAndCluster = getEventHist("(G)Usage_UnusedEFO_nOutClusters-nUnused"); - Event_UnusedEFOAndCluster->GetXaxis()->SetTitle("N(clusters outside 0.4 wrt tauSeed) - N(unused EFOs)"); - Event_UnusedEFOAndCluster->GetXaxis()->SetRangeUser(-5.5, 24.5); - Event_UnusedEFOAndCluster->SetLineColor(kBlack); - Event_UnusedEFOAndCluster->SetLineWidth(2); - Event_UnusedEFOAndCluster->Draw(); - - double nLeft = 0.0;Event_UnusedEFOAndCluster->GetBinContent(1); - double nMiddle = 0.0;Event_UnusedEFOAndCluster->GetEntries(); - double nRight = 0.0;Event_UnusedEFOAndCluster->GetEntries(); - - for(int iBin=0; iBin<Event_UnusedEFOAndCluster->GetNbinsX(); iBin++) { - double binCenter = Event_UnusedEFOAndCluster->GetBinCenter(iBin); - double binValue = Event_UnusedEFOAndCluster->GetBinContent(iBin); - - double* counterLink = 0; - if(binCenter < 0) counterLink = &nLeft; - if(binCenter == 0) counterLink = &nMiddle; - if(binCenter > 0) counterLink = &nRight; - - *counterLink += binValue; - } - - std::string nLeftStr = "N(unused) > N(outcluster): " + numToString(nLeft); - std::string nMiddleStr = "N(unused) = N(outcluster): " + numToString(nMiddle); - std::string nRightStr = "N(unused) < N(outcluster): " + numToString(nRight); - - TLatex Event_UnusedEFOAndCluster_TextLeft; - Event_UnusedEFOAndCluster_TextLeft.SetNDC(); - Event_UnusedEFOAndCluster_TextLeft.DrawLatex(0.45, 0.85, nLeftStr.c_str()); - - TLatex Event_UnusedEFOAndCluster_TextMiddle; - Event_UnusedEFOAndCluster_TextMiddle.SetNDC(); - Event_UnusedEFOAndCluster_TextMiddle.DrawLatex(0.45, 0.79, nMiddleStr.c_str()); - - TLatex Event_UnusedEFOAndCluster_TextRight; - Event_UnusedEFOAndCluster_TextRight.SetNDC(); - Event_UnusedEFOAndCluster_TextRight.DrawLatex(0.45, 0.73, nRightStr.c_str()); - - Event_UnusedEFOAndCluster_C->Write(); - - - - - - /// DeltaR of unused EFOs in detail - TCanvas* Event_UnusedEFO_DeltaRDetail_C = new TCanvas("Event_UnusedEFO_DeltaRDetail", "Event_UnusedEFO_DeltaRDetail"); - Event_UnusedEFO_DeltaRDetail_C->cd(); - - TH1F* Event_UnusedEFO_DeltaRDetail_All = getEventHist("(G)Usage_Unused_MinDrTau"); - Event_UnusedEFO_DeltaRDetail_All->Rebin(2); - Event_UnusedEFO_DeltaRDetail_All->GetXaxis()->SetTitle("#Delta R_{min}(EFO_{unused}, #tau)"); - Event_UnusedEFO_DeltaRDetail_All->GetXaxis()->SetRangeUser(0.35, 0.6); - Event_UnusedEFO_DeltaRDetail_All->SetLineColor(kBlack); - Event_UnusedEFO_DeltaRDetail_All->SetLineWidth(2); - Event_UnusedEFO_DeltaRDetail_All->SetLineStyle(2); - Event_UnusedEFO_DeltaRDetail_All->Draw(); - - TH1F* Event_UnusedEFO_DeltaRDetail_Less = getEventHist("(G)Usage_Unused_LessUnusedThanCluster_MinDrTau"); - Event_UnusedEFO_DeltaRDetail_Less->Rebin(2); - Event_UnusedEFO_DeltaRDetail_Less->SetLineColor(kGreen+2); - Event_UnusedEFO_DeltaRDetail_Less->Draw("same"); - - TH1F* Event_UnusedEFO_DeltaRDetail_Equal = getEventHist("(G)Usage_Unused_EqualUnusedThanCluster_MinDrTau"); - Event_UnusedEFO_DeltaRDetail_Equal->Rebin(2); - Event_UnusedEFO_DeltaRDetail_Equal->SetLineColor(kBlue-3); - Event_UnusedEFO_DeltaRDetail_Equal->Draw("same"); - - TH1F* Event_UnusedEFO_DeltaRDetail_More = getEventHist("(G)Usage_Unused_MoreUnusedThanCluster_MinDrTau"); - Event_UnusedEFO_DeltaRDetail_More->Rebin(2); - Event_UnusedEFO_DeltaRDetail_More->SetLineColor(kRed); - Event_UnusedEFO_DeltaRDetail_More->SetFillColor(kRed); - Event_UnusedEFO_DeltaRDetail_More->SetFillStyle(3254); - Event_UnusedEFO_DeltaRDetail_More->Draw("same"); - - TLegend* Event_UnusedEFO_DeltaRDetail_L = new TLegend(0.4, 0.73, 0.99, 0.93); - Event_UnusedEFO_DeltaRDetail_L->SetFillColor(0); - Event_UnusedEFO_DeltaRDetail_L->SetFillStyle(0); - Event_UnusedEFO_DeltaRDetail_L->SetBorderSize(0); - Event_UnusedEFO_DeltaRDetail_L->AddEntry(Event_UnusedEFO_DeltaRDetail_All, "All unused EFOs", "l"); - Event_UnusedEFO_DeltaRDetail_L->AddEntry(Event_UnusedEFO_DeltaRDetail_Less, "N(Unused) < N(Outcluster)", "l"); - Event_UnusedEFO_DeltaRDetail_L->AddEntry(Event_UnusedEFO_DeltaRDetail_Equal, "N(Unused) = N(Outcluster)", "l"); - Event_UnusedEFO_DeltaRDetail_L->AddEntry(Event_UnusedEFO_DeltaRDetail_More, "N(Unused) > N(Outcluster)", "fl"); - Event_UnusedEFO_DeltaRDetail_L->Draw(); - - Event_UnusedEFO_DeltaRDetail_All->GetYaxis()->SetRangeUser(0.001, Event_UnusedEFO_DeltaRDetail_All->GetMaximum()*20); - - Event_UnusedEFO_DeltaRDetail_C->SetLogy(1); - Event_UnusedEFO_DeltaRDetail_C->Write(); - - - - - - OutputFile->Close(); - delete OutputFile; - - InputFile->Close(); - delete InputFile; - - return; -} - - - - -//! ===================================================================== -//! ===================================================================== -//! ===================================================================== - -//! H E L P E R F U N C T I O N S - -//! ===================================================================== -//! ===================================================================== -//! ===================================================================== - - - -//main histo access function -TH1F* getHist(TString histName, TString Type) { - TH1F* theHist = 0; - TString pathName = g_TopLevelDir + "/" + Type + "/"; - std::cout << "(GetHist)\tTry to get histo from: " << pathName << histName << std::endl; - theHist = (TH1F*)g_InFile->Get(pathName + histName); - return theHist; -} - - -//helpers to easily get histo from inputfile -TH1F* getEFOHist(TString histName) { - return getHist(histName, g_EFO); -} - -TH1F* getTauHist(TString histName) { - return getHist(histName, g_Tau); -} - -TH1F* getEventHist(TString histName) { - return getHist(histName, g_Event); -} - - -TCanvas* singleEFOTypePlot(TString varName, double xMin, double xMax) { - TString canvasName = varName; - if(xMax != -1) canvasName += "_ModXAxis"; - TCanvas* can = new TCanvas(canvasName, canvasName); - - - - TString xAxisTitle = ""; - if(varName == "E") xAxisTitle = "Energy / MeV"; - if(varName == "Et") xAxisTitle = "Transverse energy / MeV"; - if(varName == "Eta") xAxisTitle = "#eta"; - if(varName == "Phi") xAxisTitle = "#phi"; - if(varName == "MinDrTau") xAxisTitle = "#Delta R_{min}(EFO, #tau_{tauRec})"; - if(varName == "MinDrTau_ChrgEFO") xAxisTitle = "#Delta R_{min}(EFO^{#pm}, #tau_{tauRec})"; - if(varName == "MinDrTau_NeutEFO") xAxisTitle = "#Delta R_{min}(EFO^{0}, #tau_{tauRec})"; - if(varName == "Charge") xAxisTitle = "Charge / q_{e}"; - - - - TH1F* hist_All = getEFOHist("(E)AllEFOs_" + varName); - if(xMax == -1) xMax = hist_All->GetXaxis()->GetXmax(); - hist_All->GetXaxis()->SetRangeUser(xMin, xMax); - hist_All->GetXaxis()->SetTitle(xAxisTitle); - hist_All->SetLineColor(kBlack); - hist_All->SetLineWidth(2); - hist_All->SetLineStyle(2); - hist_All->Draw(); - - double yMax = hist_All->GetMaximum()*1.2; - if(varName == "Charge") yMax = hist_All->GetMaximum()*20; - - hist_All->GetYaxis()->SetRangeUser(0.1, yMax); - hist_All->DrawCopy(); - - TH1F* hist_Vetoed = getEFOHist("(E)Usage_VetoedEFO_" + varName); - hist_Vetoed->SetLineWidth(1); - hist_Vetoed->SetLineColor(kGreen+2); - hist_Vetoed->DrawCopy("same"); - - TH1F* hist_Unused = getEFOHist("(E)Usage_UnusedEFO_" + varName); - hist_Unused->SetLineWidth(1); - hist_Unused->SetLineColor(kRed); - hist_Unused->DrawCopy("same"); - - TH1F* hist_Used = getEFOHist("(E)Usage_UsedEFO_" + varName); - hist_Used->SetLineWidth(1); - hist_Used->SetLineColor(kBlue-7); - hist_Used->DrawCopy("same"); - - TH1F* hist_MultiUsed = getEFOHist("(E)Usage_MultiUsedEFO_" + varName); - hist_MultiUsed->SetLineWidth(1); - hist_MultiUsed->SetLineColor(kYellow-2); - hist_MultiUsed->DrawCopy("same"); - - if(varName == "Et" && xMax == -1) can->SetLogy(1); - if(varName == "E" && xMax == -1) can->SetLogy(1); - if(varName == "Charge") can->SetLogy(1); - - TLegend* Legend = new TLegend(0.65, 0.6, 0.95, 0.93); - Legend->SetFillColor(0); - Legend->SetFillStyle(0); - Legend->SetBorderSize(0); - Legend->AddEntry(hist_All, "All EFOs", "l"); - Legend->AddEntry(hist_Vetoed, "Vetoed EFOs", "l"); - Legend->AddEntry(hist_Unused, "Unused EFOs", "l"); - Legend->AddEntry(hist_Used, "Used EFOs", "l"); - Legend->AddEntry(hist_MultiUsed, "Multiused EFOs", "l"); - Legend->Draw(); - - return can; -} - - - -TCanvas* singleTauPlot(TString varName, double xMax) { - TString canvasName = varName; - if(xMax != -1) canvasName += "_ModXAxis"; - TCanvas* can = new TCanvas(canvasName, canvasName); - - TString xAxisTitle = varName; - if(varName == "AssociatedEFOs") xAxisTitle = "Number of associated EFOs in tauRec seed"; - if(varName == "AssociatedNeutralEFOs") xAxisTitle = "Number of associated EFO^{0} in tauRec seed"; - if(varName == "AssociatedChargedEFOs") xAxisTitle = "Number of associated EFO^{#pm} in tauRec seed"; - if(varName == "DeltaRSeedToClosestEFO_NoEFOs") xAxisTitle = "In tauRec without EFOs: #Delta R of closest EFO"; - if(varName == "DeltaRSeedToClosestChrgEFO_NoEFOs") xAxisTitle = "In tauRec without EFOs: #Delta R of closest EFO^{#pm}"; - if(varName == "DeltaRSeedToClosestNeutEFO_NoEFOs") xAxisTitle = "In tauRec without EFOs: #Delta R of closest EFO^{0}"; - if(varName == "DeltaRSeedToFarestAssocEFO") xAxisTitle = "In tauRec with EFOs: #Delta R of farthest EFO"; - if(varName == "DeltaRSeedToFarestAssocChrgEFO") xAxisTitle = "In tauRec with EFOs: #Delta R of farthest EFO^{#pm}"; - if(varName == "DeltaRSeedToFarestAssocNeutEFO") xAxisTitle = "In tauRec with EFOs: #Delta R of farthest EFO^{0}"; - - - TH1F* hist_All = getTauHist("(T)AllTauRec_" + varName); - hist_All->GetXaxis()->SetTitle(xAxisTitle); - if(xMax != -1) hist_All->GetXaxis()->SetRangeUser(hist_All->GetXaxis()->GetXmin(), xMax); - - double yMaxFactor = 1.3; - if(varName.Contains("Associated")) yMaxFactor = 10; - hist_All->GetYaxis()->SetRangeUser(0.1, hist_All->GetMaximum()*yMaxFactor); - hist_All->SetLineWidth(2); - hist_All->SetLineStyle(2); - hist_All->SetLineColor(kBlack); - hist_All->DrawCopy(); - - TH1F* hist_Seed = getTauHist("(T)Seed_" + varName); - hist_Seed->SetLineColor(kBlue); - hist_Seed->DrawCopy("same"); - - TH1F* hist_MultTrkTauRec = getTauHist("(T)MultTrkTauRec_" + varName); - hist_MultTrkTauRec->SetLineColor(kRed); - hist_MultTrkTauRec->DrawCopy("same"); - - TLegend* Legend = new TLegend(0.45, 0.70, 0.90, 0.93); - Legend->SetFillColor(0); - Legend->SetFillStyle(0); - Legend->SetBorderSize(0); - Legend->AddEntry(hist_All, "#tau_{tauRec} with any numTrack", "l"); - Legend->AddEntry(hist_MultTrkTauRec, "#tau^{bad}_{tauRec} with numTrack not in [1;5]", "l"); - Legend->AddEntry(hist_Seed, "#tau^{good}_{tauRec} with numTrack in [1;5]", "l"); - Legend->Draw(); - - if(varName.Contains("Associated")) can->SetLogy(1); - - return can; -} - - - - - -void getBinValueTimesEntries(TH1F* hist, TCanvas* targetCan, double yPos) { - int result = 0; -// std::cout << "(getBinValueTimesEntries)\thist called: " << hist->GetName() << std::endl; - for(int iBin=1; iBin<hist->GetNbinsX(); iBin++) { - int BinValue = hist->GetXaxis()->GetBinCenter(iBin); - int BinEntries = hist->GetBinContent(iBin); - int Product = BinValue * BinEntries; - result += Product; -// std::cout << "(getBinValueTimesEntries)\t\tBin, BinCenter: Entries => Product, SumSoFar: "; -// std::cout << iBin << ", " << BinValue << ": " << BinEntries << " => " << Product << ", " << result << std::endl; - } -// std::cout << "(getBinValueTimesEntries)\tReturning " << result << std::endl; - - targetCan->cd(); - - std::string LatexString = "Outside 0.4: " + numToString(result); - - TLatex latex; - latex.SetNDC(); - latex.SetTextColor(hist->GetLineColor()); - latex.DrawLatex(0.50, yPos, LatexString.c_str()); - - return; -} - - - - - -void storeCanvasList(std::vector<TCanvas*> canList, TFile* outfile) { - outfile->cd(); - for(int iCan=0; iCan<canList.size(); iCan++) canList[iCan]->Write(); - return; -} - - -std::string numToString(double number) { - std::stringstream s; - s << number; - return s.str(); -} - - - diff --git a/PhysicsAnalysis/PanTauAnalysis/root/dumpRTHContents.C b/PhysicsAnalysis/PanTauAnalysis/root/dumpRTHContents.C deleted file mode 100644 index 62fde320e56cc020be5eab919b132adc0f05c2be..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/PanTauAnalysis/root/dumpRTHContents.C +++ /dev/null @@ -1,190 +0,0 @@ -/* - 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; -} - - - - - - - - - - - - - diff --git a/PhysicsAnalysis/PanTauAnalysis/scripts/SubmitVersion.source b/PhysicsAnalysis/PanTauAnalysis/scripts/SubmitVersion.source deleted file mode 100644 index 6c7e07b5ae169491ab10bd6ffdddd933454f07f0..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/PanTauAnalysis/scripts/SubmitVersion.source +++ /dev/null @@ -1,4 +0,0 @@ -0 -1 -v3 -v320 diff --git a/PhysicsAnalysis/PanTauAnalysis/scripts/launch_gridjobs_AOD-to-D3PD.sh b/PhysicsAnalysis/PanTauAnalysis/scripts/launch_gridjobs_AOD-to-D3PD.sh deleted file mode 100644 index 903bac68e25872b4b2a3486a847aac4ef1359d1d..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/PanTauAnalysis/scripts/launch_gridjobs_AOD-to-D3PD.sh +++ /dev/null @@ -1,46 +0,0 @@ -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 diff --git a/PhysicsAnalysis/PanTauAnalysis/scripts/submit-grid-job_PanTau_AOD-to-D3PD_TopOptions.sh b/PhysicsAnalysis/PanTauAnalysis/scripts/submit-grid-job_PanTau_AOD-to-D3PD_TopOptions.sh deleted file mode 100755 index b0693172ca395a23bbdc4a75d69123726b2ec238..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/PanTauAnalysis/scripts/submit-grid-job_PanTau_AOD-to-D3PD_TopOptions.sh +++ /dev/null @@ -1,469 +0,0 @@ -############################################# -# 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/FinalSetupTest/PhysicsAnalysis/PanTauAnalysis/share/" # do NOT forget the / at the end! -JOBOPTIONSFILE="TopOptions_NewPanTau.py" -EXCLUDEDSITES="SARA,ANALY_IFIC,ANALY_FZK,ANALY_NIKHEF-ELPROD" -CLOUD="DE" -THESITE="ANALY_DESY-ZN,ANALY_DESY-HH,ANALY_ARC,ANALY_AGLT2,ANALY_RHUL,ANALY_INFN-FRASCATI,ANALY_RALPP" -NMAXFILES="-1" - - -# 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 ZTauTauOff | Official sample to be used for substructure studies" - echo "INFO ZPrime500Off | Official sample to be used for substructure studies" - echo "INFO JX | X = 0, 1, 2, 3, 4, 5" - echo "INFO ZTauTau" - echo "INFO ZPrime250TauTau" - echo "INFO ZPrime750TauTau" - echo "INFO WTauNu" - echo "INFO ZMuMuJet" - echo "INFO ZMuMu" - echo "INFO ZJetsX | X = 0, 1, 2, 3, 4, 5 (AlpgenJimmy)" - echo "INFO ZMuMuNp1pt20Jimmy" - echo "INFO ZMuMuNp1pt20Pythia" - echo "INFO ZmumugammaSherpa" - echo "INFO WmunuNp1pt20Jimmy" - echo "INFO WmunuNp1pt20Pythia" - echo "INFO " - echo "INFO " - echo "INFO -Data" - echo "INFO Data191933 | 2011 7TeV JetTauEtmiss" - echo "INFO Data191933Muons | 2011 7TeV Muons" - echo "INFO Data191190Muons | 2011 7TeV Muons" - echo "INFO Data11_PeriodM6_Muons | 2011 7TeV Period M6, Muonstream" - echo "INFO Data11_PeriodM8_Muons | 2011 7TeV Period M8, Muonstream" - echo "INFO Data11_PeriodM9_Muons | 2011 7TeV Period M9, Muonstream" - echo "INFO Data11_PeriodM10_Muons | 2011 7TeV Period M10, Muonstream" - echo "INFO Data11_PeriodM_Muons | 2011 7TeV Period M, Muonstream" - echo "INFO Data11_PeriodX_Muons_DAOD_ZMUMU | X = B, D, E, F, G, H, I, J, K, L, M" - echo "INFO | DAOD_ZMUMU selected muons from 2011" - echo "INFO " - echo "INFO " - echo "INFO " - echo "INFO " - echo "INFO " - echo "INFO ___________________________________________" -fi - - - - - - -INPUTDATA="" -OUTPUTDATA="" - -############################################# -# Input Samples -# -############################################# - -VALIDSAMPLE="true" - - -if [ "$DATASETTOUSE" == "ZTauTauOff" ]; 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" == "ZPrime500Off" ]; then - INPUTDATA="mc12_8TeV.170202.Pythia8_AU2CTEQ6L1_Zprime500tautau.merge.AOD.e1176_s1479_s1470_r3553_r3549/" - OUTPUTDATA="user.limbach.mc12_8TeV_170202_Pythia8_AU2CTEQ6L1_Zprime500tautau_e1176_s1479_s1470_r3553_r3549_$UNIQUEIDTOUSE.D3PD.root" - - - -elif [ "$DATASETTOUSE" == "ZTauTau" ]; then - INPUTDATA="mc11_7TeV.106052.PythiaZtautau.merge.AOD.e825_s1349_s1300_r3082_r3063/" - OUTPUTDATA="user.cLimbach.mc11_7TeV_106052_PythiaZTauTau_e825_s1349_s1300_r3082_r3063_$UNIQUEIDTOUSE.D3PD.root" - - ### Attention! This has not the same reco tags as the other samples ### -elif [ "$DATASETTOUSE" == "ZPrime250TauTau" ]; then - INPUTDATA="mc11_7TeV.107381.Pythia_Zprime_tautau_SSM250.merge.AOD.e825_s1349_s1300_r3060_r2993/" - OUTPUTDATA="user.cLimbach.mc11_7TeV_107381_Pythia_Zprime_tautau_SSM250_e825_s1349_s1300_r3060_r2993_$UNIQUEIDTOUSE.D3PD.root" - -elif [ "$DATASETTOUSE" == "ZPrime750TauTau" ]; then - INPUTDATA="mc11_7TeV.107383.Pythia_Zprime_tautau_SSM750.merge.AOD.e825_s1349_s1300_r3082_r3063/" - OUTPUTDATA="user.cLimbach.mc11_7TeV_107383_Pythia_Zprime_tautau_SSM750_e825_s1349_s1300_r3082_r3063_$UNIQUEIDTOUSE.D3PD.root" - - - -elif [ "$DATASETTOUSE" == "ZMuMuJet" ]; then - INPUTDATA="mc11_7TeV.113285.PythiaZmumuJet_Ptcut5.merge.AOD.e1039_s1372_s1370_r3043_r2993/" - OUTPUTDATA="user.cLimbach.mc11_7TeV_113285_Pythia_ZmumuJet_Ptcut5_e1039_s1372_s1370_r3043_r2993_$UNIQUEIDTOUSE.D3PD.root" - -elif [ "$DATASETTOUSE" == "ZMuMu" ]; then - INPUTDATA="mc11_7TeV.106047.PythiaZmumu_no_filter.merge.AOD.e815_s1310_s1300_r3082_r3063/" - OUTPUTDATA="user.cLimbach.mc11_7TeV_106047_PythiaZmumu_no_filter_e815_s1310_s1300_r3082_r3063_$UNIQUEIDTOUSE.D3PD.root" - -elif [ "$DATASETTOUSE" == "ZMuMuNp1pt20Jimmy" ]; then - INPUTDATA="mc11_7TeV.107661.AlpgenJimmyZmumuNp1_pt20.merge.AOD.e835_s1299_s1300_r3157_r2993/" - OUTPUTDATA="user.cLimbach.mc11_7TeV_107661_AlpgenJimmyZmumuNp1_pt20_e835_s1299_s1300_r3157_r2993_$UNIQUEIDTOUSE.D3PD.root" - -elif [ "$DATASETTOUSE" == "ZMuMuNp1pt20Pythia" ]; then - INPUTDATA="mc11_7TeV.117661.AlpgenPythiaZmumuNp1_pt20.merge.AOD.e1051_s1372_s1370_r3043_r2993/" - OUTPUTDATA="user.cLimbach.mc11_7TeV_117661_AlpgenPythiaZmumuNp1_pt20_e1051_s1372_s1370_r3043_r2993_$UNIQUEIDTOUSE.D3PD.root" - -elif [ "$DATASETTOUSE" == "ZmumugammaSherpa" ]; then - INPUTDATA="mc11_7TeV.126012.Sherpa_Zmumugamma.merge.AOD.e931_s1310_s1300_r3043_r2993/" - OUTPUTDATA="user.cLimbach.mc11_7TeV_126012_Sherpa_Zmumugamma_e931_s1310_s1300_r3043_r2993_$UNIQUEIDTOUSE.D3PD.root" - - -elif [ "$DATASETTOUSE" == "WmunuNp1pt20Pythia" ]; then - INPUTDATA="mc11_7TeV.117691.AlpgenPythiaWmunuNp1_pt20.merge.AOD.e1051_s1372_s1370_r3043_r2993/" - OUTPUTDATA="user.cLimbach.mc11_7TeV_117691__e1051_s1372_s1370_r3043_r2993_$UNIQUEIDTOUSE.D3PD.root" - -elif [ "$DATASETTOUSE" == "WmunuNp1pt20Jimmy" ]; then - INPUTDATA="mc11_7TeV.107691.AlpgenJimmyWmunuNp1_pt20.merge.AOD.e825_s1299_s1300_r3043_r2993/" - OUTPUTDATA="user.cLimbach.mc11_7TeV_107691_AlpgenJimmyWmunuNp1_pt20_e825_s1299_s1300_r3043_r2993_$UNIQUEIDTOUSE.D3PD.root" - - - -elif [ "$DATASETTOUSE" == "ZJets0" ]; then - INPUTDATA="mc11_7TeV.107660.AlpgenJimmyZmumuNp0_pt20.merge.AOD.e835_s1299_s1300_r3043_r2993/" - OUTPUTDATA="user.limbach.mc11_7TeV_107660_AlpgenJimmyZmumuNp0_pt20_e835_s1299_s1300_r3043_r2993_$UNIQUEIDTOUSE.D3PD.root" - -elif [ "$DATASETTOUSE" == "ZJets1" ]; then - INPUTDATA="mc11_7TeV.107661.AlpgenJimmyZmumuNp1_pt20.merge.AOD.e835_s1299_s1300_r3043_r2993/" - OUTPUTDATA="user.limbach.mc11_7TeV_107661_AlpgenJimmyZmumuNp1_pt20_e835_s1299_s1300_r3043_r2993_$UNIQUEIDTOUSE.D3PD.root" - -elif [ "$DATASETTOUSE" == "ZJets2" ]; then - INPUTDATA="mc11_7TeV.107662.AlpgenJimmyZmumuNp2_pt20.merge.AOD.e835_s1299_s1300_r3043_r2993/" - OUTPUTDATA="user.limbach.mc11_7TeV_107662_AlpgenJimmyZmumuNp2_pt20_e835_s1299_s1300_r3043_r2993_$UNIQUEIDTOUSE.D3PD.root" - -elif [ "$DATASETTOUSE" == "ZJets3" ]; then - INPUTDATA="mc11_7TeV.107663.AlpgenJimmyZmumuNp3_pt20.merge.AOD.e835_s1299_s1300_r3043_r2993/" - OUTPUTDATA="user.limbach.mc11_7TeV_107663_AlpgenJimmyZmumuNp3_pt20_e835_s1299_s1300_r3043_r2993_$UNIQUEIDTOUSE.D3PD.root" - -elif [ "$DATASETTOUSE" == "ZJets4" ]; then - INPUTDATA="mc11_7TeV.107664.AlpgenJimmyZmumuNp4_pt20.merge.AOD.e835_s1299_s1300_r3043_r2993/" - OUTPUTDATA="user.limbach.mc11_7TeV_107664_AlpgenJimmyZmumuNp4_pt20_e835_s1299_s1300_r3043_r2993_$UNIQUEIDTOUSE.D3PD.root" - -elif [ "$DATASETTOUSE" == "ZJets5" ]; then - INPUTDATA="mc11_7TeV.107665.AlpgenJimmyZmumuNp5_pt20.merge.AOD.e835_s1299_s1300_r3043_r2993/" - OUTPUTDATA="user.limbach.mc11_7TeV_107665_AlpgenJimmyZmumuNp5_pt20_e835_s1299_s1300_r3043_r2993_$UNIQUEIDTOUSE.D3PD.root" - - - - - - - - ### Attention! This has not the same reco tags as the other samples ### -elif [ "$DATASETTOUSE" == "WTauNu" ]; then - INPUTDATA="mc11_7TeV.107054.PythiaWtaunu_incl.merge.AOD.e825_s1349_s1300_r3069_r3063/" - OUTPUTDATA="user.cLimbach.mc11_7TeV_107054_PythiaWtaunu_incl_e825_s1349_s1300_r3069_r3063_$UNIQUEIDTOUSE.D3PD.root" - -elif [ "$DATASETTOUSE" == "J0" ]; then - INPUTDATA="mc11_7TeV.105009.J0_pythia_jetjet.merge.AOD.e815_s1273_s1274_r3082_r3063/" - OUTPUTDATA="user.cLimbach.mc11_7TeV_105009_J0_pythia_jetjet_e815_s1273_s1274_r3082_r3063_$UNIQUEIDTOUSE.D3PD.root" - -elif [ "$DATASETTOUSE" == "J1" ]; then - INPUTDATA="mc11_7TeV.105010.J1_pythia_jetjet.merge.AOD.e815_s1273_s1274_r3082_r3063/" - OUTPUTDATA="user.cLimbach.mc11_7TeV_105010_J1_pythia_jetjet_e815_s1273_s1274_r3082_r3063_$UNIQUEIDTOUSE.D3PD.root" - -elif [ "$DATASETTOUSE" == "J2" ]; then - INPUTDATA="mc11_7TeV.105011.J2_pythia_jetjet.merge.AOD.e815_s1273_s1274_r3082_r3063/" - OUTPUTDATA="user.cLimbach.mc11_7TeV_105011_J2_pythia_jetjet_e815_s1273_s1274_r3082_r3063_$UNIQUEIDTOUSE.D3PD.root" - -elif [ "$DATASETTOUSE" == "J3" ]; then - INPUTDATA="mc11_7TeV.105012.J3_pythia_jetjet.merge.AOD.e815_s1273_s1274_r3082_r3063/" - OUTPUTDATA="user.cLimbach.mc11_7TeV_105012_J3_pythia_jetjet_e815_s1273_s1274_r3082_r3063_$UNIQUEIDTOUSE.D3PD.root" - -elif [ "$DATASETTOUSE" == "J4" ]; then - INPUTDATA="mc11_7TeV.105013.J4_pythia_jetjet.merge.AOD.e815_s1273_s1274_r3082_r3063/" - OUTPUTDATA="user.cLimbach.mc11_7TeV_105013_J4_pythia_jetjet_e815_s1273_s1274_r3082_r3063_$UNIQUEIDTOUSE.D3PD.root" - -elif [ "$DATASETTOUSE" == "J5" ]; then - INPUTDATA="mc11_7TeV.105014.J5_pythia_jetjet.merge.AOD.e815_s1273_s1274_r3082_r3063/" - OUTPUTDATA="user.cLimbach.mc11_7TeV_105014_J5_pythia_jetjet_e815_s1273_s1274_r3082_r3063_$UNIQUEIDTOUSE.D3PD.root" - -elif [ "$DATASETTOUSE" == "J6" ]; then - INPUTDATA="mc11_7TeV.105015.J6_pythia_jetjet.merge.AOD.e815_s1273_s1274_r3082_r3063" - OUTPUTDATA="user.cLimbach.mc11_7TeV_105015_J6_pythia_jetjet_e815_s1273_s1274_r3082_r3063_$UNIQUEIDTOUSE.D3PD.root" - -elif [ "$DATASETTOUSE" == "Data191933" ]; then - INPUTDATA="data11_7TeV.00191933.physics_JetTauEtmiss.merge.AOD.r3047_r3053_p673/" - OUTPUTDATA="user.cLimbach.data11_7TeV_00191933_physics_JetTauEtmiss_r3047_r3053_p673_$UNIQUEIDTOUSE.D3PD.root" - -elif [ "$DATASETTOUSE" == "Data191933Muons" ]; then - INPUTDATA="data11_7TeV.00191933.physics_Muons.merge.AOD.f415_m1025" - OUTPUTDATA="user.cLimbach.data11_7TeV_00191933_physics_Muons_f415_m1025_$UNIQUEIDTOUSE.D3PD.root" - - -# data11_7TeV.00191190.physics_Muons.merge.AOD.f413_m1019 -# elif [ "$DATASETTOUSE" == "Data11_PeriodM5_Muons" ]; then -# INPUTDATA="data11_7TeV.periodM5.physics_Muons.PhysCont.AOD.t0pro09_v01/" -# OUTPUTDATA="user.cLimbach.data11_7TeV_periodM5_physics_Muons_t0pro09_v01_$UNIQUEIDTOUSE.D3PD.root" - -elif [ "$DATASETTOUSE" == "Data191190Muons" ]; then - INPUTDATA="data11_7TeV.00191190.physics_Muons.merge.AOD.f413_m1019" - OUTPUTDATA="user.cLimbach.data11_7TeV_00191190_physics_Muons_AOD_f413_m1019_$UNIQUEIDTOUSE.D3PD.root" - -elif [ "$DATASETTOUSE" == "Data11_PeriodM6_Muons" ]; then - INPUTDATA="data11_7TeV.periodM6.physics_Muons.PhysCont.AOD.t0pro09_v01/" - OUTPUTDATA="user.limbach.data11_7TeV_periodM6_physics_Muons_t0pro09_v01_$UNIQUEIDTOUSE.D3PD.root" - -# there is no m7 on ami... - -elif [ "$DATASETTOUSE" == "Data11_PeriodM8_Muons" ]; then - INPUTDATA="data11_7TeV.periodM8.physics_Muons.PhysCont.AOD.t0pro09_v01/" - OUTPUTDATA="user.limbach.data11_7TeV_periodM8_physics_Muons_t0pro09_v01_$UNIQUEIDTOUSE.D3PD.root" - -elif [ "$DATASETTOUSE" == "Data11_PeriodM9_Muons" ]; then - INPUTDATA="data11_7TeV.periodM9.physics_Muons.PhysCont.AOD.t0pro09_v01/" - OUTPUTDATA="user.limbach.data11_7TeV_periodM9_physics_Muons_t0pro09_v01_$UNIQUEIDTOUSE.D3PD.root" - - -elif [ "$DATASETTOUSE" == "Data11_PeriodM10_Muons" ]; then - INPUTDATA="data11_7TeV.periodM10.physics_Muons.PhysCont.AOD.t0pro09_v01/" - OUTPUTDATA="user.limbach.data11_7TeV_periodM10_physics_Muons_t0pro09_v01_$UNIQUEIDTOUSE.D3PD.root" - -elif [ "$DATASETTOUSE" == "Data11_PeriodM_Muons" ]; then - INPUTDATA="data11_7TeV.periodM.physics_Muons.PhysCont.AOD.t0pro09_v01/" - OUTPUTDATA="user.cLimbach.data11_7TeV_periodM_physics_Muons_t0pro09_v01_$UNIQUEIDTOUSE.D3PD.root" - -### DAOD_ZMUMU - - - -#14757 -elif [ "$DATASETTOUSE" == "Data11_PeriodB_Muons_DAOD_ZMUMU" ]; then - INPUTDATA="data11_7TeV.periodB.physics_Muons.PhysCont.DAOD_ZMUMU.pro10_v01" - OUTPUTDATA="user.cLimbach.data11_7TeV_periodB_physics_Muons_DAOD_ZMUMU_pro10_v01_$UNIQUEIDTOUSE.D3PD.root" - - -# 94777 -elif [ "$DATASETTOUSE" == "Data11_PeriodD_Muons_DAOD_ZMUMU" ]; then - INPUTDATA="data11_7TeV.periodD.physics_Muons.PhysCont.DAOD_ZMUMU.pro10_v01" - OUTPUTDATA="user.cLimbach.data11_7TeV_periodD_physics_Muons_DAOD_ZMUMU_pro10_v01_$UNIQUEIDTOUSE.D3PD.root" - -# 32189 -elif [ "$DATASETTOUSE" == "Data11_PeriodE_Muons_DAOD_ZMUMU" ]; then - INPUTDATA="data11_7TeV.periodE.physics_Muons.PhysCont.DAOD_ZMUMU.pro10_v01" - OUTPUTDATA="user.cLimbach.data11_7TeV_periodE_physics_Muons_DAOD_ZMUMU_pro10_v01_$UNIQUEIDTOUSE.D3PD.root" - -# 79903 -elif [ "$DATASETTOUSE" == "Data11_PeriodF_Muons_DAOD_ZMUMU" ]; then - INPUTDATA="data11_7TeV.periodF.physics_Muons.PhysCont.DAOD_ZMUMU.pro10_v01" - OUTPUTDATA="user.cLimbach.data11_7TeV_periodF_physics_Muons_DAOD_ZMUMU_pro10_v01_$UNIQUEIDTOUSE.D3PD.root" - -# 294244 -elif [ "$DATASETTOUSE" == "Data11_PeriodG_Muons_DAOD_ZMUMU" ]; then - INPUTDATA="data11_7TeV.periodG.physics_Muons.PhysCont.DAOD_ZMUMU.pro10_v01" - OUTPUTDATA="user.cLimbach.data11_7TeV_periodG_physics_Muons_DAOD_ZMUMU_pro10_v01_$UNIQUEIDTOUSE.D3PD.root" - -# 146719 -elif [ "$DATASETTOUSE" == "Data11_PeriodH_Muons_DAOD_ZMUMU" ]; then - INPUTDATA="data11_7TeV.periodH.physics_Muons.PhysCont.DAOD_ZMUMU.pro10_v01" - OUTPUTDATA="user.cLimbach.data11_7TeV_periodH_physics_Muons_DAOD_ZMUMU_pro10_v01_$UNIQUEIDTOUSE.D3PD.root" - -# 211659 -elif [ "$DATASETTOUSE" == "Data11_PeriodI_Muons_DAOD_ZMUMU" ]; then - INPUTDATA="data11_7TeV.periodI.physics_Muons.PhysCont.DAOD_ZMUMU.pro10_v01" - OUTPUTDATA="user.cLimbach.data11_7TeV_periodI_physics_Muons_DAOD_ZMUMU_pro10_v01_$UNIQUEIDTOUSE.D3PD.root" - -# 123329 -elif [ "$DATASETTOUSE" == "Data11_PeriodJ_Muons_DAOD_ZMUMU" ]; then - INPUTDATA="data11_7TeV.periodJ.physics_Muons.PhysCont.DAOD_ZMUMU.pro10_v01" - OUTPUTDATA="user.cLimbach.data11_7TeV_periodJ_physics_Muons_DAOD_ZMUMU_pro10_v01_$UNIQUEIDTOUSE.D3PD.root" - -# 348728 events -elif [ "$DATASETTOUSE" == "Data11_PeriodK_Muons_DAOD_ZMUMU" ]; then - INPUTDATA="data11_7TeV.periodK.physics_Muons.PhysCont.DAOD_ZMUMU.pro10_v01" - OUTPUTDATA="user.cLimbach.data11_7TeV_periodK_physics_Muons_DAOD_ZMUMU_pro10_v01_$UNIQUEIDTOUSE.D3PD.root" - -# 799540 events -elif [ "$DATASETTOUSE" == "Data11_PeriodL_Muons_DAOD_ZMUMU" ]; then - INPUTDATA="data11_7TeV.periodL.physics_Muons.PhysCont.DAOD_ZMUMU.pro10_v01" - OUTPUTDATA="user.cLimbach.data11_7TeV_periodL_physics_Muons_DAOD_ZMUMU_pro10_v01_$UNIQUEIDTOUSE.D3PD.root" - -# 588452 events -elif [ "$DATASETTOUSE" == "Data11_PeriodM_Muons_DAOD_ZMUMU" ]; then - INPUTDATA="data11_7TeV.periodM.physics_Muons.PhysCont.DAOD_ZMUMU.pro10_v01/" - OUTPUTDATA="user.cLimbach.data11_7TeV_periodM_physics_Muons_DAOD_ZMUMU_pro10_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=10" - 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 - - # ===> cloud and site requirements - # TRAFOCOMMAND_GRID="pathena"${GBPERJOB}${SITE}${TMPDIR}${FILESPERJOB}${EXCLUDED}${USECLOUD}${MAXFILES}${INDS}${OUTDS}${JOBOPTIONS} - - # ===> cloud requirement - # TRAFOCOMMAND_GRID="pathena"${GBPERJOB}${TMPDIR}${FILESPERJOB}${EXCLUDED}${USECLOUD}${MAXFILES}${INDS}${OUTDS}${JOBOPTIONS} - - # ===> site exclusion - TRAFOCOMMAND_GRID="pathena"${GBPERJOB}${TMPDIR}${FILESPERJOB}${EXCLUDED}${MAXFILES}${INDS}${OUTDS}${DESTSE}${JOBOPTIONS} - - # ===> no location exclusion - # TRAFOCOMMAND_GRID="pathena"${GBPERJOB}${TMPDIR}${FILESPERJOB}${MAXFILES}${INDS}${OUTDS}${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 - diff --git a/PhysicsAnalysis/PanTauAnalysis/scripts/submit-grid-job_PanTau_AOD-to-D3PD_TopOptions_MC12.sh b/PhysicsAnalysis/PanTauAnalysis/scripts/submit-grid-job_PanTau_AOD-to-D3PD_TopOptions_MC12.sh deleted file mode 100644 index 252d077e8165d17e2ab4bea3dc8e36a28159a5d3..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/PanTauAnalysis/scripts/submit-grid-job_PanTau_AOD-to-D3PD_TopOptions_MC12.sh +++ /dev/null @@ -1,270 +0,0 @@ -############################################# -# 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 diff --git a/PhysicsAnalysis/PanTauAnalysis/scripts/submit-grid-job_PanTau_AOD-to-eflowStudyD3PD_TopOptions.sh b/PhysicsAnalysis/PanTauAnalysis/scripts/submit-grid-job_PanTau_AOD-to-eflowStudyD3PD_TopOptions.sh deleted file mode 100644 index 8d5de46bb72516311f9cfc16966d8603b3816d78..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/PanTauAnalysis/scripts/submit-grid-job_PanTau_AOD-to-eflowStudyD3PD_TopOptions.sh +++ /dev/null @@ -1,217 +0,0 @@ -############################################# -# 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_AOD-to-eflowStudyD3PD_TopOptions.py" -# EXCLUDEDSITES="ANALY_INFN-MILANO-ATLASC" -EXCLUDEDSITES="" - - -# ########################################## -# -# Set Maximum number of files to be used -# -# ########################################## -NMAXFILES="1000" -# NEVENTSPERJOB="5000" - - -############################################# -# 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 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_Mark_16Dec | 10k events in AOD with config from 16Dec" - echo "INFO ZTauTau_Mark_17Dec_k1_0 | 10k events in AOD with config from 17Dec, k_1 set to 0" - echo "INFO ZTauTau_Mark_1Feb_WithoutSplitShower | 10k events in AOD without split shower algorithm" - echo "INFO ___________________________________________" -fi - - -VALIDSAMPLE="true" - - - - -if [ "$DATASETTOUSE" == "ZTauTau6M_Mark" ]; then - INPUTDATA="user.markhod.20121102155340.2340/" - OUTPUTDATA="user.cLimbach.ZTauTau_6M_AODfromMark_eflowStudy_$UNIQUEIDTOUSE.D3PD.root" - -elif [ "$DATASETTOUSE" == "ZTauTau_Mark_16Dec" ]; then - INPUTDATA="user.limbach.eflowStudy_16Dec_withSpitShower_AOD" -# OUTPUTDATA="user.limbach.eflowStudy_16Dec_withSpitShower_AOD_$UNIQUEIDTOUSE.D3PD.root" - -elif [ "$DATASETTOUSE" == "ZTauTau_Mark_17Dec_k1_0" ]; then - INPUTDATA="user.limbach.eflowStudy_17Dec_k1_0_AODs3" - OUTPUTDATA="user.limbach.eflowStudy_4Feb_k1_0_AODs3_$UNIQUEIDTOUSE.D3PD.root" - -elif [ "$DATASETTOUSE" == "ZTauTau_Mark_1Feb_WithoutSplitShower" ]; then - INPUTDATA="user.limbach.1Feb_WithoutSplitShower_AOD" - OUTPUTDATA="user.limbach.eflowStudy_1Feb_WithoutSplitShower_$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" -# NEVENTS=" --nEventsPerJob="$NEVENTSPERJOB - 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 - - # ===> submit command - # ${EXCLUDED} - USESHORTLIVED=" --useShortLivedReplicas" - 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 - diff --git a/PhysicsAnalysis/PanTauAnalysis/scripts/submit-grid-job_PanTau_ESD-to-D3PD_TopOptions.sh b/PhysicsAnalysis/PanTauAnalysis/scripts/submit-grid-job_PanTau_ESD-to-D3PD_TopOptions.sh deleted file mode 100644 index 59702c1ef7aa1fd3805c090e95708ebc37091da9..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/PanTauAnalysis/scripts/submit-grid-job_PanTau_ESD-to-D3PD_TopOptions.sh +++ /dev/null @@ -1,298 +0,0 @@ -############################################# -# 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/work/l/limbach/private/testarea/WorkAreaD3PD/PhysicsAnalysis/PanTauAnalysis/share/" # do NOT forget the / at the end! -#JOBOPTIONSFILE="PanTau_ESD-to-D3PD_TopOptions.py" -JOBOPTIONSFILE="TopOptions_NewPanTau.py" -EXCLUDEDSITES="SARA" -#SARA,ANALY_IFIC,ANALY_LAPP" - -CLOUD="DE" -THESITE="ANALY_CERN_XROOTD,ANALY_DESY-ZN,ANALY_DESY-HH,ANALY_ARC,ANALY_AGLT2,ANALY_RHUL,ANALY_INFN-FRASCATI,ANALY_RALPP" -NMAXFILES="-1" - - -# 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 " - echo "INFO -Data" - echo "INFO Data11_PeriodM8_Muons_DESD_ZMUMU | " - echo "INFO Data11_PeriodM10_Muons_DESD_ZMUMU | " - echo "INFO Data11_PeriodX_Muons_DESD_ZMUMU | X = D, E, F, G, H, I, J, K, L, M" - echo "INFO | DESD_ZMUMU selected muons from 2011" - echo "INFO " - echo "INFO -MC " - echo "INFO CellBasedTestSample | ESD for Corfu production" - echo "INFO CellBasedTestSample2 | ESD for Corfu production" - echo "INFO CellBasedEtBiasFixA | ESD with neutral Et bias fix" - echo "INFO CellBasedEtBiasFixB | ESD with neutral Et bias fix" - echo "INFO CellBasedOctober" - echo "INFO " - echo "INFO " - echo "INFO " - echo "INFO ___________________________________________" -fi - - - -INPUTDATA="" -OUTPUTDATA="" - -############################################# -# Input Samples -# -############################################# - -VALIDSAMPLE="true" - - -if [ "$DATASETTOUSE" == "Data11_PeriodM10_Muons_DESD_ZMUMU" ]; then - INPUTDATA="data11_7TeV.periodM10.physics_Muons.PhysCont.DESD_ZMUMU.t0pro09_v01/" - OUTPUTDATA="user.cLimbach.data11_7TeV_periodM10_physics_Muons_DESD_ZMUMU_t0pro09_v01_$UNIQUEIDTOUSE.D3PD.root" - -elif [ "$DATASETTOUSE" == "Data11_PeriodM8_Muons_DESD_ZMUMU" ]; then - INPUTDATA="data11_7TeV.periodM8.physics_Muons.PhysCont.DESD_ZMUMU.t0pro09_v01/" - OUTPUTDATA="user.cLimbach.data11_7TeV_periodM8_physics_Muons_DESD_ZMUMU_t0pro09_v01_$UNIQUEIDTOUSE.D3PD.root" - - -elif [ "$DATASETTOUSE" == "Data11_PeriodD_Muons_DESD_ZMUMU" ]; then - INPUTDATA="data11_7TeV.periodD.physics_Muons.PhysCont.DESD_ZMUMU.pro10_v01/" - OUTPUTDATA="user.cLimbach.data11_7TeV_periodD_physics_Muons_DESD_ZMUMU_pro10_v01_$UNIQUEIDTOUSE.D3PD.root" - -elif [ "$DATASETTOUSE" == "Data11_PeriodE_Muons_DESD_ZMUMU" ]; then - INPUTDATA="data11_7TeV.periodE.physics_Muons.PhysCont.DESD_ZMUMU.pro10_v01/" - OUTPUTDATA="user.cLimbach.data11_7TeV_periodE_physics_Muons_DESD_ZMUMU_pro10_v01_$UNIQUEIDTOUSE.D3PD.root" - -elif [ "$DATASETTOUSE" == "Data11_PeriodF_Muons_DESD_ZMUMU" ]; then - INPUTDATA="data11_7TeV.periodF.physics_Muons.PhysCont.DESD_ZMUMU.pro10_v01/" - OUTPUTDATA="user.cLimbach.data11_7TeV_periodF_physics_Muons_DESD_ZMUMU_pro10_v01_$UNIQUEIDTOUSE.D3PD.root" - -elif [ "$DATASETTOUSE" == "Data11_PeriodG_Muons_DESD_ZMUMU" ]; then - INPUTDATA="data11_7TeV.periodG.physics_Muons.PhysCont.DESD_ZMUMU.pro10_v01/" - OUTPUTDATA="user.cLimbach.data11_7TeV_periodG_physics_Muons_DESD_ZMUMU_pro10_v01_$UNIQUEIDTOUSE.D3PD.root" - -elif [ "$DATASETTOUSE" == "Data11_PeriodH_Muons_DESD_ZMUMU" ]; then - INPUTDATA="data11_7TeV.periodH.physics_Muons.PhysCont.DESD_ZMUMU.pro10_v01/" - OUTPUTDATA="user.cLimbach.data11_7TeV_periodH_physics_Muons_DESD_ZMUMU_pro10_v01_$UNIQUEIDTOUSE.D3PD.root" - -elif [ "$DATASETTOUSE" == "Data11_PeriodI_Muons_DESD_ZMUMU" ]; then - INPUTDATA="data11_7TeV.periodI.physics_Muons.PhysCont.DESD_ZMUMU.pro10_v01/" - OUTPUTDATA="user.cLimbach.data11_7TeV_periodI_physics_Muons_DESD_ZMUMU_pro10_v01_$UNIQUEIDTOUSE.D3PD.root" - -elif [ "$DATASETTOUSE" == "Data11_PeriodJ_Muons_DESD_ZMUMU" ]; then - INPUTDATA="data11_7TeV.periodJ.physics_Muons.PhysCont.DESD_ZMUMU.pro10_v01/" - OUTPUTDATA="user.cLimbach.data11_7TeV_periodJ_physics_Muons_DESD_ZMUMU_pro10_v01_$UNIQUEIDTOUSE.D3PD.root" - -elif [ "$DATASETTOUSE" == "Data11_PeriodK_Muons_DESD_ZMUMU" ]; then - INPUTDATA="data11_7TeV.periodK.physics_Muons.PhysCont.DESD_ZMUMU.pro10_v01/" - OUTPUTDATA="user.cLimbach.data11_7TeV_periodK_physics_Muons_DESD_ZMUMU_pro10_v01_$UNIQUEIDTOUSE.D3PD.root" - -elif [ "$DATASETTOUSE" == "Data11_PeriodL_Muons_DESD_ZMUMU" ]; then - INPUTDATA="data11_7TeV.periodL.physics_Muons.PhysCont.DESD_ZMUMU.pro10_v01/" - OUTPUTDATA="user.cLimbach.data11_7TeV_periodL_physics_Muons_DESD_ZMUMU_pro10_v01_$UNIQUEIDTOUSE.D3PD.root" - -elif [ "$DATASETTOUSE" == "Data11_PeriodM_Muons_DESD_ZMUMU" ]; then - INPUTDATA="data11_7TeV.periodM.physics_Muons.PhysCont.DESD_ZMUMU.pro10_v01/" - OUTPUTDATA="user.cLimbach.data11_7TeV_periodM_physics_Muons_DESD_ZMUMU_pro10_v01_$UNIQUEIDTOUSE.D3PD.root" - - -elif [ "$DATASETTOUSE" == "CellBasedTestSample" ]; 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_tid778651_$UNIQUEIDTOUSE.D3PD.root" - -elif [ "$DATASETTOUSE" == "CellBasedTestSample2" ]; 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_tid00999072_$UNIQUEIDTOUSE.D3PD.root" - -elif [ "$DATASETTOUSE" == "CellBasedEtBiasFixA" ]; then - INPUTDATA="user.bwinter.TauPi0RecESD2ESDforD3PD_mp.147818.Pythia8_AU2CTEQ6L1_Ztautau.recon.ESD.e1176_s1479_s1470_r3553_tid00999076_00.v03-00/" - OUTPUTDATA="user.limbach.TauPi0RecESD2ESDforD3PD_mp.147818.Pythia8_AU2CTEQ6L1_Ztautau_tid00999076_$UNIQUEIDTOUSE.D3PD.root" - -elif [ "$DATASETTOUSE" == "CellBasedEtBiasFixB" ]; then - INPUTDATA="user.bwinter.TauPi0RecESD2ESDforD3PD_mp.147818.Pythia8_AU2CTEQ6L1_Ztautau.recon.ESD.e1176_s1479_s1470_r3553_tid778651_00.v03-00/" - OUTPUTDATA="user.limbach.TauPi0RecESD2ESDforD3PD_mp.147818.Pythia8_AU2CTEQ6L1_Ztautau_tid778651_$UNIQUEIDTOUSE.D3PD.root" - - -elif [ "$DATASETTOUSE" == "CellBasedSeptember" ]; then - INPUTDATA="user.bwinter.TauPi0RecESD2ESDforD3PD.147818.Pythia8_AU2CTEQ6L1_Ztautau.digit.RDO.e1176_s1479_s1470_d700.v02-00/" - OUTPUTDATA="user.limbach.September_TauPi0RecESD2ESDforD3PD.147818.Pythia8_AU2CTEQ6L1_Ztautau_$UNIQUEIDTOUSE.D3PD.root" - -elif [ "$DATASETTOUSE" == "CellBasedOctober" ]; then - INPUTDATA="group.perf-tau.TauPi0Rec_D3PD.147818.Pythia8_AU2CTEQ6L1_Ztautau.recon.ESD.e1176_s1479_s1470_r3553_tid00999074_00.v05-01/" - OUTPUTDATA="user.limbach.October_TauPi0RecESD2ESDforD3PD.147818.Pythia8_AU2CTEQ6L1_Ztautau_$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 - - # ===> cloud and site requirements - # TRAFOCOMMAND_GRID="pathena"${GBPERJOB}${SITE}${TMPDIR}${FILESPERJOB}${EXCLUDED}${USECLOUD}${MAXFILES}${INDS}${OUTDS}${JOBOPTIONS} - - # ===> cloud requirement - # TRAFOCOMMAND_GRID="pathena"${GBPERJOB}${TMPDIR}${FILESPERJOB}${EXCLUDED}${USECLOUD}${MAXFILES}${INDS}${OUTDS}${JOBOPTIONS} - - # ===> site exclusion - TRAFOCOMMAND_GRID="pathena"${GBPERJOB}${TMPDIR}${FILESPERJOB}${EXCLUDED}${MAXFILES}${INDS}${OUTDS}${DESTSE}${JOBOPTIONS} - - # ===> no location exclusion - # TRAFOCOMMAND_GRID="pathena"${GBPERJOB}${TMPDIR}${FILESPERJOB}${MAXFILES}${INDS}${OUTDS}${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 - diff --git a/PhysicsAnalysis/PanTauAnalysis/share/JobOptions_Main_PanTau.py b/PhysicsAnalysis/PanTauAnalysis/share/JobOptions_Main_PanTau.py deleted file mode 100644 index 44c354ba5d6df06a64c5e1e540baf96053472e6a..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/PanTauAnalysis/share/JobOptions_Main_PanTau.py +++ /dev/null @@ -1,191 +0,0 @@ - -import AthenaCommon.SystemOfUnits as Units - - -# set up the job properties -from PanTauAnalysis.Class_InformationHandler import InformationHandler -infoHandler = InformationHandler() - - -# copy the configuration from cellbased if requested -from PanTauAnalysis.Config_PanTau import config_PanTau -from tauRec.tauRecFlags import jobproperties as config_TauRec -if config_PanTau.UseDefaultCellBasedConfig == True: - - # pi0-BDT cuts - config_PanTau.CellBased_EtaBinned_Pi0MVACut_1prong.set_Value_and_Lock( config_TauRec.tauRecFlags.pi0MVACuts_1prong() ) - config_PanTau.CellBased_EtaBinned_Pi0MVACut_3prong.set_Value_and_Lock( config_TauRec.tauRecFlags.pi0MVACuts_mprong() ) - - # Et cuts - config_PanTau.TauConstituents_Selection_Neutral_EtaBinned_EtCut.set_Value_and_Lock( config_TauRec.tauRecFlags.pi0EtCuts() ) - config_PanTau.TauConstituents_Selection_Pi0Neut_EtaBinned_EtCut.set_Value_and_Lock( config_TauRec.tauRecFlags.pi0EtCuts() ) - - #print(config_PanTau.CellBased_EtaBinned_Pi0MVACut_1prong) - #print(config_PanTau.CellBased_EtaBinned_Pi0MVACut_3prong) - #print(config_PanTau.TauConstituents_Selection_Neutral_EtaBinned_EtCut) - #print(config_PanTau.TauConstituents_Selection_Pi0Neut_EtaBinned_EtCut) - - # Placeholder for future config - #config_PanTau.foobar.set_Value_And_Lock( config_TauRec. ) - -#end - - - -# Create tools -# ================================================================== -from AthenaCommon.AppMgr import ToolSvc -from PanTauAlgs.PanTauAlgsConf import PanTau__Tool_InformationStore -from PanTauAlgs.PanTauAlgsConf import PanTau__Tool_InputConverter -from PanTauAlgs.PanTauAlgsConf import PanTau__Tool_TauConstituentGetter -from PanTauAlgs.PanTauAlgsConf import PanTau__Tool_TauConstituentSelector -from PanTauAlgs.PanTauAlgsConf import PanTau__Tool_FeatureExtractor -from PanTauAlgs.PanTauAlgsConf import PanTau__Tool_HelperFunctions -from PanTauAlgs.PanTauAlgsConf import PanTau__Tool_ModeDiscriminator -from PanTauAlgs.PanTauAlgsConf import PanTau__Tool_DecayModeDeterminator -from PanTauAlgs.PanTauAlgsConf import PanTau__Tool_FourMomentumCalculator -from PanTauAlgs.PanTauAlgsConf import PanTau__Tool_DetailsArranger -from PanTauAlgs.PanTauAlgsConf import PanTau__Alg_SeedBuilder - -from TrkVertexFitterUtils.TrkVertexFitterUtilsConf import Trk__TrackToVertexIPEstimator -from TrkExTools.AtlasExtrapolator import AtlasExtrapolator -theAtlasExtrapolator=AtlasExtrapolator() -ToolSvc+=theAtlasExtrapolator - -python_Tool_TrackToVertexIPEstimator = Trk__TrackToVertexIPEstimator(Extrapolator = theAtlasExtrapolator) -ToolSvc += python_Tool_TrackToVertexIPEstimator - -# ===> Information Store -python_Tool_InformationStore = PanTau__Tool_InformationStore( "PanTau_InformationStore", - Infos_Int = infoHandler.m_Infos_Int, - Infos_Double = infoHandler.m_Infos_Double, - Infos_VecDouble = infoHandler.m_Infos_VecDouble, - Infos_String = infoHandler.m_Infos_String, - Infos_VecString = infoHandler.m_Infos_VecString) -python_Tool_InformationStore.OutputLevel = INFO -ToolSvc += python_Tool_InformationStore - -# ===> Helper Functions -python_Tool_HelperFunctions = PanTau__Tool_HelperFunctions("PanTau_HelperFunctions") -python_Tool_HelperFunctions.OutputLevel = INFO -ToolSvc += python_Tool_HelperFunctions - -# ===> Input Converter -python_Tool_InputConverter = PanTau__Tool_InputConverter("PanTau_InputConverter", - Tool_InformationStore = python_Tool_InformationStore, - Tool_HelperFunctions = python_Tool_HelperFunctions) -python_Tool_InputConverter.OutputLevel = INFO -ToolSvc += python_Tool_InputConverter - - -# ===> Tau Constituent Getter -python_Tool_TauConstituentGetter = PanTau__Tool_TauConstituentGetter( "PanTau_TauConstituentGetter", - Tool_InformationStore = python_Tool_InformationStore, - Tool_InputConverter = python_Tool_InputConverter, - Tool_HelperFunctions = python_Tool_HelperFunctions) -python_Tool_TauConstituentGetter.OutputLevel = INFO -ToolSvc += python_Tool_TauConstituentGetter - -# ===> Tau Constituent Selector -python_Tool_TauConstituentSelector = PanTau__Tool_TauConstituentSelector( "PanTau_TauConstituentSelector", - Tool_InformationStore = python_Tool_InformationStore) -python_Tool_TauConstituentSelector.OutputLevel = INFO -ToolSvc += python_Tool_TauConstituentSelector - - -# ===> Tau Feature Extractor -python_Tool_FeatureExtractor = PanTau__Tool_FeatureExtractor( "PanTau_FeatureExtractor", - Tool_HelperFunctions = python_Tool_HelperFunctions, - Tool_TrackToVertexIPEstimator = python_Tool_TrackToVertexIPEstimator, - Tool_InformationStore = python_Tool_InformationStore - ) -python_Tool_FeatureExtractor.OutputLevel = INFO -ToolSvc += python_Tool_FeatureExtractor - - -# ===> Tau Four Momentum Calculator -python_Tool_FourMomentumCalculator = PanTau__Tool_FourMomentumCalculator( "PanTau_FourMomentumCalculator", - Tool_InformationStore = python_Tool_InformationStore) -python_Tool_FourMomentumCalculator.OutputLevel = INFO -ToolSvc += python_Tool_FourMomentumCalculator - - -# ===> Details arranger tool -python_Tool_DetailsArranger = PanTau__Tool_DetailsArranger( "PanTau_DetailsArranger", - Tool_InformationStore = python_Tool_InformationStore) -python_Tool_DetailsArranger.OutputLevel = INFO -ToolSvc += python_Tool_DetailsArranger - - -# ================================================ -# Decay Mode Separation Tools -# -# One tool for each mode + one tool to use them -# need to have the Discri Tools for each input alg, because -# based on the input alg, the weight and reference files differ - -from PanTauAnalysis.Config_PanTau import config_PanTau -List_InputAlgs = config_PanTau.Names_InputAlgorithms() - -for curInAlg in List_InputAlgs: - print("TopOptions_NewPanTau: Adding PanTau algorithms for input alg: " + curInAlg) - - - # ===> create the discri tools for this input algorithm - python_Tool_ModeDiscri_1p0n_vs_1p1n = PanTau__Tool_ModeDiscriminator( "PanTau_ModeDiscri_1p0n_vs_1p1n_" + curInAlg, - Name_InputAlg = curInAlg, - Name_ModeCase = "1p0n_vs_1p1n", - Tool_InformationStore = python_Tool_InformationStore, - Tool_HelperFunctions = python_Tool_HelperFunctions) - python_Tool_ModeDiscri_1p0n_vs_1p1n.OutputLevel = INFO - ToolSvc += python_Tool_ModeDiscri_1p0n_vs_1p1n - - python_Tool_ModeDiscri_1p1n_vs_1pXn = PanTau__Tool_ModeDiscriminator( "PanTau_ModeDiscri_1p1n_vs_1pXn_" + curInAlg, - Name_InputAlg = curInAlg, - Name_ModeCase = "1p1n_vs_1pXn", - Tool_InformationStore = python_Tool_InformationStore, - Tool_HelperFunctions = python_Tool_HelperFunctions) - python_Tool_ModeDiscri_1p1n_vs_1pXn.OutputLevel = INFO - ToolSvc += python_Tool_ModeDiscri_1p1n_vs_1pXn - - python_Tool_ModeDiscri_3p0n_vs_3pXn = PanTau__Tool_ModeDiscriminator( "PanTau_ModeDiscri_3p0n_vs_3pXn_" + curInAlg, - Name_InputAlg = curInAlg, - Name_ModeCase = "3p0n_vs_3pXn", - Tool_InformationStore = python_Tool_InformationStore, - Tool_HelperFunctions = python_Tool_HelperFunctions) - python_Tool_ModeDiscri_3p0n_vs_3pXn.OutputLevel = INFO - ToolSvc += python_Tool_ModeDiscri_3p0n_vs_3pXn - - # ===> Tau Decay Mode Determinator for current input alg - Name_DecayModeDeterminator = "PanTau_DecayModeDeterminator_" + curInAlg - python_Tool_DecayModeDeterminator = PanTau__Tool_DecayModeDeterminator( Name_DecayModeDeterminator, - Tool_InformationStore = python_Tool_InformationStore, - Tool_ModeDiscriminator_1p0n_vs_1p1n = python_Tool_ModeDiscri_1p0n_vs_1p1n, - Tool_ModeDiscriminator_1p1n_vs_1pXn = python_Tool_ModeDiscri_1p1n_vs_1pXn, - Tool_ModeDiscriminator_3p0n_vs_3pXn = python_Tool_ModeDiscri_3p0n_vs_3pXn) - python_Tool_DecayModeDeterminator.OutputLevel = INFO - ToolSvc += python_Tool_DecayModeDeterminator - - - # ===> The main algorithm - Name_SeedBuilder = "PanTau_SeedBuilder_" + curInAlg - python_Alg_SeedBuilder = PanTau__Alg_SeedBuilder( Name_SeedBuilder, - Name_InputAlg = curInAlg, - Tool_InformationStore = python_Tool_InformationStore, - Tool_TauConstituentGetter = python_Tool_TauConstituentGetter, - Tool_TauConstituentSelector = python_Tool_TauConstituentSelector, - Tool_FeatureExtractor = python_Tool_FeatureExtractor, - Tool_DecayModeDeterminator = python_Tool_DecayModeDeterminator, - Tool_FourMomentumCalculator = python_Tool_FourMomentumCalculator, - Tool_DetailsArranger = python_Tool_DetailsArranger) - python_Alg_SeedBuilder.OutputLevel = INFO - topSequence += python_Alg_SeedBuilder - - -#end for loop over input algs - - - - -#end of file - diff --git a/PhysicsAnalysis/PanTauAnalysis/share/PanTau_AOD-to-D3PD_TopOptions.py b/PhysicsAnalysis/PanTauAnalysis/share/PanTau_AOD-to-D3PD_TopOptions.py deleted file mode 100644 index 390022e010b728433f7e91df08c28daeac8a6c23..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/PanTauAnalysis/share/PanTau_AOD-to-D3PD_TopOptions.py +++ /dev/null @@ -1,175 +0,0 @@ -#//////////////////////////////////////////////////////////////////// -# -# topOptions for PanTau: -# Input : An AOD that contains the eflowRec container eflowObjects_tauMode and the tauRecContainer -# Output: A TauD3PD that contains an enhanced tau block: -# - tau_pantau block: -# These variables are available in official AOD -# -# - tau_pantauFeature block: -# These variables are not available in the official AOD -# However, these are all the variables from the -# PanTau::TauSeed that are available -# These variables should be used for performance studies -# -# This jobOption file will work when submitting GRID jobs! -# Simply use the script -# submit-pathena-job_AOD_to_PanTauD3PD.sh -# to submit the jobs for a single sample, or use -# Launch_GridJobs.sh -# to submit jobs for all desired samples -# -#//////////////////////////////////////////////////////////////////// - - -#////////////////////////////////// -# Input Files -#////////////////////////////////// - -from AthenaCommon.AthenaCommonFlags import athenaCommonFlags -if athenaCommonFlags.FilesInput.isDefault(): # check if not already set upstream - #-------------------------------- A O D - #athenaCommonFlags.FilesInput=['/tmp/limbach/mc12_8TeV.147818.Pythia8_AU2CTEQ6L1_Ztautau.merge.AOD.e1176_a159_a165_r3549_tid00842349_00/AOD.00842349._000102.pool.root.1'] - athenaCommonFlags.FilesInput=['AODfromRecoTrf.pool.root'] - -athenaCommonFlags.EvtMax=100#250 # number of events to process run on all file - - -#////////////////////////////////// -# jobOption flags -#////////////////////////////////// - -UsingAODFromMark = False -includePanTauInRecExCommon = False # Set to true for PanTau output in AOD - -from PanTauAnalysis.PanTauSeedBuilderAlg_Flags import PanTauSeedBuilderAlgFlags as PSB_Flags -import AthenaCommon.SystemOfUnits as Units -PSB_Flags.Config_DoRunTimeHists = True # create root file with runtime hists from SeedBuilder -PSB_Flags.Config_EfoSel_DoEfoSelection = True # False is the default until proven 'True' is better -PSB_Flags.Config_EfoSel_PiZeroBDTThreshold = -0.04; -PSB_Flags.Config_Presel_DoPreselection = False - -#tauRec vicinity check -PSB_Flags.Config_DoTauRecVicinityCheck = False -PSB_Flags.Config_DeltaRTauRecVicinityCheck = 1.2 -PSB_Flags.Config_KeepOverlapTauRecVicinity = False - - -#configure storage of output D3PD... -from PanTauAnalysis.PanTauDPDFlags import panTauDPDFlags -panTauDPDFlags.PanTauPerfD3PDName = "TauPerfTestFromAOD.root" - -#...add truth info in D3PD -from RecExConfig.RecFlags import rec -rec.doTruth.set_Value_and_Lock( True ) - - -#////////////////////////////////// -# Main Job Options -#////////////////////////////////// - -# !!! !!! # -# !!! You must not modify flags below this point !!! # -# !!! !!! # - -#Basic PanTau config -from PanTauAnalysis.PanTauFlags import panTauFlags -panTauFlags.ExtractAllFeatures.set_Value_and_Lock(True) - -#from ParticleBuilderOptions.AODFlags import AODFlags -#AODFlags.McEventKeyStr.set_Value_and_Lock('GEN_AOD') # needs to be in for AOD->D3PD - -#from JetRec.JetRecFlags import jetFlags -#jetFlags.inputTruthColl_RECO.set_Value_and_Lock('GEN_AOD')# needs to be in for AOD->D3PD - -#from D3PDMakerConfig.D3PDMakerFlags import D3PDMakerFlags -#D3PDMakerFlags.TruthSGKey.set_Value_and_Lock('GEN_AOD')# needs to be in for AOD->D3PD -#D3PDMakerFlags.CellsSGKey.set_Value_and_Lock('AODCellContainer') -#D3PDMakerFlags.JetSGKey.set_Value_and_Lock('AntiKt4LCTopoJets') - -#Fixes for marks AOD -if UsingAODFromMark: - from RecExConfig.RecAlgsFlags import recAlgs - recAlgs.doTrigger.set_Value_and_Lock(False) - D3PDMakerFlags.DoTrigger.set_Value_and_Lock(False) - rec.doTrigger.set_Value_and_Lock(False) - rec.noESDTrigger.set_Value_and_Lock(True) - rec.doApplyAODFix.set_Value_and_Lock(False) - - -rec.readAOD = True # True in AOD->D3PD -rec.readESD = False # False in AOD->D3PD -rec.readRDO = False -rec.doCBNT = False -rec.doWriteESD = False -rec.doWriteTAG = False -rec.doPerfMon = False -rec.doHist = False - -if includePanTauInRecExCommon: - rec.doAOD.set_Value_and_Lock(True) - rec.doWriteAOD.set_Value_and_Lock(True) -else: - rec.doAOD.set_Value_and_Lock(False) - rec.doWriteAOD.set_Value_and_Lock(False) - -# commented out in AOD->D3PD -from AthenaServices.AthenaServicesConf import AthenaEventLoopMgr -ServiceMgr += AthenaEventLoopMgr() - - -from AthenaCommon.AlgSequence import AlgSequence -topSequence = AlgSequence() - - -# need to include PanTau explicitely, since it's "protected" by doAOD in RecExCommon -if includePanTauInRecExCommon: - rec.UserAlgs=[ "PanTauAnalysis/PanTau_Main_TopOptions.py" ] -include( "RecExCommon/RecExCommon_topOptions.py" ) - -if not includePanTauInRecExCommon: - include("PanTauAnalysis/PanTau_Main_TopOptions.py") - -ServiceMgr.AthenaEventLoopMgr.EventPrintoutInterval = 1 - - -#////////////////////////////////// -# D3PD Output -#////////////////////////////////// - -dpdname = panTauDPDFlags.PanTauPerfD3PDName() - -from TauD3PDMaker.tauPerf import tauPerf -alg = tauPerf ( level = 10, - file=dpdname, - doPhys = True, - doCl = True, - doCell = False, - doPi0BonnDevVars = True, - doTrk = True, - doHad = True, - doOtherTrk = True, - tuplename = 'tau', - seq = topSequence, - D3PDSvc = 'D3PD::RootD3PDSvc', - doMETSkimVariables = False, - streamName = "TauPERF") -# - -#////////////////////////////////// -# Silence over abundant messages -#////////////////////////////////// -############################ -#Silence Trig Navigation Warnings -from AthenaCommon.AppMgr import ToolSvc -if not hasattr( ToolSvc, "TrigDecisionTool" ): - from TrigDecisionTool.TrigDecisionToolConf import Trig__TrigDecisionTool - ToolSvc += Trig__TrigDecisionTool( "TrigDecisionTool" ) - ToolSvc.TrigDecisionTool.Navigation.OutputLevel = ERROR - ToolSvc.TrigDecisionTool.OutputLevel = ERROR -############################# -StoreGateSvc.OutputLevel = FATAL - - -#end of file - diff --git a/PhysicsAnalysis/PanTauAnalysis/share/PanTau_AOD-to-eflowStudyD3PD_TopOptions.py b/PhysicsAnalysis/PanTauAnalysis/share/PanTau_AOD-to-eflowStudyD3PD_TopOptions.py deleted file mode 100644 index 4a85ab35751bd83d1018058da43e397b78317975..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/PanTauAnalysis/share/PanTau_AOD-to-eflowStudyD3PD_TopOptions.py +++ /dev/null @@ -1,206 +0,0 @@ - -# -# JobOptions to produce a D3PD tailored for Peter's eflow Studies -# -# Input: Any AOD with eflowRec container -# -# Output: A D3PD usable for detailed eflowStudies -# -# Note: These JO can be submitted via pathena! - - -SGKEY_eflowObjects = "eflowObjects_tauMode" -#////////////////////////////////// -# Input Files -#////////////////////////////////// - -from AthenaCommon.AthenaCommonFlags import athenaCommonFlags -if athenaCommonFlags.FilesInput.isDefault(): # check if not already set upstream - - #-------------------------------- A O D - #generic test AOD for changing purposes... - #athenaCommonFlags.FilesInput=['AOD.pool.root'] - - #Test AOD that has EFOs with cell info assigned to them - #athenaCommonFlags.FilesInput=['/afs/cern.ch/user/l/limbach/scratch0/SavedAODs/MarksTestAOD_EFOsWithCellInfo/AOD.pool.root'] - #athenaCommonFlags.FilesInput=['/afs/cern.ch/user/l/limbach/scratch0/SavedAODs/MarksTestAOD_Oct22/AOD_Oct22.pool.root'] - #athenaCommonFlags.FilesInput=['/afs/cern.ch/user/l/limbach/scratch0/SavedAODs/MarksTestAOD_17252_CalHits/AOD_17252_CalHits.pool.root'] - #athenaCommonFlags.FilesInput=['/afs/cern.ch/user/m/mhodgkin/public/AOD_17252_CalHits_Latest.pool.root'] - #athenaCommonFlags.FilesInput=['/afs/cern.ch/user/m/mhodgkin/work/AOD_17214_500Events_Oct31.root'] - #athenaCommonFlags.FilesInput=['/afs/cern.ch/user/m/mhodgkin/work/AOD_17214_500Events_Nov19_NoPileup.root'] #no pileup - #athenaCommonFlags.FilesInput=['/afs/cern.ch/user/m/mhodgkin/public/AOD_test12Dec.pool.root'] - #athenaCommonFlags.FilesInput=['/afs/cern.ch/user/m/mhodgkin/work/AODFiles_16Dec/AOD_1.pool.root'] - # - #athenaCommonFlags.FilesInput=['AOD_withNewEflowObjects.pool.root'] - - - # Sample with Split Shower Alg and the k_1 parameter set to 0 - #athenaCommonFlags.FilesInput=['/afs/cern.ch/user/m/mhodgkin/work/AODFiles_17Dec_k1_0/AOD_1.pool.root'] - - # Sample with Split Shower Alg - athenaCommonFlags.FilesInput=['/afs/cern.ch/user/m/mhodgkin/work/AODFiles_16Dec/AOD_1.pool.root'] - - # Sample without Split Shower Alg. A bug was fixed, - #### NOTE: eflowObjects are called: eflowObjects01 (!) - #athenaCommonFlags.FilesInput=['/afs/cern.ch/user/m/mhodgkin/work/AODFiles_1Feb_noSplotShowerRecoverAlg/AOD_1.pool.root'] - #SGKEY_eflowObjects = "eflowObjects01" - -athenaCommonFlags.EvtMax=10#250 # number of events to process run on all file - -from tauRec.tauRecFlags import jobproperties -jobproperties.tauRecFlags.Enabled.set_Value_and_Lock(False) -jobproperties.tauRecFlags.doRunTauDiscriminant.set_Value_and_Lock(False) - -#...add truth info in D3PD -doTrigger=False -doTAG=False - -from RecExConfig.RecFlags import rec,Rec -rec.doCBNT.set_Value_and_Lock(False) -rec.doWriteESD.set_Value_and_Lock(False) -rec.doESD.set_Value_and_Lock(False) -rec.doAOD.set_Value_and_Lock(False) -#rec.doTruth.set_Value_and_Lock( True ) - -#disable the AODFix (should resolve problems with tau->pt() being 0.00191628) -rec.doApplyAODFix.set_Value_and_Lock(False) - -include( "RecExCommon/RecExCommon_topOptions.py" ) - - - - -#### #### #### #### #### #### #### #### #### -# -# Define the D3PD Stream -# -#### #### #### #### #### #### #### #### #### - -## //////////////////////////////////////////////// -## Define the D3PD Stream - -from OutputStreamAthenaPool.MultipleStreamManager import MSMgr -alg = MSMgr.NewRootStream("EFLOWD3PDSTREAM", "Test_eflowD3PD_16Dec_WithSplitShower_10Evts.root", "eflowD3PD") - -# algs to run prior to dumping -from eflowD3PDMaker.eflowD3PDMakerConf import eflowClusterSelector -eflowClusSelector = eflowClusterSelector() -topSequence += eflowClusSelector - - -from eflowRec.eflowTrackToCaloTrackExtrapolatorTool import eflowTrackToCaloTrackExtrapolatorToolDefault -TrackToCaloTrackExtrapolatorToolDefault=eflowTrackToCaloTrackExtrapolatorToolDefault() - - - -#### #### #### #### #### #### #### #### #### -# -# Configure the D3PD -# -#### #### #### #### #### #### #### #### #### - - -from D3PDMakerCoreComps.D3PDObject import D3PDObject - - -#### The basic kinematics #### -from eflowD3PDMaker.eflowD3PDObject import * -eflowD3PDObject = D3PDObject (makeeflowD3PDObject, 'eflowBase_') -eflowD3PDObject.SGKey = SGKEY_eflowObjects -eflowD3PDObject.defineBlock(0, 'Kinematics', eflowD3PDMakerConf.D3PD__eflowFillerTool) -eflowD3PDObject.defineBlock (0, 'Details', eflowD3PDMakerConf.D3PD__eflowObjectDetailsFillerTool) -alg += eflowD3PDObject(level=10) - - -#### The track variables #### -from eflowD3PDMaker.eflowTrackD3PDObject import * -eflowTrackD3PDObject = D3PDObject (makeeflowTrackD3PDObject, 'eflowTrack_') -eflowTrackD3PDObject.SGKey = SGKEY_eflowObjects -eflowTrackD3PDObject.defineBlock( 0,'eflowTrack', eflowD3PDMakerConf.D3PD__eflowTrackFillerTool, - eflowTrackToCaloTrackExtrapolatorTool = TrackToCaloTrackExtrapolatorToolDefault) -alg += eflowTrackD3PDObject(10) - - -#### The calibration hits #### -from calCellInfoD3PDMaker.calCellInfoD3PDObject import * -calCellInfoD3PDObject = D3PDObject(makecalCellInfoD3PDObject,'CalCellInfo_') -calCellInfoD3PDObject.defineBlock(0,'CallCellInfo', calCellInfoD3PDMakerConf.D3PD__calCellInfoFillerTool) -alg += calCellInfoD3PDObject(10) - - -#### The calibration hits #### -from calCellInfoD3PDMaker.calCellInfoD3PDObject import * -calCellInfoD3PDObject = D3PDObject(makecalCellInfoD3PDObject,'CalCellInfoPreSub_') -calCellInfoD3PDObject.defineBlock(0,'CallCellInfoPreSub', calCellInfoD3PDMakerConf.D3PD__calCellInfoFillerTool) -alg += calCellInfoD3PDObject(10, sgkey='CalCellInfo_preSubtraction') - - -#### TauRec block #### -import TrackD3PDMaker -from D3PDMakerCoreComps.ContainedVectorMultiAssociation import ContainedVectorMultiAssociation -from D3PDMakerCoreComps.SimpleAssociation import SimpleAssociation - -#Test A -from D3PDMakerCoreComps.D3PDObject import make_SGDataVector_D3PDObject -from D3PDMakerConfig.D3PDMakerFlags import D3PDMakerFlags -from TauD3PDMaker.TauD3PDMakerConf import D3PD__TauPIDFillerTool -from TauD3PDMaker.TauD3PDMakerConf import D3PD__TauJetFillerTool -from TauD3PDMaker.TauD3PDMakerConf import D3PD__TauTrackAssociationTool -from TauD3PDMaker.TauD3PDMakerConf import D3PD__TauTrackToOriginFillerTool -import EventCommonD3PDMaker - -TauD3PDObject = make_SGDataVector_D3PDObject( "Analysis::TauJetContainer", D3PDMakerFlags.TauSGKey(), "tau_", "TauD3PDObject" ) -TauD3PDObject.defineBlock (0, 'Kinematics', EventCommonD3PDMaker.FourMomFillerTool, WriteEt = True, WritePt = True) -TauD3PDObject.defineBlock (0, 'Charge', EventCommonD3PDMaker.ChargeFillerTool) -TauD3PDObject.defineBlock (0, 'PID', D3PD__TauPIDFillerTool) -TauD3PDObject.defineBlock (0, 'TauJet', D3PD__TauJetFillerTool) -TauD3PDObject.defineBlock (0, 'TracksToOrigin', D3PD__TauTrackToOriginFillerTool) -# Associate tau with its tracks -TauTrackAssoc = ContainedVectorMultiAssociation \ - (TauD3PDObject, - D3PD__TauTrackAssociationTool,prefix='track_') -TrackParticlePerigeePVAssoc = SimpleAssociation \ - (TauTrackAssoc, - TrackD3PDMaker.TrackParticlePerigeeAtPVAssociationTool, - prefix = 'atPV_', - blockname = 'SeedCaloTrkPVAssoc') -TrackParticlePerigeePVAssoc.defineBlock (2, 'TrkPV', - TrackD3PDMaker.TrackPerigeeFillerTool, - FillMomentum = True) -alg += TauD3PDObject(10) - -#### Add the primary vertex #### -from TrackD3PDMaker.VertexD3PDObject import PrimaryVertexD3PDObject -alg += PrimaryVertexD3PDObject (0, allowMissing = True, - sgkey = D3PDMakerFlags.VertexSGKey(), - prefix = 'vxp_') - - -#### Prepare for truth info #### -from D3PDMakerConfig.D3PDMakerFlags import D3PDMakerFlags -from TruthD3PDAnalysis.truthParticleConfig import truthParticleConfig -D3PDMakerFlags.TruthParticlesSGKey = 'INav4MomTruthEvent' -truthParticleConfig(topSequence, sgkey=D3PDMakerFlags.TruthParticlesSGKey(), writeHadrons=True, writePartons=True, writeGeant=False) - - -#### Even more truth information #### -from TruthD3PDMaker.GenEventD3PDObject import GenEventD3PDObject -from TruthD3PDMaker.TruthParticleD3PDObject import TruthParticleD3PDObject -alg += TruthParticleD3PDObject (10, sgkey=D3PDMakerFlags.TruthParticlesSGKey()) - - -#### Get the true taus into d3pd #### -from TauD3PDMaker.TauD3PDMakerConf import TruthTausToSG -topSequence += TruthTausToSG() -from TauD3PDMaker.TruthTauD3PDObject import TruthTauD3PDObject -alg += TruthTauD3PDObject(10) - - -#### Get the clusters #### -from CaloD3PDMaker.ClusterD3PDObject import ClusterD3PDObject -alg += ClusterD3PDObject (10, include='Kinematics') - - - - -#end of file diff --git a/PhysicsAnalysis/PanTauAnalysis/share/PanTau_ESD-to-D3PD_RerunEflow_TopOptions.py b/PhysicsAnalysis/PanTauAnalysis/share/PanTau_ESD-to-D3PD_RerunEflow_TopOptions.py deleted file mode 100644 index 3ad1d4fe777a992e2c4b450d31d238ce68d58780..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/PanTauAnalysis/share/PanTau_ESD-to-D3PD_RerunEflow_TopOptions.py +++ /dev/null @@ -1,117 +0,0 @@ -# ////////////////////////////////////////////////////////////////// -# -# Job Options to... start from a (D)ESD, run eflowRec to create a eflowRecContainer in the transient -# AOD then run PanTau on that AOD and have it D3PD-alized by the TauD3PDMaker. Wow! -# -#To be verified: -# These JO can be submitted to the GRID by the corresponding script in the scripts folder -# ////////////////////////////////////////////////////////////////// - - - -from AthenaCommon.AthenaCommonFlags import athenaCommonFlags -athenaCommonFlags.EvtMax=100 -#athenaCommonFlags.FilesInput=["/tmp/limbach/data11_7TeV.00187501.physics_Muons.recon.DESD_ZMUMU.f396_m716_r2764_tid530016_00/DESD_ZMUMU.530016._000004.pool.root.1"] -athenaCommonFlags.FilesInput=['/afs/cern.ch/user/l/limbach/scratch0/SavedAODs/data11_7TeV.00191933.physics_JetTauEtmiss.merge.AOD.r3047_r3053_p673_tid619449_00/AOD.619449._000002.pool.root.1'] - - -## //////////////////////////////////////////////// -## eflowRec Part -from RecExConfig.RecFlags import rec -rec.doTruth.set_Value_and_Lock( False ) -rec.doCBNT.set_Value_and_Lock(False) -rec.doWriteESD.set_Value_and_Lock(False) -rec.doWriteAOD.set_Value_and_Lock(False) #explicitly disable for GRID jobs, use offline in testing for checks -rec.doAOD.set_Value_and_Lock(True) - -# enable eflowRec -from RecExConfig.RecAlgsFlags import recAlgs -recAlgs.doEFlow.set_Value_and_Lock(True) - -# change some calo flags (Mark's JO) -from CaloRec.CaloRecFlags import jobproperties as CaloRecJP -CaloRecJP.CaloRecFlags.Enabled.set_Value_and_Lock(True) -CaloRecJP.CaloRecFlags.doCaloCluster.set_Value_and_Lock(True) -CaloRecJP.CaloRecFlags.doCaloTopoCluster.set_Value_and_Lock(True) - -# set eflowRec to tauMode -from eflowRec.eflowRecFlags import jobproperties as eflowRecJP -eflowRecJP.eflowRecFlags.runTauMode.set_Value_and_Lock(True) - - - -## //////////////////////////////////////////////// -## PanTau / D3PD Part -from PanTauAnalysis.PanTauDPDFlags import panTauDPDFlags -panTauDPDFlags.PanTauPerfD3PDName = "ValidationTest_ESD-to-D3PD" -panTauDPDFlags.PanTauPerfD3PDSize = "medium" - -from PanTauAnalysis.PanTauFlags import panTauFlags -panTauFlags.GetImpactParameterFeatures = True # test to see whether FPEs vanish -panTauFlags.GetJetFeatures = True # test to see whether FPEs vanish - -from PanTauAnalysis.PanTauSeedBuilderAlg_Flags import PanTauSeedBuilderAlgFlags as PSB_Flags -PSB_Flags.DoRunTimeHists = False # create root file with runtime hists from SeedBuilder - -from ParticleBuilderOptions.AODFlags import AODFlags -AODFlags.McEventKeyStr.set_Value_and_Lock('GEN_AOD') - -from JetRec.JetRecFlags import jetFlags -jetFlags.inputTruthColl_RECO.set_Value_and_Lock('GEN_AOD') - -from D3PDMakerConfig.D3PDMakerFlags import D3PDMakerFlags -D3PDMakerFlags.TruthSGKey.set_Value_and_Lock('GEN_AOD') -D3PDMakerFlags.CellsSGKey.set_Value_and_Lock('AODCellContainer') -D3PDMakerFlags.JetSGKey.set_Value_and_Lock('AntiKt4LCTopoJets') - - - - -## //////////////////////////////////////////////// -## Execution part - -#Main JobOptions -include("RecExCommon/RecExCommon_topOptions.py") - -#Add PanTau -from AthenaCommon.AlgSequence import AlgSequence -include("PanTauAnalysis/TauIdAnalysis_topOptions.py") - -# Add eflowContainers -# Build AOD objects and write them out to a POOL file -from AthenaPoolCnvSvc.WriteAthenaPool import AthenaPoolOutputStream -StreamAOD = AthenaPoolOutputStream( "StreamAOD" ) -import AthenaCommon.PropertiesManip as manip -manip.appendItemsToList(StreamAOD,'ItemList','eflowObjectContainer#eflowObjects_tauMode') -manip.appendItemsToList(StreamAOD,'ItemList','CaloClusterContainer#eflowClusters_tauMode') - -#adjusting outputlevels to get rid of over abundant warnings from MuonMET something -from JetMissingEtTagTools.JetMissingEtTagToolsConf import JetMissingEtTagTool as ConfiguredJetMissingEtTagTool -ConfiguredJetMissingEtTagTool.OutputLevel = ERROR - -#Silence the TrigDecision tool -ToolSvc.TrigDecisionTool.OutputLevel = ERROR - -#Silence the StoreGateSvc -StoreGateSvc = Service("StoreGateSvc") -StoreGateSvc.OutputLevel = ERROR - - -#Add the D3PD algorithm -dpdname = panTauDPDFlags.PanTauPerfD3PDName() -dpdsize = panTauDPDFlags.PanTauPerfD3PDSize().lower() - -if dpdsize.find("small") is not -1: - from TauD3PDMaker.tauPerfSmall import tauPerfSmall - alg = tauPerfSmall (file=dpdname+"Small.root", level=10, tuplename="tau", streamName="TauSMALL") - #alg.AddRequireAlgs(["ZMuMuTriggerFilter", "ZMuMuMuonFilter", "ZMuMuZMuMuFilter", "ZMuMuTauFilter"]) - -elif dpdsize.find("medium") is not -1: - from TauD3PDMaker.tauPerfMedium import tauPerfMedium - alg = tauPerfMedium (file=dpdname+".root", doCl = True, doTrk = False, doHad = True, level=10, tuplename='tau', streamName="TauMEDIUM") - #alg.AddRequireAlgs(["ZMuMuTriggerFilter", "ZMuMuMuonFilter", "ZMuMuZMuMuFilter", "ZMuMuTauFilter"]) - - - - -# end of file diff --git a/PhysicsAnalysis/PanTauAnalysis/share/PanTau_ESD-to-D3PD_TopOptions.py b/PhysicsAnalysis/PanTauAnalysis/share/PanTau_ESD-to-D3PD_TopOptions.py deleted file mode 100644 index 86f855492c03078039aac8d2d02629618872dc07..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/PanTauAnalysis/share/PanTau_ESD-to-D3PD_TopOptions.py +++ /dev/null @@ -1,163 +0,0 @@ -#//////////////////////////////////////////////////////////////////// -# -# topOptions for PanTau: -# Input : An ESD that contains the eflowRec container eflowObjects_tauMode and the tauRecContainer -# Output: A TauD3PD that contains an enhanced tau block: -# - tau_pantau block: -# These variables are available in official AOD -# -# - tau_pantauFeature block: -# These variables are not available in the official AOD -# However, these are all the variables from the -# PanTau::TauSeed that are available -# These variables should be used for performance studies -# -# This jobOption file will work when submitting GRID jobs! -# Simply use the script -# submit-pathena-job_AOD_to_PanTauD3PD.sh -# to submit the jobs for a single sample, or use -# Launch_GridJobs.sh -# to submit jobs for all desired samples -# -#//////////////////////////////////////////////////////////////////// - - -#////////////////////////////////// -# Input Files -#////////////////////////////////// - -from AthenaCommon.AthenaCommonFlags import athenaCommonFlags -if athenaCommonFlags.FilesInput.isDefault(): # check if not already set upstream - #athenaCommonFlags.FilesInput=['/tmp/limbach/user.bwinter.TauPi0RecESD2ESDforD3PD_test.147818.Pythia8_AU2CTEQ6L1_Ztautau.recon.ESD.e1176_s1479_s1470_r3553_tid00999072_00.v00-00.130321120743/user.bwinter.000603.EXT0._02502.ESD.pool.root'] -# athenaCommonFlags.FilesInput=['/tmp/limbach/mc12_8TeV.147818.Pythia8_AU2CTEQ6L1_Ztautau.recon.ESD.e1176_s1479_s1470_r3553_tid00999072_00/ESD.00999072._006001.pool.root.1'] - #athenaCommonFlags.FilesInput=['/tmp/limbach/user.bwinter.TauPi0RecESD2ESDforD3PD_test.147818.Pythia8_AU2CTEQ6L1_Ztautau.recon.ESD.e1176_s1479_s1470_r3553_tid00999072_00.v01-00.130322163340/user.bwinter.000611.EXT0._00030.ESD.pool.root'] - - #lxplus428: - athenaCommonFlags.FilesInput=['/tmp/limbach/user.bwinter.TauPi0RecESD2ESD.147818.Pythia8_AU2CTEQ6L1_Ztautau.recon.ESD.e1176_s1479_s1470_r3553_tid00999072_00.v00-01.130222100411/user.bwinter.000509.EXT0._01085.ESD.pool.root'] -athenaCommonFlags.EvtMax=100 # number of events to process run on all file - - -#////////////////////////////////// -# jobOption flags -#////////////////////////////////// - -includePanTauInRecExCommon = False # Set to true for PanTau output in AOD - -from PanTauAnalysis.PanTauSeedBuilderAlg_Flags import PanTauSeedBuilderAlgFlags as PSB_Flags -import AthenaCommon.SystemOfUnits as Units -PSB_Flags.Config_DoRunTimeHists = True # create root file with runtime hists from SeedBuilder -PSB_Flags.Config_EfoSel_DoEfoSelection = True # False is the default until proven 'True' is better -PSB_Flags.Config_EfoSel_PiZeroBDTThreshold = -0.04; -PSB_Flags.Config_Presel_DoPreselection = False - -#tauRec vicinity check -PSB_Flags.Config_DoTauRecVicinityCheck = False -PSB_Flags.Config_DeltaRTauRecVicinityCheck = 1.2 -PSB_Flags.Config_KeepOverlapTauRecVicinity = False - - -#configure storage of output D3PD... -from PanTauAnalysis.PanTauDPDFlags import panTauDPDFlags -panTauDPDFlags.PanTauPerfD3PDName = "TauPerfTest_from__inputForTauPi0RecESD2ESDforD3PD_test.root" - -#...add truth info in D3PD -from RecExConfig.RecFlags import rec -rec.doTruth.set_Value_and_Lock( True ) -#rec.AutoConfiguration = [ "everything" ] - -#////////////////////////////////// -# Main Job Options -#////////////////////////////////// - -# !!! !!! # -# !!! You must not modify flags below this point !!! # -# !!! !!! # - -#Basic PanTau config -from PanTauAnalysis.PanTauFlags import panTauFlags -panTauFlags.ExtractAllFeatures.set_Value_and_Lock(True) - -rec.readAOD = False -rec.readESD = True -rec.readRDO = False -rec.doCBNT = False -rec.doWriteESD = False -rec.doWriteTAG = False -rec.doPerfMon = False -rec.doHist = False - -if includePanTauInRecExCommon: - rec.doAOD.set_Value_and_Lock(True) - rec.doWriteAOD.set_Value_and_Lock(True) -else: - rec.doAOD.set_Value_and_Lock(False) - rec.doWriteAOD.set_Value_and_Lock(False) - -# commented out in AOD->D3PD -from AthenaServices.AthenaServicesConf import AthenaEventLoopMgr -ServiceMgr += AthenaEventLoopMgr() - - -from AthenaCommon.AlgSequence import AlgSequence -topSequence = AlgSequence() - - -# need to include PanTau explicitely, since it's "protected" by doAOD in RecExCommon -#if includePanTauInRecExCommon: - #rec.UserAlgs=[ "PanTauAnalysis/PanTau_Main_TopOptions.py" ] -include( "RecExCommon/RecExCommon_topOptions.py" ) - -if not includePanTauInRecExCommon: - #include("PanTauAnalysis/PanTau_Main_TopOptions.py") - - from TauD3PDMaker.TauD3PDMakerConf import TruthTausToSG - if rec.readESD(): - TruthTausToSG.truth_container="INav4MomTruthEvent" - print("climbach: updated TruthTausToSG to be INav4MomTruthEvent") - topSequence += TruthTausToSG() - - -ServiceMgr.AthenaEventLoopMgr.EventPrintoutInterval = 1 - - - -#////////////////////////////////// -# D3PD Output -#////////////////////////////////// - -dpdname = panTauDPDFlags.PanTauPerfD3PDName() - -from TauD3PDMaker.tauPerf import tauPerf -alg = tauPerf ( level = 10, - file=dpdname, - doPhys = True, - doCl = True, - doCell = False, - doPi0BonnDevVars = False, - doTrk = True, - doHad = True, - doOtherTrk = True, - tuplename = 'tau', - seq = topSequence, - D3PDSvc = 'D3PD::RootD3PDSvc', - doMETSkimVariables = False, - streamName = "TauPERF") - - -#////////////////////////////////// -# Silence over abundant messages -#////////////////////////////////// -############################ -#Silence Trig Navigation Warnings -from AthenaCommon.AppMgr import ToolSvc -if not hasattr( ToolSvc, "TrigDecisionTool" ): - from TrigDecisionTool.TrigDecisionToolConf import Trig__TrigDecisionTool - ToolSvc += Trig__TrigDecisionTool( "TrigDecisionTool" ) - ToolSvc.TrigDecisionTool.Navigation.OutputLevel = ERROR - ToolSvc.TrigDecisionTool.OutputLevel = ERROR -############################# -StoreGateSvc.OutputLevel = FATAL - - -#end of file - diff --git a/PhysicsAnalysis/PanTauAnalysis/share/PanTau_ESD-to-eflowAOD_TopOptions.py b/PhysicsAnalysis/PanTauAnalysis/share/PanTau_ESD-to-eflowAOD_TopOptions.py deleted file mode 100644 index 34abb6d89732701fb05b432297ac90db58ac68a2..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/PanTauAnalysis/share/PanTau_ESD-to-eflowAOD_TopOptions.py +++ /dev/null @@ -1,43 +0,0 @@ -from AthenaCommon.AthenaCommonFlags import athenaCommonFlags -#athenaCommonFlags.FilesInput=["/atlas1/atlas/mc11_7TeV.107054.PythiaWtaunu_incl.recon.ESD.e825_s1349_s1300_r3604_tid792515_00/ESD.792515._000093.pool.root.2"] -#athenaCommonFlags.FilesInput=["/atlas1/atlas/mc11_7TeV.107054.PythiaWtaunu_incl.recon.ESD.e825_s1349_s1300_r3604_tid792515_00/ESD.792515._000041.pool.root.1"] -#athenaCommonFlags.FilesInput=["/tmp/limbach/data11_7TeV.00187501.physics_Muons.recon.DESD_ZMUMU.f396_m716_r2764_tid530016_00/DESD_ZMUMU.530016._000004.pool.root.1"] -athenaCommonFlags.FilesInput=["/tmp/limbach/mc12_8TeV.147818.Pythia8_AU2CTEQ6L1_Ztautau.recon.ESD.e1176_s1484_s1470_r3578_tid783783_00/ESD.783783._000006.pool.root.1"] - - - -from RecExConfig.RecFlags import rec#,Rec -rec.doCBNT.set_Value_and_Lock(False) -rec.doWriteESD.set_Value_and_Lock(False) -#rec.doESD.set_Value_and_Lock(True) -rec.doAOD.set_Value_and_Lock(True) - -from RecExConfig.RecAlgsFlags import recAlgs -recAlgs.doEFlow.set_Value_and_Lock(True) -#recAlgs.doTrigger.set_Value_and_Lock(True) - -##change some calo flags -from CaloRec.CaloRecFlags import jobproperties as CaloRecJP -CaloRecJP.CaloRecFlags.Enabled.set_Value_and_Lock(True) -CaloRecJP.CaloRecFlags.doCaloCluster.set_Value_and_Lock(True) -CaloRecJP.CaloRecFlags.doCaloTopoCluster.set_Value_and_Lock(True) - -from eflowRec.eflowRecFlags import jobproperties as eflowRecJP -eflowRecJP.eflowRecFlags.runTauMode.set_Value_and_Lock(True) - - -from AthenaCommon.AthenaCommonFlags import athenaCommonFlags -athenaCommonFlags.EvtMax=20 -include("RecExCommon/RecExCommon_topOptions.py") - -import AthenaCommon.PropertiesManip as manip - -manip.appendItemsToList(StreamAOD,'ItemList','eflowObjectContainer#eflowObjects_tauMode') -manip.appendItemsToList(StreamAOD,'ItemList','CaloClusterContainer#eflowClusters_tauMode') - -#adjusting outputlevels to get rid of over abundant warnings from MuonMET something -from JetMissingEtTagTools.JetMissingEtTagToolsConf import JetMissingEtTagTool as ConfiguredJetMissingEtTagTool -ConfiguredJetMissingEtTagTool.OutputLevel = ERROR -StoreGateSvc = Service("StoreGateSvc") -StoreGateSvc.OutputLevel = ERROR - diff --git a/PhysicsAnalysis/PanTauAnalysis/share/PanTau_ESD-to-eflowStudyD3PD_TopOptions.py b/PhysicsAnalysis/PanTauAnalysis/share/PanTau_ESD-to-eflowStudyD3PD_TopOptions.py deleted file mode 100644 index 5a5f5a6402f8ca1906120029236f7c57460eaa57..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/PanTauAnalysis/share/PanTau_ESD-to-eflowStudyD3PD_TopOptions.py +++ /dev/null @@ -1,141 +0,0 @@ -# ////////////////////////////////////////////////////////////////// -# -# Job Options to... start from a (D)ESD, run eflowRec to create a eflowRecContainer in the transient -# AOD along with the calibration hit information. -# Then dump the contents into a D3PD -# -#To be verified: -# These JO can be submitted to the GRID by the corresponding script in the scripts folder -# ////////////////////////////////////////////////////////////////// - - - -from AthenaCommon.AthenaCommonFlags import athenaCommonFlags -athenaCommonFlags.EvtMax=200 -athenaCommonFlags.FilesInput=["/tmp/limbach/mc12_8TeV.147818.Pythia8_AU2CTEQ6L1_Ztautau.recon.ESD.e1176_s1479_s1470_r3578_tid783779_00/ESD.783779._000975.pool.root.1"] - - - -## //////////////////////////////////////////////// -## eflowRec Part -from RecExConfig.RecFlags import rec -rec.doTruth.set_Value_and_Lock( False ) -rec.doCBNT.set_Value_and_Lock(False) -rec.doWriteESD.set_Value_and_Lock(False) -rec.doWriteAOD.set_Value_and_Lock(False) #explicitly disable for GRID jobs, use offline in testing for checks -rec.doAOD.set_Value_and_Lock(True) - -# enable eflowRec -from RecExConfig.RecAlgsFlags import recAlgs -recAlgs.doEFlow.set_Value_and_Lock(True) - -# change some calo flags (Mark's JO) -from CaloRec.CaloRecFlags import jobproperties as CaloRecJP -CaloRecJP.CaloRecFlags.Enabled.set_Value_and_Lock(True) -CaloRecJP.CaloRecFlags.doCaloCluster.set_Value_and_Lock(True) -CaloRecJP.CaloRecFlags.doCaloTopoCluster.set_Value_and_Lock(True) - -# set eflowRec to tauMode -from eflowRec.eflowRecFlags import jobproperties as eflowRecJP -eflowRecJP.eflowRecFlags.runTauMode.set_Value_and_Lock(True) - -# set noise fags (Mark's JO) -from CaloTools.CaloNoiseFlags import jobproperties as CaloNoiseJP -CaloNoiseJP.CaloNoiseFlags.FixedLuminosity.set_Value_and_Lock(1.45) - - - -## //////////////////////////////////////////////// -## Execution part - -#...add truth info in D3PD -from RecExConfig.RecFlags import rec -rec.doTruth.set_Value_and_Lock( True ) - -include( "RecExCommon/RecExCommon_topOptions.py" ) - -# Add eflowContainers -# Build AOD objects and write them out to a POOL file -from AthenaPoolCnvSvc.WriteAthenaPool import AthenaPoolOutputStream -StreamAOD = AthenaPoolOutputStream( "StreamAOD" ) - -import AthenaCommon.PropertiesManip as manip -manip.appendItemsToList(StreamAOD,'ItemList','eflowObjectContainer#eflowObjects_tauMode') -manip.appendItemsToList(StreamAOD,'ItemList','CaloClusterContainer#eflowClusters_tauMode') - -#...add the calibration hit maker to create its container -# so that it can be dumped later by calCelInfoD3PDMaker -from MakeCellInfo.MakeCellInfoConf import MakeCalCellInfo -calCellInfo = MakeCalCellInfo() -print("(PanTau_ESD-to-eflowStudyD3PD_TopOptions.py) Setting EflowObjectsName to eflowObjects_tauMode") -calCellInfo.EflowObjectsName = "eflowObjects_tauMode" -calCellInfo.EflowClustersName = "eflowClusters_tauMode" -calCellInfo.TruthParticlesName = "INav4MomTruthEvent" -topSequence+=calCellInfo - - -## //////////////////////////////////////////////// -## Define the D3PD Stream - -from OutputStreamAthenaPool.MultipleStreamManager import MSMgr -alg = MSMgr.NewRootStream("EFLOWD3PDSTREAM", "eflowStudyD3PD_CalHits3_WithMCBlock.root", "eflowD3PD") - -# algs to run prior to dumping -from eflowD3PDMaker.eflowD3PDMakerConf import eflowClusterSelector -eflowClusSelector = eflowClusterSelector() -topSequence += eflowClusSelector - -from eflowRec.eflowTrackToCaloTrackExtrapolatorTool import eflowTrackToCaloTrackExtrapolatorToolDefault -TrackToCaloTrackExtrapolatorToolDefault=eflowTrackToCaloTrackExtrapolatorToolDefault() - - -#Configure the D3PD -from D3PDMakerCoreComps.D3PDObject import D3PDObject - -#### The basic kinematics #### -from eflowD3PDMaker.eflowD3PDObject import * -eflowD3PDObject = D3PDObject (makeeflowD3PDObject, 'eflowBase_') -eflowD3PDObject.defineBlock(0, 'Kinematics', - eflowD3PDMakerConf.D3PD__eflowFillerTool) -eflowD3PDObject.defineBlock (0, 'Details', - eflowD3PDMakerConf.D3PD__eflowObjectDetailsFillerTool) -alg += eflowD3PDObject(10) - - -#### The track variables #### -from eflowD3PDMaker.eflowTrackD3PDObject import * -eflowTrackD3PDObject = D3PDObject (makeeflowTrackD3PDObject, 'eflowTrack_') -eflowTrackD3PDObject.defineBlock(0,'eflowTrack', - eflowD3PDMakerConf.D3PD__eflowTrackFillerTool, - eflowTrackToCaloTrackExtrapolatorTool = TrackToCaloTrackExtrapolatorToolDefault) -alg += eflowTrackD3PDObject(10) - - -#### The calibration hits #### -from calCellInfoD3PDMaker.calCellInfoD3PDObject import * -calCellInfoD3PDObject = D3PDObject(makecalCellInfoD3PDObject,'CalCellInfo_') - -calCellInfoD3PDObject.defineBlock(0,'CallCellInfo', - calCellInfoD3PDMakerConf.D3PD__calCellInfoFillerTool) -alg += calCellInfoD3PDObject(10) - - -#### Prepare for truth info #### -from D3PDMakerConfig.D3PDMakerFlags import D3PDMakerFlags -from TruthD3PDAnalysis.truthParticleConfig import truthParticleConfig -D3PDMakerFlags.TruthParticlesSGKey = 'INav4MomTruthEvent' -truthParticleConfig(topSequence, sgkey=D3PDMakerFlags.TruthParticlesSGKey(), writeHadrons=True, writePartons=True, writeGeant=False) - -#### Even more truth information #### -from TruthD3PDMaker.GenEventD3PDObject import GenEventD3PDObject -from TruthD3PDMaker.TruthParticleD3PDObject import TruthParticleD3PDObject -alg += TruthParticleD3PDObject (10, sgkey=D3PDMakerFlags.TruthParticlesSGKey())#"INav4MomTruthEvent")#sgkey=D3PDMakerFlags.TruthParticlesSGKey() -#alg += GenEventD3PDObject (10) - - - - - - - - diff --git a/PhysicsAnalysis/PanTauAnalysis/share/PanTau_JetBuilding.py b/PhysicsAnalysis/PanTauAnalysis/share/PanTau_JetBuilding.py deleted file mode 100644 index afb0e700eaa75b12fb7227134e0426daed482567..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/PanTauAnalysis/share/PanTau_JetBuilding.py +++ /dev/null @@ -1,158 +0,0 @@ -class JetBuilding: - def __init__(self, JetAlgName, TruthJetCont="AntiKt4TruthJets", AllRecoJetCont="AntiKt4LCTopoJets"): - - from AthenaCommon.AlgSequence import AlgSequence - topSequence = AlgSequence() - - # Build the list of decay modes that shall be separated (needed to get the case fragment right for weight files) - # === IMPORTANT NOTE === - #NOTE: This order has to match the order in which the DiscTools add their likeliness to the likeliness vector in PanTau::TauJetBuilderAlg::execute. - #NOTE: Convention for order: Start with Low prong and low neutrals, move up in neutrals, then move to next higher prong. Add fakes at the end. - # - # However, this code should not need to be changed very often. Only if the number of modes change. In that case, one would have to revisit the code anyway... - # Hence: Hands off, unless you know what you're getting yourself into :) - from PanTauAnalysis.PanTauJetBuilderAlg_Flags import PanTauJetBuilderAlgFlags as PJB_Flags - ListOfDecayModes = [PJB_Flags.MVA_ModeName1p0n(), - PJB_Flags.MVA_ModeName1p1n(), - PJB_Flags.MVA_ModeName1pXn(), - PJB_Flags.MVA_ModeName3p0n(), - PJB_Flags.MVA_ModeName3pXn()] - - # Add the discrimination tools - from AthenaCommon.AppMgr import ToolSvc - - ### ====== Tool for 1p0n - ItsName = "PanTauDiscrTool_" + JetAlgName + "_" + PJB_Flags.MVA_ModeName1p0n() - DiscTool_1p0n = getDiscriminantTool(ItsName, JetAlgName, PJB_Flags.MVA_ModeName1p0n(), ListOfDecayModes, PJB_Flags.MVA_UsedFeatures1p0n()) - DiscTool_1p0n.OutputLevel = INFO - ToolSvc += DiscTool_1p0n - printfunc (DiscTool_1p0n) - - ### ====== Tool for 1p1n - ItsName = "PanTauDiscrTool_" + JetAlgName + "_" + PJB_Flags.MVA_ModeName1p1n() - DiscTool_1p1n = getDiscriminantTool(ItsName, JetAlgName, PJB_Flags.MVA_ModeName1p1n(), ListOfDecayModes, PJB_Flags.MVA_UsedFeatures1p1n()) - DiscTool_1p1n.OutputLevel = INFO - ToolSvc += DiscTool_1p1n - printfunc (DiscTool_1p1n) - - ### ====== Tool for 1pXn - ItsName = "PanTauDiscrTool_" + JetAlgName + "_" + PJB_Flags.MVA_ModeName1pXn() - DiscTool_1pXn = getDiscriminantTool(ItsName, JetAlgName, PJB_Flags.MVA_ModeName1pXn(), ListOfDecayModes, PJB_Flags.MVA_UsedFeatures1pXn()) - DiscTool_1pXn.OutputLevel = INFO - ToolSvc += DiscTool_1pXn - printfunc (DiscTool_1pXn) - - ### ====== Tool for 3p0n - ItsName = "PanTauDiscrTool_" + JetAlgName + "_" + PJB_Flags.MVA_ModeName3p0n() - DiscTool_3p0n = getDiscriminantTool(ItsName, JetAlgName, PJB_Flags.MVA_ModeName3p0n(), ListOfDecayModes, PJB_Flags.MVA_UsedFeatures3p0n()) - DiscTool_3p0n.OutputLevel = INFO - ToolSvc += DiscTool_3p0n - printfunc (DiscTool_3p0n) - - ### ====== Tool for 3pXn - ItsName = "PanTauDiscrTool_" + JetAlgName + "_" + PJB_Flags.MVA_ModeName3pXn() - DiscTool_3pXn = getDiscriminantTool(ItsName, JetAlgName, PJB_Flags.MVA_ModeName3pXn(), ListOfDecayModes, PJB_Flags.MVA_UsedFeatures3pXn()) - DiscTool_3pXn.OutputLevel = INFO - ToolSvc += DiscTool_3pXn - printfunc (DiscTool_3pXn) - - - - from PanTauAnalysis.PanTauValidationFlags import panTauValidationFlags - - from PanTauAnalysis.PanTauSeedBuilderAlg_Flags import PanTauSeedBuilderAlgFlags as PSB_Flags - PanTauGoodSeeds = PSB_Flags.ContainerName_PanTauGoodOutputSeeds() + JetAlgName - PanTauBadSeeds = PSB_Flags.ContainerName_PanTauBadOutputSeeds() + JetAlgName - - from PanTauAnalysis.PanTauValidationFlags import panTauValidationFlags - - from PanTauAlgs.PanTauAlgsConf import PanTau__TauJetBuilderAlg - jetBuilderAlg = PanTau__TauJetBuilderAlg( "TauJetBuild"+JetAlgName, - #container names... - ContainerName_PanTauSeedCollection = PanTauGoodSeeds, - ContainerName_PanTauRejectedSeedCollection = PanTauBadSeeds, - #the decay mode separation tools... - MVA_ListOfDecayModeNames = ListOfDecayModes, - MVA_DiscTool_1p0n = DiscTool_1p0n, - MVA_DiscTool_1p1n = DiscTool_1p1n, - MVA_DiscTool_1pXn = DiscTool_1pXn, - MVA_DiscTool_3p0n = DiscTool_3p0n, - MVA_DiscTool_3pXn = DiscTool_3pXn, - FeatureNames = panTauValidationFlags.AllFeatureNames(), - FeatureDefaultValues = panTauValidationFlags.AllFeatureDefaultValues(), - FeatureDefaultValueSmearingSigma = panTauValidationFlags.AllFeatureDefaultValueSmearingSigma(), - FeatureTypes = panTauValidationFlags.AllFeatureTypes(), - SmearDefaultValuesOfFeatures = panTauValidationFlags.DoFeatureDefaultSmearing() - ) - jetBuilderAlg.OutputLevel = INFO - topSequence += jetBuilderAlg - printfunc (jetBuilderAlg) - - #from RecExConfig.RecFlags import rec - - #end def__init__ -#end class JetBuilding - - - - - -def getDiscriminantTool(name, JetAlgName, WeightFilePrefixClass, ListOfAllModes, TauFeatureNames) : - """ - Factory function to create a TauDiscriminantTool - """ - from PanTauAnalysis.PanTauJetBuilderAlg_Flags import PanTauJetBuilderAlgFlags as PJB_Flags - import math - - #set feature types and default values for the features - # to be used in this disc tool - featureDefaultValues=[] - featureTypes=[] - for v in TauFeatureNames: - if (not (v in featureDefaultValue)) : - printfunc ("ERROR: could not get default value for ", v) - break - if (not (v in featureType)) : - printfunc ("ERROR: could not get type for ", v) - break - featureDefaultValues.append(featureDefaultValue[v]) - featureTypes.append(featureType[v]) - - #build the currentCase string - currentCase = WeightFilePrefixClass + "_vs_" - for iMode in ListOfAllModes: - if (WeightFilePrefixClass != iMode) : - currentCase = currentCase + iMode - - #build the weight file names - weightFilePrefixList = [] - for ptBin in range(1, len(PJB_Flags.MVA_PtBins())): - Fragment_Base = PJB_Flags.MVA_GeneralWeightFilePrefix() - Fragment_EtBin = "ET_" + str( int(math.floor(PJB_Flags.MVA_PtBins()[ptBin-1]/1000.)) ) + "_" + str( int(math.floor(PJB_Flags.MVA_PtBins()[ptBin]/1000.)) ) - Fragment_Case = currentCase - Fragment_Method = PJB_Flags.MVA_Method() - Fragment_Version = PJB_Flags.MVA_VersionName() - FileToAdd = Fragment_Base + "_" + Fragment_EtBin + "_" + Fragment_Case + "_" + Fragment_Method + "_" + Fragment_Version + ".weights.xml" - if (Fragment_Version == "") : - FileToAdd = Fragment_Base + "_" + Fragment_EtBin + "_" + Fragment_Case + "_" + Fragment_Method + ".weights.xml" - weightFilePrefixList.append(FileToAdd) - - #create and return the TauDiscriminant Tool - from PanTauAlgs.PanTauAlgsConf import PanTau__TauDiscriminantTool - return PanTau__TauDiscriminantTool( name, - WeightFileList = weightFilePrefixList, - PtBins = PJB_Flags.MVA_PtBins(), - TauFeatureNames = TauFeatureNames, - ItsCase = currentCase, - FeatureDefaultValues = featureDefaultValues, - FeatureTypes = featureTypes, - ReaderOption = "Silent:!Color", - EtaMax = 2.5, - MVA_Method = PJB_Flags.MVA_Method()) - -#getDiscriminantTool ends - - - - -# end of file diff --git a/PhysicsAnalysis/PanTauAnalysis/share/PanTau_JetValidating.py b/PhysicsAnalysis/PanTauAnalysis/share/PanTau_JetValidating.py deleted file mode 100644 index 0d0d95c4b7ac7f38290447b4a2473d94a5136c91..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/PanTauAnalysis/share/PanTau_JetValidating.py +++ /dev/null @@ -1,116 +0,0 @@ -class JetValidating: - - - def __init__ (self, JetAlgName, JetCont="Cone4TruthJets", JetRecCont="Cone4H1TopoJets"): - - from AthenaCommon.AlgSequence import AlgSequence - topSequence = AlgSequence() - from AthenaCommon.AppMgr import ToolSvc - - ##### TauTools - #from TauTools.TauToolsConf import TauToolAthenaExample - #tauToolExample = TauToolAthenaExample() - #topSequence += tauToolExample - #tauToolExample.OutputLevel = INFO #DEBUG - #from TauTools.TauToolsConf import AraAlgToolWrapper_TauExamples_ - #tauToolExample.TheTool = AraAlgToolWrapper_TauExamples_("AraAlgToolWrapper_TauExamples_") - #tauToolExample.TheTool.MCParticleContainer = "SpclMC" - #tauToolExample.TheTool.TauJetContainer = "TauRecContainer" - #tauToolExample.TheTool.DeltaRCut = 0.2 - ##### TauValidation - from TauValidation.TauValidationConf import TauValATHENAExample - #tauValAthEx = TauValATHENAExample( ) - #topSequence += tauValAthEx - - ## Containers - #tauValAthEx.TruthParticleContainer = "SpclMC" - #tauValAthEx.TauJetContainer = "PanTauJetsCone4" - #tauValAthEx.JetContainer = "Cone4TruthJets" - #tauValAthEx.JetRecContainer = "Cone4H1TopoJets" - #tauValAthEx.EleContainer = "ElectronAODCollection" - #tauValAthEx.MuonContainer = "StacoMuonCollection" - #tauValAthEx.TrackParticleContainer = "TrackParticleCandidate" - #tauValAthEx.RunOverBkgSample = RunOverBkgSample - - ##Cut values - #tauValAthEx.DeltaRMatchCut = 0.2 - #tauValAthEx.LeadingChPiPtCut = 6.0 - #tauValAthEx.UseGoodCharge = True - #tauValAthEx.UseElectronVeto = False - #tauValAthEx.UseMuonVeto = False - - #tauValAthEx.ROOTFileName = "TauValidation.root" - ##tauValAthEx.OutputLevel = DEBUG - ########### now the same for TauRec - #tauValAthEx = TauValATHENAExample( "TauValAthExTauRec" ) - #topSequence += tauValAthEx - - ## Containers - #tauValAthEx.TruthParticleContainer = "SpclMC" - #tauValAthEx.TauJetContainer = "TauRecContainer" - #tauValAthEx.JetContainer = "Cone4TruthJets" - #tauValAthEx.JetRecContainer = "Cone4H1TopoJets" - #tauValAthEx.EleContainer = "ElectronAODCollection" - #tauValAthEx.MuonContainer = "StacoMuonCollection" - #tauValAthEx.TrackParticleContainer = "TrackParticleCandidate" - #tauValAthEx.RunOverBkgSample = RunOverBkgSample - - ##Cut values - #tauValAthEx.DeltaRMatchCut = 0.2 - #tauValAthEx.LeadingChPiPtCut = 6.0 - #tauValAthEx.UseGoodCharge = True - #tauValAthEx.UseElectronVeto = False - #tauValAthEx.UseMuonVeto = False - - #tauValAthEx.ROOTFileName = "TauValidation-TauRec.root" - #tauValAthEx.OutputLevel = INFO #DEBUG - - - tauValAthEx = TauValATHENAExample("TauValAthExPanTauNoChargeCut" ) - topSequence += tauValAthEx - - # Containers - tauValAthEx.TruthParticleContainer = "SpclMC" - tauValAthEx.TauJetContainer = "PanTauJetsCone4" - tauValAthEx.JetContainer = "Cone4TruthJets" - tauValAthEx.JetRecContainer = "Cone4H1TopoJets" - tauValAthEx.EleContainer = "ElectronAODCollection" - tauValAthEx.MuonContainer = "StacoMuonCollection" - tauValAthEx.TrackParticleContainer = "TrackParticleCandidate" - #tauValAthEx.RunOverBkgSample = RunOverBkgSample - - #Cut values - tauValAthEx.DeltaRMatchCut = 0.2 - tauValAthEx.LeadingChPiPtCut = 6.0 - tauValAthEx.UseGoodCharge = False - tauValAthEx.UseElectronVeto = False - tauValAthEx.UseMuonVeto = False - - tauValAthEx.ROOTFileName = "TauValidationNoChargeCut.root" - #tauValAthEx.OutputLevel = DEBUG - ########## now the same for TauRec - tauValAthEx = TauValATHENAExample( "TauValAthExTauRecNoChargeCut" ) - topSequence += tauValAthEx - - # Containers - tauValAthEx.TruthParticleContainer = "SpclMC" - tauValAthEx.TauJetContainer = "TauJets" - tauValAthEx.JetContainer = "Cone4TruthJets" - tauValAthEx.JetRecContainer = "Cone4H1TopoJets" - tauValAthEx.EleContainer = "ElectronAODCollection" - tauValAthEx.MuonContainer = "StacoMuonCollection" - tauValAthEx.TrackParticleContainer = "TrackParticleCandidate" - #tauValAthEx.RunOverBkgSample = RunOverBkgSample - - #Cut values - tauValAthEx.DeltaRMatchCut = 0.2 - tauValAthEx.LeadingChPiPtCut = 6.0 - tauValAthEx.UseGoodCharge = False - tauValAthEx.UseElectronVeto = False - tauValAthEx.UseMuonVeto = False - - tauValAthEx.ROOTFileName = "TauValidation-TauRecNoChargeCut.root" - tauValAthEx.OutputLevel = INFO #DEBUG - #end def __init__ -#end class - diff --git a/PhysicsAnalysis/PanTauAnalysis/share/PanTau_Main_TopOptions.py b/PhysicsAnalysis/PanTauAnalysis/share/PanTau_Main_TopOptions.py deleted file mode 100755 index 073584d9365ec96b7495b0f701d88576fb9477bd..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/PanTauAnalysis/share/PanTau_Main_TopOptions.py +++ /dev/null @@ -1,151 +0,0 @@ - -#///////////////////////////////////// -#// Imports -#///////////////////////////////////// - - -from AthenaCommon.AppMgr import ToolSvc -from AthenaCommon.AppMgr import ServiceMgr -from AthenaCommon.GlobalFlags import globalflags -import AthenaPoolCnvSvc.ReadAthenaPool - -from RecExConfig.RecFlags import rec -from RecExConfig.InputFilePeeker import inputFileSummary - -from PanTauAnalysis.PanTauFlags import panTauFlags -from PanTauAnalysis.PanTauDPDFlags import panTauDPDFlags -from PanTauAnalysis.PanTauValidationFlags import panTauValidationFlags -from PanTauAnalysis.PanTauSeedBuilderAlg_Flags import PanTauSeedBuilderAlgFlags as PSB_Flags - -#///////////////////////////////////// -#// Set flags -#///////////////////////////////////// - -#Validation flags -doTauValidation = False # this should be added to PanTauFlags, no? -panTauValidationFlags.DoFeatureDefaultSmearing = False -panTauValidationFlags.DoSeedEfficiency = False # FIXME: this alg requires the TauSeedCollection to be present -panTauValidationFlags.DoFeatureWriter = False # FIXME: this alg requires the TauSeedCollection to be present -panTauValidationFlags.DoSubClusterEfficiency = False # FIXME: this alg requires the TauSeedCollection to be present - -panTauDPDFlags.FilterEvents = False -panTauDPDFlags.UseGRL = False -panTauDPDFlags.TriggerSelectionExpression = 'L1_TAU5' - - -#///////////////////////////////////// -#// Process flags -#///////////////////////////////////// - - -### Feature List & Variable Smearing ################################## -include( "PanTauAnalysis/featureList.py" ) -#if panTauValidationFlags.DoFeatureDefaultSmearing() : - -#else : - ##include( "PanTauAnalysis/featureList-nodefaultShift-short.py" ) - #include( "PanTauAnalysis/featureList-nodefaultShift.py" ) -allFeatureNames=[] -allFeatureDefaultValues=[] -allfeatureDefaultValueSmearingSigma=[] -allFeatureTypes=[] -for k, v in featureDefaultValue.items(): - allFeatureNames.append(k) - allFeatureDefaultValues.append(v) - if k in featureDefaultValueSmearingSigma : - allfeatureDefaultValueSmearingSigma.append(featureDefaultValueSmearingSigma[k]) - else : - printfunc ("PanTau_Main_TopOptions ERROR: no sigma for default value smearing for feature ", k) - allfeatureDefaultValueSmearingSigma.append(0.) - if k in featureType: - allFeatureTypes.append(featureType[k]) - else: - printfunc ("PanTau_Main_TopOptions ERROR: no type for feature called ", k) - -panTauValidationFlags.AllFeatureNames = allFeatureNames -panTauValidationFlags.AllFeatureDefaultValues = allFeatureDefaultValues -panTauValidationFlags.AllFeatureDefaultValueSmearingSigma = allfeatureDefaultValueSmearingSigma -panTauValidationFlags.AllFeatureTypes = allFeatureTypes - -### Create Algorithm Sequence ################################## - -topSequence = AlgSequence() - - -### Check for data / mc ################################## - -if globalflags.DataSource()=='data' : - panTauDPDFlags.UseGRL = True -else : - panTauDPDFlags.UseGRL = False - - -#add Truth Taus to SG if doTruth is required -if rec.doTruth(): - #get decay mode information: dump true taus to TruthTaus in SG in special format to get decay mode - from TauTrackTools.TauTrackToolsConf import TauID__TruthTauCreatorAlg - TruthContName = "" - if rec.readESD(): - TruthContName = "INav4MomTruthEvent" - if rec.readAOD(): - TruthContName = "SpclMC" - - print("PanTau_Main_TopOptions: updated TauID__TruthTauCreatorAlg to be " + TruthContName) - TauID__TruthTauCreatorAlg.InputTruthParticleContainer = TruthContName - topSequence += TauID__TruthTauCreatorAlg() -#end if - - -### Run Time Histograms ################################## -if PSB_Flags.Config_DoRunTimeHists(): - include("PanTauAnalysis/PanTau_RunTimeHists_TopOptions.py") - -### Seed- and Jet Building ################################## - -IntMapTest = {} -IntMapTest["intA"] = 42; -IntMapTest["intB"] = 4711; - -DoubleMapTest = {} -DoubleMapTest["doubleA"] = 13.37; -DoubleMapTest["doubleB"] = 47.11; - -StringMapTest = {} -StringMapTest["strA"] = "stringA"; -StringMapTest["strB"] = "stringB"; - -from PanTauAlgs.PanTauAlgsConf import PanTau__Tool_InformationStore -Tool_InformationStore = PanTau__Tool_InformationStore( 'TestToolInformationStore', - Infos_Int = IntMapTest, - Infos_Double = DoubleMapTest, - Infos_String = StringMapTest) - - -include ("PanTauAnalysis/PanTau_Seeding.py") - -if panTauFlags.DoTauJetBuilding() : - include ("PanTauAnalysis/PanTau_JetBuilding.py") - if doTauValidation: - include ("PanTauAnalysis/PanTau_JetValidating.py") -# NOTE: JetBuildingClass: Builds tau jets including particle ID (via DiscriminatorTools, DiscrTools) with TMVA -# NOTE: JetValidatingClass: Framework for TauValidation rtt - - -ListOfJetAlgs = [] -ListOfJetAlgs += ['AntiKt4'] -# NOTE: Somewhat historic. Adding More JetAlgorithms to the list will create output for each Jet Alg. -# NOTE: However, now the seeds are taken from tauRec candidates, so there is not much choice - -for iJetAlg in ListOfJetAlgs: - Seeding = TauSeeding(iJetAlg) - - if panTauFlags.DoTauJetBuilding(): - Building = JetBuilding(iJetAlg) - - if doTauValidation: - Validating = JetValidating(iJetAlg) - - - -#end of file - diff --git a/PhysicsAnalysis/PanTauAnalysis/share/PanTau_RDO_TopOptions.py b/PhysicsAnalysis/PanTauAnalysis/share/PanTau_RDO_TopOptions.py deleted file mode 100755 index cc4ecbd4b31f93d3ebafb7b3f35ad12744d0855d..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/PanTauAnalysis/share/PanTau_RDO_TopOptions.py +++ /dev/null @@ -1,116 +0,0 @@ -#example of personal topOptions -# -# to use it -# RecExCommon_links.sh # once in a given directory -# athena >! athena.log -# ( myTopOptions.py is defaulted through jobOptions.py soft link) -# -# see RecExCommon/share/RecExCommon_flags.py for more available flags -# and https://twiki.cern.ch/twiki/bin/view/Atlas/RecExCommonFlags -# for more complete documentation. -# - - - -#////////////////////////////////// -# Import modules -#////////////////////////////////// - -from AthenaCommon.AthenaCommonFlags import athenaCommonFlags -from RecExConfig.RecFlags import rec -from RecExConfig.RecAlgsFlags import recAlgs -from tauRec.tauRecFlags import jobproperties as tauRecJP - -#////////////////////////////////// -# Input Files -#////////////////////////////////// - -if athenaCommonFlags.FilesInput.isDefault(): # check if not already set upstream - print("FilesInput was set to default value. will use predefined dataset") - - #-------------------------------- R D O - #ZTauTau --- 1000 Events - athenaCommonFlags.FilesInput += ['/tmp/limbach/mc10_7TeV.106052.PythiaZtautau.digit.RDO.e574_s934_s946_d426_tid213812_00/RDO.213812._000001.pool.root.1'] - - #J1 --- 100 Events - #athenaCommonFlags.FilesInput += ['/tmp/limbach/mc10_7TeV.105010.J1_pythia_jetjet.digit.RDO.e574_s1019_d425_tid211879_00/RDO.211879._000005.pool.root.1'] - - #-------------------------------- A O D - #ZTauTau - #athenaCommonFlags.FilesInput += ['/tmp/limbach/mc11_7TeV.106052.PythiaZtautau.recon.AOD.e825_s1356_s1353_r3043_tid644919_00/AOD.644919._000135.pool.root.1'] - -athenaCommonFlags.EvtMax=10 # number of events to process run on all file - - -#////////////////////////////////// -# Switch on algs that are -# switched off by default -#////////////////////////////////// - -tauRecJP.tauRecFlags.doPanTau.set_Value_and_Lock(True) - - - -#////////////////////////////////// -# Main jobOptions -#////////////////////////////////// - - -### NOTE ############################################ -# include my own algorithm(s). These jobo will be included at the end of topSequence configuration -# rec.UserAlgs=[ "MyPackage/MyAlgorithm_jobOptions.py" ] -# these lines will be executed at the end of topSequence configuration -# rec.UserExecs=[ "from MyPackage.myAlgConf import myAlg","topSequence+=myAlg()" ] -# these lines will be executed after RecExCommon_flags.py has been imported, last chance for flag modification -# note that flag locking mechanism has a better chance to yield consistent configuration -# see https://twiki.cern.ch/twiki/bin/view/Atlas/TriggerFlags -# see https://twiki.cern.ch/twiki/bin/view/Atlas/UserAnalysisTest#The_AOD_Production_Flags -# rec.UserFlags=[ "AODFlags.FastSimulation=False" ] - - -### Last Change to change Flags! ############################################### - -rec.doESD.set_Value_and_Lock(True) # Input = RDO: True -rec.doWriteESD.set_Value_and_Lock(False) # Input = RDO: False - -#rec.readAOD.set_Value_and_Lock(True) - -rec.doAOD.set_Value_and_Lock(True) # Input = RDO: True -rec.doWriteAOD.set_Value_and_Lock(True) # Input = RDO: True -#rec.doWriteTAG.set_Value_and_Lock(False) -#rec.doCBNT.set_Value_and_Lock(False) - -recAlgs.doMuonIDStandAlone.set_Value_and_Lock(False) -recAlgs.doMuonIDCombined.set_Value_and_Lock(False) -recAlgs.doMuidLowPt.set_Value_and_Lock(False) -recAlgs.doMuGirl.set_Value_and_Lock(False) -recAlgs.doStaco.set_Value_and_Lock(False) -recAlgs.doMuTag.set_Value_and_Lock(False) -recAlgs.doTileMuID.set_Value_and_Lock(False) - -rec.doTrigger.set_Value_and_Lock(False) # disable trigger (maybe necessary if detectors switched of) - -rec.doTruth.set_Value_and_Lock(True) - -#rec.OutputLevel.set_Value_and_Lock(DEBUG) - -#rec.UserAlgs=["PanTauAnalysis/TauIdAnalysis_DecisionGetter.py"] - - -include ("RecExCommon/RecExCommon_topOptions.py") - -# user modifier of properties should come here -#topSequence.myAlg.someProperty=3.14 - - -#////////////////////////////////// -# Import base PanTau script -#////////////////////////////////// - -include("PanTauAnalysis/TauIdAnalysis_DecisionGetter.py") -# NOTE: This should then be moved inside RecExCommon_topOptions.py - - - - - diff --git a/PhysicsAnalysis/PanTauAnalysis/share/PanTau_RunTimeHists_TopOptions.py b/PhysicsAnalysis/PanTauAnalysis/share/PanTau_RunTimeHists_TopOptions.py deleted file mode 100644 index bfc16c4f3261d1785de7be6f3d864318904f4f43..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/PanTauAnalysis/share/PanTau_RunTimeHists_TopOptions.py +++ /dev/null @@ -1,8 +0,0 @@ - -HistOutFile = "PanTau_RunTimeHists.root" - -# Add Histogram service -THistSvc = Service("THistSvc") -THistSvc.Output = ["PanTauHists DATAFILE='" + HistOutFile + "' OPT='RECREATE'"] -THistSvc.PrintAll = 1 -ServiceMgr += THistSvc \ No newline at end of file diff --git a/PhysicsAnalysis/PanTauAnalysis/share/PanTau_Seeding.py b/PhysicsAnalysis/PanTauAnalysis/share/PanTau_Seeding.py deleted file mode 100644 index 6bae6dba00d6f2d7f36ab23190e3ccde3e2432ea..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/PanTauAnalysis/share/PanTau_Seeding.py +++ /dev/null @@ -1,43 +0,0 @@ -class TauSeeding: - - def __init__(self, JetAlgName): - from AthenaCommon.AppMgr import ToolSvc - from AthenaCommon.AlgSequence import AlgSequence - topSequence = AlgSequence() - - from PanTauAnalysis.PanTauSeedBuilderAlg import createTauSeedBuilder - panTauSeedBuilder = createTauSeedBuilder(JetAlgName) - panTauSeedBuilder.OutputLevel=INFO - - for iTool in panTauSeedBuilder.Tools_TauFeatureExtractionTools: - iTool.OutputLevel=INFO - - # add RunTimeHistos if required - from PanTauAnalysis.PanTauSeedBuilderAlg_Flags import PanTauSeedBuilderAlgFlags as PSB_Flags - if PSB_Flags.Config_DoRunTimeHists(): - from PanTauAnalysis.RunTimeHistConfig import configRunTimeHistos - configRunTimeHistos(panTauSeedBuilder) - - pionEflowObjectMatchTool = None - - from RecExConfig.RecFlags import rec - if (rec.doTruth() ) : - # pion-efo match tool - from PanTauAlgs.PanTauAlgsConf import PanTau__PionEflowObjectTruthMatchTool - pionEflowObjectMatchTool = PanTau__PionEflowObjectTruthMatchTool( 'PionEflowObjectMatchTool', - MinPt = 0.5*GeV, - MatchMaxDR = 0.02, - UseExtrapolatedPositions = False, - ExtrapolateToCaloLayer = 1, - ExcludeEMNeutrals = False) - pionEflowObjectMatchTool.OutputLevel=VERBOSE - ToolSvc += pionEflowObjectMatchTool - printfunc (pionEflowObjectMatchTool) - #### end if(rec.doTruth() ) - - topSequence+=panTauSeedBuilder - printfunc (panTauSeedBuilder) - - - #end def __init__ -#end class diff --git a/PhysicsAnalysis/PanTauAnalysis/share/PanTau_User_TopOptions.py b/PhysicsAnalysis/PanTauAnalysis/share/PanTau_User_TopOptions.py deleted file mode 100644 index f373bceae200c45873fc08f95bac8cbf7ca1634c..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/PanTauAnalysis/share/PanTau_User_TopOptions.py +++ /dev/null @@ -1,5 +0,0 @@ - -#quick link to the 'usual' topoptions -include("PanTauAnalysis/PanTau_AOD-to-D3PD_TopOptions.py") - -# end of file \ No newline at end of file diff --git a/PhysicsAnalysis/PanTauAnalysis/share/TauIdAnalysis_DecisionGetter.py b/PhysicsAnalysis/PanTauAnalysis/share/TauIdAnalysis_DecisionGetter.py deleted file mode 100644 index f65f82fd809122b6820d36cd0f7869957a7f244c..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/PanTauAnalysis/share/TauIdAnalysis_DecisionGetter.py +++ /dev/null @@ -1,14 +0,0 @@ -from tauRec.tauRecFlags import jobproperties as tauRecJP - -if tauRecJP.tauRecFlags.doPanTau(): - - - #Inform the other PanTau JOs that we're using the tauRec seeds as input - from PanTauAnalysis.PanTauSeedBuilderAlg_Flags import PanTauSeedBuilderAlgFlags as PSB_Flags - PSB_Flags.Config_UseTauRecAsSeeds.set_Value_and_Lock(True) - - include("PanTauAnalysis/JobOptions_Main_PanTau.py") -# end check for PanTau execution - - -#end of file diff --git a/PhysicsAnalysis/PanTauAnalysis/share/TopOptions_NewPanTau.py b/PhysicsAnalysis/PanTauAnalysis/share/TopOptions_NewPanTau.py deleted file mode 100644 index 6ab0ab6d25d28117f9f82545781d9bdc4a487be9..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/PanTauAnalysis/share/TopOptions_NewPanTau.py +++ /dev/null @@ -1,211 +0,0 @@ -#//////////////////////////////////////////////////////////////////// -# -# topOptions for PanTau: -# Input : An ESD that contains the eflowRec container eflowObjects_tauMode and the tauRecContainer -# Output: A TauD3PD that contains an enhanced tau block: -# - tau_pantau block: -# These variables are available in official AOD -# -# - tau_pantauFeature block: -# These variables are not available in the official AOD -# However, these are all the variables from the -# PanTau::TauSeed that are available -# These variables should be used for performance studies -# -# This jobOption file will work when submitting GRID jobs! -# Simply use the script -# submit-pathena-job_AOD_to_PanTauD3PD.sh -# to submit the jobs for a single sample, or use -# Launch_GridJobs.sh -# to submit jobs for all desired samples -# -#//////////////////////////////////////////////////////////////////// - - -#////////////////////////////////// -# Input Files -#////////////////////////////////// - -from AthenaCommon.AthenaCommonFlags import athenaCommonFlags -if athenaCommonFlags.FilesInput.isDefault(): # check if not already set upstream - #latest ESD file - athenaCommonFlags.FilesInput=['/afs/cern.ch/user/l/limbach/work/private/samples/group.perf-tau.TauPi0Rec_ESD2ESD.147818.Pythia8_AU2CTEQ6L1_Ztautau.recon.ESD.e1176_s1479_s1470_r3553_tid00999073_00.v05-02.131004205127/group.perf-tau.396790_001889.EXT0._00750.ESD.pool.root'] - - # ESD with new eflowObjects - #athenaCommonFlags.FilesInput=['/afs/cern.ch/user/l/limbach/work/private/ESD_NeweflowTagsStoringPi0VarsInEFO.pool.root'] - -athenaCommonFlags.EvtMax=50 # number of events to process run on all file -#athenaCommonFlags.SkipEvents=238 - -## turn off CellBased for old data file to check duplicate EFO bug -#from tauRec.tauRecFlags import jobproperties as taujp -#taujp.tauRecFlags.doBonnPi0.set_Value_and_Lock(False) - -from PanTauAnalysis.PanTauFlags import panTauFlags -panTauFlags.ExtractAllFeatures.set_Value_and_Lock(True) - -#...add truth info in D3PD -from RecExConfig.RecFlags import rec -rec.doTruth.set_Value_and_Lock( True ) - - -# ==== PreExec -rec.Commissioning.set_Value_and_Lock(True) -rec.AutoConfiguration = [ "everything" ] - -from AthenaCommon.JobProperties import jobproperties -jobproperties.Beam.energy.set_Value_and_Lock(4000*Units.GeV) -jobproperties.Beam.bunchSpacing.set_Value_and_Lock(50) -jobproperties.Beam.numberOfCollisions.set_Value_and_Lock(20.0) - -from TriggerJobOpts.TriggerFlags import TriggerFlags -TriggerFlags.AODEDMSet="AODSLIM" - -from MuonRecExample.MuonRecFlags import muonRecFlags -muonRecFlags.writeSDOs=True - -# ==== end PreExec - - -#////////////////////////////////// -# Main Job Options -#////////////////////////////////// - -# !!! !!! # -# !!! You must not modify flags below this point !!! # -# !!! !!! # - -#emulate the old PanTau to check if everything works -from PanTauAnalysis.Config_PanTau import config_PanTau -#config_PanTau.Names_InputAlgorithms = ["eflowRec"] - -rec.readAOD = False -rec.readESD = True -rec.readRDO = False -rec.doCBNT = False -rec.doWriteESD = False -rec.doWriteTAG = False -rec.doPerfMon = False -rec.doHist = False - -rec.doAOD.set_Value_and_Lock(False) -rec.doWriteAOD.set_Value_and_Lock(False) - -# commented out in AOD->D3PD -from AthenaServices.AthenaServicesConf import AthenaEventLoopMgr -from AthenaCommon.AppMgr import ServiceMgr as svcMgr -svcMgr.MessageSvc.infoLimit = 50 -svcMgr += AthenaEventLoopMgr() -svcMgr.AthenaEventLoopMgr.EventPrintoutInterval = 50 - - -from AthenaCommon.AlgSequence import AlgSequence -topSequence = AlgSequence() - -#from tauRec.tauRecFlags import jobproperties -#from JetRec.JetRecFlags import jobproperties -#jobproperties.tauRecFlags.doTauRec = True -#jobproperties.JetRecFlags.Enabled = True -#rec.doTau = True -#fastPoolMerge=False - -#from tauRec.TauRecAODBuilder import TauRecAODProcessor -#TauRecAODProcessor(inAODmode=True) - -#from TauDiscriminant.TauDiscriGetter import TauDiscriGetter -#TauDiscriGetter() - - -include( "RecExCommon/RecExCommon_topOptions.py" ) - -#include pantau -include("PanTauAnalysis/JobOptions_Main_PanTau.py") - - -if rec.doTruth(): - from TauD3PDMaker.TauD3PDMakerConf import TruthTausToSG - if rec.readESD(): - TruthTausToSG.truth_container="INav4MomTruthEvent" - print("climbach: updated TruthTausToSG to be INav4MomTruthEvent") - topSequence += TruthTausToSG() - - - - -### Rerun Jet moments for jet area variables -#from JetRec.JetRecFlags import jetFlags -#jetFlags.jetPerformanceJob = True - -#from JetMomentTools.JetMomentsConfigHelpers import recommendedAreaAndJVFMoments -#jetmomAlg = recommendedAreaAndJVFMoments('AntiKt4LCTopoJets') - - -### Rerun B-tagging for MV3 -#from BTagging.BTaggingFlags import BTaggingFlags -##BTaggingFlags.CalibrationTag="BTagCalibALL-07-02" # up to now it is not linked to the global flag -#BTaggingFlags.Jets=['AntiKt4LCTopo'] -#BTaggingFlags.CalibrationChannelAliases+=[ 'AntiKt4LCTopo->AntiKt4TopoEM' ] -#BTaggingFlags.Active=True -#BTaggingFlags.JetFitterCharm=True -#BTaggingFlags.MV3_bVSu=False -#BTaggingFlags.MV3_bVSc=False -#BTaggingFlags.MV3_cVSu=False - -#include( "BTagging/BTagging_LoadTools.py" ) -#include( "BTagging/BTagging_jobOptions.py" ) - -#from JetTagD3PDMaker.JetTagD3PDMakerFlags import JetTagD3PDFlags -#JetTagD3PDFlags.Taggers+=["JetFitterCharm"]#,"MV3_bVSu","MV3_bVSc","MV3_cVSu"] -#JetTagD3PDFlags.JetFitterCharmTagInfo=True - - -##re-run MET -#include('TauD3PDMaker/metAlgs.py') -#from RecExConfig.RecAlgsFlags import recAlgs -#recAlgs.doMissingET.set_Value_and_Lock(True) - - - -#////////////////////////////////// -# D3PD Output -#////////////////////////////////// - -from TauD3PDMaker.tauPerf import tauPerf -alg = tauPerf ( level = 10, - file="TauD3PD_FullPanTauInfo.root", - doPhys = True, - doCl = True, - doCell = True, - doPi0BonnDevVars = True, - doTrk = True, - doHad = True, - doOtherTrk = True, - tuplename = 'tau', - seq = topSequence, - D3PDSvc = 'D3PD::RootD3PDSvc', - doMETSkimVariables = False, - streamName = "TauPERF") - - - -#////////////////////////////////// -# Silence over abundant messages -#////////////////////////////////// -############################ -#Silence Trig Navigation Warnings -from AthenaCommon.AppMgr import ToolSvc -if not hasattr( ToolSvc, "TrigDecisionTool" ): - from TrigDecisionTool.TrigDecisionToolConf import Trig__TrigDecisionTool - ToolSvc += Trig__TrigDecisionTool( "TrigDecisionTool" ) -ToolSvc.TrigDecisionTool.Navigation.OutputLevel = ERROR -ToolSvc.TrigDecisionTool.OutputLevel = ERROR - - - - -############################# -StoreGateSvc.OutputLevel = FATAL - - -#end of file - diff --git a/PhysicsAnalysis/PanTauAnalysis/share/TopOptions_NewPanTau_MC_fix.py b/PhysicsAnalysis/PanTauAnalysis/share/TopOptions_NewPanTau_MC_fix.py deleted file mode 100644 index fd8794b2509e5ff91d96926fe6f81511bf6d0393..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/PanTauAnalysis/share/TopOptions_NewPanTau_MC_fix.py +++ /dev/null @@ -1,225 +0,0 @@ -#//////////////////////////////////////////////////////////////////// -# -# topOptions for PanTau: -# Input : An ESD that contains the eflowRec container eflowObjects_tauMode and the tauRecContainer -# Output: A TauD3PD that contains an enhanced tau block: -# - tau_pantau block: -# These variables are available in official AOD -# -# - tau_pantauFeature block: -# These variables are not available in the official AOD -# However, these are all the variables from the -# PanTau::TauSeed that are available -# These variables should be used for performance studies -# -# This jobOption file will work when submitting GRID jobs! -# Simply use the script -# submit-pathena-job_AOD_to_PanTauD3PD.sh -# to submit the jobs for a single sample, or use -# Launch_GridJobs.sh -# to submit jobs for all desired samples -# -#//////////////////////////////////////////////////////////////////// - - -#////////////////////////////////// -# Input Files -#////////////////////////////////// - -from AthenaCommon.AthenaCommonFlags import athenaCommonFlags -if athenaCommonFlags.FilesInput.isDefault(): # check if not already set upstream -# athenaCommonFlags.FilesInput=['/afs/cern.ch/work/b/bwinter/septemberProduction/september_production_2ESD_fromRDO/ESD2ESD/OUT.ESD.pool.root'] #septemberESD - athenaCommonFlags.FilesInput=['/afs/cern.ch/user/b/bwinter/november_production_2ESD/ESD2ESD/myESD.pool_november.root'] #novemberESD - -athenaCommonFlags.EvtMax=-1 # number of events to process run on all file - -## turn off CellBased for old data file to check duplicate EFO bug -#from tauRec.tauRecFlags import jobproperties as taujp -#taujp.tauRecFlags.doBonnPi0.set_Value_and_Lock(False) - -from PanTauAnalysis.PanTauFlags import panTauFlags -panTauFlags.ExtractAllFeatures.set_Value_and_Lock(True) - -########################################################### - -#preExec MC -#...add truth info in D3PD -from RecExConfig.RecFlags import rec -rec.doTruth.set_Value_and_Lock( True ) - - -# ==== PreExec -rec.Commissioning.set_Value_and_Lock(True) -rec.AutoConfiguration = [ "everything" ] - -from AthenaCommon.JobProperties import jobproperties -jobproperties.Beam.energy.set_Value_and_Lock(4000*Units.GeV) -jobproperties.Beam.bunchSpacing.set_Value_and_Lock(50) -jobproperties.Beam.numberOfCollisions.set_Value_and_Lock(20.0) - -from TriggerJobOpts.TriggerFlags import TriggerFlags -TriggerFlags.AODEDMSet="AODSLIM" - -from MuonRecExample.MuonRecFlags import muonRecFlags -muonRecFlags.writeSDOs=True - -# ==== end PreExec -""" -############################################################ -# preExec data -# PreExec -from RecExConfig.RecFlags import rec -#rec.doTruth.set_Value_and_Lock( True ) -#rec.Commissioning.set_Value_and_Lock(True) -rec.AutoConfiguration = [ "everything" ] -from AthenaCommon.JobProperties import jobproperties -#jobproperties.Beam.energy.set_Value_and_Lock(4000*Units.GeV) -#jobproperties.Beam.bunchSpacing.set_Value_and_Lock(50) -#jobproperties.Beam.numberOfCollisions.set_Value_and_Lock(20.0) -from TriggerJobOpts.TriggerFlags import TriggerFlags -#TriggerFlags.AODEDMSet="AODSLIM" -from MuonRecExample.MuonRecFlags import muonRecFlags -#muonRecFlags.writeSDOs=True - -############################################################ -""" - -#////////////////////////////////// -# Main Job Options -#////////////////////////////////// - -# !!! !!! # -# !!! You must not modify flags below this point !!! # -# !!! !!! # - -#emulate the old PanTau to check if everything works -from PanTauAnalysis.Config_PanTau import config_PanTau -#config_PanTau.Names_InputAlgorithms = ["eflowRec"] - -rec.readAOD = False -rec.readESD = True -rec.readRDO = False -rec.doCBNT = False -rec.doWriteESD = False -rec.doWriteTAG = False -rec.doPerfMon = False -rec.doHist = False - -rec.doAOD.set_Value_and_Lock(False) -rec.doWriteAOD.set_Value_and_Lock(False) - -# commented out in AOD->D3PD -from AthenaServices.AthenaServicesConf import AthenaEventLoopMgr -from AthenaCommon.AppMgr import ServiceMgr as svcMgr -svcMgr.MessageSvc.infoLimit = 50 -svcMgr += AthenaEventLoopMgr() -svcMgr.AthenaEventLoopMgr.EventPrintoutInterval = 50 - - -from AthenaCommon.AlgSequence import AlgSequence -topSequence = AlgSequence() - -#from tauRec.tauRecFlags import jobproperties -#from JetRec.JetRecFlags import jobproperties -#jobproperties.tauRecFlags.doTauRec = True -#jobproperties.JetRecFlags.Enabled = True -#rec.doTau = True -#fastPoolMerge=False - -#from tauRec.TauRecAODBuilder import TauRecAODProcessor -#TauRecAODProcessor(inAODmode=True) - -#from TauDiscriminant.TauDiscriGetter import TauDiscriGetter -#TauDiscriGetter() - - -include( "RecExCommon/RecExCommon_topOptions.py" ) - -#include pantau -include("PanTauAnalysis/JobOptions_Main_PanTau.py") - - -if rec.doTruth(): - from TauD3PDMaker.TauD3PDMakerConf import TruthTausToSG - if rec.readESD(): - TruthTausToSG.truth_container="INav4MomTruthEvent" - print("climbach: updated TruthTausToSG to be INav4MomTruthEvent") - topSequence += TruthTausToSG() - - - -## Rerun Jet moments for jet area variables -from JetRec.JetRecFlags import jetFlags -jetFlags.jetPerformanceJob = True - -from JetMomentTools.JetMomentsConfigHelpers import recommendedAreaAndJVFMoments -jetmomAlg = recommendedAreaAndJVFMoments('AntiKt4LCTopoJets') - -## Rerun B-tagging for MV3 -#preExec='from BTagging.BTaggingFlags import BTaggingFlags',,'BTaggingFlags.CalibrationTag=\"BTagCalibALL-07-05\"' -from BTagging.BTaggingFlags import BTaggingFlags -BTaggingFlags.CalibrationTag="BTagCalibALL-07-05" # up to now it is not linked to the global flag -BTaggingFlags.Jets=['AntiKt4LCTopo'] -BTaggingFlags.CalibrationChannelAliases+=[ 'AntiKt4LCTopo->AntiKt4TopoEM' ] -BTaggingFlags.Active=True -BTaggingFlags.JetFitterCharm=True -BTaggingFlags.MV3_bVSu=False -BTaggingFlags.MV3_bVSc=False -BTaggingFlags.MV3_cVSu=False - -include( "BTagging/BTagging_LoadTools.py" ) -include( "BTagging/BTagging_jobOptions.py" ) - -from JetTagD3PDMaker.JetTagD3PDMakerFlags import JetTagD3PDFlags -JetTagD3PDFlags.Taggers+=["JetFitterCharm"]#,"MV3_bVSu","MV3_bVSc","MV3_cVSu"] -JetTagD3PDFlags.JetFitterCharmTagInfo=True - -#re-run MET -include('TauD3PDMaker/metAlgs.py') -from RecExConfig.RecAlgsFlags import recAlgs -recAlgs.doMissingET.set_Value_and_Lock(True) - - -#////////////////////////////////// -# D3PD Output -#////////////////////////////////// - -from TauD3PDMaker.tauPerf import tauPerf -alg = tauPerf ( level = 10, - file="TauD3PD_FullPanTauInfo.root", - doPhys = True, - doCl = True, - doCell = False, - doPi0BonnDevVars = True, - doTrk = True, - doHad = True, - doOtherTrk = True, - tuplename = 'tau', - seq = topSequence, - D3PDSvc = 'D3PD::RootD3PDSvc', - doMETSkimVariables = False, - streamName = "TauPERF") - - - -#////////////////////////////////// -# Silence over abundant messages -#////////////////////////////////// -############################ -#Silence Trig Navigation Warnings -from AthenaCommon.AppMgr import ToolSvc -if not hasattr( ToolSvc, "TrigDecisionTool" ): - from TrigDecisionTool.TrigDecisionToolConf import Trig__TrigDecisionTool - ToolSvc += Trig__TrigDecisionTool( "TrigDecisionTool" ) -ToolSvc.TrigDecisionTool.Navigation.OutputLevel = ERROR -ToolSvc.TrigDecisionTool.OutputLevel = ERROR - - - - -############################# -StoreGateSvc.OutputLevel = FATAL - - -#end of file - diff --git a/PhysicsAnalysis/PanTauAnalysis/share/checkFiles.py b/PhysicsAnalysis/PanTauAnalysis/share/checkFiles.py deleted file mode 100755 index 964dab98f8939a51180b668b4d5e8ec2a2d0cc29..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/PanTauAnalysis/share/checkFiles.py +++ /dev/null @@ -1,178 +0,0 @@ -#!/usr/bin/env python - -# @file: checkFiles.py -# @purpose: open Pool files and check for a given number of events to identify corrupted files -# Based on checkFile.py from Sebastien Binet -# @author: Sebastian Fleischmann -# @date: February 2009 -# -# @example: -# @code -# checkFiles.py -d /somedirectory -o filesInMyDir -# @endcode -# - -from __future__ import print_function - -__version__ = "$Revision: 478526 $" -__author__ = "Sebastian Fleischmann" - -import sys -import os - -from optparse import OptionParser - -if __name__ == "__main__": - - parser = OptionParser(usage="usage: %prog [options] [-f] my.file.pool") - p = parser.add_option - p( "-f", - "--file", - dest = "fileName", - help = "The path to the POOL file to analyze" ) - p( "-d", - "--dir", - dest = "inputDirectory", - help = "use directory, i.e. loop over all files in this directory" ) - #p( "--sort-fct", - #dest = "sortFctName", - #default = "diskSize", - #help = "Sorting function used to list containers (allowed are: diskSize, memSize, name)" ) - p( "-o", - "--output", - dest = "outFileName", - default = None, - help = "Name of the output file which will contain the informations gathered during checkFile processing." ) - p( "-e", - "--events", - type="int", - dest = "numberOfExpectedEvents", - default = 50, - help = "Number of expected events in the file" ) - p( "--maxFilesPerJoFile", - type="int", - dest = "maxFiles", - default = 0, - help = "Maximum number of files to write per job options input file (0 means no limit)" ) - p( "-m", - "--maxFiles", - type="int", - dest = "maxTotalFiles", - default = 0, - help = "Maximum number of files to process (0 means no limit)" ) - #p( "--fast", - #dest = "fastMode", - #default = False, - #action = "store_true", - #help = "Switch to enable the fast mode of checkFile.py (memory size will not be accurate -AT ALL-)" - #) - - (options, args) = parser.parse_args() - - fileNames = [] - - if len(args) > 0: - fileNames = [ arg for arg in args if arg[0] != "-" ] - pass - - if options.fileName == None and len(fileNames) == 0 and options.inputDirectory == None: - str(parser.print_help() or "") - sys.exit(1) - - if options.fileName != None: - fileName = os.path.expandvars(os.path.expanduser(options.fileName)) - fileNames.append(fileName) - - if options.inputDirectory != None: - folderName = os.path.expandvars(os.path.expanduser(options.inputDirectory)) - for filename in os.listdir (folderName): - # Ignore subfolders - if os.path.isdir (os.path.join (folderName, filename)): - continue - # "filename" contains a file in FOLDER. Use os.path.join to get the full path, as above - fileNames.append(os.path.join (folderName, filename)) - import PyUtils.PoolFile as PF - PF.PoolOpts.FAST_MODE = True - #fileNames = set( fileNames ) - fileNames.sort() - sc = 0 - goodFileList = "filelist.txt" - badFileList = "badfiles.txt" - pyFileList = "files.py" - if options.maxFiles > 0: - pyFileList = "files1.py" - if options.outFileName != None: - goodFileList = options.outFileName+"-good.txt" - badFileList = options.outFileName+"-bad.txt" - pyFileList = options.outFileName+".py" - if options.maxFiles > 0: - pyFileList = options.outFileName+"1.py" - out = open( goodFileList, "w" ) - out3 = open( pyFileList, "w" ) - out2 = open (badFileList, "w") - countGoodFiles = 0 - countOutFiles = 1 - countTotalFiles = 0 - print ("max total files: %i max files per jo file: %i" % (options.maxTotalFiles , options.maxFiles)) - for fileName in fileNames: - countTotalFiles = countTotalFiles+1 - if (options.maxTotalFiles>0) and (countTotalFiles > options.maxTotalFiles): - break - #for subdir, dirs, files in os.walk(fileDirs): - #for onlyFileName in files: - try: - #fileName = fileDirs+"/"+onlyFileName - #import PyUtils.PoolFile as PF - #PF.PoolOpts.FAST_MODE = options.fastMode - poolFile = PF.PoolFile( fileName ) - print ("my events %i" % poolFile.dataHeader.nEntries) - if (poolFile.dataHeader.nEntries == options.numberOfExpectedEvents): - countGoodFiles = countGoodFiles+1 - print ("file OK: [%s], good: %i" % (fileName,countGoodFiles)) - out.write(fileName + os.linesep ) - out.flush() - if (options.maxFiles > 0) and ( countGoodFiles > options.maxFiles) : - out3.close() - countOutFiles = countOutFiles+1 - countGoodFiles = 1 - if options.outFileName != None: - pyFileList = options.outFileName+str(countOutFiles)+".py" - else : - pyFileList = "files"+str(countOutFiles)+".py" - out3 = open( pyFileList, "w" ) - out3.write("ServiceMgr.EventSelector.InputCollections += ['"+fileName+"']"+os.linesep) - out3.flush() - else: - print ("number of entries (%i) does not match in file [%s]" % (poolFile.dataHeader.nEntries, fileName)) - out2.write(fileName + " entries: " + str(poolFile.dataHeader.nEntries) + os.linesep ) - out2.flush() - #poolFile.checkFile( sorting = options.sortFctName ) - #if options.doDetailedDump: - #dumpFile = os.path.basename(fileName)+ ".txt" - #print ("## dumping details into [%s]" % dumpFile) - #poolFile.detailedDump( dumpFile ) - #if options.outFileName: - #outFileName = options.outFileName - #print ("## saving checkFile report into [%s]..." % outFileName) - #poolFile.saveReport( outFileName ) - except Exception as e: - print ("## Caught exception [%s] !!" % str(e.__class__)) - print ("## What:",e) - print (sys.exc_info()[0]) - print (sys.exc_info()[1]) - sc = 1 - out2.write(fileName + " gives exception: " + str(e.__class__) + os.linesep ) - pass - - except : - print ("## Caught something !! (don't know what)") - print (sys.exc_info()[0]) - print (sys.exc_info()[1]) - sc = 10 - pass - if len(fileNames) > 1: - print ("") - pass # loop over fileNames - - #print ("## Bye.") - sys.exit(sc) diff --git a/PhysicsAnalysis/PanTauAnalysis/share/featureList.py b/PhysicsAnalysis/PanTauAnalysis/share/featureList.py deleted file mode 100644 index 21a2d217dd49707a844c20df8f165756be4e3cfd..0000000000000000000000000000000000000000 --- a/PhysicsAnalysis/PanTauAnalysis/share/featureList.py +++ /dev/null @@ -1,855 +0,0 @@ - - -# ######################################################################################### -# -# New structured features --- setup variables -# -# ######################################################################################### - -Default_Values = {} -Default_Sigmas = {} - -featureDefaultValue = {} -featureDefaultValueSmearingSigma = {} -featureType = {} - - -# ######################################################################################### -# -# New structured features --- basic features from SeedBuilderAlg -# -# ######################################################################################### - -Basic_Name = "Basic" - -Feature_Basic_Names = [] -Feature_Basic_Names += ["NChargedEFO"] -Feature_Basic_Names += ["NQualChrgEFO"] -Feature_Basic_Names += ["NQualChrg2EFO"] -Feature_Basic_Names += ["NAllEFO"] -Feature_Basic_Names += ["NNeutralEFO"] -Feature_Basic_Names += ["NNeutral1EFO"] -Feature_Basic_Names += ["NNeutral2EFO"] -Feature_Basic_Names += ["NNeutCore1EFO"] -Feature_Basic_Names += ["NNeutCore2EFO"] -Feature_Basic_Names += ["NEmNeutEFO"] -Feature_Basic_Names += ["NHadNeutEFO"] -Feature_Basic_Names += ["NPi0NeutEFO"] -Feature_Basic_Names += ["NQualNeutEFO"] -Feature_Basic_Names += ["SumCharge"] -Feature_Basic_Names += ["SumChargeQualified"] -Feature_Basic_Names += ["SumChargeQualified2"] -Feature_Basic_Names += ["AbsSumCharge"] -Feature_Basic_Names += ["AbsSumChargeQualified"] -Feature_Basic_Names += ["AbsSumChargeQualified2"] - -for iFeature in Feature_Basic_Names: - - curName = iFeature - curFeature = Basic_Name + "_" + curName - - featureDefaultValue[curFeature] = -10. - featureDefaultValueSmearingSigma[curFeature] = 0.1 - featureType[curFeature] = 'F' -#end loop over features in basic features - - - -# ######################################################################################### -# -# New structured features --- four momentum -# -# ######################################################################################### - -Momentum_Name = "Basic" - -Momentum_Types = [] -Momentum_Types += ["core"] -Momentum_Types += ["sum"] -Momentum_Types += ["ChargedEFOs"] -Momentum_Types += ["NeutralEFOs"] -Momentum_Types += ["Pi0NeutEFOs"] -Momentum_Types += ["Core10GeV"] -Momentum_Types += ["Core15GeV"] -Momentum_Types += ["Core20GeV"] -Momentum_Types += ["Core25GeV"] -Momentum_Types += ["Core10GevMax53"] -Momentum_Types += ["Core10GevMax54"] -Momentum_Types += ["Core10GevMax55"] -Momentum_Types += ["Core10GevMax57"] -Momentum_Types += ["Core10GevMax59"] -Momentum_Types += ["Core20GevMax53"] -Momentum_Types += ["Core20GevMax54"] -Momentum_Types += ["Core20GevMax55"] -Momentum_Types += ["Core20GevMax57"] -Momentum_Types += ["Core20GevMax59"] - -Feature_Momentum_Names = [] -#Feature_Momentum_Names += ["e"] -#Feature_Momentum_Names += ["et"] -Feature_Momentum_Names += ["pt"] -Feature_Momentum_Names += ["eta"] -Feature_Momentum_Names += ["phi"] -Feature_Momentum_Names += ["m"] - -print("featureList.py: Adding momentum features...") -for iType in Momentum_Types: - for iVar in Feature_Momentum_Names: - - curType = iType - curName = iVar - - curFeature = Momentum_Name + "_" + curType + "_" + curName - - defaultValue = -9999 - smearValue = 500 - if iVar == "eta" or iVar == "phi": - defaultValue = -7 - smearValue = 0.1 - if iVar == "m": - defaultValue = -200 - smearValue = 10 - - featureDefaultValue[curFeature] = defaultValue - featureDefaultValueSmearingSigma[curFeature] = smearValue - featureType[curFeature] = 'F' - - if curType == "ChargedEFOs" or curType == "NeutralEFOs" or curType == "Pi0NeutEFOs": - featureType[curFeature] = 'V' - - #end loop over variables in momentum -#end loop over types of momentum - - - -# ######################################################################################### -# -# New structured features --- Reco Mode -# -# ######################################################################################### - -RecoMode_Types = [] -RecoMode_Types += ["Loose"] -#RecoMode_Types += ["Medium"] -#RecoMode_Types += ["Tight"] - -for iModeType in RecoMode_Types: - - curType = iModeType - curFeature = "RecoMode" + curType - - featureDefaultValue[curFeature] = -4 - featureDefaultValueSmearingSigma[curFeature] = 0.1 - featureType[curFeature] = 'I' -#end loop over types for reco mode - - -# ######################################################################################### -# -# New structured features --- single types -# -# ######################################################################################### - -Features_Prefix = "Eflow_" - -EFO_Types = [] -#EFO_Types += ["Charged"] -EFO_Types += ["QualChrg"] -#EFO_Types += ["QualChrg2"] -#EFO_Types += ["EmNeut"] -EFO_Types += ["Pi0Neut"] -EFO_Types += ["QualNeut"] -#EFO_Types += ["HadNeut"] -#EFO_Types += ["Neutral"] -#EFO_Types += ["Neutral1"] -#EFO_Types += ["Neutral2"] -#EFO_Types += ["NeutCore1"] -#EFO_Types += ["NeutCore2"] -#EFO_Types += ["All"] - -SeedEtTypes = [] -SeedEtTypes += ["EtAll"] -SeedEtTypes += ["EtQualEFOs"] -#SeedEtTypes += ["EtAll1GeV"] -#SeedEtTypes += ["EtAll2GeV"] -#SeedEtTypes += ["EtCore1GeV"] -#SeedEtTypes += ["EtCore2GeV"] - -SeedETypes = [] -SeedETypes += ["EAll"] -#SeedETypes += ["EAll1GeV"] -#SeedETypes += ["EAll2GeV"] -#SeedETypes += ["ECore1GeV"] -#SeedETypes += ["ECore2GeV"] - - -Feature_Type_Names = [] -####################### -### Angles -####################### -Default_Values["Angle"] = -0.2 -Default_Sigmas["Angle"] = 0.01 -Feature_Type_Names += [ ["Angle", "1stTo2nd"] ] -Feature_Type_Names += [ ["Angle", "1stTo3rd"] ] -Feature_Type_Names += [ ["Angle", "1stToJetAxis"] ] -Feature_Type_Names += [ ["Angle", "2ndTo3rd"] ] -Feature_Type_Names += [ ["Angle", "2ndToJetAxis"] ] -Feature_Type_Names += [ ["Angle", "3rdToJetAxis"] ] -Feature_Type_Names += [ ["Angle", "Btw1213Planes"] ] -Feature_Type_Names += [ ["Angle", "MaxToJetAxis"] ] -Feature_Type_Names += [ ["Angle", "MeanValue123"] ] -Feature_Type_Names += [ ["Angle", "ToJetAxis"] ] - -####################### -### Delta R -####################### -Default_Values["DeltaR"] = -0.2 -Default_Sigmas["DeltaR"] = 0.01 -Feature_Type_Names += [ ["DeltaR", "1stTo2nd" ] ] -Feature_Type_Names += [ ["DeltaR", "1stTo3rd" ] ] -Feature_Type_Names += [ ["DeltaR", "1stToJetAxis" ] ] -Feature_Type_Names += [ ["DeltaR", "2ndTo3rd" ] ] -Feature_Type_Names += [ ["DeltaR", "2ndToJetAxis" ] ] -Feature_Type_Names += [ ["DeltaR", "3rdToJetAxis" ] ] - -Feature_Type_Names += [ ["DeltaR", "1stTo2nd_BDTSort" ] ] -Feature_Type_Names += [ ["DeltaR", "1stTo3rd_BDTSort" ] ] -Feature_Type_Names += [ ["DeltaR", "1stToJetAxis_BDTSort" ] ] -Feature_Type_Names += [ ["DeltaR", "2ndTo3rd_BDTSort" ] ] -Feature_Type_Names += [ ["DeltaR", "2ndToJetAxis_BDTSort" ] ] -Feature_Type_Names += [ ["DeltaR", "3rdToJetAxis_BDTSort" ] ] - -Feature_Type_Names += [ ["DeltaR", "MaxToJetAxis" ] ] -Feature_Type_Names += [ ["DeltaR", "ToJetAxis" ] ] - -####################### -### HLV -####################### -Default_Values["HLV"] = -9999.0 -Default_Sigmas["HLV"] = 500. -Feature_Type_Names += [ [ "HLV", "1stE"] ] -Feature_Type_Names += [ [ "HLV", "1stEta"] ] -Feature_Type_Names += [ [ "HLV", "1stM"] ] -Feature_Type_Names += [ [ "HLV", "1stPhi"] ] -Feature_Type_Names += [ [ "HLV", "2ndE"] ] -Feature_Type_Names += [ [ "HLV", "2ndEta"] ] -Feature_Type_Names += [ [ "HLV", "2ndM"] ] -Feature_Type_Names += [ [ "HLV", "2ndPhi"] ] -Feature_Type_Names += [ [ "HLV", "3rdE"] ] -Feature_Type_Names += [ [ "HLV", "3rdEta"] ] -Feature_Type_Names += [ [ "HLV", "3rdM"] ] -Feature_Type_Names += [ [ "HLV", "3rdPhi"] ] -Feature_Type_Names += [ [ "HLV", "SumE"] ] -Feature_Type_Names += [ [ "HLV", "SumEta"] ] -Feature_Type_Names += [ [ "HLV", "SumM"] ] -Feature_Type_Names += [ [ "HLV", "SumPhi"] ] - -Feature_Type_Names += [ [ "HLV", "1stE_BDTSort"] ] -Feature_Type_Names += [ [ "HLV", "1stEta_BDTSort"] ] -Feature_Type_Names += [ [ "HLV", "1stM_BDTSort"] ] -Feature_Type_Names += [ [ "HLV", "1stPhi_BDTSort"] ] -Feature_Type_Names += [ [ "HLV", "2ndE_BDTSort"] ] -Feature_Type_Names += [ [ "HLV", "2ndEta_BDTSort"] ] -Feature_Type_Names += [ [ "HLV", "2ndM_BDTSort"] ] -Feature_Type_Names += [ [ "HLV", "2ndPhi_BDTSort"] ] -Feature_Type_Names += [ [ "HLV", "3rdE_BDTSort"] ] -Feature_Type_Names += [ [ "HLV", "3rdEta_BDTSort"] ] -Feature_Type_Names += [ [ "HLV", "3rdM_BDTSort"] ] -Feature_Type_Names += [ [ "HLV", "3rdPhi_BDTSort"] ] - -####################### -### Isolation -####################### -Default_Values["Isolation"] = -0.2 -Default_Sigmas["Isolation"] = 0.01 -Feature_Type_Names += [ ["Isolation", "EtIn01OverEtIn02"] ] -Feature_Type_Names += [ ["Isolation", "EtIn01OverEtIn04"] ] -for etType in SeedEtTypes: - Feature_Type_Names += [ ["Isolation", "EtIn01Over" + etType] ] - Feature_Type_Names += [ ["Isolation", "EtIn02Over" + etType] ] - Feature_Type_Names += [ ["Isolation", "EtIn03Over" + etType] ] - Feature_Type_Names += [ ["Isolation", "EtIn04Over" + etType] ] - Feature_Type_Names += [ ["Isolation", "EtIn02To04Over" + etType] ] - Feature_Type_Names += [ ["Isolation", "EtIn00To02Over" + etType] ] -# - - -####################### -### JetMoments ??? Variable range ??? -####################### -Default_Values["JetMoment"] = -0.2 -Default_Sigmas["JetMoment"] = 0.01 -Feature_Type_Names += [ ["JetMoment", "EAngle"] ] -Feature_Type_Names += [ ["JetMoment", "EDR"] ] -Feature_Type_Names += [ ["JetMoment", "EDR2"] ] -Feature_Type_Names += [ ["JetMoment", "EDRprime"] ] -Feature_Type_Names += [ ["JetMoment", "EDRxTotalE"] ] -Feature_Type_Names += [ ["JetMoment", "EtAngle"] ] -Feature_Type_Names += [ ["JetMoment", "EtDR"] ] -Feature_Type_Names += [ ["JetMoment", "EtDR2"] ] -Feature_Type_Names += [ ["JetMoment", "EtDRprime"] ] -Feature_Type_Names += [ ["JetMoment", "EtDRxTotalEt"] ] - -####################### -### Means -####################### -Default_Values["Mean"] = -0.2 -Default_Sigmas["Mean"] = 0.01 -for etType in SeedEtTypes: - Feature_Type_Names += [ ["Mean", "Et_Wrt" + etType] ] - Feature_Type_Names += [ ["Mean", "DRToJetAxis_Wrt" + etType] ] - Feature_Type_Names += [ ["Mean", "DRToLeading_Wrt" + etType] ] -# -for eType in SeedETypes: - Feature_Type_Names += [ ["Mean", "E_Wrt" + eType] ] - Feature_Type_Names += [ ["Mean", "DRToJetAxis_Wrt" + eType] ] - Feature_Type_Names += [ ["Mean", "DRToLeading_Wrt" + eType] ] -# - -####################### -### Numbers -####################### -Default_Values["Num"] = -5.0 -Default_Sigmas["Num"] = 0.2 -Feature_Type_Names += [ ["Num", "EFOIn00To01"] ] -Feature_Type_Names += [ ["Num", "EFOIn01To02"] ] -Feature_Type_Names += [ ["Num", "EFOIn02To03"] ] -Feature_Type_Names += [ ["Num", "EFOIn03To04"] ] - -####################### -### Ratios -####################### -Default_Values["Ratio"] = -0.2 -Default_Sigmas["Ratio"] = 0.01 -Feature_Type_Names += [ ["Ratio", "Log1stEtOver2ndEt"] ] -Feature_Type_Names += [ ["Ratio", "Log1stEtOver3rdEt"] ] -Feature_Type_Names += [ ["Ratio", "Log2ndEtOver3rdEt"] ] -Feature_Type_Names += [ ["Ratio", "Log1stEtOver2ndEt_BDTSort"] ] -Feature_Type_Names += [ ["Ratio", "Log1stEtOver3rdEt_BDTSort"] ] -Feature_Type_Names += [ ["Ratio", "Log2ndEtOver3rdEt_BDTSort"] ] -Feature_Type_Names += [ ["Ratio", "EFOsOverTotalEFOs"] ] -Feature_Type_Names += [ ["Ratio", "1stEtOverTypeEt"] ] -Feature_Type_Names += [ ["Ratio", "1stBDTEtOverTypeEt"] ] -for etType in SeedEtTypes: - Feature_Type_Names += [ ["Ratio", "EtOver" + etType] ] - Feature_Type_Names += [ ["Ratio", "1stEtOver" + etType] ] - Feature_Type_Names += [ ["Ratio", "1stBDTEtOver" + etType] ] -# - -####################### -### StdDevs -####################### -Default_Values["StdDev"] = -10000 -Default_Sigmas["StdDev"] = 500. -Feature_Type_Names += [ ["StdDev", "DRToJetAxis"] ] -Feature_Type_Names += [ ["StdDev", "DRToLeading"] ] -Feature_Type_Names += [ ["StdDev", "E"] ] -Feature_Type_Names += [ ["StdDev", "Et"] ] -for etType in SeedEtTypes: - Feature_Type_Names += [ ["StdDev", "Et_Wrt" + etType] ] -# -for eType in SeedETypes: - Feature_Type_Names += [ ["StdDev", "E_Wrt" + eType] ] -# - - -####################### -### Pi0 BDT Values from eflowRec -####################### -#NOTE: Make sure to only use these for neutral types -# in the upcoming for loop -Default_Values["eflowPID"] = -2 -Default_Sigmas["eflowPID"] = 0.1 -Feature_Type_Names += [ ["eflowPID", "Pi0Val_1st_BDTSort"] ] -Feature_Type_Names += [ ["eflowPID", "Pi0Val_2nd_BDTSort"] ] -Feature_Type_Names += [ ["eflowPID", "Pi0Val_3rd_BDTSort"] ] -Feature_Type_Names += [ ["eflowPID", "Pi0Val_Sum12_BDTSort"] ] -Feature_Type_Names += [ ["eflowPID", "Pi0Val_Sum123_BDTSort"] ] -Feature_Type_Names += [ ["eflowPID", "Pi0Val_1st"] ] -Feature_Type_Names += [ ["eflowPID", "Pi0Val_2nd"] ] -Feature_Type_Names += [ ["eflowPID", "Pi0Val_3rd"] ] -Feature_Type_Names += [ ["eflowPID", "Pi0Val_Sum12"] ] -Feature_Type_Names += [ ["eflowPID", "Pi0Val_Sum123"] ] - - - -####################### -### Add the single type variables to the -### list of features to be extracted -####################### -for iEFOType in EFO_Types: - for iFeature in Feature_Type_Names: - - curType = iFeature[0] - curName = iFeature[1] - - #veto exclude variables from extraction (not calculated, redundant - if iEFOType != "All": - if curType == "Isolation": - continue; - if curType == "Num": - continue; - - if iEFOType == "All": - if curType == "Angle" and curName == "ToJetAxis": - continue; - if curType == "DeltaR" and curName == "ToJetAxis": - continue; - if curType == "Ratio" and curName == "EFOsOverTotalEFOs": - continue; - if curType == "Ratio" and curName == "EtOver": - continue; - - if curType == "eflowPID": - if iEFOType.find("Neut") is -1: - continue; - - curFeature = Features_Prefix + iEFOType + "_" + curType + "_" + curName - - curDefVal = Default_Values[curType] - - #update default values based on Variable in type: - if curType == "HLV": - if curName.find("Eta") is not -1: - curDefVal = -7 - if curName.find("Phi") is not -1: - curDefVal = -7 - if curName.find("M") is not -1: - curDefVal = -200 - - if curType == "JetMoment": - if curName.find("xTotalE") is not -1: - curDefVal = -10000 - - if curType == "StdDev": - if curName.find("DRTo") is not -1: - curDefVal = -0.2 - if curName.find("WrtE") is not -1: - curDefVal = -0.2 - - curDefSig = curDefVal / 20. - - - featureDefaultValue[curFeature] = curDefVal - featureDefaultValueSmearingSigma[curFeature] = curDefSig - featureType[curFeature] = 'F' - - - - - -# ######################################################################################### -# -# New structured features --- combined types -# -# ######################################################################################### -Default_Values["Combined"] = -0.2 -Default_Sigmas["Combined"] = 0.01 - -# ### -# NOTE: Order of Types here should be the same as in the enumeration in -# Reconstruction/PanTau/PanTauEvent/PanTauEvent/CorrectedEflowMomentum.h -# Names mut be identical to what CorrectedEflowMomentum::typeName says! -# BECAUSE: -# Features calculated and named by using that enumeration -# ===> Extraction needs to apply same pattern! -# ### -EFO_Comb = [] -#EFO_Comb += ["Charged"] -EFO_Comb += ["QualChrg"] -#EFO_Comb += ["EmNeut"] -EFO_Comb += ["Pi0Neut"] -#EFO_Comb += ["HadNeut"] -#EFO_Comb += ["Neutral"] -#EFO_Comb += ["Neutral1"] -#EFO_Comb += ["Neutral2"] -#EFO_Comb += ["NeutCore1"] -#EFO_Comb += ["NeutCore2"] -#EFO_Comb += ["QualChrg2"] -EFO_Comb += ["QualNeut"] - - -####################### -### Single features -####################### -Feature_Comb_Names_Single = [] -Feature_Comb_Names_Single += [ ["Combined", "NumChargedOverNumNeutral"] ] -Feature_Comb_Names_Single += [ ["Combined", "NumChargedOverNumTotal"] ] -Feature_Comb_Names_Single += [ ["Combined", "AnglePlane1stCharged1st2ndNeutral"] ] - -####################### -### Type-vs-Type features -####################### -Feature_Comb_Names_TypeVsType = [] -Feature_Comb_Names_TypeVsType += [ ["Combined", "Log", "EtOver", "Et"] ] -Feature_Comb_Names_TypeVsType += [ ["Combined", "Angle", "To", ""] ] -Feature_Comb_Names_TypeVsType += [ ["Combined", "DeltaR1st", "To1st", ""] ] -Feature_Comb_Names_TypeVsType += [ ["Combined", "Angle1st", "To1st", ""] ] - -Feature_Comb_Names_TypeVsType_Full = [] -Feature_Comb_Names_TypeVsType_Full += [ ["Combined", "Log1st", "EtOver", "Et"] ] - -####################### -### Selected Type combinations -####################### -EFO_Comb_Selected_Charged = [] -#EFO_Comb_Selected_Charged += ["Charged"] -EFO_Comb_Selected_Charged += ["QualChrg"] -#EFO_Comb_Selected_Charged += ["QualChrg2"] - -EFO_Comb_Selected_Neutral = [] -#EFO_Comb_Selected_Neutral += ["EmNeut"] -#EFO_Comb_Selected_Neutral += ["Neutral"] -EFO_Comb_Selected_Neutral += ["Pi0Neut"] -#EFO_Comb_Selected_Neutral += ["NeutCore1"] -#EFO_Comb_Selected_Neutral += ["NeutCore2"] -EFO_Comb_Selected_Neutral += ["QualNeut"] - -Feature_Comb_Names_SelTypes = [] -for etType in SeedEtTypes: - Feature_Comb_Names_SelTypes += [ ["Combined", "Mean", "Et_Wrt" + etType] ] -# -Feature_Comb_Names_SelTypes += [ ["Combined", "InvMass", ""] ] -Feature_Comb_Names_SelTypes += [ ["Combined", "Angle1st2nd", ""] ] - - -####################### -### Single features -####################### -print("featureList.py: Adding features (combined, single)") -for iFeatCombSgl in Feature_Comb_Names_Single: - - curType = iFeatCombSgl[0] - curName = iFeatCombSgl[1] - - curFeature = Features_Prefix + curType + "_" + curName - - curDefVal = Default_Values[curType] - curDefSig = curDefVal /20. - - featureDefaultValue[curFeature] = curDefVal - featureDefaultValueSmearingSigma[curFeature] = curDefSig - featureType[curFeature] = 'F' -#end for loop over combined features (single) - - -####################### -### Type-vs-Type -####################### -for iType in range(len(EFO_Comb)): - for jType in range(len(EFO_Comb)): - - if jType == iType: - continue - - #Add combined features NOT symmetric in the two systems: - for iFeatCombTvTF in Feature_Comb_Names_TypeVsType_Full: - EFO_I = EFO_Comb[iType] - EFO_J = EFO_Comb[jType] - - curType = iFeatCombTvTF[0] - curFrag_A = iFeatCombTvTF[1] - curFrag_B = iFeatCombTvTF[2] - curFrag_C = iFeatCombTvTF[3] - - curName = curFrag_A + EFO_J + curFrag_B + EFO_I + curFrag_C - curFeature = Features_Prefix + curType + "_" + curName - - curDefVal = Default_Values[curType] - curDefSig = Default_Sigmas[curType] - - if curName.find("Log1st") is not -1: - curDefVal = -5. - - curDefSig = curDefVal/20. - - featureDefaultValue[curFeature] = curDefVal - featureDefaultValueSmearingSigma[curFeature] = curDefSig - featureType[curFeature] = 'F' - - #For the symmetric ones, no need to get A-B and B-A, hence skip - if jType < iType: - continue - - for iFeatCombTvT in Feature_Comb_Names_TypeVsType: - - EFO_I = EFO_Comb[iType] - EFO_J = EFO_Comb[jType] - - curType = iFeatCombTvT[0] - curFrag_A = iFeatCombTvT[1] - curFrag_B = iFeatCombTvT[2] - curFrag_C = iFeatCombTvT[3] - - curName = curFrag_A + EFO_J + curFrag_B + EFO_I + curFrag_C - curFeature = Features_Prefix + curType + "_" + curName - - curDefVal = Default_Values[curType] - - - if curName.find("Log") is not -1: - curDefVal = -5. - - curDefSig = curDefVal/20. - - featureDefaultValue[curFeature] = curDefVal - featureDefaultValueSmearingSigma[curFeature] = curDefSig - featureType[curFeature] = 'F' -#end for loop over combined features (single) - - -####################### -### Selected Type combinations -####################### -for cType in EFO_Comb_Selected_Charged: - for nType in EFO_Comb_Selected_Neutral: - for iFeatCombSelT in Feature_Comb_Names_SelTypes: - - curType = iFeatCombSelT[0] - curFrag_A = iFeatCombSelT[1] - curFrag_B = iFeatCombSelT[2] - - curName = curFrag_A + cType + nType + curFrag_B - curFeature = Features_Prefix + curType + "_" + curName - - curDefVal = Default_Values[curType] - curDefSig = Default_Sigmas[curType] - - if curName.find("InvMass") is not -1: - curDefVal = -500. - - curDefSig = curDefVal/20. - - featureDefaultValue[curFeature] = curDefVal - featureDefaultValueSmearingSigma[curFeature] = curDefSig - featureType[curFeature] = 'F' -#end for loop over combined features (single) - - - -# ######################################################################################### -# -# New structured features --- Generic Jet Features -# -# ######################################################################################### -JetShape_Name = "JetShape" - -Default_Values[JetShape_Name] = -0.5 -Default_Sigmas[JetShape_Name] = 0.01 - -Feature_JetShape_Names = [] -Feature_JetShape_Names += ["JetThrust"] -Feature_JetShape_Names += ["JetThrustMajor"] -Feature_JetShape_Names += ["JetThrustMinor"] -Feature_JetShape_Names += ["JetOblateness"] -Feature_JetShape_Names += ["JetFoxWolfram1"] -Feature_JetShape_Names += ["JetFoxWolfram2"] -Feature_JetShape_Names += ["JetFoxWolfram3"] -Feature_JetShape_Names += ["JetFoxWolfram4"] -Feature_JetShape_Names += ["JetFoxWolframRatioFW2OverFW1"] -Feature_JetShape_Names += ["JetFoxWolframRatioFW4pow4OverFW1"] -Feature_JetShape_Names += ["JetFoxWolframRatioFW234OverFW1pow4"] -Feature_JetShape_Names += ["JetFoxWolframRatioFW1PlusFW2OverFW4"] -Feature_JetShape_Names += ["JetSphericity"] -Feature_JetShape_Names += ["JetSphericityXEt"] -Feature_JetShape_Names += ["JetAplanarity"] -Feature_JetShape_Names += ["JetPlanarity"] - -####################### -### Selected Type combinations -####################### -print("featureList.py: Adding features (JetShape)") -for iJetShape in Feature_JetShape_Names: - - curFeature = JetShape_Name + "_" + iJetShape - - curDefVal = Default_Values[JetShape_Name] - - if iJetShape.find("XEt") is not -1: - curDefVal = -10000 - - curDefSig = curDefVal/20. - - featureDefaultValue[curFeature] = curDefVal - featureDefaultValueSmearingSigma[curFeature] = curDefSig - featureType[curFeature] = 'F' -#end for loop over combined features (single) - - - - -# ######################################################################################### -# -# New structured features --- Impact Parameters -# -# ######################################################################################### -ImpactParams_Name = "ImpactParams" - -Default_Values[ImpactParams_Name] = -10. -Default_Sigmas[ImpactParams_Name] = 1. - -Feature_ImpactParams_Names = [] -Feature_ImpactParams_Names += ["TransIPTrack1"] -Feature_ImpactParams_Names += ["TransIPSignfTrack1"] -Feature_ImpactParams_Names += ["LongIPTrack1"] -Feature_ImpactParams_Names += ["LongIPSignfTrack1"] -Feature_ImpactParams_Names += ["TransIPTrack2"] -Feature_ImpactParams_Names += ["TransIPSignfTrack2"] -Feature_ImpactParams_Names += ["LongIPTrack2"] -Feature_ImpactParams_Names += ["LongIPSignfTrack2"] -Feature_ImpactParams_Names += ["TransIPTrack3"] -Feature_ImpactParams_Names += ["TransIPSignfTrack3"] -Feature_ImpactParams_Names += ["LongIPTrack3"] -Feature_ImpactParams_Names += ["LongIPSignfTrack3"] -Feature_ImpactParams_Names += ["Largest"] -Feature_ImpactParams_Names += ["LargestSignf"] -Feature_ImpactParams_Names += ["SecondLargest"] -Feature_ImpactParams_Names += ["SecondLargestSignf"] -Feature_ImpactParams_Names += ["ThirdLargest"] -Feature_ImpactParams_Names += ["ThirdLargestSignf"] - - -####################### -### Impact Parameters -####################### -for iImpactParam in Feature_ImpactParams_Names: - - curFeature = ImpactParams_Name + "_" + iImpactParam - - curDefVal = Default_Values[ImpactParams_Name] - - if iImpactParam.find("Signf") is not -1: #if it's a significance - curDefVal = -40 - - curDefSig = curDefVal/20. - - featureDefaultValue[curFeature] = curDefVal - featureDefaultValueSmearingSigma[curFeature] = curDefSig - featureType[curFeature] = 'F' -#end for loop over combined features (single) - - - - - - - - -### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### -## ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### -# ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### ### - -#NOTE -# Need to have the old features here because the old names are used in the discriminant tools -# They cannot be neglected, because otherwise TMVA throws an error -# NOTE: Once the BDTs are retrained, remove this part below -#NOTE - -DefaultVal_Angle = -5.0 -DefaultSig_Angle = 0.2 - -DefaultVal_AbsE = -10000. -DefaultSig_AbsE = 250. - -DefaultVal_Ratios = -2.0 -DefaultSig_Ratios = 0.1 - -DefaultVal_DeltaR = -4.0 -DefaultSig_DeltaR = 0.2 - -DefaultVal_InvSigm = -25.0 -DefaultSig_InvSigm = 0.1 - -DefaultVal_Unsigned = -5.0 -DefaultSig_Unsigned = 0.5 - -DefaultVal_JetParam = -5.0 -DefaultSig_JetParam = 0.2 - -DefaultVal_Misc = -20.0 -DefaultSig_Misc = 0.2 - -featureDefaultValue['EflowDRLeadingChargedLeadingNeutral'] = DefaultVal_DeltaR -featureDefaultValueSmearingSigma['EflowDRLeadingChargedLeadingNeutral'] = DefaultSig_DeltaR -featureType['EflowDRLeadingChargedLeadingNeutral'] = 'F' - -featureDefaultValue['EflowChargedToNeutralEt'] = DefaultVal_Ratios -featureDefaultValueSmearingSigma['EflowChargedToNeutralEt'] = DefaultSig_Ratios -featureType['EflowChargedToNeutralEt'] = 'F' - -featureDefaultValue['NEFOIn01'] = DefaultVal_Unsigned -featureDefaultValueSmearingSigma['NEFOIn01'] = DefaultSig_Unsigned -featureType['NEFOIn01'] = 'F' - -featureDefaultValue['EflowNeutralSumEt'] = DefaultVal_AbsE -featureDefaultValueSmearingSigma['EflowNeutralSumEt'] = DefaultSig_AbsE -featureType['EflowNeutralSumEt'] = 'F' - -featureDefaultValue['EflowMeanEtChrgToSumEt'] = DefaultVal_Ratios -featureDefaultValueSmearingSigma['EflowMeanEtChrgToSumEt'] = DefaultSig_Ratios -featureType['EflowMeanEtChrgToSumEt'] = 'F' - -featureDefaultValue['NChargedQualifiedEFO'] = DefaultVal_Unsigned -featureDefaultValueSmearingSigma['NChargedQualifiedEFO'] = DefaultSig_Unsigned -featureType['NChargedQualifiedEFO'] = 'I' - -featureDefaultValue['EflowRatioDeltaPt12To13LeadingChargedQualifiedComponents'] = DefaultVal_Ratios -featureDefaultValueSmearingSigma['EflowRatioDeltaPt12To13LeadingChargedQualifiedComponents'] = DefaultSig_Ratios -featureType['EflowRatioDeltaPt12To13LeadingChargedQualifiedComponents'] = 'F' - -featureDefaultValue['EflowEtLeadingChrgQualifiedOverTotalEt'] = DefaultVal_Ratios -featureDefaultValueSmearingSigma['EflowEtLeadingChrgQualifiedOverTotalEt'] = DefaultSig_Ratios -featureType['EflowEtLeadingChrgQualifiedOverTotalEt'] = 'F' - -featureDefaultValue['EflowStdDevEtToSumEt'] = DefaultVal_Ratios -featureDefaultValueSmearingSigma['EflowStdDevEtToSumEt'] = DefaultSig_Ratios -featureType['EflowStdDevEtToSumEt'] = 'F' - -featureDefaultValue['EflowChargedToSumEtInvSigm'] = DefaultVal_InvSigm -featureDefaultValueSmearingSigma['EflowChargedToSumEtInvSigm'] = DefaultSig_InvSigm -featureType['EflowChargedToSumEtInvSigm'] = 'F' - -featureDefaultValue['EflowJetMomentDRChrg'] = DefaultVal_JetParam -featureDefaultValueSmearingSigma['EflowJetMomentDRChrg'] = DefaultSig_JetParam -featureType['EflowJetMomentDRChrg'] = 'F' - -featureDefaultValue['EflowMeanEtNeutToSumEt'] = DefaultVal_Ratios -featureDefaultValueSmearingSigma['EflowMeanEtNeutToSumEt'] = DefaultSig_Ratios -featureType['EflowMeanEtNeutToSumEt'] = 'F' - -featureDefaultValue['EflowChargedToSumEt'] = DefaultVal_Ratios -featureDefaultValueSmearingSigma['EflowChargedToSumEt'] = DefaultSig_Ratios -featureType['EflowChargedToSumEt'] = 'F' - -featureDefaultValue['EflowJetMomentDRChrg'] = DefaultVal_JetParam -featureDefaultValueSmearingSigma['EflowJetMomentDRChrg'] = DefaultSig_JetParam -featureType['EflowJetMomentDRChrg'] = 'F' - -featureDefaultValue['EflowMeanEtNeutToSumEt'] = DefaultVal_Ratios -featureDefaultValueSmearingSigma['EflowMeanEtNeutToSumEt'] = DefaultSig_Ratios -featureType['EflowMeanEtNeutToSumEt'] = 'F' - -featureDefaultValue['EflowDihedralAngleLeadingChargedQualified'] = DefaultVal_Angle -featureDefaultValueSmearingSigma['EflowDihedralAngleLeadingChargedQualified'] = DefaultSig_Angle -featureType['EflowDihedralAngleLeadingChargedQualified'] = 'F' - -featureDefaultValue['EflowMaxDRLeadingChargedQualifiedComponents'] = DefaultVal_DeltaR -featureDefaultValueSmearingSigma['EflowMaxDRLeadingChargedQualifiedComponents'] = DefaultSig_DeltaR -featureType['EflowMaxDRLeadingChargedQualifiedComponents'] = 'F' - -featureDefaultValue['EflowRatioDeltaPt23To13LeadingChargedQualifiedComponents'] = DefaultVal_Ratios -featureDefaultValueSmearingSigma['EflowRatioDeltaPt23To13LeadingChargedQualifiedComponents'] = DefaultSig_Ratios -featureType['EflowRatioDeltaPt23To13LeadingChargedQualifiedComponents'] = 'F' - -featureDefaultValue['AbsSumCharge'] = DefaultVal_Unsigned -featureDefaultValueSmearingSigma['AbsSumCharge'] = DefaultSig_Unsigned -featureType['AbsSumCharge'] = 'F' - -featureDefaultValue['NEFOIn02'] = DefaultVal_Unsigned -featureDefaultValueSmearingSigma['NEFOIn02'] = DefaultSig_Unsigned -featureType['NEFOIn02'] = 'F' - -featureDefaultValue['SumCharge'] = DefaultVal_Misc -featureDefaultValueSmearingSigma['SumCharge'] = DefaultSig_Misc -featureType['SumCharge'] = 'I' - diff --git a/Reconstruction/RecExample/RecExCommon/share/RecExCommon_topOptions.py b/Reconstruction/RecExample/RecExCommon/share/RecExCommon_topOptions.py index 2c2bf69a7b95bc0b194be7920107392525d6b5c2..48fb48844a4a5adb407a955d06af07b9c6031953 100644 --- a/Reconstruction/RecExample/RecExCommon/share/RecExCommon_topOptions.py +++ b/Reconstruction/RecExample/RecExCommon/share/RecExCommon_topOptions.py @@ -69,7 +69,6 @@ excludeTracePattern.append("*/D3PDMakerCoreComps/MakerAlg.py") excludeTracePattern.append("*/D3PDMakerCoreComps/D3PDObject.py") excludeTracePattern.append("*/RecExConfig/RecoFunctions.py") excludeTracePattern.append("*/DQDefects/virtual*") -excludeTracePattern.append("*/PanTauAnalysis/Class_FeatureHandler.py") excludeTracePattern.append("*/TrigEDMConfig/TriggerEDM.py") excludeTracePattern.append("*/TrigL2MissingET/TrigL2MissingETMonitoring.py") excludeTracePattern.append("*AthFile/impl.py")