4 Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
8 ///////////////////////////////////////////////////////////////
9 // The rest of the file contains doxygen documentation only! //
10 ///////////////////////////////////////////////////////////////
12 /*! @class xAOD::MissingETContainer_v1
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.
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).
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.
33 /*! @fn xAOD::MissingETContainer_v1::MissingETContainer_v1(SG::OwnershipPolicy ownPolicy,SG::IndexTrackingPolicy trackIndices)
35 * Constructs a DataVector< xAOD::MissingET_v1 > container.
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).
41 /*! @fn const xAOD::MissingET_v1* xAOD::MissingETContainer_v1::operator[](const std::string& name) const
43 * @return Valid pointer to a non-modifiable xAOD::MissingET_v1 object with requested name if found, else a @c NULL pointer.
45 * @param[in] name reference to non-modifiable string holding the requested MET object name (key)
47 * @note The pointer to the first object with a matching name is returned.
50 /*! @fn xAOD::MissingET_v1* xAOD::MissingETContainer_v1::operator[](const std::string& name);
52 * @return Valid pointer to a modifiable xAOD::MissingET_v1 object with requested name if found, else a @c NULL pointer.
54 * @param[in] name reference to non-modifiable string holding the requested MET object name (key)
56 * @note The pointer to the first object with a matching name is returned.
63 /*! @fn xAOD::MissingETContainer_v1::const_iterator xAOD::MissingETContainer_v1::find(const std::string& name) const
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.
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.
69 * @param[in] name name identifying a MET object in the container.
71 * @note The iterator referencing the first object with a matching name is returned, if any.
74 /*! @fn xAOD::MissingETContainer_v1::iterator xAOD::MissingETContainer_v1::find(const std::string& name)
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.
78 * @return Iterator with a valid reference to a modifiable xAOD::MissingET_v1 object, if found, else DataVector<xAOD::MissingET_v1>::end().
80 * @param[in] name name identifying a MET object in the container.
82 * @note The iterator referencing the first object with a matching name is returned, if any.
85 /*! @fn xAOD::MissingETContainer_v1::const_iterator xAOD::MissingETContainer_v1::find(MissingETBase::Types::bitmask_t src) const
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.
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.
91 * @param[in] src source indicator identifying a MET object in the container.
93 * @note The iterator referencing the first object with a matching key is returned, if any.
96 /*! @fn xAOD::MissingETContainer_v1::iterator xAOD::MissingETContainer_v1::find(MissingETBase::Types::bitmask_t src)
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.
100 * @return Iterator with a valid reference to a modifiable xAOD::MissingET_v1 object, if found, else DataVector<xAOD::MissingET_v1>::end().
102 * @param[in] src source indicator identifying a MET object in the container.
104 * @note The iterator referencing the first object with a matching key is returned, if any.