ATLAS Offline Software
JetIsolationTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 // JetIsolationTool.h
6 //
7 // Author: P-A. Delsart
8 //
9 // Modified Feb 2015 by D. Adams.
10 // It now obtains its inputs from a pseudojet getter instead of a specified
11 // container of ATLAS objects.
12 
13 #ifndef JetIsolationTool_H
14 #define JetIsolationTool_H
15 
72 
73 #include "AsgTools/AsgTool.h"
76 #include "fastjet/PseudoJet.hh"
84 #include "xAODJet/JetContainer.h"
85 
86 namespace jet {
87 
88 namespace JetIsolation {
89  class IsolationCalculator;
90 }
91 
96  ParticlePosition(const fastjet::PseudoJet* p)
97  : m_eta(p->eta()), m_phi(p->phi()), m_part(p) { };
99  : m_eta(p->eta()), m_phi(p->phi()), m_part(nullptr) { };
100  ParticlePosition(double x=0, double y=0)
101  : m_eta(x), m_phi(y), m_part(nullptr) { }
102  double x() const {return m_eta;}
103  double y() const {return m_phi;}
104  double px() const { return m_part->px(); }
105  double py() const { return m_part->py(); }
106  double pz() const { return m_part->pz(); }
107  double e() const { return m_part->e(); }
108  double pt() const { return m_part->perp(); }
109  void setX(double x){m_eta=x;}
110  void setY(double x){m_phi=x;}
111 
112  const fastjet::PseudoJet* particle() const {return m_part;}
113 
114  struct DR2 {
115  double operator()(const ParticlePosition &p1,const ParticlePosition &p2) const {
116  return JetTiledMap::utils::DR2(p1.x(),p1.y(), p2.x(), p2.y() );
117  }
118  };
119 
120 protected:
121  double m_eta,m_phi;
122  const fastjet::PseudoJet* m_part ;
123 };
124 
125 } // end namespace jet
126 
127 //**********************************************************************
128 
130  virtual public IJetDecorator {
132 
133 public:
134 
136 
138  JetIsolationTool(const std::string &myname);
139 
141  virtual ~JetIsolationTool();
142 
143  // Athena algtool Hooks
144  virtual StatusCode initialize() override;
145  virtual StatusCode finalize() override;
146 
147  // Jet Modifier methods.
148  virtual StatusCode decorate(const xAOD::JetContainer& jets) const override;
149 
150 private:
151  Gaudi::Property<std::vector<std::string>> m_isolationCodes{this, "IsolationCalculations", {}, "Isolation calculation data vector"};
152  Gaudi::Property<std::string> m_jetContainerName{this, "JetContainer", "", "SG key for the input jet container"};
153 
154  SG::ReadHandleKey<PseudoJetContainer> m_pjsin{this, "PseudoJetsIn", "", "PseudoJetContainer to read"};
155  SG::ReadDecorHandleKey<xAOD::JetContainer> m_inputTypeKey{this, "InputTypeName", "InputType", "Key for the InputType field of a jet"};
156  SG::WriteDecorHandleKeyArray<xAOD::JetContainer> m_perpKeys{this, "PerpName", {}, "SG key for output perpendicular momentum component decoration (not to be configured manually!)"};
157  SG::WriteDecorHandleKeyArray<xAOD::JetContainer> m_sumPtKeys{this, "SumPtName", {}, "SG key for output SumPt decoration (not to be configured manually!)"};
158  SG::WriteDecorHandleKeyArray<xAOD::JetContainer> m_parKeys{this, "ParName", {}, "SG key for output parallel momentum component decoration (not to be configured manually!)"};
159  SG::WriteDecorHandleKeyArray<xAOD::JetContainer> m_pKeys{this, "PName", {}, "SG key for output momentum decoration (not to be configured manually!)"};
160 
163  // and adapted to the jet object, see implementation)
164  std::vector<jet::JetIsolation::IsolationCalculator*> m_isoCalculators;
165 
166 };
167 
168 #endif
asg::AsgTool
Base class for the dual-use tool implementation classes.
Definition: AsgTool.h:47
ReadDecorHandleKey.h
Property holding a SG store/key/clid/attr name from which a ReadDecorHandle is made.
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:64
JetIsolationTool::~JetIsolationTool
virtual ~JetIsolationTool()
Dtor.
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:79
jet::ParticlePosition::m_part
const fastjet::PseudoJet * m_part
Definition: JetIsolationTool.h:122
jet::ParticlePosition::e
double e() const
Definition: JetIsolationTool.h:107
JetIsolationTool::m_pKeys
SG::WriteDecorHandleKeyArray< xAOD::JetContainer > m_pKeys
Definition: JetIsolationTool.h:159
IJetDecorator
Interface for adding a decoration to a jet container.
Definition: IJetDecorator.h:21
jet::ParticlePosition::ParticlePosition
ParticlePosition(const xAOD::IParticle *p)
Definition: JetIsolationTool.h:98
SG::HandleKeyArray
Definition: StoreGate/StoreGate/HandleKeyArray.h:38
JetIsolationTool::m_parKeys
SG::WriteDecorHandleKeyArray< xAOD::JetContainer > m_parKeys
Definition: JetIsolationTool.h:158
SG::ReadHandleKey< PseudoJetContainer >
xAOD::IParticle
Class providing the definition of the 4-vector interface.
Definition: Event/xAOD/xAODBase/xAODBase/IParticle.h:40
IJetDecorator.h
TiledEtaPhiMap.h
jet::ParticlePosition::py
double py() const
Definition: JetIsolationTool.h:105
JetIsolationTool::m_inputTypeKey
SG::ReadDecorHandleKey< xAOD::JetContainer > m_inputTypeKey
Definition: JetIsolationTool.h:155
jet::ParticlePosition::pz
double pz() const
Definition: JetIsolationTool.h:106
jet
Definition: JetCalibTools_PlotJESFactors.cxx:23
WriteDecorHandleKey.h
Property holding a SG store/key/clid/attr name from which a WriteDecorHandle is made.
jet::ParticlePosition::x
double x() const
Definition: JetIsolationTool.h:102
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ASG_TOOL_CLASS0
#define ASG_TOOL_CLASS0(CLASSNAME)
Definition: AsgToolMacros.h:62
jet::ParticlePosition
Definition: JetIsolationTool.h:95
WriteDecorHandle.h
Handle class for adding a decoration to an object.
JetIsolationTool::initialize
virtual StatusCode initialize() override
Dummy implementation of the initialisation function.
Definition: JetIsolationTool.cxx:255
JetIsolationTool::finalize
virtual StatusCode finalize() override
Definition: JetIsolationTool.cxx:430
IConstituentUserInfo.h
jet::ParticlePosition::m_eta
double m_eta
Definition: JetIsolationTool.h:121
JetIsolationTool::m_isolationCodes
Gaudi::Property< std::vector< std::string > > m_isolationCodes
Definition: JetIsolationTool.h:151
jet::ParticlePosition::setX
void setX(double x)
Definition: JetIsolationTool.h:109
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
JetIsolationTool::m_sumPtKeys
SG::WriteDecorHandleKeyArray< xAOD::JetContainer > m_sumPtKeys
Definition: JetIsolationTool.h:157
JetIsolationTool::JetIsolationTool
JetIsolationTool(const std::string &myname)
Ctor.
Definition: JetIsolationTool.cxx:244
jet::ParticlePosition::m_phi
double m_phi
Definition: JetIsolationTool.h:121
jet::ParticlePosition::px
double px() const
Definition: JetIsolationTool.h:104
jet::ParticlePosition::pt
double pt() const
Definition: JetIsolationTool.h:108
jet::JetIsolation::IsolationCalculator
IsolationCalculator : base class for isolation calculations.
Definition: JetIsolationTool.cxx:22
jet::ParticlePosition::y
double y() const
Definition: JetIsolationTool.h:103
PseudoJetContainer.h
JetTiledMap::utils::DR2
static constexpr double DR2(double eta1, double phi1, double eta2, double phi2)
Definition: TiledEtaPhiMap.h:32
JetContainer.h
jet::ParticlePosition::ParticlePosition
ParticlePosition(double x=0, double y=0)
Definition: JetIsolationTool.h:100
WriteDecorHandleKeyArray.h
jet::ParticlePosition::particle
const fastjet::PseudoJet * particle() const
Definition: JetIsolationTool.h:112
ReadDecorHandle.h
Handle class for reading a decoration on an object.
jet::ParticlePosition::ParticlePosition
ParticlePosition(const fastjet::PseudoJet *p)
Definition: JetIsolationTool.h:96
defineDB.jets
list jets
Definition: JetTagCalibration/share/defineDB.py:24
JetIsolationTool::m_pjsin
SG::ReadHandleKey< PseudoJetContainer > m_pjsin
Definition: JetIsolationTool.h:154
JetIsolationTool::m_isoCalculators
std::vector< jet::JetIsolation::IsolationCalculator * > m_isoCalculators
the list of isolation calculation objects (they are actually used only as template objects from which...
Definition: JetIsolationTool.h:164
SG::ReadDecorHandleKey
Property holding a SG store/key/clid/attr name from which a ReadDecorHandle is made.
Definition: StoreGate/StoreGate/ReadDecorHandleKey.h:85
AsgTool.h
jet::ParticlePosition::DR2
Definition: JetIsolationTool.h:114
JetIsolationTool::m_jetContainerName
Gaudi::Property< std::string > m_jetContainerName
Definition: JetIsolationTool.h:152
jet::ParticlePosition::setY
void setY(double x)
Definition: JetIsolationTool.h:110
JetIsolationTool::m_perpKeys
SG::WriteDecorHandleKeyArray< xAOD::JetContainer > m_perpKeys
Definition: JetIsolationTool.h:156
jet::ParticlePosition::DR2::operator()
double operator()(const ParticlePosition &p1, const ParticlePosition &p2) const
Definition: JetIsolationTool.h:115
JetIsolationTool
Definition: JetIsolationTool.h:130
JetIsolationTool::decorate
virtual StatusCode decorate(const xAOD::JetContainer &jets) const override
Decorate a jet collection without otherwise modifying it.
Definition: JetIsolationTool.cxx:324