ATLAS Offline Software
Loading...
Searching...
No Matches
CP Namespace Reference

Select isolated Photons, Electrons and Muons. More...

Namespaces

namespace  detail
namespace  DetailSelectionExprParser
namespace  PartonHistoryUtils
namespace  QGntrackSyst
namespace  RNtupleFieldHelpers
namespace  TreeBranchHelpers
 a namespace for helper functions and objects for filling tree branches

Classes

class  ApplyE2YFakeRate
class  ApplyFakeFactor
class  AsgClassificationDecorationAlg
 an algorithm for decorating classification using a tool based on the CP::IClassificationTool More...
class  AsgCutBookkeeperAlg
 an algorithm for dumping the CutBookkeeper metadata into a histogram More...
class  AsgEnergyDecoratorAlg
class  AsgEventScaleFactorAlg
 an algorithm for calculating per-event scale factors More...
class  AsgFlagSelectionTool
 an IAsgSelectionTool that cuts on char decorations More...
class  AsgLeptonTrackDecorationAlg
 an algorithm for decorating track variables on leptons More...
class  AsgLeptonTrackSelectionAlg
 an algorithm for performing track-vertex selection on leptons More...
class  AsgMaskSelectionTool
 an IAsgSelectionTool that cuts on int decorations with mask More...
class  AsgMassSelectionTool
 an IAsgSelectionTool that performs basic mass cut More...
class  AsgNumDecorationSelectionTool
 a templated IAsgSelectionTool that performs basic cut on numerical decorations (e.g., int, uint8_t) More...
class  AsgNumDecorationSelectionToolInt
class  AsgNumDecorationSelectionToolUInt8
class  AsgObjectScaleFactorAlg
 an algorithm for combining object scale factors More...
class  AsgOriginalObjectLinkAlg
 an algorithm for relinking a shallow copy with it's base container when this was not done originally More...
class  AsgPriorityDecorationAlg
 an algorithm for decorating priorities More...
class  AsgPtEtaSelectionTool
 an IAsgSelectionTool that performs basic pt and eta cut (with an optional eta gap) More...
class  AsgSelectionAlg
 an algorithm for calling IAsgSelectionTool More...
class  AsgShallowCopyAlg
 create a shallow copy of an input contsainer More...
class  AsgUnionPreselectionAlg
 an algorithm for turning a systematics depending selection decoration into a selection decoration without systematics More...
class  AsgUnionSelectionAlg
 an algorithm for selection an union of objects that pass at least one systematics More...
class  AsgViewFromSelectionAlg
 create a view container based on selection decorations More...
class  AsgxAODNTupleMakerAlg
 Algorithm that can write a simple ntuple from xAOD objects/variables. More...
class  AsymptMatrixTool
class  BaseFakeBkgTool
class  BaseLinearFakeBkgTool
class  BJetCalibrationAlg
 an algorithm to apply b-jet specific energy correction More...
class  BootstrapGenerator
 a class to generate random numbers with a unique seed More...
class  BootstrapGeneratorAlg
 an algorithm to compute per-event bootstrap replica weights More...
class  BTaggingEfficiencyAlg
 an algorithm for calling IBTaggingEfficiencyTool More...
class  BTaggingInformationDecoratorAlg
class  BTaggingScoresAlg
class  BTaggingTriggerEfficiencyAlg
 an algorithm for calling IBTaggingEfficiencyTool including b-jet trigger SF More...
class  BTaggingTriggerMatchingAlg
 an algorithm for calling IBTaggingEfficiencyTool including b-jet trigger SF More...
class  CalcPartonHistory
class  CalibratedEgammaProvider
class  ChargeSelectorAlg
 an algorithm that selects an event if the event has leptons with opposite sign or same sign More...
class  CopyNominalSelectionAlg
 an algorithm that copies the nominal selections over to all other object systematics More...
class  CorrectionCode
 Return value from object correction CP tools. More...
class  CorrectionTool
 Helper base class for "correction tools". More...
struct  DecoratorZW
 Parameterized Z or W decorator initialisation (needs count/extended args). More...
class  DileptonInvariantMassSelectorAlg
 an algorithm to select an event with 2-lepton mass compared to a specified value More...
class  DileptonInvariantMassWindowSelectorAlg
 an algorithm to select an event with 2-lepton mass compared to a specified window of values "lowMLL" and "highMLL". More...
class  DileptonOSSFInvariantMassWindowSelectorAlg
 an algorithm that vetos an event with two OS electrons or muons mass in a specific mass window More...
class  DiTauEfficiencyCorrectionsAlg
 an algorithm for calling IDiTauEfficiencyCorrectionsTool More...
class  DiTauExtraVariablesAlg
class  DiTauMassCalculatorAlg
class  DiTauSmearingAlg
 an algorithm for calling IDiTauSmearingTool More...
class  DiTauTruthMatchingAlg
 an algorithm for calling IDiTauTruthMatchingTool More...
class  EgammaCalibrationAndSmearingAlg
 an algorithm for calling CP::IEgammaCalibrationAndSmearingTool More...
class  EgammaCalibrationAndSmearingTool
class  EgammaCaloClusterEtaAlg
class  EgammaFSRForMuonsCollectorAlg
 Algorithm to collect photons and electrons which close in dR to muons as FSR candidates. More...
class  EgammaIsGoodOQSelectionTool
 Tool selecting e/gamma objects based on their object quality flags. More...
class  EgammaIsolationCorrectionAlg
 an algorithm for calling CP::IIsolationCorrectionTool More...
class  EgammaIsolationSelectionAlg
 an algorithm for calling IIsolationSelectionTool More...
class  EgammaSamplingPatternDecoratorAlg
 an algorithm decorating samplingPattern on e-gamma clusters More...
class  ElectronChargeEfficiencyCorrectionTool
class  ElectronEfficiencyCorrectionAlg
 an algorithm for calling IElectronEfficiencyCorrectionTool More...
class  ElectronLRTMergingAlg
 this wraps the Electron LRT collection merger in a CP algorithm More...
class  ElectronLRTOverlapRemovalTool
 Class-algorithm for electron particle collection merging. More...
class  ElectronSiHitDecAlg
 this decorates electrons with extra information from the track and cluster to avoid writing them out for SiHit electrons More...
class  EventCutFlowHistAlg
 an algorithm for dumping the an event-level cutflow More...
class  EventDecoratorAlg
 an algorithm for decorating EventInfo with constant values More...
class  EventFlagSelectionAlg
 an algorithm for selecting events by flag More...
