15#ifndef XAOD_STANDALONE
16 declareInterface<IJetConstituentModifier>(
this);
31 <<
", but received " << cont->
front()->type());
32 return StatusCode::FAILURE;
37 return StatusCode::SUCCESS;
56 return StatusCode::FAILURE;
58 return StatusCode::SUCCESS;
70 if(weightAcc) (*weightAcc)(*clus) = clus->
calE() > 0. ? e / clus->
calE() : 0.;
79 if(weightAcc) (*weightAcc)(*pfo) = pfo->pt() > 0. ? pt / pfo->pt() : 0.;
82 pfo->setP4(pt, pfo->eta(), pfo->phi());
91 if(weightAcc) (*weightAcc)(*pfo) = pfo->pt() > 0. ? pt / pfo->pt() : 0.;
92 pfo->setP4(pt, pfo->eta(), pfo->phi(), 0.);
99 if( tcc->
taste() != 0) {
100 if(weightAcc) (*weightAcc)(*tcc) = tcc->pt() > 0. ? pt / tcc->pt() : 0.;
101 tcc->setParameters(pt, tcc->eta(), tcc->phi(), tcc->m(),
xAOD::TrackCaloCluster::Taste(tcc->taste()), tcc->trackParticleLink(), tcc->caloClusterLinks());
108 return StatusCode::FAILURE;
110 return StatusCode::SUCCESS;
120 if(weightAcc) (*weightAcc)(*clus) = clus->
calE() > 0. ? p4.e() / clus->
calE() : 0.;
132 if(weightAcc) (*weightAcc)(*pfo) = pfo->pt() > 0. ? p4.pt() / pfo->pt() : 0.;
133 pfo->setP4(p4.pt(),p4.eta(),p4.phi(),p4.mass());
142 if(weightAcc) (*weightAcc)(*pfo) = pfo->pt() > 0. ? p4.pt() / pfo->pt() : 0.;
143 pfo->setP4(p4.pt(),p4.eta(),p4.phi(),p4.mass());
150 if( tcc->
taste() != 0) {
151 if(weightAcc) (*weightAcc)(*tcc) = tcc->pt() > 0. ? p4.pt() / tcc->pt() : 0.;
152 tcc->setParameters(p4.pt(), p4.eta(), p4.phi(), p4.mass(),
xAOD::TrackCaloCluster::Taste(tcc->taste()), tcc->trackParticleLink(), tcc->caloClusterLinks());
160 return StatusCode::FAILURE;
162 return StatusCode::SUCCESS;
Scalar eta() const
pseudorapidity method
Scalar phi() const
phi method
#define ATH_CHECK
Evaluate an expression and check for errors.
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
const T * front() const
Access the first element in the collection as an rvalue.
bool empty() const noexcept
Returns true if the collection is empty.
JetConstituentModifierBase(const std::string &name)
StatusCode setEtaPhi(xAOD::IParticle *obj, float eta, float phi) const
StatusCode setP4(xAOD::IParticle *obj, const xAOD::JetFourMom_t &p4, const SG::AuxElement::Accessor< float > *weightAcc=nullptr) const
StatusCode setEnergyPt(xAOD::IParticle *obj, float e, float pt, const SG::AuxElement::Accessor< float > *weightAcc=nullptr) const
virtual StatusCode process_impl(xAOD::IParticleContainer *) const
StatusCode process(xAOD::IParticleContainer *cont) const override final
SG::Accessor< T, ALLOC > Accessor
void setCalPhi(flt_t)
Set for signal state CALIBRATED.
void setCalEta(flt_t)
Set for signal state CALIBRATED.
flt_t calE() const
Geet Energy in signal state CALIBRATED.
void setCalE(flt_t)
Set Energy for signal state CALIBRATED.
Class providing the definition of the 4-vector interface.
bool isCharged() const
is a charged PFO
virtual int taste() const
The taste of the particle.
Taste
Type of TrackCaloCluster - Charged - Neutral - Combined.
@ ParticleFlow
The object is a particle-flow object.
@ FlowElement
The object is a track-calo-cluster.
@ CaloCluster
The object is a calorimeter cluster.
@ TrackCaloCluster
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".
TrackCaloCluster_v1 TrackCaloCluster
Reference the current persistent version:
DataVector< IParticle > IParticleContainer
Simple convenience declaration of IParticleContainer.
ROOT::Math::LorentzVector< ROOT::Math::PtEtaPhiM4D< double > > JetFourMom_t
Base 4 Momentum type for Jet.