Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
ReclusteredJetCalibrationAlg.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 
7 
8 //
9 // includes
10 //
11 
14 
15 //
16 // method implementations
17 //
18 
19 namespace CP
20 {
21 
23  initialize ()
24  {
27 
29  return StatusCode::SUCCESS;
30  }
31 
32 
33 
35  execute (const EventContext &ctx) const
36  {
37  (void) ctx;
38  for (const auto& sys : m_systematicsList.systematicsVector())
39  {
40  // container we read in
41  xAOD::JetContainer *reclusteredJets = nullptr;
42  ATH_CHECK(m_reclusteredJetHandle.getCopy(reclusteredJets, sys));
43 
44  const xAOD::JetContainer *smallRJets = nullptr;
46 
47  // loop over jets
48  for (xAOD::Jet *jet : *reclusteredJets)
49  {
50  const std::vector< ElementLink< xAOD::IParticleContainer > >& element_links = jet->constituentLinks();
51 
52  xAOD::JetFourMom_t calibP4;
53  calibP4.SetPxPyPzE(0,0,0,0);
54  for (const auto& element_link: element_links){
55  if (! element_link.isValid() ) {
56  ATH_MSG_WARNING("Subjet element link invalid !!!!");
57  continue;
58  }
59  const auto subjet = *element_link;
60  int index = subjet->index();
61  const xAOD::Jet* subjetCal = smallRJets->at(index);
62  calibP4 += subjetCal->jetP4();
63  }
64  // Set calibrated P4
65  jet->setAttribute<xAOD::JetFourMom_t>("JetManualCalibScaleMomentum",calibP4);
66  jet->setJetP4( calibP4 );
67  }
68  }
69 
70  return StatusCode::SUCCESS;
71  }
72 }
FlavorTagDiscriminants::hbb_key::subjet
const std::string subjet
Definition: HbbConstants.h:18
ConstDataVector.h
DataVector adapter that acts like it holds const pointers.
index
Definition: index.py:1
CP::ReclusteredJetCalibrationAlg::m_systematicsList
SysListHandle m_systematicsList
the systematics list we run
Definition: ReclusteredJetCalibrationAlg.h:31
xAOD::Jet_v1::jetP4
JetFourMom_t jetP4() const
The full 4-momentum of the particle : internal jet type.
Definition: Jet_v1.cxx:76
ANA_CHECK
#define ANA_CHECK(EXP)
check whether the given expression was successful
Definition: Control/AthToolSupport/AsgMessaging/AsgMessaging/MessageCheck.h:324
CP::ReclusteredJetCalibrationAlg::initialize
virtual StatusCode initialize() override
Definition: ReclusteredJetCalibrationAlg.cxx:23
ReclusteredJetCalibrationAlg.h
CP::SysReadHandle::retrieve
::StatusCode retrieve(const T *&object, const CP::SystematicSet &sys) const
retrieve the object for the given name
CP::SysListHandle::systematicsVector
const std::vector< CP::SystematicSet > & systematicsVector() const
the list of systematics to loop over
Definition: SysListHandle.cxx:96
CP
Select isolated Photons, Electrons and Muons.
Definition: Control/xAODRootAccess/xAODRootAccess/TEvent.h:49
mapkey::sys
@ sys
Definition: TElectronEfficiencyCorrectionTool.cxx:42
CP::ReclusteredJetCalibrationAlg::execute
virtual StatusCode execute(const EventContext &ctx) const override
Definition: ReclusteredJetCalibrationAlg.cxx:35
CP::SysReadHandle::initialize
StatusCode initialize(SysListHandle &sysListHandle)
initialize this handle
jet
Definition: JetCalibTools_PlotJESFactors.cxx:23
CP::SysListHandle::initialize
::StatusCode initialize()
intialize this property
Definition: SysListHandle.cxx:69
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
DataVector
Derived DataVector<T>.
Definition: DataVector.h:794
CP::ReclusteredJetCalibrationAlg::m_smallRJetHandle
SysReadHandle< xAOD::JetContainer > m_smallRJetHandle
Definition: ReclusteredJetCalibrationAlg.h:37
xAOD::JetFourMom_t
ROOT::Math::LorentzVector< ROOT::Math::PtEtaPhiM4D< double > > JetFourMom_t
Base 4 Momentum type for Jet.
Definition: JetTypes.h:17
xAOD::Jet_v1
Class describing a jet.
Definition: Jet_v1.h:57
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
DataVector::at
const T * at(size_type n) const
Access an element, as an rvalue.
CP::ReclusteredJetCalibrationAlg::m_reclusteredJetHandle
SysCopyHandle< xAOD::JetContainer > m_reclusteredJetHandle
the jet collection we run on
Definition: ReclusteredJetCalibrationAlg.h:35