ATLAS Offline Software
PseudoJetAlgorithm.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 // PseudoJetAlgorithm.h
6 
21 
22 #ifndef PseudoJetAlgorithm_H
23 #define PseudoJetAlgorithm_H
24 
25 #include <memory>
26 #include "fastjet/PseudoJet.hh"
28 
30 #include "xAODTracking/Vertex.h"
31 
36 
38 
39 public:
40 
41  // Can't use "using ctor" because of incompatiblity with pyroot in AnalysisBase
42  PseudoJetAlgorithm(const std::string & n, ISvcLocator* l) : EL::AnaReentrantAlgorithm(n,l) {}
43 
45  virtual StatusCode initialize() override final;
46 
47  // Standard execute, forwards to createAndRecord
48  virtual StatusCode execute(const EventContext& ctx) const override final;
49 
50 private:
51 
53  virtual std::unique_ptr<PseudoJetContainer> createPJContainer(const xAOD::IParticleContainer& cont, const EventContext& ctx) const;
54 
56  virtual void print() const;
57 
58  std::vector<fastjet::PseudoJet>
60 
61  std::vector<fastjet::PseudoJet>
63 
64 private:
65 
67  SG::ReadHandleKey<xAOD::IParticleContainer> m_incoll{this, "InputContainer", "", "The input IParticleContainer name"};
68 
70  SG::WriteHandleKey<PseudoJetContainer> m_outcoll{this, "OutputContainer", "", "The output PseudoJetContainer name"};
71 
73  Gaudi::Property<std::string> m_label{this, "Label", "", "String label identifying the pseudojet type"};
74 
76  Gaudi::Property<bool> m_skipNegativeEnergy{this, "SkipNegativeEnergy", false, "Whether to skip negative energy inputs"};
77 
79  Gaudi::Property<bool> m_negEnergyAsGhosts{this, "TreatNegativeEnergyAsGhost", false, "Whether to convert negative energy inputs into ghosts"};
80 
82  Gaudi::Property<bool> m_useCharged{this, "UseCharged", true, "Whether to use charged PFOs/FEs"};
83 
85  Gaudi::Property<bool> m_useNeutral{this, "UseNeutral", true, "Whether to use neutral PFOs/FEs"};
86 
88  Gaudi::Property<bool> m_useChargedPV{this, "UseChargedPV", true, "Whether to use charged PFOs/FEs matched to the PV"};
89 
91  Gaudi::Property<bool> m_useChargedPUsideband{this, "UseChargedPUsideband", false, "Whether to use charged PU sideband only"};
92 
94  Gaudi::Property<bool> m_byVertex{this, "DoByVertex", false, "True if jets should be reconstructed by vertex"};
95 
96  SG::ReadHandleKey<xAOD::VertexContainer> m_vertexContainer_key{this, "VertexContainer", "PrimaryVertices", "Vertex container (for by-vertex reconstruction)"};
97 
100  bool m_isGhost{false};
101  bool m_emtopo{false};
102  bool m_pflow{false};
103  bool m_ufo{false};
104 };
105 
106 #endif
PseudoJetAlgorithm::m_negEnergyAsGhosts
Gaudi::Property< bool > m_negEnergyAsGhosts
Flag indicating to treat objects with E<0 as ghosts (useful for HI)
Definition: PseudoJetAlgorithm.h:79
PseudoJetAlgorithm
PseudoJetAlgorithm retrieves and builds the pseudojet inputs used in jet finding.
Definition: PseudoJetAlgorithm.h:37
PseudoJetAlgorithm::m_ufo
bool m_ufo
True if inputs are PFlow.
Definition: PseudoJetAlgorithm.h:103
PropertyWrapper.h
PseudoJetAlgorithm::m_skipNegativeEnergy
Gaudi::Property< bool > m_skipNegativeEnergy
Flag indicating to skip objects with E<0.
Definition: PseudoJetAlgorithm.h:76
SG
Forward declaration.
Definition: CaloCellPacker_400_500.h:32
PseudoJetAlgorithm::m_isGhost
bool m_isGhost
Internal steering flags Set in initialize()
Definition: PseudoJetAlgorithm.h:100
fastjet
Definition: FastJetLinkBase.h:22
PseudoJetAlgorithm::PseudoJetAlgorithm
PseudoJetAlgorithm(const std::string &n, ISvcLocator *l)
Definition: PseudoJetAlgorithm.h:42
PseudoJetAlgorithm::m_vertexContainer_key
SG::ReadHandleKey< xAOD::VertexContainer > m_vertexContainer_key
Definition: PseudoJetAlgorithm.h:96
PseudoJetAlgorithm::m_useChargedPUsideband
Gaudi::Property< bool > m_useChargedPUsideband
Flag for PFlow sideband definition.
Definition: PseudoJetAlgorithm.h:91
PseudoJetAlgorithm::print
virtual void print() const
Dump to properties to the log.
Definition: PseudoJetAlgorithm.cxx:127
xAOD
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
Definition: ICaloAffectedTool.h:24
UploadAMITag.l
list l
Definition: UploadAMITag.larcaf.py:158
PseudoJetContainer
Definition: PseudoJetContainer.h:48
const
bool const RAWDATA *ch2 const
Definition: LArRodBlockPhysicsV0.cxx:562
SG::ReadHandleKey
Property holding a SG store/key/clid from which a ReadHandle is made.
Definition: StoreGate/StoreGate/ReadHandleKey.h:39
PseudoJetAlgorithm::createPJContainer
virtual std::unique_ptr< PseudoJetContainer > createPJContainer(const xAOD::IParticleContainer &cont, const EventContext &ctx) const
Method to construct the PseudoJetContainer and record in StoreGate.
Definition: PseudoJetAlgorithm.cxx:75
xAOD::VertexContainer
VertexContainer_v1 VertexContainer
Definition of the current "Vertex container version".
Definition: VertexContainer.h:14
PseudoJetAlgorithm::createPseudoJets
std::vector< fastjet::PseudoJet > createPseudoJets(const xAOD::IParticleContainer &) const
Definition: PseudoJetAlgorithm.cxx:110
PseudoJetAlgorithm::initialize
virtual StatusCode initialize() override final
Athena algorithm's Hooks.
Definition: PseudoJetAlgorithm.cxx:18
PseudoJetAlgorithm::execute
virtual StatusCode execute(const EventContext &ctx) const override final
Definition: PseudoJetAlgorithm.cxx:50
PseudoJetAlgorithm::m_useCharged
Gaudi::Property< bool > m_useCharged
Flag to define if charged PFOs / FEs should be considered.
Definition: PseudoJetAlgorithm.h:82
PseudoJetAlgorithm::m_useNeutral
Gaudi::Property< bool > m_useNeutral
Flag to define if neutral PFOs / FEs should be considered.
Definition: PseudoJetAlgorithm.h:85
SG::WriteHandleKey< PseudoJetContainer >
beamspotman.n
n
Definition: beamspotman.py:731
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
vector
Definition: MultiHisto.h:13
ReadHandleKey.h
Property holding a SG store/key/clid from which a ReadHandle is made.
PseudoJetAlgorithm::m_outcoll
SG::WriteHandleKey< PseudoJetContainer > m_outcoll
Output collection name.
Definition: PseudoJetAlgorithm.h:70
EL
This module defines the arguments passed from the BATCH driver to the BATCH worker.
Definition: AlgorithmWorkerData.h:24
PseudoJetAlgorithm::m_byVertex
Gaudi::Property< bool > m_byVertex
Flag for by-vertex jet reconstruction.
Definition: PseudoJetAlgorithm.h:94
PseudoJetAlgorithm::m_pflow
bool m_pflow
True if inputs are EM-scale topo clusters.
Definition: PseudoJetAlgorithm.h:102
WriteHandleKey.h
Property holding a SG store/key/clid from which a WriteHandle is made.
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
Vertex.h
PseudoJetAlgorithm::m_label
Gaudi::Property< std::string > m_label
Label for the collection.
Definition: PseudoJetAlgorithm.h:73
PseudoJetAlgorithm::m_emtopo
bool m_emtopo
Determines whether the PJs should be made ghosts.
Definition: PseudoJetAlgorithm.h:101
private
#define private
Definition: DetDescrConditionsDict_dict_fixes.cxx:13
EL::AnaReentrantAlgorithm::AnaReentrantAlgorithm
AnaReentrantAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
constructor with parameters
Definition: AnaReentrantAlgorithm.cxx:29
PseudoJetAlgorithm::m_incoll
SG::ReadHandleKey< xAOD::IParticleContainer > m_incoll
Input collection name.
Definition: PseudoJetAlgorithm.h:67
EL::AnaReentrantAlgorithm
the base class for EventLoop reentrant algorithms
Definition: AnaReentrantAlgorithm.h:51
VertexContainer.h
PseudoJetContainer.h
AnaReentrantAlgorithm.h
PseudoJetAlgorithm::m_useChargedPV
Gaudi::Property< bool > m_useChargedPV
Flag to define if charged PFOs / FEs should be matched to PV.
Definition: PseudoJetAlgorithm.h:88