ATLAS Offline Software
Public Types | Public Member Functions | Public Attributes | Static Public Attributes | List of all members
xAOD::MissingETComponentMap_v1 Class Reference

#include <MissingETComponentMap_v1.h>

Inheritance diagram for xAOD::MissingETComponentMap_v1:
Collaboration diagram for xAOD::MissingETComponentMap_v1:

Public Types

typedef BASE DataVector_BASE
 
typedef BASE DVL_BASE
 
typedef BASE::PtrVector PtrVector
 This is the type of the underlying std::vector (what stdcont returns). More...
 
typedef BASE::PtrVector BaseContainer
 
typedef MissingETComponent_v1 *& reference
 
typedef MissingETComponent_v1 *constconst_reference
 
typedef BASE::size_type size_type
 
typedef BASE::difference_type difference_type
 
typedef MissingETComponent_v1value_type
 
typedef BASE::allocator_type allocator_type
 
typedef MissingETComponent_v1 ** pointer
 
typedef MissingETComponent_v1 *constconst_pointer
 
typedef const MissingETComponent_v1const_value_type
 
typedef MissingETComponent_v1 base_value_type
 The T value used as the template parameter. More...
 
typedef std::unique_ptr< base_value_typeunique_type
 Type of a unique_ptr that can be used to insert elements into this container. More...
 
typedef DataModel_detail::ElementProxy< DataVectorElementProxy
 This type is used to proxy lvalue accesses to DataVector elements, in order to handle ownership. More...
 
typedef DataModel_detail::const_iterator< DataVectorconst_iterator
 Standard const_iterator. More...
 
typedef DataModel_detail::iterator< DataVectoriterator
 Standard iterator. More...
 
typedef std::reverse_iterator< const_iteratorconst_reverse_iterator
 Standard const_reverse_iterator. More...
 
typedef std::reverse_iterator< iteratorreverse_iterator
 Standard reverse_iterator. More...
 
typedef DataVector base_data_vector
 
using Deleter = typename BASE::Deleter
 
typedef DataVector< MissingETComponent_v1, BASE > self
 A helper typedef. More...
 

Public Member Functions

 MissingETComponentMap_v1 (SG::OwnershipPolicy own=SG::OWN_ELEMENTS, SG::IndexTrackingPolicy trackIndices=SG::DEFAULT_TRACK_INDICES)
 Default constructor. More...
 
 MissingETComponentMap_v1 (const MissingETComponentMap_v1::iterator &first, const MissingETComponentMap_v1::iterator &last, SG::OwnershipPolicy own=SG::OWN_ELEMENTS, SG::IndexTrackingPolicy trackIndices=SG::DEFAULT_TRACK_INDICES)
 Constructor from iterators. More...
 
virtual ~MissingETComponentMap_v1 ()
 Base class destructor. More...
 
void resize (size_type sz)
 
void pop_back ()
 
void clear ()
 
void sort ()
 
template<class COMPARE >
void sort (COMPARE comp)
 
void clear (SG::OwnershipPolicy ownPolicy)
 
void clear (SG::OwnershipPolicy ownPolicy, SG::IndexTrackingPolicy trackIndices)
 
iterator erase (iterator position)
 
iterator erase (iterator first, iterator last)
 
Element access.

Change the vector capacity to match the current size.

Note: this does not affect auxiliary data.

const MissingETComponent_v1operator[] (size_type n) const
 Access an element, as an rvalue. More...
 
ElementProxy operator[] (size_type n)
 Access an element, as an lvalue. More...
 
const MissingETComponent_v1get (size_type n) const
 Access an element, as an rvalue. More...
 
const MissingETComponent_v1at (size_type n) const
 Access an element, as an rvalue. More...
 
ElementProxy at (size_type n)
 Access an element, as an lvalue. More...
 
const MissingETComponent_v1front () const
 Access the first element in the collection as an rvalue. More...
 
ElementProxy front ()
 Access the first element in the collection as an lvalue. More...
 
const MissingETComponent_v1back () const
 Access the last element in the collection as an rvalue. More...
 
ElementProxy back ()
 Access the last element in the collection as an lvalue. More...
 
Iterator creation.
const_iterator begin () const noexcept
 Return a const_iterator pointing at the beginning of the collection. More...
 
iterator begin () noexcept
 Return an iterator pointing at the beginning of the collection. More...
 
const_iterator end () const noexcept
 Return a const_iterator pointing past the end of the collection. More...
 
iterator end () noexcept
 Return an iterator pointing past the end of the collection. More...
 
const_reverse_iterator rbegin () const noexcept
 Return a const_reverse_iterator pointing past the end of the collection. More...
 
reverse_iterator rbegin () noexcept
 Return a reverse_iterator pointing past the end of the collection. More...
 
const_reverse_iterator rend () const noexcept
 Return a const_reverse_iterator pointing at the beginning of the collection. More...
 
reverse_iterator rend () noexcept
 Return a reverse_iterator pointing at the beginning of the collection. More...
 
const_iterator cbegin () const noexcept
 Return a const_iterator pointing at the beginning of the collection. More...
 
const_iterator cend () const noexcept
 Return a const_iterator pointing past the end of the collection. More...
 
const_reverse_iterator crbegin () const noexcept
 Return a const_reverse_iterator pointing past the end of the collection. More...
 
const_reverse_iterator crend () const noexcept
 Return a const_reverse_iterator pointing at the beginning of the collection. More...
 
Insertion operations.
value_type push_back (value_type pElem)
 Add an element to the end of the collection. More...
 
value_type push_back (std::unique_ptr< base_value_type > pElem)
 Add an element to the end of the collection. More...
 
value_type emplace_back (value_type pElem)
 Add an element to the end of the collection. More...
 
iterator insert (iterator position, value_type pElem)
 Add a new element to the collection. More...
 
iterator insert (iterator position, std::unique_ptr< base_value_type > pElem)
 Add a new element to the collection. More...
 
void insert (iterator position, InputIterator first, InputIterator last)
 Add a group of new elements to the collection. More...
 
void insert (iterator position, InputIterator first, InputIterator last)
 Add a group of new elements to the collection. More...
 
void insert (iterator position, std::initializer_list< value_type > l)
 Add a group of new elements to the collection. More...
 
iterator emplace (iterator position, value_type pElem)
 Add a new element to the collection. More...
 
void insertMove (iterator position, DataVector &other)
 Insert the contents of another DataVector, with auxiliary data copied via move semantics. More...
 
Find methods
const_iterator find (const MissingET *pMET) const
 Find MET object referenced by pointer. More...
 
const_iterator find (const std::string &name) const
 Find MET object referenced by name. More...
 
const_iterator find (MissingETBase::Types::bitmask_t src) const
 Find MET object referenced by source indicator. More...
 
iterator find (const MissingET *pMET)
 Find MET object referenced by pointer. More...
 
iterator find (const std::string &name)
 Find MET object referenced by name. More...
 
iterator find (MissingETBase::Types::bitmask_t src)
 Find MET object referenced by source indicator. More...
 
size_t findIndex (const MissingET *pMET) const
 
size_t findIndex (const std::string &name) const
 
size_t findIndex (MissingETBase::Types::bitmask_t src) const
 
const MissingETretrieveMissingET (const std::string &name) const
 Retrieve MissingET object by name. More...
 
const MissingETretrieveMissingET (MissingETBase::Types::bitmask_t src, bool excl=false) const
 Retrieve MissingET object by source indicator. More...
 
const MissingETretrieveMissingET (MissingETBase::Types::bitmask_t src, MissingETBase::Types::bitmask_t sw, bool excl=false) const
 Retrieve MissingET object by source indicator and status word. More...
 
Client interactions with local cache
bool checkUsage (const IParticle *pPart, MissingETBase::UsageHandler::Policy p=MissingETBase::UsageHandler::OnlyCluster) const
 Check if a given object is already used in MET. More...
 
bool checkUsage (MissingETBase::Types::object_vector_t &sig, MissingETBase::UsageHandler::Policy p=MissingETBase::UsageHandler::OnlyCluster) const
 Check a list of objects for prior usage in MET reconstruction. More...
 
bool addObjects (const MissingET *pMET, const IParticle *pPart, const MissingETBase::Types::object_vector_t &signalList, MissingETBase::UsageHandler::Policy p=MissingETBase::UsageHandler::OnlyCluster)
 
bool setClusters (const MissingET *pMET, const IParticle *pPart, const MissingETBase::Types::object_vector_t &signalList)
 
bool setTracks (const MissingET *pMET, const IParticle *pPart, const MissingETBase::Types::object_vector_t &signalList)
 
bool setObjects (const MissingET *pMET, const IParticle *pPart, const MissingETBase::Types::object_vector_t &objectList)
 
size_t getComponentIndex (const IParticle *pPart) const
 
size_t getObjectIndex (const IParticle *pPart) const
 
Constructors, destructors, assignment.
void assign (InputIterator first, InputIterator last)
 Assign from iterators. More...
 
void assign (std::initializer_list< value_type > l)
 
Size and capacity.
size_type size () const noexcept
 Returns the number of elements in the collection. More...
 
void reserve (size_type n)
 Attempt to preallocate enough memory for a specified number of elements. More...
 
Element access.

Change the vector capacity to match the current size.

Note: this does not affect auxiliary data.

const MissingETComponent_v1operator[] (size_type n) const
 Access an element, as an rvalue. More...
 
ElementProxy operator[] (size_type n)
 Access an element, as an lvalue. More...
 
const MissingETComponent_v1get (size_type n) const
 Access an element, as an rvalue. More...
 
const MissingETComponent_v1at (size_type n) const
 Access an element, as an rvalue. More...
 
ElementProxy at (size_type n)
 Access an element, as an lvalue. More...
 
const MissingETComponent_v1front () const
 Access the first element in the collection as an rvalue. More...
 
ElementProxy front ()
 Access the first element in the collection as an lvalue. More...
 
const MissingETComponent_v1back () const
 Access the last element in the collection as an rvalue. More...
 
ElementProxy back ()
 Access the last element in the collection as an lvalue. More...
 
Iterator creation.
const_iterator begin () const noexcept
 Return a const_iterator pointing at the beginning of the collection. More...
 
iterator begin () noexcept
 Return an iterator pointing at the beginning of the collection. More...
 
const_iterator end () const noexcept
 Return a const_iterator pointing past the end of the collection. More...
 
iterator end () noexcept
 Return an iterator pointing past the end of the collection. More...
 
const_reverse_iterator rbegin () const noexcept
 Return a const_reverse_iterator pointing past the end of the collection. More...
 
reverse_iterator rbegin () noexcept
 Return a reverse_iterator pointing past the end of the collection. More...
 
const_reverse_iterator rend () const noexcept
 Return a const_reverse_iterator pointing at the beginning of the collection. More...
 
