ATLAS Offline Software
Loading...
Searching...
No Matches
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
39public:
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
50private:
51
54
56 virtual void print() const;
57
58 std::vector<fastjet::PseudoJet>
60
61 std::vector<fastjet::PseudoJet>
62 createPseudoJets(const xAOD::IParticleContainer&, const xAOD::VertexContainer* vertices) const;
63
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
Property holding a SG store/key/clid from which a ReadHandle is made.
Property holding a SG store/key/clid from which a WriteHandle is made.
DataVector< IParticle > IParticleContainer
void print(char *figname, TCanvas *c1)
the base class for EventLoop reentrant algorithms
AnaReentrantAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
constructor with parameters
Gaudi::Property< bool > m_useNeutral
Flag to define if neutral PFOs / FEs should be considered.
bool m_pflow
True if inputs are EM-scale topo clusters.
Gaudi::Property< bool > m_useChargedPV
Flag to define if charged PFOs / FEs should be matched to PV.
std::vector< fastjet::PseudoJet > createPseudoJets(const xAOD::IParticleContainer &) const
bool m_ufo
True if inputs are PFlow.
Gaudi::Property< std::string > m_label
Label for the collection.
Gaudi::Property< bool > m_useChargedPUsideband
Flag for PFlow sideband definition.
Gaudi::Property< bool > m_useCharged
Flag to define if charged PFOs / FEs should be considered.
SG::WriteHandleKey< PseudoJetContainer > m_outcoll
Output collection name.
bool m_emtopo
Determines whether the PJs should be made ghosts.
bool m_isGhost
Internal steering flags Set in initialize()
SG::ReadHandleKey< xAOD::VertexContainer > m_vertexContainer_key
Gaudi::Property< bool > m_skipNegativeEnergy
Flag indicating to skip objects with E<0.
virtual std::unique_ptr< PseudoJetContainer > createPJContainer(const xAOD::IParticleContainer &cont, const EventContext &ctx) const
Method to construct the PseudoJetContainer and record in StoreGate.
Gaudi::Property< bool > m_byVertex
Flag for by-vertex jet reconstruction.
virtual StatusCode execute(const EventContext &ctx) const override final
virtual StatusCode initialize() override final
Athena algorithm's Hooks.
Gaudi::Property< bool > m_negEnergyAsGhosts
Flag indicating to treat objects with E<0 as ghosts (useful for HI)
PseudoJetAlgorithm(const std::string &n, ISvcLocator *l)
SG::ReadHandleKey< xAOD::IParticleContainer > m_incoll
Input collection name.
Property holding a SG store/key/clid from which a ReadHandle is made.
Property holding a SG store/key/clid from which a WriteHandle is made.
STL class.
This module defines the arguments passed from the BATCH driver to the BATCH worker.
Forward declaration.
STL namespace.
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
#define private