Loading [MathJax]/extensions/tex2jax.js
 |
ATLAS Offline Software
|
Go to the documentation of this file.
9 #ifndef TRKDETDESCRUTILS_NAVBINNEDARRAY1D_H
10 #define TRKDETDESCRUTILS_NAVBINNEDARRAY1D_H
59 std::vector<std::shared_ptr<T>>&&
vec,
125 bool associatedResult =
true)
const
133 if (associatedResult) {
135 return (
m_array[firstBin]).get();
180 auto arrayObjects = std::make_unique<std::vector<T*>>();
181 for (
unsigned int ill = 0; ill <
m_array.size(); ++ill) {
200 #endif // TRKDETDESCRUTILS_NAVBINNEDARRAY1D_H
NavBinnedArray1D & operator=(NavBinnedArray1D &&)=default
unsigned int arrayObjectsNumber() const
Number of Entries in the Array.
size_t max(size_t ba=0) const
First bin maximal value.
Eigen::Matrix< double, 2, 1 > Vector2D
std::vector< std::shared_ptr< T > > m_array
1D vector of cached not owning pointers to class T
Cached pointer with atomic update.
T * nextObject(const Amg::Vector3D &gp, const Amg::Vector3D &mom, bool associatedResult=true) const
Returns the pointer to the templated class object from the BinnedArray.
T * object(const Amg::Vector2D &lp) const
Returns the pointer to the templated class object from the BinnedArray, it returns nullptr if not def...
std::vector< size_t > vec
const Amg::Transform3D * transform() const
Return the transform.
const BinUtility * binUtility() const
Return the BinUtility.
NavBinnedArray1D(const NavBinnedArray1D &barr)
Copy Constructor.
size_t bins(size_t ba=0) const
Number of bins.
NavBinnedArray1D(const std::vector< std::shared_ptr< T >> &tclassvector, const BinUtility &bingen, const Amg::Transform3D &transform)
Constructor with std::vector and a BinUtility - reference counted, will delete objects at the end,...
Amg::Transform3D m_transf
CxxUtils::CachedUniquePtr< std::vector< T * > > m_arrayObjects
binUtility for retrieving and filling the Array
BinnedArraySpan< T const *const > arrayObjects() const
Return all objects of the Array const T.
Eigen::Affine3d Transform3D
T * object(const Amg::Vector3D &gp) const
Returns the pointer to the templated class object from the BinnedArray it returns nullptr if not defi...
Ensure that the ATLAS eigen extensions are properly loaded.
bool inside(const Amg::Vector3D &position) const
Check if bin is inside from Vector3D.
Eigen::Matrix< double, 3, 1 > Vector3D
BinnedArraySpan< T *const > arrayObjects()
Return all objects of the Array non-const T.
NavBinnedArray1D(NavBinnedArray1D &&)=default
NavBinnedArray1D(const NavBinnedArray1D &barr, std::vector< std::shared_ptr< T >> &&vec, const Amg::Transform3D &shift)
Copy Constructor with shift.
NavBinnedArray1D & operator=(const NavBinnedArray1D &barr)
Assignment operator.
T * get(TKey *tobj)
get a TObject* from a TKey* (why can't a TObject be a TKey?)
void updateTransform(Amg::Transform3D &transform)
Reposition.
NavBinnedArray1D()=default
T * entryObject(const Amg::Vector3D &) const
Returns the pointer to the templated class object from the BinnedArray - entry point.
size_t bin(const Amg::Vector3D &position, size_t ba=0) const
Bin from a 3D vector (already in binning frame)
std::span< T > BinnedArraySpan
size_t next(const Amg::Vector3D &position, const Amg::Vector3D &direction, size_t ba=0) const
Bin from a 3D vector (already in binning frame)
NavBinnedArray1D * clone() const
Implicit Constructor.
~NavBinnedArray1D()=default
void createArrayCache() const
vector of pointers to the class T