52 return StatusCode::SUCCESS;
58 return StatusCode::SUCCESS;
77 return StatusCode::FAILURE;
85 dec_softConst(*metCoreTrk) = std::vector<ElementLink<IParticleContainer> >();
87 dec_softConst(*metCoreCl) = std::vector<ElementLink<IParticleContainer> >();
110 if (pfo->
e()>FLT_MIN) {
122 dec_softConst(*metCoreTrk) = std::vector<ElementLink<IParticleContainer> >();
124 dec_softConst(*metCoreCl) = std::vector<ElementLink<IParticleContainer> >();
127 for(
const auto *
const sig : *uniquePFOs) {
128 const PFO *pfo =
static_cast<const PFO*
>(sig);
136 *metCoreTrk += pfo->
track(0);
147 if (pfo->
e()>FLT_MIN) {
163 dec_softConst(*metCoreTrk) = std::vector<ElementLink<IParticleContainer> >();
165 dec_softConst(*metCoreCl) = std::vector<ElementLink<IParticleContainer> >();
171 for(
const auto *
const cl : *uniqueClusters) {
172 if (cl->e()>FLT_MIN) {
175 size_t cl_idx(cl->index());
177 *metCoreCl += (*lctc)[cl_idx];
180 *metCoreEMCl += (*emtc)[cl_idx];
182 ATH_MSG_WARNING(
"Invalid LC/EM modified cluster collections -- cannot add cluster to soft term!");
188 *metCoreCl += (&stateClLC);
189 }
else *metCoreCl += cl;
194 *metCoreEMCl += (&stateClEM);
195 }
else *metCoreEMCl += cl;
201 for(
const auto *
const trk : *uniqueTracks) {
211 delete uniqueClusters;
214 return StatusCode::SUCCESS;
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_VERBOSE(x)
#define ATH_MSG_WARNING(x)
Base class to evaluate cluster kinematics with a different vertex / signal state.
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
value_type push_back(value_type pElem)
Add an element to the end of the collection.
size_type size() const noexcept
Returns the number of elements in the collection.
SG::ConstAccessor< T, ALLOC > ConstAccessor
SG::Decorator< T, ALLOC > Decorator
virtual bool isValid() override final
Can the handle be successfully dereferenced?
const_pointer_type cptr()
Dereference the pointer.
METSoftAssociator()
Default constructor:
StatusCode initialize()
Dummy implementation of the initialisation function.
SG::ReadHandleKey< xAOD::CaloClusterContainer > m_emmodclus_key
bool m_decorateSoftTermConst
StatusCode executeTool(xAOD::MissingETContainer *metCont, xAOD::MissingETAssociationMap *metMap) const final
SG::ReadHandleKey< xAOD::CaloClusterContainer > m_lcmodclus_key
Evaluate cluster kinematics with a different vertex / signal state.
const xAOD::IParticle * chargedObject(std::size_t i) const
virtual double e() const override
The total energy of the particle.
Class providing the definition of the 4-vector interface.
const IParticleContainer * getUniqueSignals(const IParticleContainer *signals, MissingETBase::UsageHandler::Policy p=MissingETBase::UsageHandler::TrackCluster) const
Extract a container of constituents that are not in jets.
bool isCharged() const
is a charged PFO
const TrackParticle * track(unsigned int index) const
Retrieve a const pointer to a Rec::TrackParticle.
virtual double e() const
The total energy of the particle.
@ AllCalo
Inclusive except tracks.
@ ParticleFlow
Particle Flow Object based.
static const SG::AuxElement::Decorator< std::vector< ElementLink< IParticleContainer > > > dec_softConst("softConstituents")
static const SG::ConstAccessor< char > PVMatchedAcc("matchedToPV")
@ CaloCluster
The object is a calorimeter cluster.
MissingET_v1 MissingET
Version control by type defintion.
CaloCluster_v1 CaloCluster
Define the latest version of the calorimeter cluster class.
FlowElement_v1 FlowElement
Definition of the current "pfo version".
TrackParticle_v1 TrackParticle
Reference the current persistent version:
MissingETContainer_v1 MissingETContainer
MissingETAssociationMap_v1 MissingETAssociationMap
Version control by type defintion.
DataVector< IParticle > IParticleContainer
Simple convenience declaration of IParticleContainer.
static Types::bitmask_t clusterEM(Region reg=Region::FullAcceptance)
Bit mask for MET term from EMTopo signal objects.
static Types::bitmask_t track(Region reg=Region::FullAcceptance)
Bit mask for MET term from Track signal objects.
static Types::bitmask_t softEvent(Region reg=Region::FullAcceptance)
Standard MET term from reconstructed soft event.
static Types::bitmask_t clusterLC(Region reg=Region::FullAcceptance)
Bit mask for MET term from LCTopo (locally calibrated calorimeter cell clusters) signal objects.