63 if(fAssoc != this->
end() && !(*fAssoc)->isMisc())
64 return std::distance<const_iterator>(this->
begin(),fAssoc);
76 while ( fAssoc != lAssoc && !(*fAssoc)->isMisc() && (*fAssoc)->refJet() != pJet ) { ++fAssoc; }
84 while ( fAssoc != lAssoc && !(*fAssoc)->isMisc() && (*fAssoc)->refJet() != pJet ) { ++fAssoc; }
105 std::vector<ElementLink<IParticleContainer> > jetconst = pJet->
constituentLinks();
120 iEL!=constLinks.end(); ++iEL) {
146 iAssoc = this->
begin() + index;
156 iAssoc = this->
begin() + index;
175 if (*(jConstMap->first)==*constLink) iConstMap = jConstMap;
179 index = iConstMap->second;
181 std::advance<const_iterator>(fAssoc,
index);
190 while ( rIter != fAssoc && !(*rIter)->isMisc() ) { ++rIter; }
198 while ( rIter != fAssoc && !(*rIter)->isMisc() ) { ++rIter; }
204 bool foundOverlaps(
false);
206 foundOverlaps |= (*iAssoc)->identifyOverlaps();
208 return foundOverlaps;
214 (*iAssoc)->clearOverlaps();
222 iSig!=signals->
end(); ++iSig) {
272 for(
const auto *
const sig : *signals) {
288 if(!(*
this)[assocIndex]->checkUsage(helper,sig,p)) {
Defines enum to access jet attribute and associated particles/objects.
value_type push_back(value_type pElem)
Add an element to the end of the collection.
const DV * asDataVector() const
Return a pointer to this object, as a const DataVector.
DataModel_detail::const_iterator< DataVector > const_iterator
const_reverse_iterator rend() const noexcept
std::reverse_iterator< iterator > reverse_iterator
DataModel_detail::iterator< DataVector > iterator
DataVector(SG::OwnershipPolicy ownPolicy=SG::OWN_ELEMENTS, SG::IndexTrackingPolicy trackIndices=SG::DEFAULT_TRACK_INDICES)
const_iterator end() const noexcept
const_reverse_iterator rbegin() const noexcept
const_iterator begin() const noexcept
std::reverse_iterator< const_iterator > const_reverse_iterator
ElementLink implementation for ROOT usage.
const SG::AuxVectorData * container() const
Return the container holding this element.
size_t index() const
Return the index of this element within its container.
Class providing the definition of the 4-vector interface.
const std::vector< ElementLink< IParticleContainer > > & constituentLinks() const
Direct access to constituents. WARNING expert use only.
bool setJetConstituents(const Jet *pJet)
Set constituent map for a jet.
void f_setJetConstMap(std::map< ElementLink< IParticleContainer >, size_t > map)
MissingETAssociationMap_v1(SG::OwnershipPolicy own=SG::OWN_ELEMENTS, SG::IndexTrackingPolicy trackIndices=SG::DEFAULT_TRACK_INDICES)
Default constructor.
std::map< ElementLink< IParticleContainer >, size_t > m_jetConstLinks
Map jet constituents to the jet index.
const_iterator find(const Jet *pJet) const
Find association from jet pointer.
const IParticleContainer * getUniqueSignals(const IParticleContainer *signals, MissingETBase::UsageHandler::Policy p=MissingETBase::UsageHandler::TrackCluster) const
Extract a container of constituents that are not in jets.
size_t findIndex(const Jet *pJet) const
virtual ~MissingETAssociationMap_v1()
Base class destructor.
iterator f_find(const Jet *pJet)
size_t findIndexByJetConst(const IParticle *pConst) const
const MissingETAssociation_v1 * getMiscAssociation() const
Get an association for miscellaneous objects not associated to jets.
void f_clearJetConstMap()
const_iterator f_findConst(const Jet *pJet) const
Find contribution by reference jet pointer.
const IParticleContainer * getOverlapRemovedSignals(const MissingETAssociationHelper &helper, const IParticleContainer *signals, MissingETBase::UsageHandler::Policy p=MissingETBase::UsageHandler::TrackCluster) const
Extract a container of constituents that do not overlap physics objects.
const_iterator findByJetConst(const IParticle *pConst) const
Find association from jet constituent.
bool identifyOverlaps()
Do overlap-finding in all associations.
MET association descriptor contains object links and corresponding parameters.
bool checkUsage(const MissingETAssociationHelper &helper, const IParticle *pSig, MissingETBase::UsageHandler::Policy p) const
Check if this signal object matches the constituents of any flagged contributing objects.
bool containsSignal(const IParticle *pSig) const
Check if this signal object matches the constituents of any contributing objects.
static bool testPolicy(const xAOD::IParticle &part, MissingETBase::UsageHandler::Policy p)
xAOD::Type::ObjectType signalToXAODType(const xAOD::FlowElement &fe)
ConstDataVector< xAOD::IParticleContainer > const_signal_vector_t
Policy
Policies on usage checks.
@ AllCalo
Inclusive except tracks.
@ OnlyTrack
Track based only.
@ OnlyCluster
CaloCluster based only.
@ TruthParticle
Truth particle based.
@ ParticleFlow
Particle Flow Object based.
@ TrackCluster
Both cluster and track based.
@ VIEW_ELEMENTS
this data object is a view, it does not own its elmts
ObjectType
Type of objects that have a representation in the xAOD EDM.
@ TrackParticle
The object is a charged track particle.
@ ParticleFlow
The object is a particle-flow object.
@ FlowElement
The object is a track-calo-cluster.
@ CaloCluster
The object is a calorimeter cluster.
@ TruthParticle
The object is a truth particle.
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
Jet_v1 Jet
Definition of the current "jet version".
FlowElement_v1 FlowElement
Definition of the current "pfo version".
DataVector< IParticle > IParticleContainer
Simple convenience declaration of IParticleContainer.
static size_t invalidIndex()
Access invalid index indicator.