diff --git a/Event/xAOD/xAODTracking/Root/NeutralParticle_v1.cxx b/Event/xAOD/xAODTracking/Root/NeutralParticle_v1.cxx index eb161dca5bf8501d213b999fe975e0c6cc886bf8..e0f59b533da971df43d2baa022d5312731ed585c 100644 --- a/Event/xAOD/xAODTracking/Root/NeutralParticle_v1.cxx +++ b/Event/xAOD/xAODTracking/Root/NeutralParticle_v1.cxx @@ -212,6 +212,7 @@ namespace xAOD { } #endif // not XAOD_STANDALONE and not XAOD_MANACORE - // AUXSTORE_OBJECT_SETTER_AND_GETTER(NeutralParticle_v1, ElementLink< VertexContainer >, vertex, setVertex) - + void NeutralParticle_v1::resetCache(){ + m_perigeeParameters.reset(); + } } // namespace xAOD diff --git a/Event/xAOD/xAODTracking/Root/TrackParticle_v1.cxx b/Event/xAOD/xAODTracking/Root/TrackParticle_v1.cxx index ea367f303b1880f26dd83bdd7e3785d77bb2ccec..e898ee7b39af3f6440e1b059c1a07914602007c9 100644 --- a/Event/xAOD/xAODTracking/Root/TrackParticle_v1.cxx +++ b/Event/xAOD/xAODTracking/Root/TrackParticle_v1.cxx @@ -507,8 +507,12 @@ namespace xAOD { } return *( acc( *this ) ); - } - + } #endif // not XAOD_STANDALONE and not XAOD_MANACORE + + void TrackParticle_v1::resetCache(){ + m_perigeeParameters.reset(); + } + } // namespace xAOD diff --git a/Event/xAOD/xAODTracking/xAODTracking/selection.xml b/Event/xAOD/xAODTracking/xAODTracking/selection.xml index 7986838ee9cf763c51ad0d8af2df2034360e30a6..4619fabaf1f36f9b2246800ea605d62176a28531 100644 --- a/Event/xAOD/xAODTracking/xAODTracking/selection.xml +++ b/Event/xAOD/xAODTracking/xAODTracking/selection.xml @@ -31,7 +31,12 @@ <class name="xAOD::TrackParticle_v1"> <field name="m_perigeeParameters" transient="true"/> </class> - + <read sourceClass="xAOD::TrackParticle_v1" version="[1-]" + targetClass="xAOD::TrackParticle_v1" source="" target="" > + <![CDATA[ + newObj->resetCache(); + ]]> + </read> <class name="xAOD::TrackParticleAuxContainer_v1" id="C3B01EA0-CA87-4C96-967F-E0F9A75BD370"/> <class name="xAOD::TrackParticleContainer_v1" @@ -74,7 +79,12 @@ <class name="xAOD::NeutralParticle_v1"> <field name="m_perigeeParameters" transient="true"/> </class> - + <read sourceClass="xAOD::NeutralParticle_v1" version="[1-]" + targetClass="xAOD::NeutralParticle_v1" source="" target="" > + <![CDATA[ + newObj->resetCache(); + ]]> + </read> <class name="xAOD::NeutralParticleAuxContainer_v1" id="006862BC-5CEB-11E3-9FB4-02163E00A92F"/> <class name="xAOD::NeutralParticleContainer_v1" diff --git a/Event/xAOD/xAODTracking/xAODTracking/versions/NeutralParticle_v1.h b/Event/xAOD/xAODTracking/xAODTracking/versions/NeutralParticle_v1.h index 7440a222e0afc8bdb20c94a6b64e9953c9018652..900c86f6f6fd87dcd6968bf1f568401aabb7a96c 100644 --- a/Event/xAOD/xAODTracking/xAODTracking/versions/NeutralParticle_v1.h +++ b/Event/xAOD/xAODTracking/xAODTracking/versions/NeutralParticle_v1.h @@ -134,12 +134,10 @@ namespace xAOD { const Trk::NeutralPerigee& perigeeParameters() const; #endif // not XAOD_STANDALONE and not XAOD_MANACORE - // /// @brief Returns a link (which can be invalid) to the xAOD::Vertex associated with this NeutralParticle. - // const ElementLink< VertexContainer >& vertex() const; - // /// @brief Set the link to the vertex - // void setVertex(const ElementLink< VertexContainer >& vertex); - - private: + /// Reset the internal cache of the object + void resetCache(); + + private: #if ( ! defined(XAOD_STANDALONE) ) && ( ! defined(XAOD_MANACORE) ) && ( ! defined(__GCCXML__) ) && !defined(__CLING__) /// @brief Cached NeutralPerigee, built from this object. /// @note This is only available in Athena. diff --git a/Event/xAOD/xAODTracking/xAODTracking/versions/TrackParticle_v1.h b/Event/xAOD/xAODTracking/xAODTracking/versions/TrackParticle_v1.h index 5666740134e35c9135b6af36525fd623aec265ce..f333c26ec7c463fcee5c9beb5a968bb4d7f9a030 100644 --- a/Event/xAOD/xAODTracking/xAODTracking/versions/TrackParticle_v1.h +++ b/Event/xAOD/xAODTracking/xAODTracking/versions/TrackParticle_v1.h @@ -316,7 +316,11 @@ namespace xAOD { #endif // not XAOD_STANDALONE and not XAOD_MANACORE /// @} - private: + + /// Reset the internal cache of the object + void resetCache(); + +private: #if ( ! defined(XAOD_STANDALONE) ) && ( ! defined(XAOD_MANACORE) ) && ( ! defined(__GCCXML__) ) && !defined(__CLING__) /// @brief Cached MeasuredPerigee, built from this object.