17#ifndef ALICEO2_TPC_TRICUBIC_H_
18#define ALICEO2_TPC_TRICUBIC_H_
23template <
typename DataT,
size_t,
size_t,
bool>
31template <
typename DataT>
46template <
typename DataT,
size_t N>
50template <
typename DataT =
double>
99 const DataContainer* mGridData{};
100 const Grid3D* mGridProperties{};
102 bool mExtraPolateValues =
true;
156 void setValues(
const int iz,
const int ir,
const int iphi, std::array<Vector<DataT, 4>, 16>& cVals)
const;
166 void getDataIndexCircularArray(
const int index0,
const int dim,
int arr[])
const;
169 int getRegulatedDelta(
const int index0,
const int delta,
const unsigned int dim,
const int offs)
const {
return mGridProperties->
isIndexInGrid(index0 + delta, dim) ? delta : offs; }
177 GridPos findPos(
const int iz,
const int ir,
const int iphi)
const;
179 bool isInInnerVolume(
const int iz,
const int ir,
const int iphi, GridPos& posType)
const;
181 bool findEdge(
const int iz,
const int ir,
const int iphi, GridPos& posType)
const;
183 bool findLine(
const int iz,
const int ir,
const int iphi, GridPos& posType)
const;
185 bool findSide(
const int iz,
const int ir,
const int iphi, GridPos& posType)
const;
187 bool isSideRight(
const int ind,
const int dim)
const;
189 bool isSideLeft(
const int ind)
const;
Definition of RegularGrid3D class.
static constexpr unsigned int getFPhi()
static constexpr unsigned int getFZ()
static constexpr unsigned int getDim()
static constexpr unsigned int getFR()
bool isIndexInGrid(const int index, const unsigned int dim) const
void setExtrapolationType(const ExtrapolationType extrapolationType)
bool getExtrapolateValues() const
TriCubicInterpolator(const DataContainer &gridData, const Grid3D &gridProperties)
ExtrapolationType getExtrapolationType() const
void setExtrapolateValues(const bool extraPolate)
enable or disable extraolating values outside of the grid
DataT operator()(const DataT z, const DataT r, const DataT phi) const
@ Linear
assume linear dependency at the boundaries of the grid
@ Parabola
assume parabolic dependency at the boundaries of the grid
TriCubicInterpolator< DataT > & operator=(TriCubicInterpolator< DataT > &&)
move assignment
GLdouble GLdouble GLdouble z
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
o2::InteractionRecord ir(0, 0)