ATLAS Offline Software
MissingETContainer_v1.icc
Go to the documentation of this file.
1 // -*- c++ -*-
2 
3 /*
4  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
5 */
6 
7 
8 ///////////////////////////////////////////////////////////////
9 // The rest of the file contains doxygen documentation only! //
10 ///////////////////////////////////////////////////////////////
11 
12 /*! @class xAOD::MissingETContainer_v1
13  *
14  * Each xAOD::MissingET_v1 object in the xAOD::MissingETContainer_v1 represents a contribution to MET from a given physics object or signal type. The
15  * sequence of the objects in the collection is the sequence with which the MET terms have been calculated, i.e. the object at index 0 in the collection
16  * has the highest priority with respect to its MET contribution.
17  *
18  * This sequence can only be relied on if the components are constructed by the recommended MET tool sequence, and the xAOD::MissingET_v1 objects
19  * are recorded in this sequence. For fail safe and random access, each xAOD::MissingET_v1 object has a unique name (key) to indicate the
20  * contribution it represents. The corresponding additional functionality for this random accesss is added on top of the base class features.
21  * This includes access operators using the name of a given xAOD::MissingET object by its name and, in addition, by its source type
22  * (see MissingETBase::Source).
23  *
24  * It is expected that at least one of the MET object identifiers (name or source indicator) is unique within the objects stored in this container (it should
25  * be the name!). There is no enforcement of this policy, though. The functions randomly accessing MET objects will return the pointer to the object with the
26  * first name or source indicator match.
27  */
28 
29 //////////////////
30 // Constructors //
31 //////////////////
32 
33 /*! @fn xAOD::MissingETContainer_v1::MissingETContainer_v1(SG::OwnershipPolicy ownPolicy,SG::IndexTrackingPolicy trackIndices)
34  *
35  * Constructs a DataVector< xAOD::MissingET_v1 > container.
36  *
37  * @param[in] ownPolicy ownership policy (optional, defaults to SG::OWN_ELEMENTS - the objects pointed to by the entries in this container are owned by the container).
38  * @param[in] trackIndices track indices policy (optional, defaults to SG::DEFAULT_TRACK_INDICES - track indices default).
39  */
40 
41 /*! @fn const xAOD::MissingET_v1* xAOD::MissingETContainer_v1::operator[](const std::string& name) const
42  *
43  * @return Valid pointer to a non-modifiable xAOD::MissingET_v1 object with requested name if found, else a @c NULL pointer.
44  *
45  * @param[in] name reference to non-modifiable string holding the requested MET object name (key)
46  *
47  * @note The pointer to the first object with a matching name is returned.
48  */
49 
50 /*! @fn xAOD::MissingET_v1* xAOD::MissingETContainer_v1::operator[](const std::string& name);
51  *
52  * @return Valid pointer to a modifiable xAOD::MissingET_v1 object with requested name if found, else a @c NULL pointer.
53  *
54  * @param[in] name reference to non-modifiable string holding the requested MET object name (key)
55  *
56  * @note The pointer to the first object with a matching name is returned.
57  */
58 
59 /////////////////////
60 // Object Searches //
61 /////////////////////
62 
63 /*! @fn xAOD::MissingETContainer_v1::const_iterator xAOD::MissingETContainer_v1::find(const std::string& name) const
64  *
65  * This operation is a linear search, which requires up to @c N iterations, if @c N is the number of xAOD::MissingET_v1 objects in the container.
66  *
67  * @return Const iterator with a valid reference to a non-modifiable xAOD::MissingET_v1 object, if found, else DataVector<xAOD::MissingET_v1>::end() const.
68  *
69  * @param[in] name name identifying a MET object in the container.
70  *
71  * @note The iterator referencing the first object with a matching name is returned, if any.
72  */
73 
74 /*! @fn xAOD::MissingETContainer_v1::iterator xAOD::MissingETContainer_v1::find(const std::string& name)
75  *
76  * This operation is a linear search, which requires up to @c N iterations, if @c N is the number of xAOD::MissingET_v1 objects in the container.
77  *
78  * @return Iterator with a valid reference to a modifiable xAOD::MissingET_v1 object, if found, else DataVector<xAOD::MissingET_v1>::end().
79  *
80  * @param[in] name name identifying a MET object in the container.
81  *
82  * @note The iterator referencing the first object with a matching name is returned, if any.
83  */
84 
85 /*! @fn xAOD::MissingETContainer_v1::const_iterator xAOD::MissingETContainer_v1::find(MissingETBase::Types::bitmask_t src) const
86  *
87  * This operation is a linear search, which requires up to @c N iterations, if @c N is the number of xAOD::MissingET_v1 objects in the container.
88  *
89  * @return Const iterator with a valid reference to a non-modifiable xAOD::MissingET_v1 object, if found, else DataVector<xAOD::MissingET_v1>::end() const.
90  *
91  * @param[in] src source indicator identifying a MET object in the container.
92  *
93  * @note The iterator referencing the first object with a matching key is returned, if any.
94  */
95 
96 /*! @fn xAOD::MissingETContainer_v1::iterator xAOD::MissingETContainer_v1::find(MissingETBase::Types::bitmask_t src)
97  *
98  * This operation is a linear search, which requires up to @c N iterations, if @c N is the number of xAOD::MissingET_v1 objects in the container.
99  *
100  * @return Iterator with a valid reference to a modifiable xAOD::MissingET_v1 object, if found, else DataVector<xAOD::MissingET_v1>::end().
101  *
102  * @param[in] src source indicator identifying a MET object in the container.
103  *
104  * @note The iterator referencing the first object with a matching key is returned, if any.
105  */
106