from__future__importannotationsimportsysfromenumimportEnum,IntEnumifsys.version_info>=(3,11):fromenumimportEnumTypeelse:fromenumimportEnumMetaasEnumTypefromtypingimportCallable,TypeVar,cast_E=TypeVar("_E",bound=Enum)classMultipleEnumAccessMeta(EnumType):""" Enum Metaclass to provide a way to access multiple values all at once. """def__getitem__(self:type[_E],key:str|tuple[str])->_E|list[_E]:# type:ignore[misc,override]getitem=cast(Callable[[str],_E],super().__getitem__)# type:ignore[misc]ifisinstance(key,tuple):return[getitem(name)fornameinkey]returngetitem(key)
[docs]classParticleType(IntEnum,metaclass=MultipleEnumAccessMeta):""" Taken from `ATLAS Truth Utilities for ParticleType <https://gitlab.cern.ch/atlas/athena/-/blob/74f43ff0910edb2a2bd3778880ccbdad648dc037/Generators/TruthUtils/TruthUtils/TruthClasses.h#L8-49>`_. """Unknown=0UnknownElectron=1IsoElectron=2NonIsoElectron=3BkgElectron=4UnknownMuon=5IsoMuon=6NonIsoMuon=7BkgMuon=8UnknownTau=9IsoTau=10NonIsoTau=11BkgTau=12UnknownPhoton=13IsoPhoton=14NonIsoPhoton=15BkgPhoton=16Hadron=17Neutrino=18NuclFrag=19NonPrimary=20GenParticle=21SUSYParticle=22OtherBSMParticle=39BBbarMesonPart=23BottomMesonPart=24CCbarMesonPart=25CharmedMesonPart=26BottomBaryonPart=27CharmedBaryonPart=28StrangeBaryonPart=29LightBaryonPart=30StrangeMesonPart=31LightMesonPart=32BJet=33CJet=34LJet=35GJet=36TauJet=37UnknownJet=38
[docs]classParticleOrigin(IntEnum,metaclass=MultipleEnumAccessMeta):""" Taken from `ATLAS Truth Utilities for ParticleOrigin <https://gitlab.cern.ch/atlas/athena/-/blob/74f43ff0910edb2a2bd3778880ccbdad648dc037/Generators/TruthUtils/TruthUtils/TruthClasses.h#L51-103>`_. """NonDefined=0SingleElec=1SingleMuon=2SinglePhot=3SingleTau=4PhotonConv=5DalitzDec=6ElMagProc=7Mu=8TauLep=9top=10QuarkWeakDec=11WBoson=12ZBoson=13Higgs=14HiggsMSSM=15HeavyBoson=16WBosonLRSM=17NuREle=18NuRMu=19NuRTau=20LQ=21SUSY=22OtherBSM=46LightMeson=23StrangeMeson=24CharmedMeson=25BottomMeson=26CCbarMeson=27JPsi=28BBbarMeson=29LightBaryon=30StrangeBaryon=31CharmedBaryon=32BottomBaryon=33PionDecay=34KaonDecay=35BremPhot=36PromptPhot=37UndrPhot=38ISRPhot=39FSRPhot=40NucReact=41PiZero=42DiBoson=43ZorHeavyBoson=44MultiBoson=47QCD=45
[docs]classPhotonID(IntEnum,metaclass=MultipleEnumAccessMeta):""" Taken from the `EGamma Identification CP group's twiki <https://twiki.cern.ch/twiki/bin/viewauth/AtlasProtected/EGammaIdentificationRun2#Photon_isEM_word>`_. """Rhad=10# ClusterHadronicLeakage_PhotonE277=11# ClusterMiddleEnergy_PhotonReta=12# ClusterMiddleEratio37_PhotonRphi=13# ClusterMiddleEratio33_PhotonWeta2=14# ClusterMiddleWidth_Photonf1=15# ClusterStripsEratio_PhotonDeltaE=17# ClusterStripsDeltaE_PhotonWstot=18# ClusterStripsWtot_Photonfside=19# ClusterStripsFracm_PhotonWs3=20# ClusterStripsWeta1c_PhotonERatio=21# ClusterStripsDEmaxs1_Photon