ATLAS Offline Software
Loading...
Searching...
No Matches
TrackParticleAssocs Class Reference

#include <TrackParticleAssocs.h>

Inheritance diagram for TrackParticleAssocs:
Collaboration diagram for TrackParticleAssocs:

Public Types

Store Iterator Types
typedef AssociationVectorIterator asso_iterator
 association iterator type
typedef AssociationObjectIterator object_iterator
 object iterator type

Public Member Functions

 TrackParticleAssocs ()
 Default constructor:
 TrackParticleAssocs (const TrackParticleAssocs &rhs)
 Copy constructor:
TrackParticleAssocsoperator= (const TrackParticleAssocs &rhs)
 Assignment operator:
 ~TrackParticleAssocs ()
 Constructor with parameters:
bool assocs (const Rec::TrackParticle *object, ConstDataVector< Rec::TrackParticleContainer > &associatedElems) const
 Retrieve all the associated-to objects which have been associated to the given.
bool getAssociations (const AssociationMap< Rec::TrackParticleContainer, Rec::TrackParticleContainer >::object_type *objPointer, AssociationMap< Rec::TrackParticleContainer, Rec::TrackParticleContainer >::asso_list &assocs) const
 Reimplement the method from the base class to not shaddow it.
bool getAssociations (const AssociationMap< Rec::TrackParticleContainer, Rec::TrackParticleContainer >::object_iterator &objIter, AssociationMap< Rec::TrackParticleContainer, Rec::TrackParticleContainer >::asso_list &assocs) const
 Reimplement the method from the base class to not shaddow it.
void addAssocStore (const DataLink< TrackParticleAssocs > &assocStore)
DataLink< TrackParticleAssocsassocStore (const std::string &name) const
 Look up an associated store. For testing.
size_t nAssocStores () const
 Number of associated stores.
std::vector< DataLink< TrackParticleAssocs > > getAssocStores () const
 Return links to all other association stores.
Add Associations
Parameters
objectContainer- pointer to the object container
objectIndex- index of object in container
objectPointer- pointer to object
assoContainer- container of potentially associated objects
assoIndex- index of associated object in container
assoPointer- pointer to associated object
void addAssociation (const object_container_type *objectContainer, const object_index_type &objectIndex, const asso_container_type *assoContainer, const asso_index_type &assoIndex)

Protected Types

typedef DataLink< TrackParticleAssocsTrackParticleAssocsLink_t

Protected Attributes

std::map< std::string, TrackParticleAssocsLink_tm_assocStores

Object and Association Iterators

The association iterators are returned for a given object, which can either be referenced by its pointer or its iterator in the internal store.

Parameters
objectPointer- pointer to a given object
objectIter- iterator to a given object
store_type m_associationMap
 internal store
object_iterator beginObject () const
 begin iterator for objects
object_iterator endObject () const
 end iterator for objects
asso_iterator beginAssociation (const object_type *objectPointer) const
 begin iterator for associations
asso_iterator endAssociation (const object_type *objectPointer) const
 end iterator for associations
const object_typegetObject (const object_iterator &objectIter) const
 get association iterators by object iterator
object_iterator findObject (const object_type *theObject) const
 finding an object with allocation
bool containsObject (const object_type *theObject) const
 testing if object is in store
size_t getNumberOfObjects () const
 retrieve number of objects in store
const asso_typegetAssociation (asso_iterator assoIter) const
 associations iterator access
asso_iterator findAssociation (const object_iterator &objectIter, const asso_type *assoPointer) const
 find association
bool containsAssociation (const object_iterator &objectIter, const asso_type *assoPointer) const
 containment check
bool getObjects (const asso_type *assoPointer, object_list &theObjects) const
 get all objects for a given association
bool getAssociations (const object_type *objPointer, asso_list &assocs) const
 get all associations for a given object
size_t size ()
 get number of associations
size_t getNumberOfAssociations (const object_type *objectPointer) const
store_iterator_type internalFind (const object_link &objectLink, const asso_link &assoLink)
 internally used find method
bool addToStore (const object_link &objectLink, const asso_link &assoLink)
 internally used function to add links to store

Argument and Internal Store Types

