ATLAS Offline Software
Loading...
Searching...
No Matches
CompactBinnedArray.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3*/
4
6// CompactBinnedArray.h, (c) ATLAS Detector software
8
9#ifndef TRKDETDESCRUTILS_COMPACTBINNEDARRAY_H
10#define TRKDETDESCRUTILS_COMPACTBINNEDARRAY_H
11
14
15// STL
16#include <vector>
17
18class MsgStream;
19
20namespace Trk {
21
28
29template<class T>
31{
32
33public:
34 //Rule of 0 for default ctors
36 virtual CompactBinnedArray* clone() const = 0;
37 virtual CompactBinnedArray* clone(const std::vector<T*>& ptrs) const = 0;
38
40 virtual const Trk::BinUtility* layerBinUtility(const Amg::Vector3D& gp) const = 0;
41
43 virtual size_t layerBin(const Amg::Vector3D& gp) const = 0;
44};
45
46} // end of namespace Trk
47#endif // TRKDETDESCRUTILS_COMPACTBINNEDARRAY_H
A generic symmetric BinUtility, for fully symmetric binning in terms of binning grid and binning type...
Definition BinUtility.h:39
BinnedArray()=default
defines common utilities needed for implementation of binned material
virtual CompactBinnedArray * clone() const =0
Implicit constructor.
virtual CompactBinnedArray * clone(const std::vector< T * > &ptrs) const =0
virtual size_t layerBin(const Amg::Vector3D &gp) const =0
layer bin
virtual const Trk::BinUtility * layerBinUtility(const Amg::Vector3D &gp) const =0
layer bin utility
Eigen::Matrix< double, 3, 1 > Vector3D
Ensure that the ATLAS eigen extensions are properly loaded.