|
ATLAS Offline Software
|
Go to the documentation of this file.
16 #ifndef PSEUDOJETGETTER_H
17 #define PSEUDOJETGETTER_H
19 #include "fastjet/PseudoJet.hh"
22 #ifndef GENERATIONBASE
50 std::vector<fastjet::PseudoJet>
55 std::vector<fastjet::PseudoJet> vpj;
61 if(rejecter(
ip)){
continue;}
64 fastjet::PseudoJet psj(
ip->p4());
67 psj.set_user_index(
index);
76 #ifndef GENERATIONBASE
87 std::vector<fastjet::PseudoJet>
94 std::vector<fastjet::PseudoJet> vpj;
101 if(ipRejecter(
ip) or emRejecter(
ip)){
continue;}
108 psj.set_user_index(
index);
125 PFlowRejecter(
bool skip,
bool useCharged,
bool useNeutral,
bool chargedPV,
bool chargedPUsideband,
bool isUFO):
141 if (std::isinf(
e) || std::isnan(
e))
return true;
192 std::vector<fastjet::PseudoJet>
195 PFlowRejecter rejecter(skipNegativeEnergy, useChargedPFOs, useNeutralPFOs, useChargedPV, useChargedPUsideband, isUFO);
196 std::vector<fastjet::PseudoJet> vpj;
203 if(rejecter(
ip)){
continue;}
206 fastjet::PseudoJet psj(
ip->p4());
209 psj.set_user_index(
index);
216 std::vector<fastjet::PseudoJet>
222 PFlowRejecter rejecter(skipNegativeEnergy, useChargedPFOs, useNeutralPFOs,
false,
false, isUFO);
223 std::vector<fastjet::PseudoJet> vpj;
235 unsigned vertexIndex{0};
239 if (matchedPVs.
isAvailable(*pfo) && matchedPVs(*pfo).size())
244 vertexIndex = matchedPVs(*pfo).at(0);
255 vertexIndex = copyIndex(*pfo);
263 fastjet::PseudoJet psj(
ip->p4());
268 if (
vertex->index() == vertexIndex){
273 psj.set_user_index(
index);
std::vector< fastjet::PseudoJet > PFlowsToPJs(const xAOD::IParticleContainer &ips, bool skipNegativeEnergy, bool useChargedPFOs, bool useNeutralPFOs, bool useChargedPV, bool useChargedPUsideband, bool isUFO)
Helper class to provide type-safe access to aux data.
Implementations of concrete input-to-PseudoJet conversions Separated from PseudoJetAlgorithm for read...
Helper class to provide constant type-safe access to aux data.
Class providing the definition of the 4-vector interface.
bool operator()(const xAOD::IParticle *ip)
Description of a calorimeter cluster.
std::vector< fastjet::PseudoJet > EMToposToPJs(const xAOD::IParticleContainer &ips, bool skipNegativeEnergy)
IParticleRejecter(bool skip)
std::vector< fastjet::PseudoJet > ByVertexPFlowsToPJs(const xAOD::IParticleContainer &ips, const xAOD::VertexContainer *pvs, bool skipNegativeEnergy, bool useChargedPFOs, bool useNeutralPFOs, bool isUFO)
FlowElement_v1 FlowElement
Definition of the current "pfo version".
bool operator()(const xAOD::IParticle *ip)
bool useChargedPUsideband
signal_t signalType() const
const xAOD::CaloCluster * cluster
bool isCharged() const
is a charged PFO
virtual FourMom_t p4() const
The full 4-momentum of the particle.
Class describing a particle flow object.
std::vector< fastjet::PseudoJet > IParticlesToPJs(const xAOD::IParticleContainer &ips, bool skipNegativeEnergy)
Class describing a Vertex.
PFlowRejecter(bool skip, bool useCharged, bool useNeutral, bool chargedPV, bool chargedPUsideband, bool isUFO)
bool isAvailable(const ELT &e) const
Test to see if this variable exists in the store.
bool operator()(const xAOD::IParticle *ip)
A detector object made of other lower level object(s)