typedef Rec::TrackParticleContainer object_container_type
typedef object_container_type::base_value_type object_type
typedef SG::GenerateIndexingPolicy< object_container_type >::type::index_type object_index_type
typedef ElementLink< object_container_typeobject_link
typedef std::list< const object_type * > object_list
typedef Rec::TrackParticleContainer asso_container_type
typedef asso_container_type::base_value_type asso_type
typedef SG::GenerateIndexingPolicy< asso_container_type >::type::index_type asso_index_type
typedef std::list< const asso_type * > asso_list
typedef ElementLink< asso_container_typeasso_link
typedef ElementLinkVector< asso_container_typeasso_store
typedef asso_store::const_iterator asso_store_iterator
typedef std::map< object_link, asso_storestore_type
typedef store_type::iterator store_iterator_type
static const asso_store s_dum_asso_store

Detailed Description

Definition at line 25 of file TrackParticleAssocs.h.

Member Typedef Documentation

◆ asso_container_type

Definition at line 53 of file AssociationMap.h.

◆ asso_index_type

Definition at line 58 of file AssociationMap.h.

◆ asso_iterator

typedef AssociationVectorIterator AssociationMap< Rec::TrackParticleContainer, Rec::TrackParticleContainer >::asso_iterator
inherited

association iterator type

Definition at line 81 of file AssociationMap.h.

◆ asso_link

◆ asso_list

typedef std::list<const asso_type*> AssociationMap< Rec::TrackParticleContainer, Rec::TrackParticleContainer >::asso_list
inherited

Definition at line 59 of file AssociationMap.h.

◆ asso_store

◆ asso_store_iterator

Definition at line 62 of file AssociationMap.h.

◆ asso_type

◆ object_container_type

Definition at line 44 of file AssociationMap.h.

◆ object_index_type

Definition at line 49 of file AssociationMap.h.

◆ object_iterator

object iterator type

Definition at line 84 of file AssociationMap.h.

◆ object_link

◆ object_list

typedef std::list<const object_type*> AssociationMap< Rec::TrackParticleContainer, Rec::TrackParticleContainer >::object_list
inherited

Definition at line 51 of file AssociationMap.h.

◆ object_type

◆ store_iterator_type

typedef store_type::iterator AssociationMap< Rec::TrackParticleContainer, Rec::TrackParticleContainer >::store_iterator_type
inherited

Definition at line 64 of file AssociationMap.h.

◆ store_type

Definition at line 63 of file AssociationMap.h.

◆ TrackParticleAssocsLink_t

Constructor & Destructor Documentation

◆ TrackParticleAssocs() [1/2]

TrackParticleAssocs::TrackParticleAssocs ( )

◆ TrackParticleAssocs() [2/2]

TrackParticleAssocs::TrackParticleAssocs ( const TrackParticleAssocs & rhs)

◆ ~TrackParticleAssocs()

TrackParticleAssocs::~TrackParticleAssocs ( )
inline

Constructor with parameters:

Destructor:

Definition at line 104 of file TrackParticleAssocs.h.

105{}

Member Function Documentation

◆ addAssociation()

void AssociationMap< Rec::TrackParticleContainer, Rec::TrackParticleContainer >::addAssociation ( const object_container_type * objectContainer,
const object_index_type & objectIndex,
const asso_container_type * assoContainer,
const asso_index_type & assoIndex )
inherited

◆ addAssocStore()

void TrackParticleAssocs::addAssocStore ( const DataLink< TrackParticleAssocs > & assocStore)

Definition at line 83 of file TrackParticleAssocs.cxx.

84 {
85 const std::string& id = assocStore.dataID();
86 const std::map<std::string, DataLink<TrackParticleAssocs> >::const_iterator itr = m_assocStores.find(id);
87 if ( itr == m_assocStores.end() ) {
89 }
90 }
DataLink< TrackParticleAssocs > assocStore(const std::string &name) const
Look up an associated store. For testing.

◆ addToStore()

bool AssociationMap< Rec::TrackParticleContainer, Rec::TrackParticleContainer >::addToStore ( const object_link & objectLink,
const asso_link & assoLink )
protectedinherited

internally used function to add links to store

◆ assocs()

bool TrackParticleAssocs::assocs ( const Rec::TrackParticle * object,
ConstDataVector< Rec::TrackParticleContainer > & associatedElems ) const

Retrieve all the associated-to objects which have been associated to the given.

Parameters
object