reverse_iterator rend () noexcept
 Return a reverse_iterator pointing at the beginning of the collection. More...
 
const_iterator cbegin () const noexcept
 Return a const_iterator pointing at the beginning of the collection. More...
 
const_iterator cend () const noexcept
 Return a const_iterator pointing past the end of the collection. More...
 
const_reverse_iterator crbegin () const noexcept
 Return a const_reverse_iterator pointing past the end of the collection. More...
 
const_reverse_iterator crend () const noexcept
 Return a const_reverse_iterator pointing at the beginning of the collection. More...
 
Insertion operations.
value_type push_back (value_type pElem)
 Add an element to the end of the collection. More...
 
value_type push_back (std::unique_ptr< base_value_type > pElem)
 Add an element to the end of the collection. More...
 
value_type emplace_back (value_type pElem)
 Add an element to the end of the collection. More...
 
iterator insert (iterator position, value_type pElem)
 Add a new element to the collection. More...
 
iterator insert (iterator position, std::unique_ptr< base_value_type > pElem)
 Add a new element to the collection. More...
 
void insert (iterator position, InputIterator first, InputIterator last)
 Add a group of new elements to the collection. More...
 
void insert (iterator position, InputIterator first, InputIterator last)
 Add a group of new elements to the collection. More...
 
void insert (iterator position, std::initializer_list< value_type > l)
 Add a group of new elements to the collection. More...
 
iterator emplace (iterator position, value_type pElem)
 Add a new element to the collection. More...
 
void insertMove (iterator position, DataVector &other)
 Insert the contents of another DataVector, with auxiliary data copied via move semantics. More...
 

Public Attributes

ROOT_SELECTION_NS::MemberAttributes< kTransient > m_isMostDerived
 Automatically generate dictionary for contained vector. More...
 
ROOT_SELECTION_NS::MemberAttributes< kTransient > m_deleter
 
ROOT_SELECTION_NS::MemberAttributes< kTransient > m_ownPolicy
 We do not want to save this. More...
 

Static Public Attributes

static const bool has_virtual
 This is true for any DataVector class if we need to use virtual derivation to get to the base DataVector class. More...
 
static constexpr bool must_own
 If true, then this type must own its contents. More...
 

Protected Types

Internal types for local cache handling
typedef size_t signal_key_t
 Key type for signals (clusters, tracks) is type of index in container. More...
 
typedef const IParticleparticle_key_t
 Key type for physics objects is the base pointer type of these objects. More...
 
typedef MissingETBase::Types::indexedlink_t indexedlink_t
 Type for the description of the link locations. More...
 
typedef std::vector< indexedlink_tsignal_vector_t
 Indexed list type for signal object link locations. More...
 
typedef std::map< particle_key_t, indexedlink_tparticle_map_t
 Map type for physics object. More...
 

Protected Member Functions

Internal functions for local cache handling


template<int N>
size_t f_getIndex (const IParticle *pPart) const
 

Protected Attributes

Internal data for local cache
signal_vector_t m_clusterLinks
 Store for linked cluuster signal information lookup. More...
 
signal_vector_t m_trackLinks
 Store for linked track signal information lookup. More...
 
particle_map_t m_particleLinks
 Store for linked physics object information lookup. More...
 

Swap and sort.

void swap (DataVector &rhs)
 Swap this collection with another. More...
 
static void iter_swap (iterator a, iterator b)
 Swap the referents of two DataVector iterators. More...
 

Non-standard operations.

void clear (std::unique_ptr< Deleter > deleter)
 Erase all the elements in the collection, and change how elements are to be deleted. More...
 
void swapElement (size_type index, value_type newElem, reference oldElem)
 Swap one element out of the container. More...
 
void swapElement (iterator pos, value_type newElem, reference oldElem)
 Swap one element out of the container. More...
 
void swapElement (size_type index, std::unique_ptr< base_value_type > newElem, std::unique_ptr< base_value_type > &oldElem)
 Swap one element out of the container. More...
 
void swapElement (iterator pos, std::unique_ptr< base_value_type > newElem, std::unique_ptr< base_value_type > &oldElem)
 Swap one element out of the container. More...
 
virtual const DataModel_detail::DVLInfoBasedvlinfo_v () const
 Return the DV/DL info struct for this class. More...
 
const SG::AuxVectorBaseauxbase () const
 Convert to AuxVectorBase. More...
 
size_type max_size () const noexcept
 Returns the size() of the largest possible collection. More...
 
size_type capacity () const noexcept
 Returns the total number of elements that the collection can hold before needing to allocate more memory. More...
 
bool empty () const noexcept
 Returns true if the collection is empty. More...
 
void shrink_to_fit ()
 
const PtrVectorstdcont () const
 Return the underlying std::vector of the container. More...
 
SG::OwnershipPolicy ownPolicy () const
 Return the ownership policy setting for this container. More...
 
static const DataModel_detail::DVLInfoBasedvlinfo ()
 Return the DV/DL info struct for this class. More...
 
static int baseOffset (const std::type_info &ti)
 Return the offset of a base DataVector class. More...
 

Internal operations.

void resortAux (iterator beg, iterator end)
 Reset indices / reorder aux data after elements have been permuted. More...
 
void testInsert (const char *op)
 Test if we can insert; raise an exception if not. More...
 
void testInsertOol (const char *op)
 Test if we can insert; raise an exception if not. More...
 
void clearMostDerived ()
 Clear m_isMostDerived for this instance and for all bases. More...
 
virtual void setMostDerived ()
 Set m_isMostDerived for this instance and clear it for all bases. More...
 
typedef ROOT_SELECTION_NS::DataVector< MissingETComponent_v1, DataVector_BASE >::self self
 
SG::IsMostDerivedFlag m_isMostDerived
 This flag is true if this DV instance is the most-derived one. More...
 
static int baseOffset1 (const char *p, const DataVector &dv, const std::type_info &ti)
 Helper for baseOffset. More...
 
static const MissingETComponent_v1do_cast (const typename PtrVector::value_type p)
 Helper to shorten calls to DataModel_detail::DVLCast. More...
 
static MissingETComponent_v1do_cast_nc (typename PtrVector::value_type p)
 Helper to shorten calls to DataModel_detail::DVLCast. More...
 
void assignElement (typename BaseContainer::iterator pos, value_type newElem)
 Handle element assignment. More...
 
void assignElement (typename BaseContainer::iterator pos, std::unique_ptr< base_value_type > newElem)
 Handle element assignment. More...
 
void assignBaseElement (typename BaseContainer::iterator pos, typename BaseContainer::value_type newElem)
 Handle element assignment from a base pointer. More...
 
void shift (size_t pos, ptrdiff_t offs)
 Shift the auxiliary elements of the container. More...
 
virtual const std::type_info & dv_typeid () const
 Find the most-derived DataVector class in the hierarchy. More...
 

Internal object lookup cache handlers

static const size_t m_clusterLinkReserve =10000
 
static const size_t m_trackLinkReserve =10000
 
bool f_checkObjectUsage (MissingETBase::Types::object_vector_t &sig, const signal_vector_t &signalLinks) const
 Check signal object usage. More...
 
bool f_checkObjectUsage (MissingETBase::Types::object_vector_t &objects, const particle_map_t &physicsLinks) const
 Check physics object usage. More...
 
void f_fillLookupCache ()
 Fill the lookup cache from the composition map data content. More...
 
void f_clearLookupCache ()
 Clear the lookup cache. More...
 
void f_setupLookupCache (signal_vector_t &signalLinks, size_t reserve)
 Set up the signal object lookup. More...
 
template<int OBJTYPE>
bool f_extractSignal (MissingETBase::Types::object_vector_t &sig) const
 Signal type extractor. More...
 
const MissingETf_retrieveMissingETExcl (MissingETBase::Types::bitmask_t src) const
 
const MissingETf_retrieveMissingETExcl (MissingETBase::Types::bitmask_t src, MissingETBase::Types::bitmask_t sw) const
 
const MissingETf_retrieveMissingETIncl (MissingETBase::Types::bitmask_t src) const
 
const MissingETf_retrieveMissingETIncl (MissingETBase::Types::bitmask_t src, MissingETBase::Types::bitmask_t sw) const
 

Detailed Description

Definition at line 24 of file MissingETComponentMap_v1.h.

Member Typedef Documentation

◆ allocator_type

typedef BASE::allocator_type DataVector< MissingETComponent_v1 , BASE >::allocator_type
inherited

Definition at line 816 of file DataVector.h.

◆ base_data_vector

Definition at line 853 of file DataVector.h.

◆ base_value_type

The T value used as the template parameter.

