47 return StatusCode::SUCCESS;
53 return StatusCode::SUCCESS;
72 return StatusCode::FAILURE;
80 dec_softConst(*metCoreTrk) = std::vector<ElementLink<IParticleContainer> >();
82 dec_softConst(*metCoreCl) = std::vector<ElementLink<IParticleContainer> >();
105 if (pfo->
e()>FLT_MIN) {
117 dec_softConst(*metCoreTrk) = std::vector<ElementLink<IParticleContainer> >();
119 dec_softConst(*metCoreCl) = std::vector<ElementLink<IParticleContainer> >();
122 for(
const auto *
const sig : *uniquePFOs) {
123 const PFO *pfo =
static_cast<const PFO*
>(sig);
131 *metCoreTrk += pfo->
track(0);
142 if (pfo->
e()>FLT_MIN) {
158 dec_softConst(*metCoreTrk) = std::vector<ElementLink<IParticleContainer> >();
160 dec_softConst(*metCoreCl) = std::vector<ElementLink<IParticleContainer> >();
166 for(
const auto *
const cl : *uniqueClusters) {
167 if (cl->e()>FLT_MIN) {
170 size_t cl_idx(cl->index());
172 *metCoreCl += (*lctc)[cl_idx];
175 *metCoreEMCl += (*emtc)[cl_idx];
177 ATH_MSG_WARNING(
"Invalid LC/EM modified cluster collections -- cannot add cluster to soft term!");
183 *metCoreCl += (&stateClLC);
184 }
else *metCoreCl += cl;
189 *metCoreEMCl += (&stateClEM);
190 }
else *metCoreEMCl += cl;
196 for(
const auto *
const trk : *uniqueTracks) {
206 delete uniqueClusters;
209 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.
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.
Helper class to provide constant type-safe access to aux data.
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
SG::ReadHandleKey< xAOD::CaloClusterContainer > m_lcmodclus_key
Gaudi::Property< bool > m_decorateSoftTermConst
StatusCode executeTool(xAOD::MissingETContainer *metCont, xAOD::MissingETAssociationMap *metMap, const EventContext &ctx) const final
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.
SG::Decorator< T, ALLOC > Decorator
Helper class to provide type-safe access to aux data, specialized for JaggedVecElt.
static const SG::ConstAccessor< char > PVMatchedAcc("matchedToPV")
static const SG::Decorator< std::vector< ElementLink< IParticleContainer > > > dec_softConst("softConstituents")
@ 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.