Definition at line 47 of file TrackParticleAssocs.cxx.

49{
50 if ( 0 == object ) {
51 return false;
52 }
53
54 // do the underlying stores contain this object ?
55 bool contained = false;
56 for ( std::map<std::string, DataLink<TrackParticleAssocs> >::const_iterator itr = m_assocStores.begin();
57 itr != m_assocStores.end();
58 ++itr ) {
59 if ( itr->second->assocs(object, associatedElems) ) {
60 contained = true;
61 }
62 }
63
64 if ( !contained && !containsObject( object ) ) {
65 return false;
66 }
67
68 associatedElems.reserve( associatedElems.size() + getNumberOfAssociations(object) );
71 itr != endAssocs;
72 ++itr ) {
73 associatedElems.push_back( const_cast<Rec::TrackParticle*>(*itr) );
74 }
75
76 return true;
77}
asso_iterator beginAssociation(const object_type *objectPointer) const
size_t getNumberOfAssociations(const object_type *objectPointer) const
asso_iterator endAssociation(const object_type *objectPointer) const
value_type push_back(value_type pElem)
Add an element to the end of the collection.

◆ assocStore()

DataLink< TrackParticleAssocs > TrackParticleAssocs::assocStore ( const std::string & name) const

Look up an associated store. For testing.

Definition at line 94 of file TrackParticleAssocs.cxx.

95{
96 std::map<std::string, TrackParticleAssocsLink_t>::const_iterator i =
97 m_assocStores.find (name);
98 if (i != m_assocStores.end())
99 return i->second;
100 return DataLink<TrackParticleAssocs>();
101}

◆ beginAssociation()

asso_iterator AssociationMap< Rec::TrackParticleContainer, Rec::TrackParticleContainer >::beginAssociation ( const object_type * objectPointer) const
inherited

begin iterator for associations

◆ beginObject()

begin iterator for objects

◆ containsAssociation()

bool AssociationMap< Rec::TrackParticleContainer, Rec::TrackParticleContainer >::containsAssociation ( const object_iterator & objectIter,
const asso_type * assoPointer ) const
inlineinherited

containment check

Definition at line 165 of file AssociationMap.h.

templated base class for a look-up map for associations
bool containsAssociation(const object_iterator &objectIter, const asso_type *assoPointer) const
containment check

◆ containsObject()

bool AssociationMap< Rec::TrackParticleContainer, Rec::TrackParticleContainer >::containsObject ( const object_type * theObject) const
inlineinherited

testing if object is in store

Definition at line 143 of file AssociationMap.h.

144 { return this->findObject(theObject) != this->endObject(); }
object_iterator findObject(const object_type *theObject) const

◆ endAssociation()

asso_iterator AssociationMap< Rec::TrackParticleContainer, Rec::TrackParticleContainer >::endAssociation ( const object_type * objectPointer) const
inherited

end iterator for associations

◆ endObject()

end iterator for objects

◆ findAssociation()

asso_iterator AssociationMap< Rec::TrackParticleContainer, Rec::TrackParticleContainer >::findAssociation ( const object_iterator & objectIter,
const asso_type * assoPointer ) const
inlineinherited

find association

Definition at line 158 of file AssociationMap.h.

asso_iterator findAssociation(const object_iterator &objectIter, const asso_type *assoPointer) const
find association

◆ findObject()

◆ getAssociation()

const asso_type * AssociationMap< Rec::TrackParticleContainer, Rec::TrackParticleContainer >::getAssociation ( asso_iterator assoIter) const
inlineinherited

associations iterator access

The associations are accessed as function of the row key (the object).

Definition at line 154 of file AssociationMap.h.

155 { return *assoIter; }

◆ getAssociations() [1/3]

bool AssociationMap< Rec::TrackParticleContainer, Rec::TrackParticleContainer >::getAssociations ( const object_type * objPointer,
asso_list & assocs ) const
inherited

get all associations for a given object

◆ getAssociations() [2/3]

Reimplement the method from the base class to not shaddow it.

Definition at line 70 of file TrackParticleAssocs.h.