Note that this is different from value_type (that's T*).

Definition at line 824 of file DataVector.h.

◆ BaseContainer

typedef BASE::PtrVector DataVector< MissingETComponent_v1 , BASE >::BaseContainer
inherited

Definition at line 806 of file DataVector.h.

◆ const_iterator

Standard const_iterator.

Definition at line 837 of file DataVector.h.

◆ const_pointer

Definition at line 818 of file DataVector.h.

◆ const_reference

Definition at line 812 of file DataVector.h.

◆ const_reverse_iterator

typedef std::reverse_iterator<const_iterator> DataVector< MissingETComponent_v1 , BASE >::const_reverse_iterator
inherited

Standard const_reverse_iterator.

Definition at line 846 of file DataVector.h.

◆ const_value_type

Definition at line 820 of file DataVector.h.

◆ DataVector_BASE

typedef BASE DataVector< MissingETComponent_v1 , BASE >::DataVector_BASE
inherited

Definition at line 796 of file DataVector.h.

◆ Deleter

using DataVector< MissingETComponent_v1 , BASE >::Deleter = typename BASE::Deleter
inherited

Definition at line 856 of file DataVector.h.

◆ difference_type

typedef BASE::difference_type DataVector< MissingETComponent_v1 , BASE >::difference_type
inherited

Definition at line 814 of file DataVector.h.

◆ DVL_BASE

typedef BASE DataVector< MissingETComponent_v1 , BASE >::DVL_BASE
inherited

Definition at line 797 of file DataVector.h.

◆ ElementProxy

This type is used to proxy lvalue accesses to DataVector elements, in order to handle ownership.

Definition at line 832 of file DataVector.h.

◆ indexedlink_t

Type for the description of the link locations.

This is a two-component type which allows holding the index of the xAOD::MissingETComponent_v1 object a physics or signal object is linked from, and the index of this linked object in the contributing object list.

Definition at line 190 of file MissingETComponentMap_v1.h.

◆ iterator

Standard iterator.

Note that lvalue references here will yield an ElementProxy, not a reference.

Definition at line 841 of file DataVector.h.

◆ particle_key_t

Key type for physics objects is the base pointer type of these objects.

Definition at line 189 of file MissingETComponentMap_v1.h.

◆ particle_map_t

Map type for physics object.

In case of physics objects, a map look-up is implemented as the lack of a common container for these objects does not allow using the index as a unique key. The object pointer is used instead, and the look-up is provided by a standard map (binary search). Typically, the number of entries in this map is rather small (much less than 100) so that this storage technology should not introduce performance problems.

Definition at line 201 of file MissingETComponentMap_v1.h.

◆ pointer

Definition at line 817 of file DataVector.h.

◆ PtrVector

typedef BASE::PtrVector DataVector< MissingETComponent_v1 , BASE >::PtrVector
inherited

This is the type of the underlying std::vector (what stdcont returns).

Definition at line 805 of file DataVector.h.

◆ reference

Definition at line 811 of file DataVector.h.

◆ reverse_iterator

typedef std::reverse_iterator<iterator> DataVector< MissingETComponent_v1 , BASE >::reverse_iterator
inherited

Standard reverse_iterator.

Note that lvalue references here will yield an ElementProxy, not a reference.

Definition at line 851 of file DataVector.h.

◆ self [1/2]

typedef ROOT_SELECTION_NS::DataVector<MissingETComponent_v1 , DataVector_BASE>::self DataVector< MissingETComponent_v1 , BASE >::self
privateinherited

Definition at line 2042 of file DataVector.h.

◆ self [2/2]

typedef DataVector< MissingETComponent_v1 , BASE > DataVector< MissingETComponent_v1 , BASE >::self
inherited

A helper typedef.

Definition at line 3428 of file DataVector.h.

◆ signal_key_t

Key type for signals (clusters, tracks) is type of index in container.

Definition at line 188 of file MissingETComponentMap_v1.h.

◆ signal_vector_t

Indexed list type for signal object link locations.

In case of a signal (xAOD::CaloCluster, xAOD::TrackParticle) object look-up, the index of these objects can be directly used to check if they have already been used in the actual MET composition (random access in this index parallel store - with respect to the actual xAOD::CaloClusterContainer and the xAOD::TrackParticleContainer).

Definition at line 195 of file MissingETComponentMap_v1.h.

◆ size_type

typedef BASE::size_type DataVector< MissingETComponent_v1 , BASE >::size_type
inherited

Definition at line 813 of file DataVector.h.

◆ unique_type

typedef std::unique_ptr<base_value_type> DataVector< MissingETComponent_v1 , BASE >::unique_type
inherited

Type of a unique_ptr that can be used to insert elements into this container.

Definition at line 828 of file DataVector.h.

◆ value_type

Definition at line 815 of file DataVector.h.

Constructor & Destructor Documentation

◆ MissingETComponentMap_v1() [1/2]

MissingETComponentMap_v1::MissingETComponentMap_v1 ( SG::OwnershipPolicy  own = SG::OWN_ELEMENTS,
SG::IndexTrackingPolicy  trackIndices = SG::DEFAULT_TRACK_INDICES 
)

Default constructor.

Definition at line 25 of file MissingETComponentMap_v1.cxx.

◆ MissingETComponentMap_v1() [2/2]

MissingETComponentMap_v1::MissingETComponentMap_v1 ( const MissingETComponentMap_v1::iterator first,
const MissingETComponentMap_v1::iterator last,
SG::OwnershipPolicy  own = SG::OWN_ELEMENTS,
SG::IndexTrackingPolicy  trackIndices = SG::DEFAULT_TRACK_INDICES 
)

Constructor from iterators.

Definition at line 32 of file MissingETComponentMap_v1.cxx.

◆ ~MissingETComponentMap_v1()

MissingETComponentMap_v1::~MissingETComponentMap_v1 ( )
virtual

Base class destructor.

Definition at line 41 of file MissingETComponentMap_v1.cxx.

42 { this->clearCache(); }

Member Function Documentation

◆ addObjects()

Definition at line 257 of file MissingETComponentMap_v1.cxx.

258 {
259  bool flag(false);
260  switch ( p )
261  {
263  { flag = this->setClusters(pMET,pPart,signalList); break; }
265  { flag = this->setTracks(pMET,pPart,signalList); break; }
267  { bool cFlg(this->setClusters(pMET,pPart,signalList)); bool tFlg(this->setTracks(pMET,pPart,signalList)); flag = cFlg || tFlg; break; }
269  { flag = this->setObjects(pMET,pPart,signalList); break; }
270  default:
271  { break; }
272  }
273  return flag;
274 }

◆ assign() [1/2]

void DataVector< MissingETComponent_v1 , BASE >::assign ( InputIterator  first,
InputIterator  last 
)
inherited

Assign from iterators.

Parameters
firstThe start of the range to put in the container.
lastThe end of the range to put in the container.

Any existing owned elements will be released. The DataVector's ownership policy determines whether it will take ownership of the new elements.

◆ assign() [2/2]

void DataVector< MissingETComponent_v1 , BASE >::assign ( std::initializer_list< value_type l)
inherited
Parameters
lAn initializer list.

Any existing owned elements will be released. The DataVector's ownership policy determines whether it will take ownership of the new elements.

◆ assignBaseElement()

void DataVector< MissingETComponent_v1 , BASE >::assignBaseElement ( typename BaseContainer::iterator  pos,
typename BaseContainer::value_type  newElem 
)
privateinherited

Handle element assignment from a base pointer.

Parameters
posPosition in the container to assign.
newElemThe new element to assign.

The old element is freed if this container owns elements. Auxiliary data are copied if appropriate.

◆ assignElement() [1/2]

void DataVector< MissingETComponent_v1 , BASE >::assignElement ( typename BaseContainer::iterator  pos,
std::unique_ptr< base_value_type newElem 
)
privateinherited

Handle element assignment.

Parameters
posPosition in the container to assign.
newElemThe new element to assign.

The container must own its elements. Auxiliary data are copied if appropriate.

◆ assignElement() [2/2]

void DataVector< MissingETComponent_v1 , BASE >::assignElement ( typename BaseContainer::iterator  pos,
value_type  newElem 
)
privateinherited

Handle element assignment.

Parameters
posPosition in the container to assign.
newElemThe new element to assign.

The old element is freed if this container owns elements. Auxiliary data are copied if appropriate.

◆ at() [1/2]

ElementProxy DataVector< MissingETComponent_v1 , BASE >::at ( size_type  n)
inherited

Access an element, as an lvalue.

Parameters
nArray index to access.
Returns
Proxy to the element at n.

Will raise std::out_of_range if the index is out-of-bounds. Note that we return a proxy object rather than a reference; the proxy will handle deleting an owned element if it's assigned to.

◆ at() [2/2]

const MissingETComponent_v1 * DataVector< MissingETComponent_v1 , BASE >::at ( size_type  n) const
inherited

Access an element, as an rvalue.

Parameters
nArray index to access.
Returns
The element at n.

Will raise std::out_of_range if the index is out-of-bounds. Note that we return a const T* rather than a reference.

◆ auxbase()

Convert to AuxVectorBase.

Needed to get AuxVectorBase from a ConstDataVector. Present in DataVector as well for consistency. We only really need it in the base class; however, root6 fails constructing a TMethodCall for this if there is virtual derivation. A workaround is to redeclare this in the derived classes too.

◆ back() [1/2]

ElementProxy DataVector< MissingETComponent_v1 , BASE >::back
inherited

Access the last element in the collection as an lvalue.

Returns
Proxy to the last element in the collection.

No checking is done to ensure that the container is not empty. Note that we return a proxy object rather than a reference; the proxy will handle deleting an owned element if it's assigned to.

◆ back() [2/2]

Access the last element in the collection as an rvalue.

Returns
The last element in the collection.

No checking is done to ensure that the container is not empty. Note that we return a const T* rather than a reference.

◆ baseOffset()

static int DataVector< MissingETComponent_v1 , BASE >::baseOffset ( const std::type_info &  ti)
staticinherited

Return the offset of a base DataVector class.

Parameters
tistd::type_info of the desired class.

If ti represents a DataVector base class of this one, then return the offset of that base class. Otherwise, return -1.

This function is here due to limitations of root 6, which can't calculate these offsets correctly from the dictionary if virtual derivation is used.

◆ baseOffset1()

static int DataVector< MissingETComponent_v1 , BASE >::baseOffset1 ( const char *  p,
const DataVector< MissingETComponent_v1 > &  dv,
const std::type_info &  ti 
)
staticinherited

Helper for baseOffset.

Parameters
pPointer to the start of the top-level object.
dvReference to the DataVector object.
tistd::type_info of the desired class.

If ti represents a DataVector base class of this one, then return the offset of that base class. Otherwise, return -1.

◆ begin() [1/2]

const_iterator DataVector< MissingETComponent_v1 , BASE >::begin
noexceptinherited

Return a const_iterator pointing at the beginning of the collection.

Returns
A const_iterator.

Note that dereferencing the iterator will yield a const T* rather than a reference.

◆ begin() [2/2]

iterator DataVector< MissingETComponent_v1 , BASE >::begin
noexceptinherited

Return an iterator pointing at the beginning of the collection.

Returns
An iterator.

Note that dereferencing the iterator will yield a proxy rather than a reference; the proxy will handle deleting an owned element if it's assigned to.

◆ capacity()

size_type DataVector< MissingETComponent_v1 , BASE >::capacity
noexceptinherited

Returns the total number of elements that the collection can hold before needing to allocate more memory.

◆ cbegin()

const_iterator DataVector< MissingETComponent_v1 , BASE >::cbegin
noexceptinherited

Return a const_iterator pointing at the beginning of the collection.

Returns
A const_iterator.

Note that dereferencing the iterator will yield a const T* rather than a reference.

◆ cend()

const_iterator DataVector< MissingETComponent_v1 , BASE >::cend
noexceptinherited

Return a const_iterator pointing past the end of the collection.

Returns
A const_iterator.

Note that dereferencing the iterator will yield a const T* rather than a reference.

◆ checkUsage() [1/2]

bool MissingETComponentMap_v1::checkUsage ( const IParticle pPart,
MissingETBase::UsageHandler::Policy  p = MissingETBase::UsageHandler::OnlyCluster 
) const

Check if a given object is already used in MET.

Returns
true if the referenced signal object is already used.
Parameters
[in]pPartgeneric (base class) pointer to signal object (xAOD::CaloCluster or xAOD::TrackParticle).
[in]ptags signal type to be checked to usage (optional, default is MissingETBase::UsageHandler::OnlyCluster).

Definition at line 187 of file MissingETComponentMap_v1.cxx.

188 { MissingETBase::Types::object_vector_t objects; objects.push_back(pPart); return this->checkUsage(objects,p); }

◆ checkUsage() [2/2]

Check a list of objects for prior usage in MET reconstruction.

Returns
true if any of the objects in the list has already been used in another MET contribution. The iput object list contains pointer references to objects which have not yet been used.
Parameters
[in,out]sigreference to modifiable list of objects.
[in]ptags signal type to be checked to usage (optional, default is MissingETBase::UsageHandler::OnlyCluster).
Note
The list of signals on input can contain various signal (object) types. The modified list contains only references to objects with types determined by the MissingETBase::UsageHandler::Policy. By default, those are clusters.
Usage is always measured with respect to the type given by MissingETBase::UsageHandler::Policy. For example, if the input signal list has mixed object types, its content on return contains only references to objects of the type determined by the MissingETBase::UsageHandler::Policy. By default, those are clusters. This modification of the input list does not indicate that any clusters in this list have already been used. This is done by the return value.

Definition at line 190 of file MissingETComponentMap_v1.cxx.

191 {
192  bool retVal(false);
193  switch ( p )
194  {
196  { if ( f_extractSignal<xAOD::Type::CaloCluster>(signals) ) { retVal = this->f_checkObjectUsage(signals,m_clusterLinks); } break; }
198  { if ( f_extractSignal<xAOD::Type::TrackParticle>(signals) ) { retVal = this->f_checkObjectUsage(signals,m_trackLinks); } break; }
200  {
202  size_t nSig(0);
203  if ( f_extractSignal<xAOD::Type::CaloCluster>(signals) )
204  { nSig = signals.size(); this->f_checkObjectUsage(signals,m_clusterLinks); }
205  if ( f_extractSignal<xAOD::Type::TrackParticle>(ins) )
206  { nSig += ins.size(); this->f_checkObjectUsage(ins,m_trackLinks); }
207  signals.insert(signals.end(),ins.begin(),ins.end());
208  retVal = signals.size() == nSig;
209  break;
210  }
212  { retVal = this->f_checkObjectUsage(signals,m_particleLinks); break; }
213  default:
214  { break; }
215  } // switch
216  return retVal;
217 }

◆ clear() [1/4]

void xAOD::MissingETComponentMap_v1::clear ( )

◆ clear() [2/4]

void xAOD::MissingETComponentMap_v1::clear ( SG::OwnershipPolicy  ownPolicy)

◆ clear() [3/4]

void xAOD::MissingETComponentMap_v1::clear ( SG::OwnershipPolicy  ownPolicy,
SG::IndexTrackingPolicy  trackIndices 
)

◆ clear() [4/4]

void DataVector< MissingETComponent_v1 , BASE >::clear ( std::unique_ptr< Deleter deleter)
inherited

Erase all the elements in the collection, and change how elements are to be deleted.

Parameters
deleterObject to be used to delete object. Passing nullptr will change back to the default.

If the container owns its elements, then the removed elements will be deleted. Any duplicates will be removed in this process, but don't rely on this. After the current elements are deleted, the Deleter object is changed.

◆ clearMostDerived()

void DataVector< MissingETComponent_v1 , BASE >::clearMostDerived
protectedinherited

Clear m_isMostDerived for this instance and for all bases.

Called from the constructor after setting m_isMostDerived.

◆ crbegin()

const_reverse_iterator DataVector< MissingETComponent_v1 , BASE >::crbegin
noexceptinherited

Return a const_reverse_iterator pointing past the end of the collection.

Returns
A const_reverse_iterator.

Note that dereferencing the iterator will yield a const T* rather than a reference.

◆ crend()

const_reverse_iterator DataVector< MissingETComponent_v1 , BASE >::crend
noexceptinherited

Return a const_reverse_iterator pointing at the beginning of the collection.

Returns
A const_reverse_iterator.

Note that dereferencing the iterator will yield a const T* rather than a reference.

◆ do_cast()

static const MissingETComponent_v1 * DataVector< MissingETComponent_v1 , BASE >::do_cast ( const typename PtrVector::value_type  p)
staticinherited

Helper to shorten calls to DataModel_detail::DVLCast.

Parameters
pThe value to convert.
Returns
The value as a const T*.

The conversion will be done with static_cast if possible, with dynamic_cast otherwise.

◆ do_cast_nc()

static MissingETComponent_v1 * DataVector< MissingETComponent_v1 , BASE >::do_cast_nc ( typename PtrVector::value_type  p)
staticinherited

Helper to shorten calls to DataModel_detail::DVLCast.

Parameters
pThe value to convert.
Returns
The value as a T*.

The conversion will be done with static_cast if possible, with dynamic_cast otherwise.

◆ dv_typeid()

virtual const std::type_info& DataVector< MissingETComponent_v1 , BASE >::dv_typeid
privatevirtualinherited

Find the most-derived DataVector class in the hierarchy.

Returns
The type_info for the class for which this method gets run.

This is used to generate a nice error message when the most-derived check for insertions fails. Every DataVector defines this virtual method, so when it's called, the one corresponding to the most-derived DataVector gets run.

◆ dvlinfo()

static const DataModel_detail::DVLInfoBase& DataVector< MissingETComponent_v1 , BASE >::dvlinfo
staticinherited

Return the DV/DL info struct for this class.

This can be used to make sure that it's instantiated.

◆ dvlinfo_v()

virtual const DataModel_detail::DVLInfoBase& DataVector< MissingETComponent_v1 , BASE >::dvlinfo_v
virtualinherited

Return the DV/DL info struct for this class.

This can be used to make sure that it's instantiated.

◆ emplace()

iterator DataVector< MissingETComponent_v1 , BASE >::emplace ( iterator  position,
value_type  pElem 
)
inherited

Add a new element to the collection.

Parameters
positionIterator before which the element will be added.
pElemThe element to add to the collection.
Returns
An iterator that points to the inserted data.

The container's ownership policy will determine if it takes ownership of the new element.

Note: this method may only be called using the most derived DataVector in the hierarchy.

For DataVector, this is just the same as insert. It's included just for interface compatibility with std::vector.

◆ emplace_back()

value_type DataVector< MissingETComponent_v1 , BASE >::emplace_back ( value_type  pElem)
inherited

Add an element to the end of the collection.

Parameters
pElemThe element to add to the collection.

The container's ownership policy will determine if it takes ownership of the new element.

Note: this method may only be called using the most derived DataVector in the hierarchy.

For DataVector, this is like the same as push_back, and it returns the pushed element. It's included just for interface compatibility with std::vector.

◆ empty()

bool DataVector< MissingETComponent_v1 , BASE >::empty
noexceptinherited

Returns true if the collection is empty.

◆ end() [1/2]

const_iterator DataVector< MissingETComponent_v1 , BASE >::end
noexceptinherited

Return a const_iterator pointing past the end of the collection.

Returns
A const_iterator.

Note that dereferencing the iterator will yield a const T* rather than a reference.

◆ end() [2/2]

iterator DataVector< MissingETComponent_v1 , BASE >::end
noexceptinherited

Return an iterator pointing past the end of the collection.

Returns
An iterator.

Note that dereferencing the iterator will yield a proxy rather than a reference; the proxy will handle deleting an owned element if it's assigned to.

◆ erase() [1/2]

iterator xAOD::MissingETComponentMap_v1::erase ( iterator  first,
iterator  last 
)

◆ erase() [2/2]

iterator xAOD::MissingETComponentMap_v1::erase ( iterator  position)

◆ f_checkObjectUsage() [1/2]

bool MissingETComponentMap_v1::f_checkObjectUsage ( MissingETBase::Types::object_vector_t objects,
const particle_map_t physicsLinks 
) const
protected

Check physics object usage.

Returns
true if any of the physics objects in the input list is already marked as used. In addition, all used objects are removed from the input (physics) object list. If none of the objects in this list is already used, false is returned.
Parameters
[in,out]objectsreference to modifiable list of physics objects to be checked for usage in MET reconstruction.
[in]physicsLinksreference to modifiable map of link descriptors for physics objects already used (means linked to a MET contribution).
Note
This method does not add yet unused physics objects to the signal link list, as this decision is controlled by the specific MET reconstruction tool.

Definition at line 242 of file MissingETComponentMap_v1.cxx.

243 {
244  if ( objects.empty() ) { return false; }
245  //
246  size_t oldSize(objects.size());
248  while ( fObj != objects.end() )
249  { if ( physicsLinks.find(*fObj) != physicsLinks.end() ) { fObj = objects.erase(fObj); } else { ++fObj; } }
250  return objects.size() != oldSize;
251 }

◆ f_checkObjectUsage() [2/2]

bool MissingETComponentMap_v1::f_checkObjectUsage ( MissingETBase::Types::object_vector_t sig,
const signal_vector_t signalLinks 
) const
protected

Check signal object usage.

Returns
true if any of the signal objects in the inout list is already marked as used. In addition, all used objects are removed from the input (signal) object list. If none of the objects in this list is already used, false is returned.
Parameters
[in,out]sigreference to modifiable list of signal objects to be checked for usage in MET reconstruction.
[in]signalLinksreference to modifiable list of signals already used (means linked to a MET contribution).
Note
This method does not add yet unused signal objects to the signal link list, as this decision is controlled by the specific MET reconstruction tool.

Definition at line 219 of file MissingETComponentMap_v1.cxx.

220 {
221  if ( signals.empty() || signalLinks.empty() ) return false;
222  // loop on signals
223  size_t oldSize(signals.size());
225  while ( fSig != signals.end() )
226  {
227  size_t fIdx((*fSig)->index());
228  if( fIdx >= signalLinks.size() ) {
229  // if invalid, something probably went wrong in reconstruction, so complain
230  // this should raise an out-of-range exception
231  printf("MissingETComponentMap::f_checkObjectUsage(...) - ERROR - searching for a signal with index (%zu) beyond signal container range (%zu).", fIdx, signalLinks.size());
232  printf("MissingETComponentMap::f_checkObjectUsage(...) - ERROR - this may indicate an inconsistency in the signal containers.");
233  }
234  // signal already used
235  if ( signalLinks.at(fIdx) != MissingETBase::Numerical::invalidLink() ) { fSig = signals.erase(fSig); }
236  // signal not yet used
237  else { ++fSig; }
238  } // loop on signals
239  return oldSize != signals.size();
240 }

◆ f_clearLookupCache()

void MissingETComponentMap_v1::f_clearLookupCache ( )
protected

Clear the lookup cache.

Definition at line 360 of file MissingETComponentMap_v1.cxx.

361 { m_clusterLinks.clear(); m_trackLinks.clear(); m_particleLinks.clear(); }

◆ f_extractSignal()

template<int OBJTYPE>
bool xAOD::MissingETComponentMap_v1::f_extractSignal ( MissingETBase::Types::object_vector_t sig) const
inlineprotected

Signal type extractor.

Returns
true if input object list contains requested signal type, else false. The input object list is filtered on return, meaning it only contains objects of the requested type. A return of false thus indicates an empty list.
Template Parameters
SIGNALsignal type of extracted objects.
Parameters
[in,out]sigreference to modifiable list of signal objects to be checked for usage in MET reconstruction.

Definition at line 279 of file MissingETComponentMap_v1.h.

280  {
282  while ( fSign != sig.end() ) { if ( (*fSign)->type() != OBJTYPE ) { fSign = sig.erase(fSign); } else { ++fSign; } }
283  return !sig.empty();
284  }

◆ f_fillLookupCache()

void MissingETComponentMap_v1::f_fillLookupCache ( )
protected

Fill the lookup cache from the composition map data content.

Definition at line 363 of file MissingETComponentMap_v1.cxx.

364 {
366 }

◆ f_getIndex()

template<int N>
size_t xAOD::MissingETComponentMap_v1::f_getIndex ( const IParticle pPart) const
inlineprotected

Definition at line 225 of file MissingETComponentMap_v1.h.

226  {
227  // check on cluster signal
228  if ( pPart->type() == Type::CaloCluster )
229  { size_t idx(pPart->index()); return idx < m_clusterLinks.size() ? std::get<N>( m_clusterLinks.at(idx)) : MissingETBase::Numerical::invalidIndex(); }
230  // check on track signal
231  if ( pPart->type() == Type::TrackParticle )
232  { size_t idx(pPart->index()); return idx < m_trackLinks.size() ? std::get<N>(m_trackLinks.at(idx)) : MissingETBase::Numerical::invalidIndex(); }
233  //
234  particle_map_t::const_iterator fPart(m_particleLinks.find(pPart));
235  return fPart != m_particleLinks.end() ? std::get<N>(fPart->second) : MissingETBase::Numerical::invalidIndex();
236  }

◆ f_retrieveMissingETExcl() [1/2]

const MissingET * MissingETComponentMap_v1::f_retrieveMissingETExcl ( MissingETBase::Types::bitmask_t  src) const
protected

Definition at line 146 of file MissingETComponentMap_v1.cxx.

147 {
148  const_iterator fCont(this->begin());
149  const_iterator lCont(this->end());
150  while ( fCont != lCont && (*fCont)->metObject()->source() != src ) { ++fCont; }
151  if ( fCont != lCont ) return (*fCont)->metObject();
152  return nullptr;
153 }

◆ f_retrieveMissingETExcl() [2/2]

const MissingET * MissingETComponentMap_v1::f_retrieveMissingETExcl ( MissingETBase::Types::bitmask_t  src,
MissingETBase::Types::bitmask_t  sw 
) const
protected

Definition at line 155 of file MissingETComponentMap_v1.cxx.

156 {
157  const_iterator fCont(this->begin());
158  const_iterator lCont(this->end());
159  while ( fCont != lCont && ( (*fCont)->metObject()->source() != src || (*fCont)->statusWord() != sw ) ) { ++fCont; }
160  if ( fCont != lCont ) return (*fCont)->metObject();
161  return nullptr;
162 }

◆ f_retrieveMissingETIncl() [1/2]

const MissingET * MissingETComponentMap_v1::f_retrieveMissingETIncl ( MissingETBase::Types::bitmask_t  src) const
protected

Definition at line 164 of file MissingETComponentMap_v1.cxx.

165 {
166  const_iterator fCont(this->begin());
167  const_iterator lCont(this->end());
168  while ( fCont != lCont && !MissingETBase::Source::hasPattern((*fCont)->metObject()->source(),src) ) { ++fCont; }
169  if ( fCont != lCont ) return (*fCont)->metObject();
170  return nullptr;
171 }

◆ f_retrieveMissingETIncl() [2/2]

const MissingET * MissingETComponentMap_v1::f_retrieveMissingETIncl ( MissingETBase::Types::bitmask_t  src,
MissingETBase::Types::bitmask_t  sw 
) const
protected

Definition at line 173 of file MissingETComponentMap_v1.cxx.

174 {
175  const_iterator fCont(this->begin());
176  const_iterator lCont(this->end());
177  while ( fCont != lCont && ( !MissingETBase::Source::hasPattern((*fCont)->metObject()->source(),src) ||
178  !MissingETBase::Status::Tags::hasPattern((*fCont)->statusWord(),sw) ) ) { ++fCont; }
179  if ( fCont != lCont ) return (*fCont)->metObject();
180  return nullptr;
181 }

◆ f_setupLookupCache()

void MissingETComponentMap_v1::f_setupLookupCache ( signal_vector_t signalLinks,
size_t  reserve 
)
protected

Set up the signal object lookup.

Definition at line 357 of file MissingETComponentMap_v1.cxx.

358 { signalLinks.clear(); if ( reserve > 0 ) { signalLinks.reserve(reserve); } }

◆ find() [1/6]

MissingETComponentMap_v1::iterator MissingETComponentMap_v1::find ( const MissingET pMET)

Find MET object referenced by pointer.

Returns
Iterator referencing a modifiable xAOD::MissingETComponent_v1 object linking to the given MET object. If the MET object is not in the ccomposition map, an end iterator is returned.
Parameters
[in]pMETpointer to the xAOD::MissingET object searched for in the composition map.

Definition at line 56 of file MissingETComponentMap_v1.cxx.

57 {
58  iterator fCont(this->begin());
59  iterator lCont(this->end());
60  while ( fCont != lCont && (*fCont)->metObject() != pMET ) { ++fCont; }
61  return fCont;
62 }

◆ find() [2/6]

MissingETComponentMap_v1::const_iterator MissingETComponentMap_v1::find ( const MissingET pMET) const

Find MET object referenced by pointer.

Returns
Const iterator referencing a non-modifiable xAOD::MissingETComponent_v1 object linking to the given MET object. If the MET object is not in the ccomposition map, an end const iterator is returned.
Parameters
[in]pMETpointer to the xAOD::MissingET object searched for in the composition map.

Definition at line 48 of file MissingETComponentMap_v1.cxx.

49 {
50  const_iterator fCont(this->begin());
51  const_iterator lCont(this->end());
52  while ( fCont != lCont && (*fCont)->metObject() != pMET ) { ++fCont; }
53  return fCont;
54 }

◆ find() [3/6]

MissingETComponentMap_v1::iterator MissingETComponentMap_v1::find ( const std::string &  name)

Find MET object referenced by name.

Returns
Iterator referencing a modifiable xAOD::MissingETComponent_v1 object linking to the given MET object. If the MET object is not in the ccomposition map, an end iterator is returned.
Parameters
[in]namereference to non-modifiable string storing the name of the xAOD::MissingET object searched for.
Note
It is generally expected that the name of the xAOD::MissingET object is unique for this composition. If not, the iterator referencing the first
xAOD::MissingETComponent_v1 object containing a link to a xAOD::MissingET object with the requested name is returned.

Definition at line 72 of file MissingETComponentMap_v1.cxx.

73 {
74  iterator fCont(this->begin());
75  iterator lCont(this->end());
76  while ( fCont != lCont && (*fCont)->metObject()->name() != name ) { ++fCont; }
77  return fCont;
78 }

◆ find() [4/6]

MissingETComponentMap_v1::const_iterator MissingETComponentMap_v1::find ( const std::string &  name) const

Find MET object referenced by name.

Returns
Const iterator referencing a non-modifiable xAOD::MissingETComponent_v1 object linking to the given MET object. If the MET object is not in the ccomposition map, an end const iterator is returned.
Parameters
[in]namereference to non-modifiable string storing the name of the xAOD::MissingET object searched for.
Note
It is generally expected that the name of the xAOD::MissingET object is unique for this composition. If not, the iterator referencing the first
xAOD::MissingETComponent_v1 object containing a link to a xAOD::MissingET object with the requested name is returned.

Definition at line 64 of file MissingETComponentMap_v1.cxx.

65 {
66  const_iterator fCont(this->begin());
67  const_iterator lCont(this->end());
68  while (fCont != lCont && (*fCont)->metObject()->name() != name ) { ++fCont; }
69  return fCont;
70 }

◆ find() [5/6]

Find MET object referenced by source indicator.

Returns
Iterator referencing a modifiable xAOD::MissingETComponent_v1 object linking to the given MET object. If the MET object is not in the ccomposition map, an end iterator is returned.
Parameters
[in]srcbit pattern with the requested source indicator.
Note
It is generally expected that the source of the xAOD::MissingET object is unique for this composition. If not, the iterator referencing the first
xAOD::MissingETComponent_v1 object containing a link to a xAOD::MissingET object with the requested source is returned.

Definition at line 88 of file MissingETComponentMap_v1.cxx.

89 {
90  iterator fCont(this->begin());
91  iterator lCont(this->end());
92  while ( fCont != lCont && (*fCont)->metObject()->source() != src ) { ++fCont; }
93  return fCont;
94 }

◆ find() [6/6]

MissingETComponentMap_v1::const_iterator MissingETComponentMap_v1::find ( MissingETBase::Types::bitmask_t  src) const

Find MET object referenced by source indicator.

Returns
Const iterator referencing a non-modifiable xAOD::MissingETComponent_v1 object linking to the given MET object. If the MET object is not in the ccomposition map, an end const iterator is returned.
Parameters
[in]srcbit pattern with the requested source indicator.
Note
It is generally expected that the source of the xAOD::MissingET object is unique for this composition. If not, the iterator referencing the first
xAOD::MissingETComponent_v1 object containing a link to a xAOD::MissingET object with the requested source is returned.

Definition at line 80 of file MissingETComponentMap_v1.cxx.

81 {
82  const_iterator fCont(this->begin());
83  const_iterator lCont(this->end());
84  while ( fCont != lCont && (*fCont)->metObject()->source() != src ) { ++fCont; }
85  return fCont;
86 }

◆ findIndex() [1/3]

size_t MissingETComponentMap_v1::findIndex ( const MissingET pMET) const

Definition at line 96 of file MissingETComponentMap_v1.cxx.

97 {
98  const_iterator fCont(this->begin());
99  const_iterator lCont(this->end());
100  while ( fCont != lCont && (*fCont)->metObject() != pMET ) { ++fCont; }
101  if ( fCont != lCont ) return (size_t)std::distance<const_iterator>(this->begin(),fCont);
103 }

◆ findIndex() [2/3]

size_t MissingETComponentMap_v1::findIndex ( const std::string &  name) const

Definition at line 105 of file MissingETComponentMap_v1.cxx.

106 {
107  const_iterator fCont(this->begin());
108  const_iterator lCont(this->end());
109  while ( fCont != lCont && (*fCont)->metObject()->name() != name ) { ++fCont; }
110  if ( fCont != lCont ) return (size_t)std::distance<const_iterator>(this->begin(),fCont);
112 }

◆ findIndex() [3/3]

size_t MissingETComponentMap_v1::findIndex ( MissingETBase::Types::bitmask_t  src) const

Definition at line 114 of file MissingETComponentMap_v1.cxx.

115 {
116  const_iterator fCont(this->begin());
117  const_iterator lCont(this->end());
118  while ( fCont != lCont && (*fCont)->metObject()->source() != src ) { ++fCont; }
119  if ( fCont != lCont ) return (size_t)std::distance<const_iterator>(this->begin(),fCont);
121 }

◆ front() [1/2]

ElementProxy DataVector< MissingETComponent_v1 , BASE >::front
inherited

Access the first element in the collection as an lvalue.

Returns
Proxy to the first element in the collection.

No checking is done to ensure that the container is not empty. Note that we return a proxy object rather than a reference; the proxy will handle deleting an owned element if it's assigned to.

◆ front() [2/2]

Access the first element in the collection as an rvalue.

Returns
The first element in the collection.

No checking is done to ensure that the container is not empty. Note that we return a const T* rather than a reference.

◆ get()

const MissingETComponent_v1 * DataVector< MissingETComponent_v1 , BASE >::get ( size_type  n) const
inherited

Access an element, as an rvalue.

Parameters
nArray index to access.
Returns
The element at n.

This is a synonym for operator[] const, to be used when calling from root (where we can't readily call just the const version of a method).

◆ getComponentIndex()

size_t MissingETComponentMap_v1::getComponentIndex ( const IParticle pPart) const

Definition at line 368 of file MissingETComponentMap_v1.cxx.

368 { return f_getIndex<0>(pPart); }

◆ getObjectIndex()

size_t MissingETComponentMap_v1::getObjectIndex ( const IParticle pPart) const

Definition at line 369 of file MissingETComponentMap_v1.cxx.

369 { return f_getIndex<1>(pPart); }

◆ insert() [1/5]

void DataVector< MissingETComponent_v1 , BASE >::insert ( iterator  position,
InputIterator  first,
InputIterator  last 
)
inherited

Add a group of new elements to the collection.

Parameters
positionIterator before which the element will be added.
firstThe start of the range to put in the container.
lastThe end of the range to put in the container.

The container's ownership policy will determine if it takes ownership of the new element.

Note: this method may only be called using the most derived DataVector in the hierarchy.

This overload is for the case where the iterator value type is convertible to T*.

◆ insert() [2/5]

void DataVector< MissingETComponent_v1 , BASE >::insert ( iterator  position,
InputIterator  first,
InputIterator  last 
)
inherited

Add a group of new elements to the collection.

Parameters
positionIterator before which the element will be added.
firstThe start of the range to put in the container.
lastThe end of the range to put in the container.

The container's ownership policy will determine if it takes ownership of the new element.

Note: this method may only be called using the most derived DataVector in the hierarchy.

This overload is for the case where the iterator value type is convertible to unique_ptr<T>.

◆ insert() [3/5]

void DataVector< MissingETComponent_v1 , BASE >::insert ( iterator  position,
std::initializer_list< value_type l 
)
inherited

Add a group of new elements to the collection.

Parameters
positionIterator before which the element will be added.
lAn initializer list.

The container's ownership policy will determine if it takes ownership of the new element.

Note: this method may only be called using the most derived DataVector in the hierarchy.

◆ insert() [4/5]

iterator DataVector< MissingETComponent_v1 , BASE >::insert ( iterator  position,
std::unique_ptr< base_value_type pElem 
)
inherited

Add a new element to the collection.

Parameters
positionIterator before which the element will be added.
pElemThe element to add to the collection.
Returns
An iterator that points to the inserted data.

The container must be an owning container.

Note: this method may only be called using the most derived DataVector in the hierarchy.

◆ insert() [5/5]

iterator DataVector< MissingETComponent_v1 , BASE >::insert ( iterator  position,
value_type  pElem 
)
inherited

Add a new element to the collection.

Parameters
positionIterator before which the element will be added.
pElemThe element to add to the collection.
Returns
An iterator that points to the inserted data.

The container's ownership policy will determine if it takes ownership of the new element.

Note: this method may only be called using the most derived DataVector in the hierarchy.

◆ insertMove()

void DataVector< MissingETComponent_v1 , BASE >::insertMove ( iterator  position,
DataVector< MissingETComponent_v1 > &  other 
)
inherited

Insert the contents of another DataVector, with auxiliary data copied via move semantics.

Parameters
positionIterator before which the new elements will be added.
otherThe vector to add.

The ownership mode of this vector must be the same as other; otherwise, an exception will be thrown.

If both vectors are view vectors, then this is the same as insert (position, other.begin(), other.end()) .

Otherwise, the elements from other will be inserted into this vector. This vector will take ownership of the elements, and the ownership mode of other will be changed to VIEW_ELEMENTS. Auxiliary data for these elements will be transferred, using move semantics if possible. (Thus, the auxiliary store for other may be modified and must not be locked.) Finally, the auxiliary store pointer for other will be cleared (but the store itself will not be deleted since it's not owned by the vector).

Note: this method may only be called using the most derived DataVector in the hierarchy.

◆ iter_swap()

static void DataVector< MissingETComponent_v1 , BASE >::iter_swap ( iterator  a,
iterator  b 
)
staticinherited

Swap the referents of two DataVector iterators.

Parameters
aThe first iterator for the swap.
bThe second iterator for the swap.

◆ max_size()

size_type DataVector< MissingETComponent_v1 , BASE >::max_size
noexceptinherited

Returns the size() of the largest possible collection.

◆ operator[]() [1/2]

ElementProxy DataVector< MissingETComponent_v1 , BASE >::operator[] ( size_type  n)
inherited

Access an element, as an lvalue.

Parameters
nArray index to access.
Returns
Proxy to the element at n.

No bounds checking is done. Note that we return a proxy object rather than a reference; the proxy will handle deleting an owned element if it's assigned to.

◆ operator[]() [2/2]

const MissingETComponent_v1 * DataVector< MissingETComponent_v1 , BASE >::operator[] ( size_type  n) const
inherited

Access an element, as an rvalue.

Parameters
nArray index to access.
Returns
The element at n.

No bounds checking is done. Note that we return a const T* rather than a reference.

◆ ownPolicy()

SG::OwnershipPolicy DataVector< MissingETComponent_v1 , BASE >::ownPolicy
inherited

Return the ownership policy setting for this container.

◆ pop_back()

void xAOD::MissingETComponentMap_v1::pop_back ( )

◆ push_back() [1/2]

value_type DataVector< MissingETComponent_v1 , BASE >::push_back ( std::unique_ptr< base_value_type pElem)
inherited

Add an element to the end of the collection.

Parameters
pElemThe element to add to the collection.

The container must be an owning container.

Note: this method may only be called using the most derived DataVector in the hierarchy.

Returns the pushed pointer.

◆ push_back() [2/2]

value_type DataVector< MissingETComponent_v1 , BASE >::push_back ( value_type  pElem)
inherited

Add an element to the end of the collection.

Parameters
pElemThe element to add to the collection.

The container's ownership policy will determine if it takes ownership of the new element.

Note: this method may only be called using the most derived DataVector in the hierarchy.

Returns the pushed pointer.

◆ rbegin() [1/2]

const_reverse_iterator DataVector< MissingETComponent_v1 , BASE >::rbegin
noexceptinherited

Return a const_reverse_iterator pointing past the end of the collection.

Returns
A const_reverse_iterator.

Note that dereferencing the iterator will yield a const T* rather than a reference.

◆ rbegin() [2/2]

reverse_iterator DataVector< MissingETComponent_v1 , BASE >::rbegin
noexceptinherited

Return a reverse_iterator pointing past the end of the collection.

Returns
A reverse_iterator.

Note that dereferencing the iterator will yield a proxy rather than a reference; the proxy will handle deleting an owned element if it's assigned to.

◆ rend() [1/2]

const_reverse_iterator DataVector< MissingETComponent_v1 , BASE >::rend
noexceptinherited

Return a const_reverse_iterator pointing at the beginning of the collection.

Returns
A const_reverse_iterator.

Note that dereferencing the iterator will yield a const T* rather than a reference.

◆ rend() [2/2]

reverse_iterator DataVector< MissingETComponent_v1 , BASE >::rend
noexceptinherited

Return a reverse_iterator pointing at the beginning of the collection.

Returns
A reverse_iterator.

Note that dereferencing the iterator will yield a proxy rather than a reference; the proxy will handle deleting an owned element if it's assigned to.

◆ reserve()

void DataVector< MissingETComponent_v1 , BASE >::reserve ( size_type  n)
inherited

Attempt to preallocate enough memory for a specified number of elements.

Parameters
nNumber of elements required.

◆ resize()

void xAOD::MissingETComponentMap_v1::resize ( size_type  sz)

◆ resortAux()

void DataVector< MissingETComponent_v1 , BASE >::resortAux ( iterator  beg,
iterator  end 
)
inherited

Reset indices / reorder aux data after elements have been permuted.

Parameters
begStart of the range of elements to process.
endEnd of the range of elements to process.

Call this after some operation that has permuted the elements in the container (such as sort). The index information in the elements will be used to permute all auxiliary data in the same way. Finally, all the indices will be reset in the correct order.

◆ retrieveMissingET() [1/3]

const MissingET * MissingETComponentMap_v1::retrieveMissingET ( const std::string &  name) const

Retrieve MissingET object by name.

Returns
Valid pointer to MissingET typed object representing a MET term. If the requested object cannot be found, NULL is returned.
Parameters
[in]namereference to non-modifiable dataword holding the name of the requested MET object.

Definition at line 127 of file MissingETComponentMap_v1.cxx.

128 {
129  const_iterator fCont(this->begin());
130  const_iterator lCont(this->end());
131  while ( fCont != lCont && (*fCont)->metObject()->name() != name ) { ++fCont; }
132  if ( fCont != lCont ) return (*fCont)->metObject();
133  return nullptr;
134 }

◆ retrieveMissingET() [2/3]

const MissingET * MissingETComponentMap_v1::retrieveMissingET ( MissingETBase::Types::bitmask_t  src,
bool  excl = false 
) const

Retrieve MissingET object by source indicator.

Returns
Valid pointer to MissingET typed object representing a MET term. If the requested object cannot be found, NULL is returned.
Parameters
[in]srcbit pattern defining the source of the requested MET object.
[in]exclflag controlling the bit pattern test - if false, the pointer to the first MET object found with a source indicator containing the requested bit pattern is returned; if true, the first MET object found with exactly the requested bit pattern as a source indicator is returned.

Definition at line 136 of file MissingETComponentMap_v1.cxx.

137 { return excl ? this->f_retrieveMissingETExcl(src) : this->f_retrieveMissingETIncl(src); }

◆ retrieveMissingET() [3/3]

const MissingET * MissingETComponentMap_v1::retrieveMissingET ( MissingETBase::Types::bitmask_t  src,
MissingETBase::Types::bitmask_t  sw,
bool  excl = false 
) const

Retrieve MissingET object by source indicator and status word.

Parameters
[in]swbit pattern defining the status of the MET contribution linking to the requested MET object.
Note
While the MissingET object name should be unique within a given MET composition, MET objects can have the same source with a different contribution status. This method supports a query for a MET object with a given source/status combination.

Definition at line 139 of file MissingETComponentMap_v1.cxx.

140 { return excl ? this->f_retrieveMissingETExcl(src,sw) : this->f_retrieveMissingETIncl(src,sw); }

◆ setClusters()

bool MissingETComponentMap_v1::setClusters ( const MissingET pMET,
const IParticle pPart,
const MissingETBase::Types::object_vector_t signalList 
)

Definition at line 276 of file MissingETComponentMap_v1.cxx.

277 {
278  // find all clusters
279  // check input: MissingET object pointer
280  size_t cIdx(this->findIndex(pMET)); if ( cIdx == MissingETBase::Numerical::invalidIndex() ) { return false; }
281  // check input: contributing particle pointer
282  size_t pIdx(this->at(cIdx)->findIndex(pPart)); if ( pIdx == MissingETBase::Numerical::invalidIndex() ) { return false; }
283  indexedlink_t ld(cIdx,pIdx);
284  // make sure cache is not cleared
285  bool firstCluster = true;
286  MissingETBase::Types::object_vector_t::const_iterator fSig(signalList.begin());
287  MissingETBase::Types::object_vector_t::const_iterator lSig(signalList.end());
288  for ( ; fSig != lSig; ++fSig ) {
289  if((*fSig)->type()==xAOD::Type::CaloCluster) {
290  if(firstCluster) {
291  firstCluster = false;
292  if ( m_clusterLinks.empty() ) {
293  const IParticleContainer* pCont(static_cast<const IParticleContainer*>((*fSig)->container()));
294  // if ( pCont == 0 )
295  // { printf("MissingETComponentMap::setClusters(...) - WARNING - cannot access cluster container (invalid NULL pointer), use %i words\n",(int)nClus); }
296  // else
297  m_clusterLinks.resize(pCont->size(), MissingETBase::Numerical::invalidLink());
298  } // empty cluster link list
299  } //first cluster
300  // all clusters refer to the same MET contribution
301  m_clusterLinks[(*fSig)->index()] = ld;
302  } // extract CaloClusters
303  } // loop over signal list
304 
305  return !firstCluster; // true if we processed any clusters
306 }

◆ setMostDerived()

virtual void DataVector< MissingETComponent_v1 , BASE >::setMostDerived
protectedvirtualinherited

Set m_isMostDerived for this instance and clear it for all bases.

Called from testInsert if the test fails. The flag may not have been set if this container was made via copy construction, so set it appropriately now so we can test again.

◆ setObjects()

bool MissingETComponentMap_v1::setObjects ( const MissingET pMET,
const IParticle pPart,
const MissingETBase::Types::object_vector_t objectList 
)

Definition at line 340 of file MissingETComponentMap_v1.cxx.

341 {
342  // check input: MissingET object pointer
343  size_t cIdx(this->findIndex(pMET)); if ( cIdx == MissingETBase::Numerical::invalidIndex() ) { return false; }
344  // loop input objects
345  size_t oldSize(m_particleLinks.size());
346  MissingETBase::Types::object_vector_t::const_iterator fObj(objects.begin());
347  MissingETBase::Types::object_vector_t::const_iterator lObj(objects.end());
348  for ( ; fObj != lObj; ++fObj ) { size_t pIdx(this->at(cIdx)->findIndex(pPart)); m_particleLinks[*fObj] = indexedlink_t(cIdx,pIdx); }
349  //
350  return oldSize < m_particleLinks.size();
351 }

◆ setTracks()

bool MissingETComponentMap_v1::setTracks ( const MissingET pMET,
const IParticle pPart,
const MissingETBase::Types::object_vector_t signalList 
)

Definition at line 308 of file MissingETComponentMap_v1.cxx.

309 {
310  // find all clusters
311  // check input: MissingET object pointer
312  size_t cIdx(this->findIndex(pMET)); if ( cIdx == MissingETBase::Numerical::invalidIndex() ) { return false; }
313  // check input: contributing particle pointer
314  size_t pIdx(this->at(cIdx)->findIndex(pPart)); if ( pIdx == MissingETBase::Numerical::invalidIndex() ) { return false; }
315  indexedlink_t ld(cIdx,pIdx);
316  // make sure cache is not cleared
317  bool firstTrack = true;
318  MissingETBase::Types::object_vector_t::const_iterator fSig(signalList.begin());
319  MissingETBase::Types::object_vector_t::const_iterator lSig(signalList.end());
320  for ( ; fSig != lSig; ++fSig ) {
321  if((*fSig)->type()==xAOD::Type::TrackParticle) {
322  if(firstTrack) {
323  firstTrack = false;
324  if ( m_trackLinks.empty() ) {
325  const IParticleContainer* pCont(static_cast<const IParticleContainer*>((*fSig)->container()));
326  // if ( pCont == 0 )
327  // { printf("MissingETComponentMap::setTracks(...) - WARNING - cannot access track container (invalid NULL pointer), use %i words\n",(int)nTrack); }
328  // else
329  m_trackLinks.resize(pCont->size(), MissingETBase::Numerical::invalidLink());
330  } // empty track link list
331  } // first track
332  // all tracks refer to the same MET contribution
333  m_trackLinks[(*fSig)->index()] = ld;
334  } // extract TrackParticles
335  } // loop over signal list
336 
337  return !firstTrack; // true if we processed any clusters
338 }

◆ shift()

void DataVector< MissingETComponent_v1 , BASE >::shift ( size_t  pos,
ptrdiff_t  offs 
)
privateinherited

Shift the auxiliary elements of the container.

Parameters
posThe starting index for the shift.
offsThe (signed) amount of the shift.

The elements in the container should have already been shifted; this operation will then adjust the element indices and also shift the elements in the vectors for all aux data items. offs may be either positive or negative.

If offs is positive, then the container is growing. The container size should be increased by offs, the element at pos moved to pos + offs, and similarly for following elements. The elements between pos and pos + offs should be default-initialized.

If offs is negative, then the container is shrinking. The element at pos should be moved to pos + offs, and similarly for following elements. The container should then be shrunk by -offs elements (running destructors as appropriate).

◆ shrink_to_fit()

void DataVector< MissingETComponent_v1 , BASE >::shrink_to_fit
inherited

◆ size()

size_type DataVector< MissingETComponent_v1 , BASE >::size
noexceptinherited

Returns the number of elements in the collection.

Could in principle be inherited from the base class, but redeclared in the derived class to avoid root6 bugs.

◆ sort() [1/2]

void xAOD::MissingETComponentMap_v1::sort ( )

◆ sort() [2/2]

template<class COMPARE >
void xAOD::MissingETComponentMap_v1::sort ( COMPARE  comp)

◆ stdcont()

const PtrVector & DataVector< MissingETComponent_v1 , BASE >::stdcont
inherited

Return the underlying std::vector of the container.

Returns
Reference to the std::vector actually holding the collection.

Note that DataVector<T>::stdcont does not necessarily return a std::vector<T*> if DataVector inheritance is being used.

◆ swap()

void DataVector< MissingETComponent_v1 , BASE >::swap ( DataVector< MissingETComponent_v1 > &  rhs)
inherited

Swap this collection with another.

Parameters
rhsThe collection with which to swap.

Ownership is swapped along with the collection content.

Note: this method may only be called using the most-derived DataVector in the hierarchy. The rhs must also be referenced using the most-derived DataVector.

◆ swapElement() [1/4]

void DataVector< MissingETComponent_v1 , BASE >::swapElement ( iterator  pos,
std::unique_ptr< base_value_type newElem,
std::unique_ptr< base_value_type > &  oldElem 
)
inherited

Swap one element out of the container.

Parameters
posThe element in the container to swap.
newElemNew element to put in the container. May be 0.
oldElemReference to receive the element removed from the container.

Reference oldElem is initialized with element pos of the collection (no bounds checking). Then element index is set to newElem.

The collection must own its elements to use its interface. The collection will take ownership of newElem and will return ownership of oldElem.

Note: this method may only be called using the most derived DataList in the hierarchy.

◆ swapElement() [2/4]

void DataVector< MissingETComponent_v1 , BASE >::swapElement ( iterator  pos,
value_type  newElem,
reference  oldElem 
)
inherited

Swap one element out of the container.

Parameters
posThe element in the container to swap.
newElemNew element to put in the container. May be 0.
oldElemReference to receive the element removed from the container.

Reference oldElem is initialized with element pos of the collection (no bounds checking). Then element index is set to newElem. If the collection owns its elements, then it will take ownership of newElem and release (without deleting) the element returned through oldElem.

Note: this method may only be called using the most derived DataList in the hierarchy.

◆ swapElement() [3/4]

void DataVector< MissingETComponent_v1 , BASE >::swapElement ( size_type  index,
std::unique_ptr< base_value_type newElem,
std::unique_ptr< base_value_type > &  oldElem 
)
inherited

Swap one element out of the container.

Parameters
indexIndex of the element in the container to swap.
newElemNew element to put in the container. May be 0.
oldElemReference to receive the element removed from the container.

Reference oldElem is initialized with element index of the collection (no bounds checking). Then element index is set to newElem.

The collection must own its elements to use its interface. The collection will take ownership of newElem and will return ownership of oldElem.

Note: this method may only be called using the most derived DataVector in the hierarchy.

◆ swapElement() [4/4]

void DataVector< MissingETComponent_v1 , BASE >::swapElement ( size_type  index,
value_type  newElem,
reference  oldElem 
)
inherited

Swap one element out of the container.

Parameters
indexIndex of the element in the container to swap.
newElemNew element to put in the container. May be 0.
oldElemReference to receive the element removed from the container.

Reference oldElem is initialized with element index of the collection (no bounds checking). Then element index is set to newElem. If the collection owns its elements, then it will take ownership of newElem and release (without deleting) the element returned through oldElem.

Note: this method may only be called using the most derived DataVector in the hierarchy.

◆ testInsert()

void DataVector< MissingETComponent_v1 , BASE >::testInsert ( const char *  op)
inherited

Test if we can insert; raise an exception if not.

Parameters
opDescription of the attempted operation.

In order to maintain type-safety, we can only allow insertions using the most-derived instance of DataVector. This checks this by testing the m_isMostDerived, which is set by the constructors to true only for the most-derived instance. If the test fails, we call to potentially out-of-line code to continue.

◆ testInsertOol()

void DataVector< MissingETComponent_v1 , BASE >::testInsertOol ( const char *  op)
inherited

Test if we can insert; raise an exception if not.

Parameters
opDescription of the attempted operation.

This continues the test of testInsert. There is one case where m_isMostDerived may not be set correctly. If this container was made via copy construction, then all the m_isMostDerived flags will be false. So we call setMostDerived to set the flags correctly and test again. If the test fails again, then we raise an exception.

Member Data Documentation

◆ has_virtual

const bool DataVector< MissingETComponent_v1 , BASE >::has_virtual
staticinherited

This is true for any DataVector class if we need to use virtual derivation to get to the base DataVector class.

Definition at line 801 of file DataVector.h.

◆ m_clusterLinkReserve

const size_t xAOD::MissingETComponentMap_v1::m_clusterLinkReserve =10000
staticprivate

Definition at line 293 of file MissingETComponentMap_v1.h.

◆ m_clusterLinks

signal_vector_t xAOD::MissingETComponentMap_v1::m_clusterLinks
protected

Store for linked cluuster signal information lookup.

In case of a signal (xAOD::CaloCluster, xAOD::TrackParticle) object look-up, the index of these objects can be directly used to check if they have already been used in the actual MET composition (random access in this index parallel store - with respect to the actual xAOD::CaloClusterContainer and the xAOD::TrackParticleContainer).

Definition at line 212 of file MissingETComponentMap_v1.h.

◆ m_deleter

ROOT_SELECTION_NS::MemberAttributes< kTransient > DataVector< MissingETComponent_v1 , BASE >::m_deleter
inherited

Definition at line 3436 of file DataVector.h.

◆ m_isMostDerived [1/2]

SG::IsMostDerivedFlag DataVector< MissingETComponent_v1 , BASE >::m_isMostDerived
privateinherited

This flag is true if this DV instance is the most-derived one.

We set this to true in the top-level constructor; the constructor then calls clearMostDerived on the base classes.

Definition at line 2038 of file DataVector.h.

◆ m_isMostDerived [2/2]

ROOT_SELECTION_NS::MemberAttributes< kTransient > DataVector< MissingETComponent_v1 , BASE >::m_isMostDerived
inherited

Automatically generate dictionary for contained vector.

Declare the automatically created variable transient

Definition at line 3435 of file DataVector.h.

◆ m_ownPolicy

ROOT_SELECTION_NS::MemberAttributes< kTransient > DataVector< MissingETComponent_v1 , BASE >::m_ownPolicy
inherited

We do not want to save this.

The P->T converter should decide the ownership mode.

Definition at line 3440 of file DataVector.h.

◆ m_particleLinks

particle_map_t xAOD::MissingETComponentMap_v1::m_particleLinks
protected

Store for linked physics object information lookup.

In case of physics objects, a map look-up is implemented as the lack of a common container for these objects does not allow using the index as a unique key. The object pointer is used instead, and the look-up is provided by a standard map (binary search). Typically, the number of entries in this map is rather small (much less than 100) so that this storage technology should not introduce performance problems.

Definition at line 218 of file MissingETComponentMap_v1.h.

◆ m_trackLinkReserve

const size_t xAOD::MissingETComponentMap_v1::m_trackLinkReserve =10000
staticprivate

Definition at line 294 of file MissingETComponentMap_v1.h.

◆ m_trackLinks

signal_vector_t xAOD::MissingETComponentMap_v1::m_trackLinks
protected

Store for linked track signal information lookup.

In case of a signal (xAOD::CaloCluster, xAOD::TrackParticle) object look-up, the index of these objects can be directly used to check if they have already been used in the actual MET composition (random access in this index parallel store - with respect to the actual xAOD::CaloClusterContainer and the xAOD::TrackParticleContainer).

Definition at line 215 of file MissingETComponentMap_v1.h.

◆ must_own

constexpr bool DataVector< MissingETComponent_v1 , BASE >::must_own
staticconstexprinherited

If true, then this type must own its contents.

Definition at line 859 of file DataVector.h.


The documentation for this class was generated from the following files:
DataVector< MissingETComponent_v1 >::reserve
void reserve(size_type n)
Attempt to preallocate enough memory for a specified number of elements.
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
xAOD::MissingETComponentMap_v1::m_trackLinks
signal_vector_t m_trackLinks
Store for linked track signal information lookup.
Definition: MissingETComponentMap_v1.h:215
xAOD::name
name
Definition: TriggerMenuJson_v1.cxx:29
xAOD::MissingETComponentMap_v1::indexedlink_t
MissingETBase::Types::indexedlink_t indexedlink_t
Type for the description of the link locations.
Definition: MissingETComponentMap_v1.h:190
xAOD::MissingETComponentMap_v1::m_particleLinks
particle_map_t m_particleLinks
Store for linked physics object information lookup.
Definition: MissingETComponentMap_v1.h:218
MissingETBase::Source::hasPattern
static bool hasPattern(E bits, F mask)
Generic check for given pattern.
Definition: MissingETBase.h:382
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
LArConditions2Ntuple.objects
objects
Definition: LArConditions2Ntuple.py:56
MissingETBase::UsageHandler::PhysicsObject
@ PhysicsObject
Physics object based.
Definition: MissingETCompositionBase.h:187
DataVector< MissingETComponent_v1 >::const_iterator
DataModel_detail::const_iterator< DataVector > const_iterator
Standard const_iterator.
Definition: DataVector.h:837
xAOD::MissingETComponentMap_v1::setClusters
bool setClusters(const MissingET *pMET, const IParticle *pPart, const MissingETBase::Types::object_vector_t &signalList)
Definition: MissingETComponentMap_v1.cxx:276
WriteCellNoiseToCool.src
src
Definition: WriteCellNoiseToCool.py:513
xAOD::MissingETComponentMap_v1::f_checkObjectUsage
bool f_checkObjectUsage(MissingETBase::Types::object_vector_t &sig, const signal_vector_t &signalLinks) const
Check signal object usage.
Definition: MissingETComponentMap_v1.cxx:219
xAOD::MissingETComponentMap_v1::m_trackLinkReserve
static const size_t m_trackLinkReserve
Definition: MissingETComponentMap_v1.h:294
MissingETBase
General namespace for MET EDM software.
Definition: MissingETAssociation_v1.h:454
xAOD::MissingETComponentMap_v1::setObjects
bool setObjects(const MissingET *pMET, const IParticle *pPart, const MissingETBase::Types::object_vector_t &objectList)
Definition: MissingETComponentMap_v1.cxx:340
MissingETBase::Numerical::invalidIndex
static size_t invalidIndex()
Access invalid index indicator.
Definition: MissingETBase.h:103
MissingETBase::UsageHandler::OnlyCluster
@ OnlyCluster
CaloCluster based only.
Definition: MissingETCompositionBase.h:184
xAOD::CaloCluster
CaloCluster_v1 CaloCluster
Define the latest version of the calorimeter cluster class.
Definition: Event/xAOD/xAODCaloEvent/xAODCaloEvent/CaloCluster.h:19
xAOD::TrackParticle
TrackParticle_v1 TrackParticle
Reference the current persistent version:
Definition: Event/xAOD/xAODTracking/xAODTracking/TrackParticle.h:13
xAOD::MissingETComponentMap_v1::setTracks
bool setTracks(const MissingET *pMET, const IParticle *pPart, const MissingETBase::Types::object_vector_t &signalList)
Definition: MissingETComponentMap_v1.cxx:308
master.flag
bool flag
Definition: master.py:29
python.BuildSignatureFlags.sig
sig
Definition: BuildSignatureFlags.py:215
xAOD::MissingETComponentMap_v1::f_retrieveMissingETIncl
const MissingET * f_retrieveMissingETIncl(MissingETBase::Types::bitmask_t src) const
Definition: MissingETComponentMap_v1.cxx:164
DataVector< MissingETComponent_v1 >
xAOD::MissingETComponentMap_v1::findIndex
size_t findIndex(const MissingET *pMET) const
Definition: MissingETComponentMap_v1.cxx:96
python.L1.Config.LegacyTopoMergerMap.signals
signals
Definition: LegacyTopoMergerMap.py:13
MissingETBase::UsageHandler::TrackCluster
@ TrackCluster
Both cluster and track based.
Definition: MissingETCompositionBase.h:186
MissingETBase::Status::Tags::hasPattern
static bool hasPattern(Types::bitmask_t sw, T pat)
Definition: MissingETCompositionBase.h:132
MissingETBase::Numerical::invalidLink
static Types::indexedlink_t invalidLink()
Access invaalid link tag.
Definition: MissingETBase.h:105
MissingETBase::UsageHandler::OnlyTrack
@ OnlyTrack
Track based only.
Definition: MissingETCompositionBase.h:185
xAOD::MissingETComponentMap_v1::m_clusterLinks
signal_vector_t m_clusterLinks
Store for linked cluuster signal information lookup.
Definition: MissingETComponentMap_v1.h:212
xAOD::MissingETComponentMap_v1::checkUsage
bool checkUsage(const IParticle *pPart, MissingETBase::UsageHandler::Policy p=MissingETBase::UsageHandler::OnlyCluster) const
Check if a given object is already used in MET.
Definition: MissingETComponentMap_v1.cxx:187
DataVector< MissingETComponent_v1 >::end
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
DeMoScan.first
bool first
Definition: DeMoScan.py:534
xAOD::MissingETComponentMap_v1::f_setupLookupCache
void f_setupLookupCache(signal_vector_t &signalLinks, size_t reserve)
Set up the signal object lookup.
Definition: MissingETComponentMap_v1.cxx:357
LArNewCalib_DelayDump_OFC_Cali.idx
idx
Definition: LArNewCalib_DelayDump_OFC_Cali.py:69
xAOD::MissingETComponentMap_v1::f_retrieveMissingETExcl
const MissingET * f_retrieveMissingETExcl(MissingETBase::Types::bitmask_t src) const
Definition: MissingETComponentMap_v1.cxx:146
xAOD::JetConstituentVector::iterator
Definition: JetConstituentVector.h:121
DataVector< MissingETComponent_v1 >::at
const MissingETComponent_v1 * at(size_type n) const
Access an element, as an rvalue.
geometry_dat_to_json.ld
ld
Definition: geometry_dat_to_json.py:14
MissingETBase::Types::object_vector_t
std::vector< const xAOD::IParticle * > object_vector_t
Vector of object type.
Definition: MissingETCompositionBase.h:59
DataVector< MissingETComponent_v1 >::begin
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
xAOD::MissingETComponentMap_v1::m_clusterLinkReserve
static const size_t m_clusterLinkReserve
Definition: MissingETComponentMap_v1.h:293