16#ifndef PSEUDOJETGETTER_H
17#define PSEUDOJETGETTER_H
19#include "fastjet/PseudoJet.hh"
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);
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);
SG::ConstAccessor< T, ALLOC > ConstAccessor
SG::Accessor< T, ALLOC > Accessor
bool isAvailable(const ELT &e) const
Test to see if this variable exists in the store.
virtual FourMom_t p4() const
The full 4-momentum of the particle.
signal_t signalType() const
Class providing the definition of the 4-vector interface.
bool isCharged() const
is a charged PFO
Implementations of concrete input-to-PseudoJet conversions Separated from PseudoJetAlgorithm for read...
std::vector< fastjet::PseudoJet > EMToposToPJs(const xAOD::IParticleContainer &ips, bool skipNegativeEnergy)
std::vector< fastjet::PseudoJet > PFlowsToPJs(const xAOD::IParticleContainer &ips, bool skipNegativeEnergy, bool useChargedPFOs, bool useNeutralPFOs, bool useChargedPV, bool useChargedPUsideband, bool isUFO)
std::vector< fastjet::PseudoJet > IParticlesToPJs(const xAOD::IParticleContainer &ips, bool skipNegativeEnergy)
std::vector< fastjet::PseudoJet > ByVertexPFlowsToPJs(const xAOD::IParticleContainer &ips, const xAOD::VertexContainer *pvs, bool skipNegativeEnergy, bool useChargedPFOs, bool useNeutralPFOs, bool isUFO)
@ FlowElement
The object is a track-calo-cluster.
PFO_v1 PFO
Definition of the current "pfo version".
CaloCluster_v1 CaloCluster
Define the latest version of the calorimeter cluster class.
FlowElement_v1 FlowElement
Definition of the current "pfo version".
VertexContainer_v1 VertexContainer
Definition of the current "Vertex container version".
Vertex_v1 Vertex
Define the latest version of the vertex class.
DataVector< IParticle > IParticleContainer
Simple convenience declaration of IParticleContainer.
const xAOD::CaloCluster * cluster
bool operator()(const xAOD::IParticle *ip)
IParticleRejecter(bool skip)
bool operator()(const xAOD::IParticle *ip)
PFlowRejecter(bool skip, bool useCharged, bool useNeutral, bool chargedPV, bool chargedPUsideband, bool isUFO)
bool operator()(const xAOD::IParticle *ip)
bool useChargedPUsideband