class  EventScalarSelectorAlg
 an algorithm to cut on a scalar quantity decorating EventInfo (e.g. More...
class  EventSelectionByObjectFlagAlg
 an algorithm for selecting events based on object flags (e.g. More...
class  EventStatusSelectionAlg
 an algorithm for selecting events based on their error status More...
class  FakeBkgCalculatorAlg
class  FFJetSmearingTool
class  FJvtEfficiencyTool
class  FJvtSelectionTool
struct  FlowElementPtr
 For the flow elements we need a special derivate which also contains the weights. More...
struct  GenericFillOp
 One call to FillGenericPartonHistory or FillGenericVectorPartonHistory. More...
class  HSTPFilterAlg
class  IClassificationTool
 a tool interface to classify particles into multiple categories by assigning them an unsigned integer More...
class  ICorrectionTool
class  IEfficiencyScaleFactorTool
 General interface for tools providing analysis efficiency scale factors. More...
class  IEgammaCalibrationAndSmearingTool
class  IElectronLRTOverlapRemovalTool
class  IFakeBkgSystDescriptor
 Auxiliary interface equiping the tools derived from IFakeBkgTool with helper methods to identify what the different SystematicVariations correspond to All the tools inherit from this interface. More...
class  IFakeBkgTool
 Top-level interface for the tools providing an estimate of the fake lepton background All the tools, each of them implementing a different method for the estimation, inherit from this interface. More...
class  IIsolationCloseByCorrectionTool
class  IIsolationCorrectionTool
class  IIsolationHelper
class  IIsolationLowPtPLVTool
class  IIsolationSelectionTool
class  IJetQGTagger
class  IJetTileCorrectionTool
 Interface for the tool correcting for dead Tile modules. More...
class  IJvtEfficiencyTool
class  ILinearFakeBkgTool
 Interface for the tools providing an estimate of the fake lepton background, which are able to provide an event-by-event weight. More...
class  IMuonCalibrationAndSmearingTool
class  IMuonEfficiencyScaleFactors
class  IMuonLRTOverlapRemovalTool
class  IMuonSelectionTool
 Interface for (a) muon selector tool(s). More...
class  IMuonTriggerScaleFactors
class  InDetTrackBiasingAlg
 an algorithm for calling InDetTrackBiasingTool More...
class  InDetTrackExtraVarDecoratorAlg
class  InDetTrackSelectionAlg
 an algorithm for calling first the IInDetTrackSelectionTool and then the IInDetTrackTruthFilterTool More...
class  InDetTrackSmearingAlg
 an algorithm for calling InDetTrackSmearingTool More...
struct  inputScaleMapper
class  IOStatsAlg
class  IPhotonPointingTool
class  IPhotonVertexSelectionTool
class  IPileupReweightingTool
class  IReentrantSystematicsTool
 interface for all CP tools supporting systematic variations within a reentrant algorithm More...
class  ISelectionNameSvc
 the interface for the central systematics service More...
class  ISelectionReadAccessor
 a specialized accessor to read a selection decoration from/to an xAOD object More...
class  ISelectionWriteAccessor
 a specialized accessor to write a selection decoration to an xAOD object More...
class  IsoCloseByCaloDecorAlg
class  IsoCloseByCorrectionAlg
class  IsoCloseByCorrectionTrkSelAlg
class  IsoCorrectionTestHelper
class  IsolationCloseByCorrectionTool
class  IsolationCondition
class  IsolationConditionCombined
class  IsolationConditionFormula
class  IsolationConditionGraph
class  IsolationConditionHist
class  IsolationCorrection
class  IsolationCorrectionTool
class  IsolationHelper
class  IsolationLowPtPLVTool
class  IsolationSelectionTool
class  IsolationWP
struct  IsOnShellFillOp
 Decorates a 0/1 flag from key existence: 1 if any of retrievalKeys is present in the particle map, 0 otherwise. More...
class  IsoVariableHelper
class  ISysHandleBase
 a basic interface for all systematics handles More...
class  ISysObjectHandleBase
 a ISysHandleBase for a handle to a specific object/container More...
class  ISystematicsSvc
 the interface for the central systematics service More...
class  ISystematicsTool
 Interface for all CP tools supporting systematic variations. More...
class  ITrackVertexAssociationTool
class  IWeightPFOTool
class  JetCalibAlg
 an algorithm for calling IJetCalibTool More...
class  JetCalibrationAlg
 an algorithm for calling IJetCalibrationTool More...
class  JetDecoratorAlg
 an algorithm for calling IJetDecorator More...
class  JetFFSmearingAlg
 an algorithm for calling FFJetSmearingTool More...
class  JetGhostMergingAlg
 an algorithm for combining multiple ghost collections into one More...
class  JetGhostMuonAssociationAlg
 an algorithm for adding ghost muons to jets More...
class  JetModifierAlg
 an algorithm for calling IJetModifier More...
class  JetNGhostSelectorAlg
 an algorithm to select an event with a specified number of objects compared to a transverse momentum value More...
class  JetQGTagger
class  JetQGTaggerBDT
class  JetReclusteringAlg
 an algorithm reclustering (selected) small-R jets into larger-R jets with FastJet, decorating each reclustered jet with the indices of its small-R constituents in the input jet container More...
class  JetSelectionAlg
 an algorithm for calling IJetSelector More...
class  JetTileCorrectionAlg
class  JetTileCorrectionTool
class  JetTriggerDecoratorAlg
 an algorithm decorating jets with the kinematics, ΔR and thresholds of the L1 RoI and HLT jet matched to them for a given trigger chain More...
class  JetTruthTagAlg
 An algorithm for tagging reco-jets if they are close enough to a truth jet. More...
class  JetUncertaintiesAlg
 an algorithm for calling ICPJetUncertaintiesTool More...
class  JfexThresholdTable
 the Phase-I L1 jFEX threshold bit-to-name table, taken from the L1 menu, shared by the algorithms decoding jFEX thresholdPatterns More...
class  JvtEfficiencyAlg
 an algorithm for calling IJvtEfficiencyTool More...
class  JvtEfficiencyTool
class  JvtEfficiencyToolBase
class  JvtSelectionTool
class  JvtSelectionToolBase
class  JvtUpdateAlg
 an algorithm for calling IJetUpdateJvt More...
class  KinematicHistAlg
 an algorithm for dumping the kinematics of an IParticle container into histograms More...
class  L1jFexJetThresholdsDecoratorAlg
 an algorithm decorating each Phase-I L1 jFEX SR jet RoI with the names of the L1 menu thresholds it passed, decoded from its thresholdPatterns bits More...
class  LeptonSFCalculatorAlg
class  LhoodMM_tools
struct  LhoodMMFitInfo
class  MakeSystematicsVector
 This class handles turning the list of systematics into the actual list of nuisance parameter points to evaluate. More...
class  MCTCDecorationAlg
 an algorithm to unpack and decorate MCTruthClassifier Classification information More...
class  MetadataHistAlg
 Dump metadata information into a histogram. More...
class  MetBuilderAlg
 an algorithm for building the final MET sum from the MET terms More...
class  MetMakerAlg
 an algorithm for calling IMETMaker More...
class  MetSignificanceAlg
 an algorithm for calling IMETSignificanceTool More...
class  MissingETPlusTransverseMassSelectorAlg
 an algorithm to select an event with MET + W-boson mass compared to a specified MET+MWT value More...
class  MissingETSelectorAlg
 an algorithm to select an event with missing E_T above or below a specified value More...
class  MuonCalibrationAndSmearingAlg
 an algorithm for calling IMuonCalibrationAndSmearingTool More...
class  MuonContainerMergingAlg
 this algorithm allows to merge multiple xAOD::MuonCollection objects into a single (view) collection. More...
class  MuonEfficiencyScaleFactorAlg
 an algorithm for calling IMuonEfficiencyScaleFactors More...
class  MuonIsolationAlg
 an algorithm for calling IIsolationSelectionTool More...
class  MuonLRTMergingAlg
 this wraps the MCP LRT collection merger in a CP algorithm More...
class  MuonLRTOverlapRemovalTool
 Class-algorithm for muon particle collection merging. More...
class  MuonPhaseIISelectionTool
 Dummy selection tool to make the PhaseII workflows work with the arrival of MudiCo in the Acts version. More...
class  MuonQualityUpdaterAlg
class  MuonSelectionAlg
class  MuonSelectionAlgV2
 an algorithm for calling IMuonSelectionTool More...
class  MuonSelectionTool
 Implementation of the muon selector tool. More...
class  MuonTriggerEfficiencyScaleFactorAlg
 an algorithm for calling IMuonTriggerScaleFactors More...
class  MVAInputEvaluator
class  MVATrackVertexAssociationTool
class  NJetDecoratorAlg
 an algorithm for decorating EventInfo More...
class  NLargeRJetMassWindowSelectorAlg
 an algorithm to select an event with N large-R jets with a mass compared to a specified window of values "lowMass" and "highMass". More...
class  NNJvtEfficiencyTool
class  NNJvtSelectionTool
class  NObjectMassSelectorAlg
 an algorithm to select an event with a specified number of objects compared to an invariant mass value More...
class  NObjectPtSelectorAlg
 an algorithm to select an event with a specified number of objects compared to a transverse momentum value More...
class  ObjectCutFlowHistAlg
 an algorithm for dumping the object-level cutflow More...
class  ObjectKinematicSelectorAlg
 a generic algorithm to cut on a kinematic quantity computed from one or more objects, e.g. More...
class  OutOfValidityEventHelper
 a helper to translate a CP::CorrectionCode into a ::StatusCode More...
class  OutOfValidityHelper
 a helper to translate a CP::CorrectionCode into a ::StatusCode More...
class  OverlapRemovalAlg
 an algorithm for calling ORUtils::IOverlapRemovalTool More...
class  ParticleLevelChargeDecoratorAlg
class  ParticleLevelIsolationAlg
class  ParticleLevelJetsAlg
class  ParticleLevelMissingETAlg
class  ParticleLevelOverlapRemovalAlg
class  ParticleLevelPtEtaPhiDecoratorAlg
struct  PartonAccessor
 Struct to manage accessors to objects. More...
struct  PartonDecorator
 Struct to manage and apply decorators to the EventInfo object. More...
struct  PartonSchemeConfig
 Top-level configuration for a named parton history scheme. More...
class  PDFinfoAlg
class  PDFReweightAlg
 An algorithm for the PDF reweighting. More...
class  PhotonEfficiencyCorrectionAlg
 an algorithm for calling IPhotonEfficiencyCorrectionTool More...
class  PhotonExtraVariablesAlg
class  PhotonOriginCorrectionAlg
 an algorithm for correctiong the origin of a photon wrt the Primary Vertex More...
class  PhotonPointingTool
 Implementation for the photon pointing tool. More...
class  PhotonShowerShapeFudgeAlg
 an algorithm for calling IElectronPhotonShowerShapeFudgeTool for photons More...
class  PhotonVertexSelectionAlg
class  PhotonVertexSelectionTool
 Implementation for the photon vertex selection tool. More...
class  PileupReweightingAlg
 an algorithm for calling IPileupReweightingTool More...
class  PileupReweightingProvider
class  PileupReweightingTool
 Implementation of the PileupReweighting tool. More...
class  PMGTruthWeightAlg
 an algorithm for calling IPMGTruthWeightTool More...
class  PrintToolConfigAlg
class  ReclusteredJetCalibrationAlg
 an algorithm for calibration reclustered large-R jets More...
class  RNtupleTreeMakerAlg
 Algorithm that creates an RNTuple (instead of TTree). More...
class  RunNumberSelectorAlg
 an algorithm to select an event with 2-lepton mass compared to a specified value More...
class  RunPartonHistoryAlg
class  SaveFilterAlg
 an algorithm to turn event selections into filters for cutflow saving More...
class  SecVertexTruthMatchAlg
 Algorithm to perform truth matching on secondary vertices. More...
class  SelectionAccessorExprBase
 Serves as the base for a few logical expression classes. More...
class  SelectionAccessorExprNot
 SelectionAccessor which implements a logical NOT. More...
class  SelectionAccessorExprOr
 Implements a SelectionAccessor that performs a binary logical OR. More...
class  SelectionAccessorList
 the SelectionAccesor for list of selection decorations More...
class  SelectionAccessorReadSys
 the SelectionAccesor for reading systematically varied decorations More...
class  SelectionExprParser
 Public interface for the expression parsing facility. More...
class  SelectionNameSvc
 the canonical implementation of ISelectionNameSvc More...
class  SelectionReadAccessorBits
 the SelectionAccesor for standard CP algorithm selection decorations encoded as bits More...
class  SelectionReadAccessorChar
 the SelectionAccesor for OR tool selection decorations More...
class  SelectionReadAccessorInvert
 the SelectionAccesor for inverting a selection decoration More...
class  SelectionReadAccessorNull
 a SelectionAccesor that can be used instead of a nullptr More...
class  SelectionReadHandle
 a data handle for reading selection properties from objects More...
class  SelectionWriteAccessorBits
 the SelectionAccesor for standard CP algorithm selection decorations encoded as bits More...
class  SelectionWriteAccessorChar
 the SelectionAccesor for OR tool selection decorations More...
class  SelectionWriteAccessorInvert
 the SelectionAccesor for inverting a selection decoration More...
class  SelectionWriteAccessorNull
 a SelectionAccesor that can be used instead of a nullptr More...
class  SelectionWriteAccessorSys
 the SelectionAccesor for reading systematically varied decorations More...
class  ShowerDepthUtil
struct  SortedObjPtr
 Small helper struct to have sets of particle pointers sorted by pt. More...
struct  SpecialFillOp
 Parameterizes one special fill call. More...
class  SSVWeightsAlg
class  string
 STL class. More...
struct  strObj
class  SumNLeptonPtSelectorAlg
 an algorithm to select an event with a specified number of electrons, muons or taus compared to a transverse momentum value More...
class  SysCopyHandle
 a systematics data handle that will either copy the input object or act like an update handle More...
class  SysFilterReporter
 a systematics aware filter reporter More...
class  SysFilterReporterCombiner
 a reporter class that combines the filter decisions for all systematics More...
class  SysFilterReporterParams
 the properties and persistent data for systematics aware filter reporters More...
class  SysHandleArray
 Vector-like class for systematic handles which interact with decorations. More...
class  SysListDumperAlg
 Dump systematics names into a histogram. More...
class  SysListHandle
 a class managing the property to configure the list of systematics to process More...
class  SysReadDecorHandle
 a data handle for reading systematics varied input data More...
class  SysReadHandle
 a data handle for reading systematics varied input data More...
class  SysReadSelectionHandle
 a data handle for reading systematically varied selection properties from objects More...
class  SystDiTauUnioniserAlg
class  SystElectronUnioniserAlg
class  SystematicRegistry
 This module implements the central registry for handling systematic uncertainties with CP tools. More...
class  SystematicsCache
 helper class to cache systematics varied calibration constants inside a ISystematicsTool or IRentrantSystematicsTool More...
class  SystematicSet
 Class to wrap a set of SystematicVariations. More...
struct  SystematicSetHash
 SystematicSet hash function for general use. More...
class  SystematicsSvc
 the canonical implementation of ISystematicsSvc More...
class  SystematicsTool
 Base class for CP tools providing systematic variations. More...
class  SystematicVariation
class  SystJetUnioniserAlg
class  SystMuonUnioniserAlg
class  SystObjectLinkerAlg
class  SystObjectUnioniserAlg
class  SystPhotonUnioniserAlg
class  SysTruthWeightAlg
 an algorithm for calling ISysTruthWeightTool More...
class  SystTauUnioniserAlg
class  SysWriteDecorHandle
 a data handle for reading systematics varied input data More...
class  SysWriteHandle
 a data handle for writing systematics varied input data More...
class  SysWriteSelectionHandle
 a data handle for writing systematically varied selection properties from objects More...
class  TauCombineMuonRMTausAlg
class  TauEfficiencyCorrectionsAlg
 an algorithm for calling ITauEfficiencyCorrectionsTool More...
class  TauExtraVariablesAlg
class  TauSmearingAlg
 an algorithm for calling ITauSmearingTool More...
class  TauTruthDecorationsAlg
 an algorithm to decorate truth matched information More...
class  TauTruthMatchingAlg
 an algorithm for calling ITauTruthMatchingTool More...
class  TElectronTestAlg
class  TestIsolationAthenaAlg
class  TestIsolationCloseByCorrAlg
class  TPileupReweighting
class  TrackParticleMergerAlg
 Algorithm to merge multiple track collections into one. More...
class  TrackVertexAssociationTool
 General track-vertex association tool. More...
class  TransverseMassSelectorAlg
 an algorithm to select an event with W-boson mass compared to a specified MWT value More...
class  TreeFillerAlg
 Algorithm that writes events to a tree filled by preceding algorithms to fill. More...
class  TreeMakerAlg
 Algorithm that creates an empty tree for subsequent algorithms to fill. More...
class  TrigEventSelectionAlg
class  TrigGlobalEfficiencyAlg
class  TrigMatchingAlg
 an algorithm to provide and decorate trigger matching for leptons Currently only single leg triggers are supported. More...
class  TrigPrescalesAlg
 an algorithm for retrieving trigger prescales More...
class  VertexSelectionAlg
 Algorithm meant to select events with "some" vertex requirements. More...
class  VGammaORAlg
class  WeightPFOTool
class  xAODWriterAlg
 Algorithm writing an xAOD output file. More...
class  XbbEfficiencyAlg
 an algorithm for calling IBTaggingEfficiencyJsonTool More...
class  XbbInformationDecoratorAlg

Typedefs

typedef ElementLink< xAOD::IParticleContainer > iplink_t
typedef uint32_t SelectionType
 the type for selection decorations that are meant to hold a asg::AcceptData
using SysReadSelectionHandleArray = SysHandleArray<SysReadSelectionHandle>
typedef std::vector< CP::SystematicSet > SysListType
 the type for the systematics list in the event store
template<typename T>
using SysReadDecorHandleArray = SysHandleArray<SysReadDecorHandle<T>>
template<typename T>
using SysWriteDecorHandleArray = SysHandleArray<SysWriteDecorHandle<T>>
using CharAccessor = SG::ConstAccessor<char>
using CharDecorator = SG::Decorator<char>
using FloatAccessor = SG::ConstAccessor<float>
using FloatDecorator = SG::Decorator<float>
using SelectionAccessor = std::unique_ptr<CharAccessor>
using SelectionDecorator = std::unique_ptr<CharDecorator>
using BoolDecorator = SG::Decorator<bool>
using BoolAccessor = SG::ConstAccessor<bool>
using IntDecorator = SG::Decorator<int>
using IntAccessor = SG::ConstAccessor<int>
using ShortDecorator = SG::Decorator<short>
using ShortAccessor = SG::ConstAccessor<short>
using IsoType = xAOD::Iso::IsolationType
using IsoVector = std::vector<IsoType>
using CaloClusterPtr = SortedObjPtr<xAOD::CaloCluster>
using TrackPtr = SortedObjPtr<xAOD::TrackParticle>
using TrackSet = std::set<TrackPtr>
using ClusterSet = std::set<CaloClusterPtr>
using PflowSet = std::set<FlowElementPtr>
using UnorderedClusterSet = std::unordered_set<const xAOD::CaloCluster*>
using UnorderedContainerSet = std::unordered_set<const SG::AuxVectorData*>
typedef std::unique_ptr< IsoVariableHelper > IsoHelperPtr
using caloDecorNames = IsolationCloseByCorrectionTool::caloDecorNames

Enumerations

enum class  OutOfValidityAction { ABORT , WARNING , SILENT }
 the action to perform on encountering an OutOfValidityRange in OutOfValidityHelper More...
enum class  SpecialFillType {
  Top , TopFCNC , AntiTop , AntiTopFCNC ,
  Ttbar , TtbarFCNC , Z , Ztautau ,
  W , Higgs , Gamma
}
 Maps to an existing Fill*PartonHistory method on CalcPartonHistory. More...
enum class  DecoratorGroup {
  Top , TopFCNC , AntiTop , AntiTopFCNC ,
  FourTop , Ttbar , Bottom , AntiBottom ,
  VectorBottom , VectorAntiBottom , Charm , AntiCharm ,
  VectorCharm , VectorAntiCharm , Photon , Higgs
}
 Maps to an existing Initialize*Decorators method (non-parameterized ones). More...
enum  QGSystApplied {
  QG_NONE , QG_TRACKEFFICIENCY , QG_TRACKFAKES , QG_NCHARGEDTOPO ,
  QG_NCHARGEDEXP_UP , QG_NCHARGEDME_UP , QG_NCHARGEDPDF_UP , QG_NCHARGEDEXP_DOWN ,
  QG_NCHARGEDME_DOWN , QG_NCHARGEDPDF_DOWN
}
enum  PFO_JetMETConfig_inputScale { EM = 0 , LC }
enum  PFO_JetMETConfig_charge { neutral = 0 , charged = 1 , all = 2 }

Functions

template<typename T>
static float mll_reco (const T *lep0, const T *lep1)
static float mll_truth (const xAOD::TruthParticle *lep0, const xAOD::TruthParticle *lep1, bool useDressed)
static const SG::Decorator< float > met_met_dec ("met")
static const SG::Decorator< float > met_phi_dec ("phi")
StatusCode makeSelectionReadAccessor (const std::string &expr, std::unique_ptr< ISelectionReadAccessor > &accessor, bool defaultToChar=false)
 make the ISelectionReadAccessor for the given name
StatusCode makeSelectionReadAccessorVar (const std::string &name, std::unique_ptr< ISelectionReadAccessor > &accessor, bool defaultToChar=false)
 Produces a simple ISelectionReadAccessor accessing the given decoration.
StatusCode makeSelectionWriteAccessor (const std::string &name, std::unique_ptr< ISelectionWriteAccessor > &accessor, bool defaultToChar=false)
 Produces a simple ISelectionWriteAccessor accessing the given decoration.
SelectionType selectionFromBool (bool accept)
 the selection decoration made from the given boolean (true = accept)
SelectionType selectionFromAccept (const asg::AcceptData &accept)
 the selection decoration made from the given AcceptData object
constexpr SelectionType selectionAccept ()
 the selection decoration to apply for objects that are selected
constexpr SelectionType selectionReject ()
 the selection decoration to apply for objects that are rejected
constexpr float invalidScaleFactor ()
 the decoration value to use if there is no valid scale factor decoration
constexpr float invalidEfficiency ()
 the decoration value to use if there is no valid efficiency decoration
std::string sanitizeTriggerChainName (std::string chain)
 convert a trigger chain name into a string usable in decoration/branch names (.
constexpr float invalidTriggerPrescale ()
 the decoration value to use if there is no valid trigger prescale information
const PartonSchemeConfig & getSchemeConfig (const std::string &schemeName)
 Returns the configuration for a given scheme name.
ROOT::Math::PxPyPzMVector GetPxPyPzMfromTruth (const xAOD::TruthParticle *TruthParticleTruthParticle)
ROOT::Math::PtEtaPhiMVector GetPtEtaPhiMfromTruth (const xAOD::TruthParticle *TruthParticleTruthParticle)
 Four-vector of a truth particle, built from (pt, eta, phi, m) so that the mass is preserved exactly.
ROOT::Math::PtEtaPhiEVector GetPtEtaPhiEfromTruth (const xAOD::TruthParticle *TruthParticleTruthParticle)
ROOT::Math::PxPyPzEVector GetPxPyPzEfromTruth (const xAOD::TruthParticle *TruthParticleTruthParticle)
template<typename T, typename U, typename V>
void FillParticleInfo (const SG::Decorator< T > &dec, const U &value, const V *object)
 Template function to fill particle information into a given object.
template<typename T, typename U, typename V>
void FillVectorParticleInfo (const SG::Decorator< std::vector< T > > &dec, const U &value, const V *object)
 Template function to fill vector particle information into a given object.
template<typename T, typename U>
void FillParticleInfo (const SG::Decorator< T > &dec_pt, const SG::Decorator< T > &dec_eta, const SG::Decorator< T > &dec_phi, const SG::Decorator< T > &dec_m, const ROOT::Math::PtEtaPhiMVector &particle, U *object)
 Template function to fill basic particle kinematics (pt, eta, phi, m) into an object.
template<typename T, typename U>
void FillVectorParticleInfo (const SG::Decorator< std::vector< T > > &dec_pt, const SG::Decorator< std::vector< T > > &dec_eta, const SG::Decorator< std::vector< T > > &dec_phi, const SG::Decorator< std::vector< T > > &dec_m, const ROOT::Math::PtEtaPhiMVector &particle, U *object)
 Template function to fill basic vector particle kinematics into an object.
template<typename T, typename U>
void FillParticleInfo (const SG::Decorator< T > &dec_pt, const SG::Decorator< T > &dec_eta, const SG::Decorator< T > &dec_phi, const SG::Decorator< T > &dec_m, const SG::Decorator< int > &dec_pdgId, const ROOT::Math::PtEtaPhiMVector &particle, int pdgId, U *object)
 Template function to fill particle kinematics and PDG ID into an object.
template<typename T, typename U>
void FillVectorParticleInfo (const SG::Decorator< std::vector< T > > &dec_pt, const SG::Decorator< std::vector< T > > &dec_eta, const SG::Decorator< std::vector< T > > &dec_phi, const SG::Decorator< std::vector< T > > &dec_m, const SG::Decorator< std::vector< int > > &dec_pdgId, const ROOT::Math::PtEtaPhiMVector &particle, int pdgId, U *object)
 Template function to fill vector particle kinematics and PDG ID into an object.
template<typename T, typename U>
void FillDefaultParticleInfo (const SG::Decorator< T > &dec_pt, const SG::Decorator< T > &dec_eta, const SG::Decorator< T > &dec_phi, const SG::Decorator< T > &dec_m, U *object)
 Template function to fill default (placeholder) particle kinematics into an object.
template<typename T, typename U>
void FillDefaultVectorParticleInfo (const SG::Decorator< std::vector< T > > &dec_pt, const SG::Decorator< std::vector< T > > &dec_eta, const SG::Decorator< std::vector< T > > &dec_phi, const SG::Decorator< std::vector< T > > &dec_m, U *object)
 Template function to fill default (placeholder) vector particle kinematics into an object.
template<typename T, typename U>
void FillDefaultParticleInfo (const SG::Decorator< T > &dec_pt, const SG::Decorator< T > &dec_eta, const SG::Decorator< T > &dec_phi, const SG::Decorator< T > &dec_m, const SG::Decorator< int > &dec_pdgId, U *object)
 Template function to fill default (placeholder) particle kinematics and PDG ID into an object.
template<typename T, typename U>
void FillDefaultVectorParticleInfo (const SG::Decorator< std::vector< T > > &dec_pt, const SG::Decorator< std::vector< T > > &dec_eta, const SG::Decorator< std::vector< T > > &dec_phi, const SG::Decorator< std::vector< T > > &dec_m, const SG::Decorator< std::vector< int > > &dec_pdgId, U *object)
 Template function to fill default (placeholder) vector particle kinematics and PDG ID into an object.
template<typename object>
PtEtaPhiMVector GetPtEtaPhiM (const object *obj)
template<typename object>
PtEtaPhiEVector GetPtEtaPhiE (const object *obj)
template<typename object>
PxPyPzMVector GetPxPyPzM (const object *obj)
template<typename object>
PxPyPzEVector GetPxPyPzE (const object *obj)
static const FloatDecorator s_dec_iso_PLT ("LowPtPLV")
std::size_t hash_value (const SystematicSet &)
 Hash function specifically for boost::hash.
std::vector< CP::SystematicSet > make_systematics_vector (const SystematicSet &systematics)
 utility functions for working with systematics
std::ostream & operator<< (std::ostream &str, const CP::SystematicVariation &obj)
std::unique_ptr< egGain::GainTool > gainToolFactory (egEnergyCorr::ESModel model)
std::string egammaMVAToolFolder (egEnergyCorr::ESModel model)
std::unique_ptr< egammaLayerRecalibTool > egammaLayerRecalibToolFactory (egEnergyCorr::ESModel model, int enableSacc)
bool use_intermodule_correction (egEnergyCorr::ESModel model)
bool use_phi_uniform_correction (egEnergyCorr::ESModel model)
bool is_after_run1 (egEnergyCorr::ESModel model)
const xAOD::Vertex * getVertexFromTrack (const xAOD::TrackParticle *track, const xAOD::VertexContainer *vertices)
static const SystematicVariation NNJvtEfficiencyUp ("JET_NNJvtEfficiency", 1)
static const SystematicVariation NNJvtEfficiencyDown ("JET_NNJvtEfficiency", -1)
static const SystematicVariation fJvtEfficiencyUp ("JET_fJvtEfficiency", 1)
static const SystematicVariation fJvtEfficiencyDown ("JET_fJvtEfficiency", -1)
static const SystematicVariation JvtEfficiencyUp ("JET_JvtEfficiency", 1)
static const SystematicVariation JvtEfficiencyDown ("JET_JvtEfficiency", -1)
 ANA_MSG_SOURCE (ShowerDepthUtilMessaging, "CP::ShowerDepthUtil")
static const SG::Decorator< unsigned int > dec_status ("TileStatus")
static const SG::Decorator< float > dec_ptraw ("Ptraw")
template<class T>
bool operator== (const DataVector< T > &a, const DataVector< T > &b)
 Vector equality comparison.
template<class T>
bool operator== (const DataVector< T > &a, const DataVector< T > &b)
 Vector equality comparison.

Variables

static const SG::Accessor< char > accTESCompatibility ("TESCompatibility")
constexpr float MinClusterEnergy = 100.
constexpr float MeVtoGeV = 1.e-3
static const ShortAccessor s_acc_TrackJetNTrack ("PromptLeptonInput_TrackJetNTrack")
static const FloatAccessor s_acc_DRlj ("PromptLeptonInput_DRlj")
static const FloatAccessor s_acc_PtRel ("PromptLeptonInput_PtRel")
static const FloatAccessor s_acc_PtFrac ("PromptLeptonInput_PtFrac")
static const FloatAccessor s_acc_topoetcone20 ("topoetcone20")
static const FloatAccessor s_acc_ptvarcone20 ("ptvarcone20")
static const FloatAccessor s_acc_ptvarcone30 ("ptvarcone30")
constexpr int N_VARIABLES = 6
static const FloatAccessor acc_assocClustEta {IsolationCloseByCorrectionTool::caloDecors()[0]}
static const FloatAccessor acc_assocClustPhi {IsolationCloseByCorrectionTool::caloDecors()[1]}
static const FloatAccessor acc_assocClustEne {IsolationCloseByCorrectionTool::caloDecors()[2]}
static const CharAccessor acc_assocCaloIsDec {IsolationCloseByCorrectionTool::caloDecors()[3]}
static const FloatAccessor acc_assocPflowEta {IsolationCloseByCorrectionTool::pflowDecors()[0]}
static const FloatAccessor acc_assocPflowPhi {IsolationCloseByCorrectionTool::pflowDecors()[1]}
static const FloatAccessor acc_assocPflowEne {IsolationCloseByCorrectionTool::pflowDecors()[2]}
static const CharAccessor acc_assocPflowIsDec {IsolationCloseByCorrectionTool::pflowDecors()[3]}
static const FloatDecorator dec_assocCaloEta {IsolationCloseByCorrectionTool::caloDecors()[0]}
static const FloatDecorator dec_assocCaloPhi {IsolationCloseByCorrectionTool::caloDecors()[1]}
static const FloatDecorator dec_assocCaloEne {IsolationCloseByCorrectionTool::caloDecors()[2]}
static const CharDecorator dec_assocCaloIsDec {IsolationCloseByCorrectionTool::caloDecors()[3]}
static const FloatDecorator dec_assocPflowEta {IsolationCloseByCorrectionTool::pflowDecors()[0]}
static const FloatDecorator dec_assocPflowPhi {IsolationCloseByCorrectionTool::pflowDecors()[1]}
static const FloatDecorator dec_assocPflowEne {IsolationCloseByCorrectionTool::pflowDecors()[2]}
static const CharDecorator dec_assocPflowIsDec {IsolationCloseByCorrectionTool::pflowDecors()[3]}
const double GeV = 1000.

Detailed Description

Select isolated Photons, Electrons and Muons.

Simple class to weight charged PFO for jets and met.

Simple class to retrieve PFO for jets and met in the two possible configurations we provide.

For information, see the Twiki: https://twiki.cern.ch/twiki/bin/viewauth/AtlasProtected/FFJetSmearingTool.

Utility class to collect the separate histos for Calo, Central and High Eta muon SF.

Helper enumeration for systematics study.

Framework include(s):

Namespace for generic Combined Performance code.

rationale: standard comparison operator for use by std::set

Simple algorithm to check the performance of the IsolationCloseByCorrectionTool.

The algorithm reads in muons, electrons and photons and runs the closeBy isolation correction tool on them.

The algorithm selects Inner detector tracks from leptons that are poluting the isolation of other close-by leptons.

Author
Tadej Novak tadej.nosp@m.@cer.nosp@m.n.ch
Tadej Novak
Baptiste Ravina bapti.nosp@m.ste..nosp@m.ravin.nosp@m.a@ce.nosp@m.rn.ch
Teng Jian Khoo
Nils Krumnack
RD Schaffer
Baptiste Ravina
Miha Muskinja
Nello Bruscino
Zhengcheng Tao
Michael Holzbock
Nils Krumnack
Baptiste Ravina
Lucas Cremer
Yi Yu yiyu@.nosp@m.cern.nosp@m..ch, Xinzhe Liu, Thomas Strebler thoma.nosp@m.s.st.nosp@m.reble.nosp@m.r@ce.nosp@m.rn.ch
Nils Abicht
Binbin Dong
Baptiste Ravina bapti.nosp@m.ste..nosp@m.ravin.nosp@m.a@ce.nosp@m.rn.ch
Diego Baron
Thomas Strebler
Hagen Möbius, hagen.nosp@m..mob.nosp@m.ius@c.nosp@m.ern..nosp@m.ch
Binbin Dong
P-A Delsart

This jet alg is meant to replace the JetCalibrationAlg. The version here simply duplicates JetCalibrationAlg but using the new JetCalibTool instead of JetCalibrationTool. The 2 versions will co-exist while transitionning from the old calib tool to the new after which the old versions will be removed

Author
Jackson Burzynski
Tomas Dado
P-A Delsart
Max Goblirsch
Jon Burr
Antonio De Maria
Christian Grefe
Qichen Dong
Daniel Werner
Marco Rimoldi
Baptiste Ravina bapti.nosp@m.ste..nosp@m.ravin.nosp@m.a@ce.nosp@m.rn.ch
Steffen Korn steff.nosp@m.en.k.nosp@m.orn@c.nosp@m.ern..nosp@m.ch
John Morris john..nosp@m.morr.nosp@m.is@ce.nosp@m.rn.c.nosp@m.h
Revision
764207
Date
2016-07-25 20:16:03 +0200 (Mon, 25 Jul 2016)

The tracks can be either written to a VIEW_ELEMENTS container or marked as passed for the track particle thinning of a particular derivation *

The algorithm writes TTrees that can be analyzed by the python scripts in the package. The information written are – particle four momentum – pt of the assocaited ID track (if available) – clusterEta/clusterphi of the associated cluster (if available) – isolation variables before and after the correction

EDM include(s): Local include(s):

Typedef Documentation

◆ BoolAccessor

◆ BoolDecorator

◆ CaloClusterPtr

◆ caloDecorNames

◆ CharAccessor

◆ CharDecorator

◆ ClusterSet

◆ FloatAccessor

◆ FloatDecorator

◆ IntAccessor

◆ IntDecorator

◆ iplink_t

◆ IsoHelperPtr

typedef std::unique_ptr<IsoVariableHelper> CP::IsoHelperPtr

Definition at line 18 of file IsoVariableHelper.h.

◆ IsoType

◆ IsoVector

◆ PflowSet

◆ SelectionAccessor

◆ SelectionDecorator

◆ SelectionType

the type for selection decorations that are meant to hold a asg::AcceptData

This is matched to the number of bits in a AcceptData, since that holds 32 bits, so do we.

Definition at line 26 of file SelectionHelpers.h.

◆ ShortAccessor

◆ ShortDecorator

◆ SysListType

typedef std::vector<CP::SystematicSet> CP::SysListType

the type for the systematics list in the event store

For now this is just a vector of SystematicSet, but I made a typedef for this as I am not sure this will necessarily be performant in all situations. This way at least I will get compilation errors if I change it.

Definition at line 30 of file SysListType.h.

◆ SysReadDecorHandleArray

Definition at line 136 of file SysReadDecorHandle.h.

◆ SysReadSelectionHandleArray

◆ SysWriteDecorHandleArray

Definition at line 153 of file SysWriteDecorHandle.h.

◆ TrackPtr

◆ TrackSet

◆ UnorderedClusterSet

◆ UnorderedContainerSet

Enumeration Type Documentation

◆ DecoratorGroup

enum class CP::DecoratorGroup
strong

Maps to an existing Initialize*Decorators method (non-parameterized ones).

Enumerator
Top 

InitializeTopDecorators().

TopFCNC 

InitializeTopDecorators(true).

AntiTop 

InitializeAntiTopDecorators().

AntiTopFCNC 

InitializeAntiTopDecorators(true).

FourTop 

Initialize4TopDecorators().

Ttbar 

InitializeTtbarDecorators().

Bottom 

InitializeBottomDecorators().

AntiBottom 

InitializeAntiBottomDecorators().

VectorBottom 

InitializeVectorBottomDecorators().

VectorAntiBottom 

InitializeVectorAntiBottomDecorators().

Charm 

InitializeCharmDecorators().

AntiCharm 

InitializeAntiCharmDecorators().

VectorCharm 

InitializeVectorCharmDecorators().

VectorAntiCharm 

InitializeVectorAntiCharmDecorators().

Photon 

InitializePhotonDecorators().

Higgs 

InitializeHiggsDecorators().

Definition at line 56 of file PartonSchemeConfig.h.

56 {
57 Top,
58 TopFCNC,
59 AntiTop,
61 FourTop,
62 Ttbar,
63 Bottom,
67 Charm,
68 AntiCharm,
71 Photon,
72 Higgs,
73};
@ TopFCNC
FillTopPartonHistory(true).
@ AntiTopFCNC
FillAntiTopPartonHistory(true).
@ Ttbar
FillTtbarPartonHistory.
@ AntiTop
FillAntiTopPartonHistory.
@ FourTop
Initialize4TopDecorators().
@ VectorAntiBottom
InitializeVectorAntiBottomDecorators().
@ VectorAntiCharm
InitializeVectorAntiCharmDecorators().
@ Bottom
InitializeBottomDecorators().
@ Charm
InitializeCharmDecorators().
@ AntiCharm
InitializeAntiCharmDecorators().
@ VectorBottom
InitializeVectorBottomDecorators().
@ VectorCharm
InitializeVectorCharmDecorators().
@ AntiBottom
InitializeAntiBottomDecorators().
Photon_v1 Photon
Definition of the current "egamma version".
Definition Photon.h:17

◆ OutOfValidityAction

enum class CP::OutOfValidityAction
strong

the action to perform on encountering an OutOfValidityRange in OutOfValidityHelper

This is in addition to possibly setting a selection decoration (if that has been configured.

This is not a member enum of OutOfValidityHelper to void problems with member enums in dictionary generation, etc.

Enumerator
ABORT 

print an error message and return a failure status code (triggering an abort)

This is currently the default, as it forces users to think about what they want to do with OutOfValidityRange results. That is fairly safe, as most tools don't actually report OutOfValidityRange and we don't want to add a lot of meaningless selection decorations to each object.

WARNING 

print a warning message and return a success status code.

This should only be used if OutOfValidity is a rare event, or otherwise it will completely clobber the log file.

SILENT 

don't print anything and return success

This should (normally) be combined with a selection decoration that records OutOfValidity results, allowing to retrieve that information subsequently.

Definition at line 34 of file OutOfValidityHelper.h.

35 {
44 ABORT,
45
51 WARNING,
52
58 SILENT
59 };
@ SILENT
don't print anything and return success
@ ABORT
print an error message and return a failure status code (triggering an abort)

◆ PFO_JetMETConfig_charge

◆ PFO_JetMETConfig_inputScale

◆ QGSystApplied

Enumerator
QG_NONE 
QG_TRACKEFFICIENCY 
QG_TRACKFAKES 
QG_NCHARGEDTOPO 
QG_NCHARGEDEXP_UP 
QG_NCHARGEDME_UP 
QG_NCHARGEDPDF_UP 
QG_NCHARGEDEXP_DOWN 
QG_NCHARGEDME_DOWN 
QG_NCHARGEDPDF_DOWN 

Definition at line 22 of file JetQGTagger.h.

22 {
23 QG_NONE,
33 };
@ QG_TRACKFAKES
Definition JetQGTagger.h:25
@ QG_NONE
Definition JetQGTagger.h:23
@ QG_NCHARGEDTOPO
Definition JetQGTagger.h:26
@ QG_TRACKEFFICIENCY
Definition JetQGTagger.h:24
@ QG_NCHARGEDME_UP
Definition JetQGTagger.h:28
@ QG_NCHARGEDEXP_DOWN
Definition JetQGTagger.h:30
@ QG_NCHARGEDME_DOWN
Definition JetQGTagger.h:31
@ QG_NCHARGEDPDF_DOWN
Definition JetQGTagger.h:32
@ QG_NCHARGEDPDF_UP
Definition JetQGTagger.h:29
@ QG_NCHARGEDEXP_UP
Definition JetQGTagger.h:27

◆ SpecialFillType

enum class CP::SpecialFillType
strong

Maps to an existing Fill*PartonHistory method on CalcPartonHistory.

Enumerator
Top 

FillTopPartonHistory.

TopFCNC 

FillTopPartonHistory(true).

AntiTop 

FillAntiTopPartonHistory.

AntiTopFCNC 

FillAntiTopPartonHistory(true).

Ttbar 

FillTtbarPartonHistory.

TtbarFCNC 

pass

Z 

FillZPartonHistory.

Ztautau 

FillZtautauPartonHistory.

W 

FillWPartonHistory.

Higgs 

FillHiggsPartonHistory.

Gamma 

FillGammaPartonHistory.

Definition at line 33 of file PartonSchemeConfig.h.

33 {
34 Top,
35 TopFCNC,
36 AntiTop,
38 Ttbar,
39 TtbarFCNC,
40 Z,
41 Ztautau,
42 W,
43 Higgs,
44 Gamma,
45};
@ Ztautau
Z -> tautau, both taus hadronic.

Function Documentation

◆ ANA_MSG_SOURCE()

CP::ANA_MSG_SOURCE ( ShowerDepthUtilMessaging ,
"CP::ShowerDepthUtil"  )

◆ dec_ptraw()

const SG::Decorator< float > CP::dec_ptraw ( "Ptraw" )
static

◆ dec_status()

const SG::Decorator< unsigned int > CP::dec_status ( "TileStatus" )
static

◆ egammaLayerRecalibToolFactory()

std::unique_ptr< egammaLayerRecalibTool > CP::egammaLayerRecalibToolFactory ( egEnergyCorr::ESModel model,
int enableSacc )

Definition at line 140 of file EgammaCalibrationAndSmearingTool.cxx.

141 {
142 std::string tune = "";
143 switch (model) {
147 tune = "2011_alt_with_layer2";
148 break;
161 tune = "2012_alt_with_layer2";
162 break;
165 tune = "es2017_20.7_improved";
166 break;
168 tune = "es2017_20.7_final";
169 break;
176 tune = "es2017_21.0_v0";
177 break;
179 tune = "es2018_21.0_v0";
180 break;
182 tune = "es2022_22.0_Precision";
183 break;
185 tune = "es2022_22.0_Precision_v1";
186 break;
188 tune = "es2024_run3_extrapolate_v0";
189 break;
190 default:
191 return nullptr;
192 }
193 return std::make_unique<egammaLayerRecalibTool>(tune, enableSacc);
194}

◆ egammaMVAToolFolder()

std::string CP::egammaMVAToolFolder ( egEnergyCorr::ESModel model)

Definition at line 86 of file EgammaCalibrationAndSmearingTool.cxx.

86 {
87 std::string folder;
88 switch (model) {
92 folder = "egammaMVACalib/v1";
93 break;
95 folder = "egammaMVACalib/v1";
96 break;
101 folder = "egammaMVACalib/offline/v3";
102 break;
105 folder = "egammaMVACalib/offline/v3_E4crack_bis";
106 break;
114 folder = "egammaMVACalib/offline/v4.0";
115 break;
124 folder = "egammaMVACalib/offline/v7";
125 break;
128 folder = "egammaMVACalib/offline/v9";
129 break;
131 folder = "egammaMVACalib/offline/v10";
132 break;
133 default:
134 folder = "";
135 }
136
137 return folder;
138}

◆ FillDefaultParticleInfo() [1/2]

template<typename T, typename U>
void CP::FillDefaultParticleInfo ( const SG::Decorator< T > & dec_pt,
const SG::Decorator< T > & dec_eta,
const SG::Decorator< T > & dec_phi,
const SG::Decorator< T > & dec_m,
const SG::Decorator< int > & dec_pdgId,
U * object )

Template function to fill default (placeholder) particle kinematics and PDG ID into an object.

Template Parameters
TType of the value being decorated.
UType of the object that will be decorated.

Definition at line 187 of file DecoratorHelpers.h.

191 {
192 FillParticleInfo(dec_pdgId, 0, object);
193 FillDefaultParticleInfo(dec_pt, dec_eta, dec_phi, dec_m, object);
194}
void FillParticleInfo(const SG::Decorator< T > &dec, const U &value, const V *object)
Template function to fill particle information into a given object.
void FillDefaultParticleInfo(const SG::Decorator< T > &dec_pt, const SG::Decorator< T > &dec_eta, const SG::Decorator< T > &dec_phi, const SG::Decorator< T > &dec_m, U *object)
Template function to fill default (placeholder) particle kinematics into an object.

◆ FillDefaultParticleInfo() [2/2]

template<typename T, typename U>
void CP::FillDefaultParticleInfo ( const SG::Decorator< T > & dec_pt,
const SG::Decorator< T > & dec_eta,
const SG::Decorator< T > & dec_phi,
const SG::Decorator< T > & dec_m,
U * object )

Template function to fill default (placeholder) particle kinematics into an object.

Template Parameters
TType of the value being decorated.
UType of the object that will be decorated.

Definition at line 150 of file DecoratorHelpers.h.

153 {
154 FillParticleInfo(dec_pt, -1, object);
155 FillParticleInfo(dec_eta, -999, object);
156 FillParticleInfo(dec_phi, -999, object);
157 FillParticleInfo(dec_m, -1, object);
158}

◆ FillDefaultVectorParticleInfo() [1/2]

template<typename T, typename U>
void CP::FillDefaultVectorParticleInfo ( const SG::Decorator< std::vector< T > > & dec_pt,
const SG::Decorator< std::vector< T > > & dec_eta,
const SG::Decorator< std::vector< T > > & dec_phi,
const SG::Decorator< std::vector< T > > & dec_m,
const SG::Decorator< std::vector< int > > & dec_pdgId,
U * object )

Template function to fill default (placeholder) vector particle kinematics and PDG ID into an object.

Template Parameters
TType of the value being decorated.
UType of the object that will be decorated.

Definition at line 204 of file DecoratorHelpers.h.

209 {
210 dec_pdgId(*object) = {};
211 FillDefaultVectorParticleInfo(dec_pt, dec_eta, dec_phi, dec_m, object);
212}
void FillDefaultVectorParticleInfo(const SG::Decorator< std::vector< T > > &dec_pt, const SG::Decorator< std::vector< T > > &dec_eta, const SG::Decorator< std::vector< T > > &dec_phi, const SG::Decorator< std::vector< T > > &dec_m, U *object)
Template function to fill default (placeholder) vector particle kinematics into an object.

◆ FillDefaultVectorParticleInfo() [2/2]

template<typename T, typename U>
void CP::FillDefaultVectorParticleInfo ( const SG::Decorator< std::vector< T > > & dec_pt,
const SG::Decorator< std::vector< T > > & dec_eta,
const SG::Decorator< std::vector< T > > & dec_phi,
const SG::Decorator< std::vector< T > > & dec_m,
U * object )

Template function to fill default (placeholder) vector particle kinematics into an object.

Template Parameters
TType of the value being decorated.
UType of the object that will be decorated.

Definition at line 168 of file DecoratorHelpers.h.

172 {
173 dec_pt(*object) = {};
174 dec_eta(*object) = {};
175 dec_phi(*object) = {};
176 dec_m(*object) = {};
177}

◆ FillParticleInfo() [1/3]

template<typename T, typename U, typename V>
void CP::FillParticleInfo ( const SG::Decorator< T > & dec,
const U & value,
const V * object )

Template function to fill particle information into a given object.

This template function assigns a value to a decorator associated with an object.

Template Parameters
TType of the value being decorated (e.g., float, int).
UType of the value to be assigned.
VType of the object that will be decorated.
Parameters
decThe decorator that will hold the value.
valueThe value to be assigned to the decorator.
objectPointer to the object that will be decorated.

Definition at line 37 of file DecoratorHelpers.h.

38 {
39 dec(*object) = value;
40}

◆ FillParticleInfo() [2/3]

template<typename T, typename U>
void CP::FillParticleInfo ( const SG::Decorator< T > & dec_pt,
const SG::Decorator< T > & dec_eta,
const SG::Decorator< T > & dec_phi,
const SG::Decorator< T > & dec_m,
const ROOT::Math::PtEtaPhiMVector & particle,
U * object )

Template function to fill basic particle kinematics (pt, eta, phi, m) into an object.

Template Parameters
TType of the value being decorated (e.g., float).
UType of the object that will be decorated.
Parameters
dec_ptDecorator for transverse momentum.
dec_etaDecorator for pseudorapidity.
dec_phiDecorator for azimuthal angle.
dec_mDecorator for mass.
particleThe particle four-vector.
objectPointer to the object that will be decorated.

Definition at line 73 of file DecoratorHelpers.h.

77 {
78 FillParticleInfo(dec_pt, particle.Pt(), object);
79 FillParticleInfo(dec_eta, particle.Eta(), object);
80 FillParticleInfo(dec_phi, particle.Phi(), object);
81 FillParticleInfo(dec_m, particle.M(), object);
82}

◆ FillParticleInfo() [3/3]

template<typename T, typename U>
void CP::FillParticleInfo ( const SG::Decorator< T > & dec_pt,
const SG::Decorator< T > & dec_eta,
const SG::Decorator< T > & dec_phi,
const SG::Decorator< T > & dec_m,
const SG::Decorator< int > & dec_pdgId,
const ROOT::Math::PtEtaPhiMVector & particle,
int pdgId,
U * object )

Template function to fill particle kinematics and PDG ID into an object.

Template Parameters
TType of the value being decorated.
UType of the object that will be decorated.

Definition at line 112 of file DecoratorHelpers.h.

118 {
119 FillParticleInfo(dec_pdgId, pdgId, object);
120 FillParticleInfo(dec_pt, dec_eta, dec_phi, dec_m, particle, object);
121}

◆ FillVectorParticleInfo() [1/3]

template<typename T, typename U, typename V>
void CP::FillVectorParticleInfo ( const SG::Decorator< std::vector< T > > & dec,
const U & value,
const V * object )

Template function to fill vector particle information into a given object.

Template Parameters
TType of the value being decorated.
UType of the value to be assigned.
VType of the object that will be decorated.
Parameters
decThe vector decorator.
valueThe value to push back.
objectPointer to the object that will be decorated.

Definition at line 54 of file DecoratorHelpers.h.

55 {
56 dec(*object).push_back(value);
57}

◆ FillVectorParticleInfo() [2/3]

template<typename T, typename U>
void CP::FillVectorParticleInfo ( const SG::Decorator< std::vector< T > > & dec_pt,
const SG::Decorator< std::vector< T > > & dec_eta,
const SG::Decorator< std::vector< T > > & dec_phi,
const SG::Decorator< std::vector< T > > & dec_m,
const ROOT::Math::PtEtaPhiMVector & particle,
U * object )

Template function to fill basic vector particle kinematics into an object.

Template Parameters
TType of the value being decorated.
UType of the object that will be decorated.

Definition at line 92 of file DecoratorHelpers.h.

97 {
98 FillVectorParticleInfo(dec_pt, particle.Pt(), object);
99 FillVectorParticleInfo(dec_eta, particle.Eta(), object);
100 FillVectorParticleInfo(dec_phi, particle.Phi(), object);
101 FillVectorParticleInfo(dec_m, particle.M(), object);
102}
void FillVectorParticleInfo(const SG::Decorator< std::vector< T > > &dec, const U &value, const V *object)
Template function to fill vector particle information into a given object.

◆ FillVectorParticleInfo() [3/3]

template<typename T, typename U>
void CP::FillVectorParticleInfo ( const SG::Decorator< std::vector< T > > & dec_pt,
const SG::Decorator< std::vector< T > > & dec_eta,
const SG::Decorator< std::vector< T > > & dec_phi,
const SG::Decorator< std::vector< T > > & dec_m,
const SG::Decorator< std::vector< int > > & dec_pdgId,
const ROOT::Math::PtEtaPhiMVector & particle,
int pdgId,
U * object )

Template function to fill vector particle kinematics and PDG ID into an object.

Template Parameters
TType of the value being decorated.
UType of the object that will be decorated.

Definition at line 131 of file DecoratorHelpers.h.

137 {
138 FillVectorParticleInfo(dec_pdgId, pdgId, object);
139 FillVectorParticleInfo(dec_pt, dec_eta, dec_phi, dec_m, particle, object);
140}

◆ fJvtEfficiencyDown()

const SystematicVariation CP::fJvtEfficiencyDown ( "JET_fJvtEfficiency" ,
- 1 )
static

◆ fJvtEfficiencyUp()

const SystematicVariation CP::fJvtEfficiencyUp ( "JET_fJvtEfficiency" ,
1  )
static

◆ gainToolFactory()

std::unique_ptr< egGain::GainTool > CP::gainToolFactory ( egEnergyCorr::ESModel model)

Definition at line 45 of file EgammaCalibrationAndSmearingTool.cxx.

45 {
46 switch (model) {
59 const std::string gain_filename1 = PathResolverFindCalibFile(
60 "ElectronPhotonFourMomentumCorrection/v8/FunctionsTO.root");
61 const std::string gain_filename2 = PathResolverFindCalibFile(
62 "ElectronPhotonFourMomentumCorrection/v8/FunctionsG_all.root");
63 return std::make_unique<egGain::GainTool>(gain_filename1, gain_filename2);
64 }
80 return nullptr;
81 default:
82 return nullptr;
83 }
84}
std::string PathResolverFindCalibFile(const std::string &logical_file_name)

◆ GetPtEtaPhiE()

template<typename object>
PtEtaPhiEVector CP::GetPtEtaPhiE ( const object * obj)

Definition at line 36 of file LorentzHelper.h.

36 {
37 return PtEtaPhiEVector(
38 obj->pt(), // float px and py cast to double to build pT
39 obj->eta(), // double
40 obj->phi(), // double
41 obj->e()); // double
42}

◆ GetPtEtaPhiEfromTruth()

PtEtaPhiEVector CP::GetPtEtaPhiEfromTruth ( const xAOD::TruthParticle * TruthParticle)

Definition at line 37 of file LorentzHelper.cxx.

38 {
39 asg::msgUserCode::ANA_MSG_WARNING(
40 "LorentzHelper WARNING: We can't guarantee the mass from this 4-vector "
41 "is correct, consider using GetPtEtaPhiMfromTruth");
42 ROOT::Math::PtEtaPhiEVector EnergySafeVector(
43 TruthParticle->pt(),
44 TruthParticle->eta(),
45 TruthParticle->phi(),
46 TruthParticle->e());
47 return EnergySafeVector;
48}
TruthParticle_v1 TruthParticle
Typedef to implementation.

◆ GetPtEtaPhiM()

template<typename object>
PtEtaPhiMVector CP::GetPtEtaPhiM ( const object * obj)

Definition at line 26 of file LorentzHelper.h.

26 {
27 return PtEtaPhiMVector(
28 obj->pt(), // float px and py cast to double to build pT
29 obj->eta(), // double
30 obj->phi(), // double
31 obj->m()); // double
32}

◆ GetPtEtaPhiMfromTruth()

PtEtaPhiMVector CP::GetPtEtaPhiMfromTruth ( const xAOD::TruthParticle * TruthParticle)

Four-vector of a truth particle, built from (pt, eta, phi, m) so that the mass is preserved exactly.

Definition at line 27 of file LorentzHelper.cxx.

28 {
29 ROOT::Math::PtEtaPhiMVector MassSafeVector(
30 TruthParticle->pt(),
31 TruthParticle->eta(),
32 TruthParticle->phi(),
33 TruthParticle->m());
34 return MassSafeVector;
35}

◆ GetPxPyPzE()

template<typename object>
PxPyPzEVector CP::GetPxPyPzE ( const object * obj)

Definition at line 55 of file LorentzHelper.h.

55 {
56 return PxPyPzEVector(obj->px(), // float
57 obj->py(), // float
58 obj->pz(), // float
59 obj->e()); // double
60}

◆ GetPxPyPzEfromTruth()

PxPyPzEVector CP::GetPxPyPzEfromTruth ( const xAOD::TruthParticle * TruthParticle)

Definition at line 50 of file LorentzHelper.cxx.

51 {
52 asg::msgUserCode::ANA_MSG_WARNING(
53 "LorentzHelper WARNING: We can't guarantee the mass from this 4-vector "
54 "is correct, consider using GetPxPyPzMfromTruth");
55 ROOT::Math::PxPyPzEVector EnergySafeVector(
56 TruthParticle->px(),
57 TruthParticle->py(),
58 TruthParticle->pz(),
59 TruthParticle->e());
60 return EnergySafeVector;
61}

◆ GetPxPyPzM()

template<typename object>
PxPyPzMVector CP::GetPxPyPzM ( const object * obj)

Definition at line 46 of file LorentzHelper.h.

46 {
47 return PxPyPzMVector(obj->px(), // float
48 obj->py(), // float
49 obj->pz(), // float
50 obj->m()); // double
51}

◆ GetPxPyPzMfromTruth()

PxPyPzMVector CP::GetPxPyPzMfromTruth ( const xAOD::TruthParticle * TruthParticle)

Definition at line 17 of file LorentzHelper.cxx.

18 {
19 ROOT::Math::PxPyPzMVector MassSafeVector(
20 TruthParticle->px(),
21 TruthParticle->py(),
22 TruthParticle->pz(),
23 TruthParticle->m());
24 return MassSafeVector;
25}

◆ getSchemeConfig()

const PartonSchemeConfig & CP::getSchemeConfig ( const std::string & schemeName)

Returns the configuration for a given scheme name.

Throws std::runtime_error if the scheme is not registered.

Definition at line 14 of file PartonSchemeConfig.cxx.

14 {
15
16 static const std::map<std::string, PartonSchemeConfig> registry = {
17
18 // ================================================================== //
19 // HOW TO ADD A NEW PARTON HISTORY SCHEME
20 // ================================================================== //
21 //
22 // Copy the template below, uncomment it, fill in the fields, and add
23 // a corresponding entry to TRUTH_BRANCHES in python/PartonHistoryConfig.py.
24 //
25 // {"MySchemeName", {
26 //
27 // // 1. truthCollections — which xAOD truth containers to merge into
28 // // the working TruthParticleContainer for this event.
29 // // Standard containers available in DAOD_PHYS:
30 // // "TruthTop" top quarks
31 // // "TruthBottom" b quarks
32 // // "TruthCharm" c quarks
33 // // "TruthBosonsWithDecayParticles" W/Z/H with decay products
34 // // "TruthElectrons" electrons
35 // // "TruthMuons" muons
36 // // "TruthTaus" taus
37 // // "TruthNeutrinos" neutrinos
38 // // "TruthPhotons" photons
39 // // Add only what your process actually needs; extra collections
40 // // slow down the container-building step.
41 // {"TruthTop", "TruthBosonsWithDecayParticles"},
42 //
43 // // 2. decoratorGroups — which sets of EventInfo decorators to
44 // // initialise (one Initialize*Decorators() call each).
45 // // Available groups (see PartonHistoryDecorators.cxx):
46 // // DecoratorGroup::Top MC_t_*
47 // // DecoratorGroup::AntiTop MC_tbar_*
48 // // DecoratorGroup::FourTop MC_t1/t2/tbar1/tbar2_*
49 // // DecoratorGroup::Ttbar MC_ttbar_*
50 // // DecoratorGroup::Bottom MC_b_* (scalar)
51 // // DecoratorGroup::AntiBottom MC_bbar_* (scalar)
52 // // DecoratorGroup::VectorBottom MC_b_* (vector)
53 // // DecoratorGroup::VectorAntiBottom MC_bbar_* (vector)
54 // // DecoratorGroup::Charm MC_c_* (scalar)
55 // // DecoratorGroup::AntiCharm MC_cbar_* (scalar)
56 // // DecoratorGroup::VectorCharm MC_c_* (vector)
57 // // DecoratorGroup::VectorAntiCharm MC_cbar_* (vector)
58 // // DecoratorGroup::Photon MC_gamma_*
59 // // DecoratorGroup::Higgs MC_H_*, MC_Hdecay{1,2}_*
60 // {DecoratorGroup::Top, DecoratorGroup::AntiTop,
61 // DecoratorGroup::Ttbar},
62 //
63 // // 3. decoratorZWs — parameterised Z/W decorator groups.
64 // // Each entry is a DecoratorZW with fields:
65 // // type : DecoratorZW::Z or DecoratorZW::W
66 // // count : number of bosons (1 or 2)
67 // // extended: (Z only) true to also initialise tau-decay
68 // // sub-products (MC_Zdecay1_decay{1,2,3}_*)
69 // // Leave the list empty ({}) if no Z/W decorators are needed.
70 // {{DecoratorZW::Z, 1, false}},
71 //
72 // // 4. specialFills — calls to dedicated Fill*PartonHistory methods,
73 // // executed in order. Each entry is a SpecialFillOp with fields:
74 // // type :
75 // SpecialFillType::{Top,AntiTop,Ttbar,Z,Ztautau,W,Higgs,Gamma}
76 // // parent: (Z/W) parent particle string, e.g. "t", "tbar",
77 // // or "" for a standalone boson
78 // // mode : (Z/W/H) "resonant" — boson present in truth
79 // record
80 // // "non_resonant" — reconstruct from decay
81 // products
82 // // "non_resonant_WW" — H→WW off-shell (Higgs
83 // only)
84 // // "single_top" — H in single-top context
85 // // count : (Z/W) number of bosons to reconstruct (default 1)
86 // // Leave the list empty ({}) if all filling is done via
87 // genericFills.
88 // {
89 // {SpecialFillType::Top},
90 // {SpecialFillType::AntiTop},
91 // {SpecialFillType::Ttbar},
92 // {SpecialFillType::Z, "", "resonant", 1},
93 // },
94 //
95 // // 5. genericFills — calls to FillGenericPartonHistory, executed
96 // after
97 // // all specialFills. Each entry is a GenericFillOp with fields:
98 // // retrievalKeys : list of m_particleMap keys to try in order
99 // // (first successful hit wins); keys are bare
100 // // suffixes — the scheme prefix is prepended
101 // // automatically, e.g. "MC_t_beforeFSR" becomes
102 // // "MySchemeName_MC_t_beforeFSR" at runtime.
103 // // Common key patterns built by TraceParticles:
104 // // MC_{particle}_beforeFSR / _afterFSR
105 // // MC_{parent}_{particle}_{fsr}
106 // // MC_{particle}Decay{1,2}_{fsr} (W/Z/H
107 // daughters)
108 // // decorationKey : bare output branch name written to EventInfo
109 // // (prefix is prepended automatically).
110 // // idx : occurrence index into the m_particleMap vector,
111 // // for processes with multiple identical
112 // particles
113 // // (e.g. idx=0 for first top, idx=1 for second).
114 // // isVector : true → use FillGenericVectorPartonHistory,
115 // // which writes a std::vector<float/int> branch
116 // // collecting all entries in the map key.
117 // {
118 // {{"MC_t_beforeFSR", "MC_tbar_beforeFSR"}, "MC_t_beforeFSR", 0},
119 // {{"MC_b_beforeFSR", "MC_bbar_beforeFSR"}, "MC_b_beforeFSR", 0},
120 // }
121 //
122 // }},
123 // ================================================================== //
124
125 // ------------------------------------------------------------------ //
126 // Ttbar
127 // ------------------------------------------------------------------ //
128 {"Ttbar",
129 {{"TruthTop"},
131 {},
132 {
136 },
137 {},
138 {}}},
139
140 // ------------------------------------------------------------------ //
141 // TtbarFCNC: t -> q X, X -> decay1 decay2
142 // ------------------------------------------------------------------ //
143 {"TtbarFCNC",
144 {{"TruthTop"},
146 {},
147 {
151 },
152 {},
153 {}}},
154
155 // ------------------------------------------------------------------ //
156 // Ttbarbbbar
157 // ------------------------------------------------------------------ //
158 {"Ttbarbbbar",
159 {{"TruthTop", "TruthBottom"},
163 {},
164 {
168 },
169 {
170 {{"MC_b_beforeFSR"}, "MC_b_beforeFSR", 0, true},
171 {{"MC_bbar_beforeFSR"}, "MC_bbar_beforeFSR", 0, true},
172 {{"MC_b_afterFSR"}, "MC_b_afterFSR", 0, true},
173 {{"MC_bbar_afterFSR"}, "MC_bbar_afterFSR", 0, true},
174 },
175 {}}},
176
177 // ------------------------------------------------------------------ //
178 // Ttbarccbar
179 // ------------------------------------------------------------------ //
180 {"Ttbarccbar",
181 {{"TruthTop", "TruthCharm"},
185 {},
186 {
190 },
191 {
192 {{"MC_c_beforeFSR"}, "MC_c_beforeFSR", 0, true},
193 {{"MC_cbar_beforeFSR"}, "MC_cbar_beforeFSR", 0, true},
194 {{"MC_c_afterFSR"}, "MC_c_afterFSR", 0, true},
195 {{"MC_cbar_afterFSR"}, "MC_cbar_afterFSR", 0, true},
196 },
197 {}}},
198
199 // ------------------------------------------------------------------ //
200 // Ttz
201 // ------------------------------------------------------------------ //
202 {"Ttz",
203 {{"TruthTop", "TruthBosonsWithDecayParticles", "TruthElectrons",
204 "TruthMuons", "TruthTaus"},
206 {{DecoratorZW::Z, 1, false}},
207 {
211 {SpecialFillType::Z, "", "resonant", 1},
212 },
213 {},
214 {}}},
215
216 // ------------------------------------------------------------------ //
217 // Ttw
218 // ------------------------------------------------------------------ //
219 {"Ttw",
220 {{"TruthTop", "TruthBosonsWithDecayParticles"},
222 {{DecoratorZW::W, 1}},
223 {
227 // Associated W (either charge: both map to the MC_W_* keys)
228 {SpecialFillType::W, "", "resonant", 1},
229 },
230 {},
231 {}}},
232
233 // ------------------------------------------------------------------ //
234 // Tth
235 // ------------------------------------------------------------------ //
236 {"Tth",
237 {{"TruthTop", "TruthBosonsWithDecayParticles", "TruthBottom"},
240 {},
241 {
245 {SpecialFillType::Higgs, "", "resonant"},
246 },
247 {},
248 {}}},
249
250 // ------------------------------------------------------------------ //
251 // Ttgamma
252 // ------------------------------------------------------------------ //
253 {"Ttgamma",
254 {{"TruthTop", "TruthBosonsWithDecayParticles", "TruthPhotons"},
257 {},
258 {
263 },
264 {},
265 {}}},
266
267 // ------------------------------------------------------------------ //
268 // Tq
269 // ------------------------------------------------------------------ //
270 {"Tq",
271 {{"TruthTop", "TruthBosonsWithDecayParticles", "TruthBottom"},
273 {},
274 {},
275 {
276 // Top (flavour-agnostic)
277 {{"MC_t_beforeFSR", "MC_tbar_beforeFSR"}, "MC_t_beforeFSR", 0},
278 {{"MC_t_b_beforeFSR", "MC_tbar_bbar_beforeFSR"},
279 "MC_b_beforeFSR_from_t",
280 0},
281 {{"MC_t_afterFSR", "MC_tbar_afterFSR"}, "MC_t_afterFSR", 0},
282 {{"MC_t_b_afterFSR", "MC_tbar_bbar_afterFSR"},
283 "MC_b_afterFSR_from_t",
284 0},
285 // W from top
286 {{"MC_t_W_beforeFSR", "MC_tbar_W_beforeFSR"},
287 "MC_W_beforeFSR_from_t",
288 0},
289 {{"MC_t_W_afterFSR", "MC_tbar_W_afterFSR"},
290 "MC_W_afterFSR_from_t",
291 0},
292 {{"MC_t_WDecay1_beforeFSR", "MC_tbar_WDecay1_beforeFSR"},
293 "MC_Wdecay1_beforeFSR_from_t",
294 0},
295 {{"MC_t_WDecay1_afterFSR", "MC_tbar_WDecay1_afterFSR"},
296 "MC_Wdecay1_afterFSR_from_t",
297 0},
298 {{"MC_t_WDecay2_beforeFSR", "MC_tbar_WDecay2_beforeFSR"},
299 "MC_Wdecay2_beforeFSR_from_t",
300 0},
301 {{"MC_t_WDecay2_afterFSR", "MC_tbar_WDecay2_afterFSR"},
302 "MC_Wdecay2_afterFSR_from_t",
303 0},
304 // Spectator b
305 {{"MC_b_beforeFSR", "MC_bbar_beforeFSR"}, "MC_b_beforeFSR", 0},
306 {{"MC_b_afterFSR", "MC_bbar_afterFSR"}, "MC_b_afterFSR", 0},
307 },
308 {}}},
309
310 // ------------------------------------------------------------------ //
311 // Tzq
312 // ------------------------------------------------------------------ //
313 {"Tzq",
314 {{"TruthTop", "TruthBosonsWithDecayParticles", "TruthBottom"},
316 {{DecoratorZW::Z, 1, false}},
317 {
318 {SpecialFillType::Z, "", "resonant", 1},
319 },
320 {
321 // Top (flavour-agnostic: try t then tbar)
322 {{"MC_t_beforeFSR", "MC_tbar_beforeFSR"}, "MC_t_beforeFSR", 0},
323 {{"MC_t_b_beforeFSR", "MC_tbar_bbar_beforeFSR"},
324 "MC_b_beforeFSR_from_t",
325 0},
326 {{"MC_t_afterFSR", "MC_tbar_afterFSR"}, "MC_t_afterFSR", 0},
327 {{"MC_t_b_afterFSR", "MC_tbar_bbar_afterFSR"},
328 "MC_b_afterFSR_from_t",
329 0},
330 // W from top
331 {{"MC_t_W_beforeFSR", "MC_tbar_W_beforeFSR"},
332 "MC_W_beforeFSR_from_t",
333 0},
334 {{"MC_t_W_afterFSR", "MC_tbar_W_afterFSR"},
335 "MC_W_afterFSR_from_t",
336 0},
337 {{"MC_t_WDecay1_beforeFSR", "MC_tbar_WDecay1_beforeFSR"},
338 "MC_Wdecay1_beforeFSR_from_t",
339 0},
340 {{"MC_t_WDecay1_afterFSR", "MC_tbar_WDecay1_afterFSR"},
341 "MC_Wdecay1_afterFSR_from_t",
342 0},
343 {{"MC_t_WDecay2_beforeFSR", "MC_tbar_WDecay2_beforeFSR"},
344 "MC_Wdecay2_beforeFSR_from_t",
345 0},
346 {{"MC_t_WDecay2_afterFSR", "MC_tbar_WDecay2_afterFSR"},
347 "MC_Wdecay2_afterFSR_from_t",
348 0},
349 // Spectator b (flavour-agnostic)
350 {{"MC_b_beforeFSR", "MC_bbar_beforeFSR"}, "MC_b_beforeFSR", 0},
351 {{"MC_b_afterFSR", "MC_bbar_afterFSR"}, "MC_b_afterFSR", 0},
352 },
353 {}}},
354
355 // ------------------------------------------------------------------ //
356 // Thq
357 // ------------------------------------------------------------------ //
358 {"Thq",
359 {{"TruthTop", "TruthBosonsWithDecayParticles", "TruthBottom"},
361 {{DecoratorZW::W, 1}},
362 {
363 {SpecialFillType::Higgs, "", "single_top"},
364 },
365 {
366 // Top — 4-key alternatives (b-initiated chains)
367 {{"MC_t_beforeFSR", "MC_tbar_beforeFSR", "MC_b_t_beforeFSR",
368 "MC_bbar_tbar_beforeFSR"},
369 "MC_t_beforeFSR",
370 0},
371 {{"MC_t_b_beforeFSR", "MC_tbar_bbar_beforeFSR",
372 "MC_b_t_b_beforeFSR", "MC_bbar_tbar_bbar_beforeFSR"},
373 "MC_b_beforeFSR_from_t",
374 0},
375 {{"MC_t_W_beforeFSR", "MC_tbar_W_beforeFSR", "MC_b_t_W_beforeFSR",
376 "MC_bbar_tbar_W_beforeFSR"},
377 "MC_W_beforeFSR_from_t",
378 0},
379 {{"MC_t_WDecay1_beforeFSR", "MC_tbar_WDecay1_beforeFSR",
380 "MC_b_t_WDecay1_beforeFSR", "MC_bbar_tbar_WDecay1_beforeFSR"},
381 "MC_Wdecay1_beforeFSR_from_t",
382 0},
383 {{"MC_t_WDecay2_beforeFSR", "MC_tbar_WDecay2_beforeFSR",
384 "MC_b_t_WDecay2_beforeFSR", "MC_bbar_tbar_WDecay2_beforeFSR"},
385 "MC_Wdecay2_beforeFSR_from_t",
386 0},
387 {{"MC_t_afterFSR", "MC_tbar_afterFSR", "MC_b_t_afterFSR",
388 "MC_bbar_tbar_afterFSR"},
389 "MC_t_afterFSR",
390 0},
391 {{"MC_t_b_afterFSR", "MC_tbar_bbar_afterFSR", "MC_b_t_b_afterFSR",
392 "MC_bbar_tbar_bbar_afterFSR"},
393 "MC_b_afterFSR_from_t",
394 0},
395 {{"MC_t_W_afterFSR", "MC_tbar_W_afterFSR", "MC_b_t_W_afterFSR",
396 "MC_bbar_tbar_W_afterFSR"},
397 "MC_W_afterFSR_from_t",
398 0},
399 {{"MC_t_WDecay1_afterFSR", "MC_tbar_WDecay1_afterFSR",
400 "MC_b_t_WDecay1_afterFSR", "MC_bbar_tbar_WDecay1_afterFSR"},
401 "MC_Wdecay1_afterFSR_from_t",
402 0},
403 {{"MC_t_WDecay2_afterFSR", "MC_tbar_WDecay2_afterFSR",
404 "MC_b_t_WDecay2_afterFSR", "MC_bbar_tbar_WDecay2_afterFSR"},
405 "MC_Wdecay2_afterFSR_from_t",
406 0},
407 // Spectator b
408 {{"MC_b_beforeFSR", "MC_bbar_beforeFSR"}, "MC_b_beforeFSR", 0},
409 {{"MC_b_afterFSR", "MC_bbar_afterFSR"}, "MC_b_afterFSR", 0},
410 // W from b-initiated chains or standalone
411 {{"MC_b_W_beforeFSR", "MC_bbar_W_beforeFSR", "MC_W_beforeFSR"},
412 "MC_W_beforeFSR",
413 0},
414 {{"MC_b_W_afterFSR", "MC_bbar_W_afterFSR", "MC_W_afterFSR"},
415 "MC_W_afterFSR",
416 0},
417 {{"MC_b_WDecay1_beforeFSR", "MC_bbar_WDecay1_beforeFSR",
418 "MC_WDecay1_beforeFSR"},
419 "MC_Wdecay1_beforeFSR",
420 0},
421 {{"MC_b_WDecay2_beforeFSR", "MC_bbar_WDecay2_beforeFSR",
422 "MC_WDecay2_beforeFSR"},
423 "MC_Wdecay2_beforeFSR",
424 0},
425 {{"MC_b_WDecay1_afterFSR", "MC_bbar_WDecay1_afterFSR",
426 "MC_WDecay1_afterFSR"},
427 "MC_Wdecay1_afterFSR",
428 0},
429 {{"MC_b_WDecay2_afterFSR", "MC_bbar_WDecay2_afterFSR",
430 "MC_WDecay2_afterFSR"},
431 "MC_Wdecay2_afterFSR",
432 0},
433 },
434 {
435 {{"MC_b_W_beforeFSR", "MC_bbar_W_beforeFSR", "MC_W_beforeFSR"},
436 "MC_W_IsOnShell"},
437 }}},
438
439 // ------------------------------------------------------------------ //
440 // Tqgamma
441 // ------------------------------------------------------------------ //
442 {"Tqgamma",
443 {{"TruthTop", "TruthBosonsWithDecayParticles", "TruthPhotons",
444 "TruthBottom"},
446 {},
447 {
449 },
450 {
451 // Top (flavour-agnostic)
452 {{"MC_t_beforeFSR", "MC_tbar_beforeFSR"}, "MC_t_beforeFSR", 0},
453 {{"MC_t_b_beforeFSR", "MC_tbar_bbar_beforeFSR"},
454 "MC_b_beforeFSR_from_t",
455 0},
456 {{"MC_t_afterFSR", "MC_tbar_afterFSR"}, "MC_t_afterFSR", 0},
457 {{"MC_t_b_afterFSR", "MC_tbar_bbar_afterFSR"},
458 "MC_b_afterFSR_from_t",
459 0},
460 // W from top
461 {{"MC_t_W_beforeFSR", "MC_tbar_W_beforeFSR"},
462 "MC_W_beforeFSR_from_t",
463 0},
464 {{"MC_t_W_afterFSR", "MC_tbar_W_afterFSR"},
465 "MC_W_afterFSR_from_t",
466 0},
467 {{"MC_t_WDecay1_beforeFSR", "MC_tbar_WDecay1_beforeFSR"},
468 "MC_Wdecay1_beforeFSR_from_t",
469 0},
470 {{"MC_t_WDecay1_afterFSR", "MC_tbar_WDecay1_afterFSR"},
471 "MC_Wdecay1_afterFSR_from_t",
472 0},
473 {{"MC_t_WDecay2_beforeFSR", "MC_tbar_WDecay2_beforeFSR"},
474 "MC_Wdecay2_beforeFSR_from_t",
475 0},
476 {{"MC_t_WDecay2_afterFSR", "MC_tbar_WDecay2_afterFSR"},
477 "MC_Wdecay2_afterFSR_from_t",
478 0},
479 // Spectator b
480 {{"MC_b_beforeFSR", "MC_bbar_beforeFSR"}, "MC_b_beforeFSR", 0},
481 {{"MC_b_afterFSR", "MC_bbar_afterFSR"}, "MC_b_afterFSR", 0},
482 },
483 {}}},
484
485 // ------------------------------------------------------------------ //
486 // Wtb
487 // ------------------------------------------------------------------ //
488 {"Wtb",
489 {{"TruthTop", "TruthBosonsWithDecayParticles", "TruthBottom"},
491 {{DecoratorZW::W, 1}},
492 {
493 // Spectator W (associated, not from top decay)
494 {SpecialFillType::W, "", "resonant", 1},
495 },
496 {
497 // Top — 4-key alternatives
498 {{"MC_t_beforeFSR", "MC_tbar_beforeFSR", "MC_b_t_beforeFSR",
499 "MC_bbar_tbar_beforeFSR"},
500 "MC_t_beforeFSR",
501 0},
502 {{"MC_t_b_beforeFSR", "MC_tbar_bbar_beforeFSR",
503 "MC_b_t_b_beforeFSR", "MC_bbar_tbar_bbar_beforeFSR"},
504 "MC_b_beforeFSR_from_t",
505 0},
506 {{"MC_t_W_beforeFSR", "MC_tbar_W_beforeFSR",
507 "MC_b_t_W_beforeFSR", "MC_bbar_tbar_W_beforeFSR"},
508 "MC_W_beforeFSR_from_t",
509 0},
510 {{"MC_t_WDecay1_beforeFSR", "MC_tbar_WDecay1_beforeFSR",
511 "MC_b_t_WDecay1_beforeFSR", "MC_bbar_tbar_WDecay1_beforeFSR"},
512 "MC_Wdecay1_beforeFSR_from_t",
513 0},
514 {{"MC_t_WDecay2_beforeFSR", "MC_tbar_WDecay2_beforeFSR",
515 "MC_b_t_WDecay2_beforeFSR", "MC_bbar_tbar_WDecay2_beforeFSR"},
516 "MC_Wdecay2_beforeFSR_from_t",
517 0},
518 {{"MC_t_afterFSR", "MC_tbar_afterFSR", "MC_b_t_afterFSR",
519 "MC_bbar_tbar_afterFSR"},
520 "MC_t_afterFSR",
521 0},
522 {{"MC_t_b_afterFSR", "MC_tbar_bbar_afterFSR", "MC_b_t_b_afterFSR",
523 "MC_bbar_tbar_bbar_afterFSR"},
524 "MC_b_afterFSR_from_t",
525 0},
526 {{"MC_t_W_afterFSR", "MC_tbar_W_afterFSR", "MC_b_t_W_afterFSR",
527 "MC_bbar_tbar_W_afterFSR"},
528 "MC_W_afterFSR_from_t",
529 0},
530 {{"MC_t_WDecay1_afterFSR", "MC_tbar_WDecay1_afterFSR",
531 "MC_b_t_WDecay1_afterFSR", "MC_bbar_tbar_WDecay1_afterFSR"},
532 "MC_Wdecay1_afterFSR_from_t",
533 0},
534 {{"MC_t_WDecay2_afterFSR", "MC_tbar_WDecay2_afterFSR",
535 "MC_b_t_WDecay2_afterFSR", "MC_bbar_tbar_WDecay2_afterFSR"},
536 "MC_Wdecay2_afterFSR_from_t",
537 0},
538 // Spectator b
539 {{"MC_b_beforeFSR", "MC_bbar_beforeFSR"}, "MC_b_beforeFSR", 0},
540 {{"MC_b_afterFSR", "MC_bbar_afterFSR"}, "MC_b_afterFSR", 0},
541 },
542 {}}},
543
544 // ------------------------------------------------------------------ //
545 // FourTop
546 // ------------------------------------------------------------------ //
547 {"FourTop",
548 {{"TruthTop"},
550 {},
551 {}, // no special fills
552 {
553 // Top 1 (idx=0)
554 {{"MC_t_beforeFSR"}, "MC_t1_beforeFSR", 0},
555 {{"MC_t_b_beforeFSR"}, "MC_b_beforeFSR_from_t1", 0},
556 {{"MC_t_W_beforeFSR"}, "MC_W_beforeFSR_from_t1", 0},
557 {{"MC_t_WDecay1_beforeFSR"}, "MC_Wdecay1_beforeFSR_from_t1", 0},
558 {{"MC_t_WDecay2_beforeFSR"}, "MC_Wdecay2_beforeFSR_from_t1", 0},
559 {{"MC_t_afterFSR"}, "MC_t1_afterFSR", 0},
560 {{"MC_t_b_afterFSR"}, "MC_b_afterFSR_from_t1", 0},
561 {{"MC_t_W_afterFSR"}, "MC_W_afterFSR_from_t1", 0},
562 {{"MC_t_WDecay1_afterFSR"}, "MC_Wdecay1_afterFSR_from_t1", 0},
563 {{"MC_t_WDecay2_afterFSR"}, "MC_Wdecay2_afterFSR_from_t1", 0},
564 // Top 2 (idx=1)
565 {{"MC_t_beforeFSR"}, "MC_t2_beforeFSR", 1},
566 {{"MC_t_b_beforeFSR"}, "MC_b_beforeFSR_from_t2", 1},
567 {{"MC_t_W_beforeFSR"}, "MC_W_beforeFSR_from_t2", 1},
568 {{"MC_t_WDecay1_beforeFSR"}, "MC_Wdecay1_beforeFSR_from_t2", 1},
569 {{"MC_t_WDecay2_beforeFSR"}, "MC_Wdecay2_beforeFSR_from_t2", 1},
570 {{"MC_t_afterFSR"}, "MC_t2_afterFSR", 1},
571 {{"MC_t_b_afterFSR"}, "MC_b_afterFSR_from_t2", 1},
572 {{"MC_t_W_afterFSR"}, "MC_W_afterFSR_from_t2", 1},
573 {{"MC_t_WDecay1_afterFSR"}, "MC_Wdecay1_afterFSR_from_t2", 1},
574 {{"MC_t_WDecay2_afterFSR"}, "MC_Wdecay2_afterFSR_from_t2", 1},
575 // AntiTop 1 (idx=0)
576 {{"MC_tbar_beforeFSR"}, "MC_tbar1_beforeFSR", 0},
577 {{"MC_tbar_bbar_beforeFSR"}, "MC_bbar_beforeFSR_from_tbar1", 0},
578 {{"MC_tbar_W_beforeFSR"}, "MC_W_beforeFSR_from_tbar1", 0},
579 {{"MC_tbar_WDecay1_beforeFSR"},
580 "MC_Wdecay1_beforeFSR_from_tbar1",
581 0},
582 {{"MC_tbar_WDecay2_beforeFSR"},
583 "MC_Wdecay2_beforeFSR_from_tbar1",
584 0},
585 {{"MC_tbar_afterFSR"}, "MC_tbar1_afterFSR", 0},
586 {{"MC_tbar_bbar_afterFSR"}, "MC_bbar_afterFSR_from_tbar1", 0},
587 {{"MC_tbar_W_afterFSR"}, "MC_W_afterFSR_from_tbar1", 0},
588 {{"MC_tbar_WDecay1_afterFSR"}, "MC_Wdecay1_afterFSR_from_tbar1", 0},
589 {{"MC_tbar_WDecay2_afterFSR"}, "MC_Wdecay2_afterFSR_from_tbar1", 0},
590 // AntiTop 2 (idx=1)
591 {{"MC_tbar_beforeFSR"}, "MC_tbar2_beforeFSR", 1},
592 {{"MC_tbar_bbar_beforeFSR"}, "MC_bbar_beforeFSR_from_tbar2", 1},
593 {{"MC_tbar_W_beforeFSR"}, "MC_W_beforeFSR_from_tbar2", 1},
594 {{"MC_tbar_WDecay1_beforeFSR"},
595 "MC_Wdecay1_beforeFSR_from_tbar2",
596 1},
597 {{"MC_tbar_WDecay2_beforeFSR"},
598 "MC_Wdecay2_beforeFSR_from_tbar2",
599 1},
600 {{"MC_tbar_afterFSR"}, "MC_tbar2_afterFSR", 1},
601 {{"MC_tbar_bbar_afterFSR"}, "MC_bbar_afterFSR_from_tbar2", 1},
602 {{"MC_tbar_W_afterFSR"}, "MC_W_afterFSR_from_tbar2", 1},
603 {{"MC_tbar_WDecay1_afterFSR"}, "MC_Wdecay1_afterFSR_from_tbar2", 1},
604 {{"MC_tbar_WDecay2_afterFSR"}, "MC_Wdecay2_afterFSR_from_tbar2", 1},
605 },
606 {}}},
607
608 // ------------------------------------------------------------------ //
609 // WW_nonresonant
610 // NOTE: the truthCollections list of this scheme has not been validated
611 // ------------------------------------------------------------------ //
612 {"WW_nonresonant",
613 {{"TruthBosonsWithDecayParticles", "TruthElectrons", "TruthMuons",
614 "TruthTaus", "TruthNeutrinos"},
615 {},
616 {{DecoratorZW::W, 2}},
617 {
618 {SpecialFillType::W, "", "non_resonant", 2},
619 },
620 {},
621 {}}},
622
623 // ------------------------------------------------------------------ //
624 // HWW
625 // NOTE: the truthCollections list of this scheme has not been validated
626 // ------------------------------------------------------------------ //
627 {"HWW",
628 {{"TruthBosonsWithDecayParticles"},
630 {},
631 {
632 {SpecialFillType::Higgs, "", "resonant"},
633 },
634 {},
635 {}}},
636
637 // ------------------------------------------------------------------ //
638 // HWW_nonresonant
639 // ------------------------------------------------------------------ //
640 {"HWW_nonresonant",
641 {{"TruthBosonsWithDecayParticles", "TruthElectrons", "TruthMuons",
642 "TruthTaus", "TruthNeutrinos"},
644 {},
645 {
646 {SpecialFillType::Higgs, "", "non_resonant_WW"},
647 },
648 {},
649 {}}},
650
651 // ------------------------------------------------------------------ //
652 // HZZ
653 // NOTE: the truthCollections list of this scheme has not been validated
654 // ------------------------------------------------------------------ //
655 {"HZZ",
656 {{"TruthBosonsWithDecayParticles"},
658 {},
659 {
660 {SpecialFillType::Higgs, "", "resonant"},
661 },
662 {},
663 {}}},
664
665 // ------------------------------------------------------------------ //
666 // Zb
667 // NOTE: idx=2 and idx=1 reproduce the original code exactly
668 // ------------------------------------------------------------------ //
669 {"Zb",
670 {{"TruthBosonsWithDecayParticles", "TruthBottom", "TruthMuons",
671 "TruthElectrons"},
673 {{DecoratorZW::Z, 1, false}},
674 {
675 {SpecialFillType::Z, "", "resonant", 1},
676 },
677 {
678 {{"MC_b_beforeFSR", "MC_bbar_beforeFSR"}, "MC_b_beforeFSR", 2},
679 {{"MC_b_afterFSR", "MC_bbar_afterFSR"}, "MC_b_afterFSR", 1},
680 {{"MC_bbar_beforeFSR"}, "MC_bbar_beforeFSR", 0},
681 {{"MC_bbar_afterFSR"}, "MC_bbar_afterFSR", 0},
682 },
683 {}}},
684
685 // ------------------------------------------------------------------ //
686 // Ztautau
687 // ------------------------------------------------------------------ //
688 {"Ztautau",
689 {{"TruthBosonsWithDecayParticles", "TruthTaus", "TruthNeutrinos"},
690 {},
691 {{DecoratorZW::Z, 1, true}}, // extended=true for tau decay products
692 {
693 {SpecialFillType::Ztautau, "", "non_resonant", 1},
694 },
695 {},
696 {}}},
697
698 }; // end registry
699
700 auto it = registry.find(schemeName);
701 if (it == registry.end()) {
702 throw std::runtime_error("Unknown parton scheme: " + schemeName);
703 }
704 return it->second;
705}
@ Z
FillZPartonHistory.
@ W
FillWPartonHistory.
@ Ztautau
FillZtautauPartonHistory.
@ Higgs
FillHiggsPartonHistory.
@ Top
FillTopPartonHistory.
@ Gamma
FillGammaPartonHistory.
@ TopFCNC
InitializeTopDecorators(true).
@ AntiTopFCNC
InitializeAntiTopDecorators(true).
@ Ttbar
InitializeTtbarDecorators().
@ Higgs
InitializeHiggsDecorators().
@ Top
InitializeTopDecorators().
@ AntiTop
InitializeAntiTopDecorators().
@ Photon
InitializePhotonDecorators().
enum CP::DecoratorZW::Type Z

◆ getVertexFromTrack()

const xAOD::Vertex * CP::getVertexFromTrack ( const xAOD::TrackParticle * track,
const xAOD::VertexContainer * vertices )

Definition at line 30 of file PhotonVertexSelectionTool.cxx.

32 {
33 const xAOD::Vertex* vtxWithLargestWeight = nullptr;
34 float largestWeight = 0;
35
36 for (const auto *vtx : *vertices) {
37 //Search for vertex linked to this track
38 const auto& trkLinks=vtx->trackParticleLinks();
39 const size_t nTrackLinks=trkLinks.size();
40 for (unsigned i=0;i<nTrackLinks;++i) {
41 if (trkLinks[i].isValid() && *(trkLinks[i]) == track) {//ptr comparison
42 if( vtx->trackWeights()[i] > largestWeight ){
43 vtxWithLargestWeight = vtx;
44 largestWeight = vtx->trackWeights()[i];
45 }
46 }
47 }
48 }
49
50 return vtxWithLargestWeight;
51 }
const std::vector< float > & trackWeights() const
Get all the track weights.
Vertex_v1 Vertex
Define the latest version of the vertex class.

◆ hash_value()

std::size_t CP::hash_value ( const SystematicSet & sysSet)

Hash function specifically for boost::hash.

Definition at line 319 of file SystematicSet.cxx.

320 {
321 return sysSet.hash();
322 }
std::size_t hash() const
returns: hash value for the joined string.

◆ invalidEfficiency()

float CP::invalidEfficiency ( )
constexpr

the decoration value to use if there is no valid efficiency decoration

Definition at line 35 of file SysWriteDecorHandle.h.

35{return -1;}

◆ invalidScaleFactor()

float CP::invalidScaleFactor ( )
constexpr

the decoration value to use if there is no valid scale factor decoration

Definition at line 31 of file SysWriteDecorHandle.h.

31{return -1;}

◆ invalidTriggerPrescale()

float CP::invalidTriggerPrescale ( )
constexpr

the decoration value to use if there is no valid trigger prescale information

Definition at line 23 of file TrigPrescalesAlg.h.

23{return -1;}

◆ is_after_run1()

bool CP::is_after_run1 ( egEnergyCorr::ESModel model)

Definition at line 245 of file EgammaCalibrationAndSmearingTool.cxx.

245 {
246 switch (model) {
256 return false;
282 return true;
283 case egEnergyCorr::UNDEFINED: // TODO: find better logic
284 return false;
285 }
286 assert(false);
287 return false;
288}

◆ JvtEfficiencyDown()

const SystematicVariation CP::JvtEfficiencyDown ( "JET_JvtEfficiency" ,
- 1 )
static

◆ JvtEfficiencyUp()

const SystematicVariation CP::JvtEfficiencyUp ( "JET_JvtEfficiency" ,
1  )
static

◆ make_systematics_vector()

std::vector< SystematicSet > CP::make_systematics_vector ( const SystematicSet & systematics)

utility functions for working with systematics

Author
Nils Krumnack nils..nosp@m.erik.nosp@m..krum.nosp@m.nack.nosp@m.@cern.nosp@m..ch
Attila Krasznahorkay Attil.nosp@m.a.Kr.nosp@m.aszna.nosp@m.hork.nosp@m.ay@ce.nosp@m.rn.c.nosp@m.h effects: determine the list of naive +/-1 sigma variations based on the list of recommended/supported systematics returns: the individual NP points to be evaluated guarantee: strong failures: out of memory II rationale: eventually the statistics forum is going to provide a tool that places NP points much more elegantly, but for now this should allow users to use the list in a reasonably elegant fashion

Definition at line 25 of file SystematicsUtil.cxx.

26 {
28 sys.calc (systematics);
29 return sys.result("");
30 }
static const std::vector< std::string > systematics
This class handles turning the list of systematics into the actual list of nuisance parameter points ...

◆ makeSelectionReadAccessor()

StatusCode CP::makeSelectionReadAccessor ( const std::string & expr,
std::unique_ptr< ISelectionReadAccessor > & accessor,
bool defaultToChar = false )

make the ISelectionReadAccessor for the given name

This will invoke SelectionExprParser to build a ISelectionReadAccessor that corresponds to a given expression.

Note
Passing in a simple selection name will createa plain selection accessor that only reads that single name.
Passing in an expression which only contains names and && will produce an instance of SelectionReadAccessorList, which has special semantics and allows retrievel of AND'ed accessors via a bit sequence.
Allowed operators are &&, || and !, grouping with () is possible.
Parameters
[in]exprThe expression to parse.
[out]accessorThe created accessor will be owned by this unique pointer.
[in]defaultToCharWhether to treat decorations as char by default

Definition at line 53 of file ISelectionAccessor.cxx.

56 {
57 using namespace msgSelectionHelpers;
58
59 if (expr.empty())
60 {
61 accessor = std::make_unique<SelectionReadAccessorNull> (true);
62 return StatusCode::SUCCESS;
63 }
64
65 try {
66 SelectionExprParser parser(expr, defaultToChar);
67 ANA_CHECK(parser.build(accessor));
68 } catch (const std::exception& e) {
69 ANA_MSG_FATAL("Failure to parse expression: '" << expr << "': " << e.what());
70 return StatusCode::FAILURE;
71 }
72
73 return StatusCode::SUCCESS;
74 }
#define ANA_CHECK(EXP)
check whether the given expression was successful
#define ANA_MSG_FATAL(xmsg,...)
Macro printing fatal messages.

◆ makeSelectionReadAccessorVar()

StatusCode CP::makeSelectionReadAccessorVar ( const std::string & name,
std::unique_ptr< ISelectionReadAccessor > & accessor,
bool defaultToChar = false )

Produces a simple ISelectionReadAccessor accessing the given decoration.

Note
Through annotations like ",as_char" or ",as_bits" at the end of a name, different decoding strategies can be selected. These need to match the decoration type.
Parameters
[in]nameThe name of the decoration to create an accessor for.
[out]accessorThe created accessor will be owned by this unique pointer.
[in]defaultToCharWhether to treat decorations as char by default

Definition at line 138 of file ISelectionAccessor.cxx.

141 {
142 using namespace msgSelectionHelpers;
143
144 if (name.find ("%SYS%") != std::string::npos)
145 {
146 accessor = std::make_unique<SelectionAccessorReadSys>(name);
147 return StatusCode::SUCCESS;
148 }
149
150 SplitData splitData;
151 ANA_CHECK (splitData.fill (name, defaultToChar));
152
153 if (splitData.asChar)
154 accessor = std::make_unique<SelectionReadAccessorChar> (splitData.var);
155 else
156 accessor = std::make_unique<SelectionReadAccessorBits> (splitData.var);
157
158 if (splitData.invert)
159 {
160 accessor = std::make_unique<SelectionReadAccessorInvert>
161 (std::move (accessor));
162 }
163
164 return StatusCode::SUCCESS;
165 }

◆ makeSelectionWriteAccessor()

StatusCode CP::makeSelectionWriteAccessor ( const std::string & name,
std::unique_ptr< ISelectionWriteAccessor > & accessor,
bool defaultToChar = false )

Produces a simple ISelectionWriteAccessor accessing the given decoration.

Note
Through annotations like ",as_char" or ",as_bits" at the end of a name, different decoding strategies can be selected. These need to match the decoration type.
Parameters
[in]nameThe name of the decoration to create an accessor for.
[out]accessorThe created accessor will be owned by this unique pointer.
[in]defaultToCharWhether to treat decorations as char by default

Definition at line 169 of file ISelectionAccessor.cxx.

172 {
173 using namespace msgSelectionHelpers;
174
175 if (name.find ("%SYS%") != std::string::npos)
176 {
177 accessor = std::make_unique<SelectionWriteAccessorSys>(name);
178 return StatusCode::SUCCESS;
179 }
180
181 SplitData splitData;
182 ANA_CHECK (splitData.fill (name, defaultToChar));
183
184 if (splitData.asChar)
185 accessor = std::make_unique<SelectionWriteAccessorChar> (splitData.var);
186 else
187 accessor = std::make_unique<SelectionWriteAccessorBits> (splitData.var);
188
189 if (splitData.invert)
190 {
191 accessor = std::make_unique<SelectionWriteAccessorInvert>
192 (std::move (accessor));
193 }
194
195 return StatusCode::SUCCESS;
196 }

◆ met_met_dec()

const SG::Decorator< float > CP::met_met_dec ( "met" )
static

◆ met_phi_dec()

const SG::Decorator< float > CP::met_phi_dec ( "phi" )
static

◆ mll_reco()

template<typename T>
float CP::mll_reco ( const T * lep0,
const T * lep1 )
static

Definition at line 32 of file DileptonOSSFInvariantMassWindowSelectorAlg.cxx.

32 {
33 return (lep0->p4() + lep1->p4()).M();
34 }

◆ mll_truth()

float CP::mll_truth ( const xAOD::TruthParticle * lep0,
const xAOD::TruthParticle * lep1,
bool useDressed )
static

Definition at line 37 of file DileptonOSSFInvariantMassWindowSelectorAlg.cxx.

39 {
40 if (!useDressed)
41 return (lep0->p4() + lep1->p4()).M();
42
43 static const SG::ConstAccessor<float> acc_pt ("pt_dressed");
44 static const SG::ConstAccessor<float> acc_eta("eta_dressed");
45 static const SG::ConstAccessor<float> acc_phi("phi_dressed");
46 static const SG::ConstAccessor<float> acc_e ("e_dressed");
47
48 PtEtaPhiEVector v0, v1;
49 v0.SetCoordinates(acc_pt(*lep0), acc_eta(*lep0), acc_phi(*lep0), acc_e(*lep0));
50 v1.SetCoordinates(acc_pt(*lep1), acc_eta(*lep1), acc_phi(*lep1), acc_e(*lep1));
51 return (v0 + v1).M();
52 }
Helper class to provide constant type-safe access to aux data.
virtual FourMom_t p4() const override final
The full 4-momentum of the particle.

◆ NNJvtEfficiencyDown()

const SystematicVariation CP::NNJvtEfficiencyDown ( "JET_NNJvtEfficiency" ,
- 1 )
static

◆ NNJvtEfficiencyUp()

const SystematicVariation CP::NNJvtEfficiencyUp ( "JET_NNJvtEfficiency" ,
1  )
static

◆ operator<<()

std::ostream & CP::operator<< ( std::ostream & str,
const CP::SystematicVariation & obj )

Definition at line 451 of file SystematicVariation.cxx.

452 {
453 return str << obj.name();
454 }

◆ operator==() [1/2]

template<class T>
bool operator== ( const DataVector< T > & a,
const DataVector< T > & b )

Vector equality comparison.

Parameters
aA DataVector.
bA DataVector of the same type as b.
Returns
True iff the size and elements of the vectors are equal.

This is an equivalence relation. It is linear in the size of the vectors. Vectors are considered equivalent if their sizes are equal, and if corresponding elements compare equal.

◆ operator==() [2/2]

template<class T>
bool operator== ( const DataVector< T > & a,
const DataVector< T > & b )

Vector equality comparison.

Parameters
aA DataVector.
bA DataVector of the same type as b.
Returns
True iff the size and elements of the vectors are equal.

This is an equivalence relation. It is linear in the size of the vectors. Vectors are considered equivalent if their sizes are equal, and if corresponding elements compare equal.

◆ s_dec_iso_PLT()

const FloatDecorator CP::s_dec_iso_PLT ( "LowPtPLV" )
static

◆ sanitizeTriggerChainName()

std::string CP::sanitizeTriggerChainName ( std::string chain)
inline

convert a trigger chain name into a string usable in decoration/branch names (.

-> p, - -> _)

Keep in sync with sanitizeTriggerChainName in python/TriggerAnalysisConfig.py.

Definition at line 18 of file TrigChainNameHelpers.h.

19 {
20 std::replace (chain.begin(), chain.end(), '.', 'p');
21 std::replace (chain.begin(), chain.end(), '-', '_');
22 return chain;
23 }

◆ selectionAccept()

SelectionType CP::selectionAccept ( )
inlineconstexpr

the selection decoration to apply for objects that are selected

This is to be used when making a selection decoration for a single cut and no AcceptData object is at hand, as well as to check whether a particular selection passed.

Definition at line 35 of file SelectionHelpers.h.

35 {
36 return ~SelectionType (0);}
uint32_t SelectionType
the type for selection decorations that are meant to hold a asg::AcceptData

◆ selectionFromAccept()

SelectionType CP::selectionFromAccept ( const asg::AcceptData & accept)

the selection decoration made from the given AcceptData object

Definition at line 32 of file SelectionHelpers.cxx.

33 {
34 return ~SelectionType (accept.getCutResultInvertedBitSet().to_ulong());
35 }

◆ selectionFromBool()

SelectionType CP::selectionFromBool ( bool accept)

the selection decoration made from the given boolean (true = accept)

Definition at line 22 of file SelectionHelpers.cxx.

23 {
24 if (accept)
25 return selectionAccept();
26 else
27 return selectionReject();
28 }
constexpr SelectionType selectionReject()
the selection decoration to apply for objects that are rejected
constexpr SelectionType selectionAccept()
the selection decoration to apply for objects that are selected

◆ selectionReject()

SelectionType CP::selectionReject ( )
inlineconstexpr

the selection decoration to apply for objects that are rejected

This is to be used when making a selection decoration for a single cut and no AcceptData object is at hand.

Definition at line 44 of file SelectionHelpers.h.

44 {
45 return ~SelectionType (1);}

◆ use_intermodule_correction()

bool CP::use_intermodule_correction ( egEnergyCorr::ESModel model)

Definition at line 196 of file EgammaCalibrationAndSmearingTool.cxx.

◆ use_phi_uniform_correction()

bool CP::use_phi_uniform_correction ( egEnergyCorr::ESModel model)

Definition at line 241 of file EgammaCalibrationAndSmearingTool.cxx.

241 {
242 return use_intermodule_correction(model); // they are equal
243}
bool use_intermodule_correction(egEnergyCorr::ESModel model)

Variable Documentation

◆ acc_assocCaloIsDec

const CharAccessor CP::acc_assocCaloIsDec {IsolationCloseByCorrectionTool::caloDecors()[3]}
static

Definition at line 21 of file TestMacroHelpers.cxx.

static const caloDecorNames & caloDecors()
Returns an array with the calo cluster decoration names [0]-> eta, [1]->phi, [2]->energy....

◆ acc_assocClustEne

◆ acc_assocClustEta

◆ acc_assocClustPhi

◆ acc_assocPflowEne

◆ acc_assocPflowEta

◆ acc_assocPflowIsDec

◆ acc_assocPflowPhi

◆ accTESCompatibility

const SG::Accessor< char > CP::accTESCompatibility("TESCompatibility") ( "TESCompatibility" )
static

◆ dec_assocCaloEne

◆ dec_assocCaloEta

◆ dec_assocCaloIsDec

◆ dec_assocCaloPhi

◆ dec_assocPflowEne

◆ dec_assocPflowEta

◆ dec_assocPflowIsDec

◆ dec_assocPflowPhi

◆ GeV

const double CP::GeV = 1000.

Definition at line 43 of file EgammaCalibrationAndSmearingTool.cxx.

◆ MeVtoGeV

float CP::MeVtoGeV = 1.e-3
constexpr

Definition at line 40 of file IsolationCloseByCorrectionTool.cxx.

◆ MinClusterEnergy

float CP::MinClusterEnergy = 100.
constexpr

Definition at line 39 of file IsolationCloseByCorrectionTool.cxx.

◆ N_VARIABLES

int CP::N_VARIABLES = 6
constexpr

Definition at line 28 of file IsolationLowPtPLVTool.cxx.

◆ s_acc_DRlj

const FloatAccessor CP::s_acc_DRlj("PromptLeptonInput_DRlj") ( "PromptLeptonInput_DRlj" )
static

◆ s_acc_PtFrac

const FloatAccessor CP::s_acc_PtFrac("PromptLeptonInput_PtFrac") ( "PromptLeptonInput_PtFrac" )
static

◆ s_acc_PtRel

const FloatAccessor CP::s_acc_PtRel("PromptLeptonInput_PtRel") ( "PromptLeptonInput_PtRel" )
static

◆ s_acc_ptvarcone20

const FloatAccessor CP::s_acc_ptvarcone20("ptvarcone20") ( "ptvarcone20" )
static

◆ s_acc_ptvarcone30

const FloatAccessor CP::s_acc_ptvarcone30("ptvarcone30") ( "ptvarcone30" )
static

◆ s_acc_topoetcone20

const FloatAccessor CP::s_acc_topoetcone20("topoetcone20") ( "topoetcone20" )
static

◆ s_acc_TrackJetNTrack

const ShortAccessor CP::s_acc_TrackJetNTrack("PromptLeptonInput_TrackJetNTrack") ( "PromptLeptonInput_TrackJetNTrack" )
static