ATLAS Offline Software
Loading...
Searching...
No Matches
INav4MomLinkContainer.h
Go to the documentation of this file.
1
2
3/*
4 Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
5*/
6
12
13#ifndef NAVFOURMOM_INAV4MOMLINKCONTAINER_H
14#define NAVFOURMOM_INAV4MOMLINKCONTAINER_H 1
15
16// STL includes
17#include <vector>
18
19#include "AthLinks/ElementLink.h"
24
25
26// This defines the new container
27class INav4MomLinkContainer : public std::vector< INav4MomLink >
28{
29};
30
31// This defines the ID which is used by StoreGate
32CLASS_DEF( INav4MomLinkContainer , 1194917823 , 1 )
33
34
35// This defines how to convert an INav4MomLinkContainer to an INavigable4MomentumCollection
37 : public SG::CopyConversion<INav4MomLinkContainer,
39{
40public:
41 virtual void convert ( const INav4MomLinkContainer& src,
43 {
44 size_t sz = src.size();
45 if (dst.size() != sz) {
47 dst.reserve (sz);
48 for (size_t i = 0; i < sz; i++) {
49 const INavigable4Momentum* p = *(src[i]).cptr();
50 // FIXME: Ok, since the target ends up recorded in the event
51 // store as const. But should change the interfaces so that
52 // we get a ConstDataVector to fill.
54 dst.push_back (p_nc);
55 }
56 }
57 }
58};
59
60// This tells StoreGate about the conversion
62
63
64#endif // NAVFOURMOM_INAV4MOMLINKCONTAINER_H
65
#define SG_ADD_COPY_CONVERSION(D, C)
Declare a copy conversion from class T using converter C.
macros to associate a CLID to a type
#define CLASS_DEF(NAME, CID, VERSION)
associate a clid and a version to a type eg
DataVector< INavigable4Momentum > INavigable4MomentumCollection
static Double_t sz
#define ATLAS_THREAD_SAFE
void reserve(size_type n)
Attempt to preallocate enough memory for a specified number of elements.
value_type push_back(value_type pElem)
Add an element to the end of the collection.
size_type size() const noexcept
Returns the number of elements in the collection.
void clear()
Erase all the elements in the collection.
virtual void convert(const INav4MomLinkContainer &src, INavigable4MomentumCollection &dst) const
Convert the contents of an instance of the source class SRC to an instance of the destination class D...
Forward declaration.
@ VIEW_ELEMENTS
this data object is a view, it does not own its elmts