74 {
75 return AssociationMap< Rec::TrackParticleContainer,
76 Rec::TrackParticleContainer >::getAssociations( objIter, assocs );
77 }
bool getAssociations(const AssociationMap< Rec::TrackParticleContainer, Rec::TrackParticleContainer >::object_type *objPointer, AssociationMap< Rec::TrackParticleContainer, Rec::TrackParticleContainer >::asso_list &assocs) const
Reimplement the method from the base class to not shaddow it.
bool assocs(const Rec::TrackParticle *object, ConstDataVector< Rec::TrackParticleContainer > &associatedElems) const
Retrieve all the associated-to objects which have been associated to the given.

◆ getAssociations() [3/3]

Reimplement the method from the base class to not shaddow it.

Definition at line 60 of file TrackParticleAssocs.h.

64 {
65 return AssociationMap< Rec::TrackParticleContainer,
66 Rec::TrackParticleContainer >::getAssociations( objPointer, assocs );
67 }

◆ getAssocStores()

std::vector< DataLink< TrackParticleAssocs > > TrackParticleAssocs::getAssocStores ( ) const

Return links to all other association stores.

Definition at line 110 of file TrackParticleAssocs.cxx.

111{
112 std::vector<DataLink<TrackParticleAssocs> > ret;
113 ret.reserve (m_assocStores.size());
114 for (const auto& p : m_assocStores) {
115 ret.push_back (p.second);
116 }
117 return ret;
118}

◆ getNumberOfAssociations()

size_t AssociationMap< Rec::TrackParticleContainer, Rec::TrackParticleContainer >::getNumberOfAssociations ( const object_type * objectPointer) const
inlineinherited

◆ getNumberOfObjects()

size_t AssociationMap< Rec::TrackParticleContainer, Rec::TrackParticleContainer >::getNumberOfObjects ( ) const
inlineinherited

retrieve number of objects in store

Definition at line 147 of file AssociationMap.h.

147{ return this->size(); }

◆ getObject()

const object_type * AssociationMap< Rec::TrackParticleContainer, Rec::TrackParticleContainer >::getObject ( const object_iterator & objectIter) const
inlineinherited

get association iterators by object iterator

type-safe retrieval of object pointer from iterator

Definition at line 135 of file AssociationMap.h.

136 { return (*objectIter).getObject(); }

◆ getObjects()

bool AssociationMap< Rec::TrackParticleContainer, Rec::TrackParticleContainer >::getObjects ( const asso_type * assoPointer,
object_list & theObjects ) const
inherited

get all objects for a given association

◆ internalFind()

store_iterator_type AssociationMap< Rec::TrackParticleContainer, Rec::TrackParticleContainer >::internalFind ( const object_link & objectLink,
const asso_link & assoLink )
inlineprotectedinherited

internally used find method

Definition at line 210 of file AssociationMap.h.

212 {
213 // check key
217 iMap != mapEnd;
218 ++iMap ) {
219 // look for the address of the pointed-at object
220 // must dereference the ElementLink pointer
221 if ( iMap->first.cptr() == objectLink.cptr() ) {
222 foundIter = iMap;
223 break;
224 }
225 }
226
227 if ( foundIter == m_associationMap.end() ) { return foundIter; }
228 // check data
229 if ( std::find((foundIter->second).begin(),
230 (foundIter->second).end(),
231 assoLink) !=
232 (foundIter->second).end() )
233 { return foundIter; }
234 // not found at all
235 return m_associationMap.end();
236 }

◆ nAssocStores()

size_t TrackParticleAssocs::nAssocStores ( ) const

Number of associated stores.

Definition at line 104 of file TrackParticleAssocs.cxx.

105{
106 return m_assocStores.size();
107}

◆ operator=()

TrackParticleAssocs & TrackParticleAssocs::operator= ( const TrackParticleAssocs & rhs)

Assignment operator:

Definition at line 34 of file TrackParticleAssocs.cxx.

35{
36 if ( this != &rhs ) {
39 }
40 return *this;
41}

◆ size()

get number of associations

Definition at line 188 of file AssociationMap.h.

188{ return m_associationMap.size(); }

Member Data Documentation

◆ m_associationMap

internal store

Definition at line 207 of file AssociationMap.h.

◆ m_assocStores

std::map<std::string, TrackParticleAssocsLink_t> TrackParticleAssocs::m_assocStores
protected

Definition at line 97 of file TrackParticleAssocs.h.

◆ s_dum_asso_store

Definition at line 68 of file AssociationMap.h.


The documentation for this class was generated from the following files: