Project
Loading...
Searching...
No Matches
o2::gpu::Spline2DContainerBase< DataT, FlatBase > Class Template Reference

#include <Spline2DSpec.h>

Inherits o2::gpu::FlatObject.

Public Member Functions

 GPUd () static const expr int32_t getVersion()
 _____________ Version control __________________________
 
 Spline2DContainerBase ()=default
 _____________ C++ constructors / destructors __________________________
 
 Spline2DContainerBase (const Spline2DContainerBase &)=delete
 Disable all other constructors.
 
 ~Spline2DContainerBase ()=default
 Destructor.
 
void approximateFunction (double x1Min, double x1Max, double x2Min, double x2Max, std::function< void(double x1, double x2, double f[])> F, int32_t nAuxiliaryDataPointsU1=4, int32_t nAuxiliaryDataPointsU2=4)
 _______________ Construction interface ________________________
 
void approximateFunctionViaDataPoints (double x1Min, double x1Max, double x2Min, double x2Max, std::function< void(double x1, double x2, double f[])> F, int32_t nAuxiliaryDataPointsX1, int32_t nAuxiliaryDataPointsX2)
 
int32_t writeToFile (TFile &outf, const char *name)
 _______________ IO ________________________
 
 GPUd () int32_t getYdimensions() const
 _______________ Getters ________________________
 
 GPUd () static const expr size_t getParameterAlignmentBytes()
 Get minimal required alignment for the spline parameters.
 
 GPUd () int32_t getNumberOfParameters() const
 Number of parameters.
 
 GPUd () size_t getSizeOfParameters() const
 Size of the parameter array in bytes.
 
 GPUd () int32_t getNumberOfKnots() const
 Get a number of knots.
 
 GPUd () const Spline1D< DataT
 Get 1-D grid for the X1 coordinate.
 
FlatBase & getGridX1 () const
 
 GPUd () const Spline1D< DataT
 Get 1-D grid for the X2 coordinate.
 
FlatBase & getGridX2 () const
 
 GPUd () const Spline1D< DataT
 Get 1-D grid for X1 or X2 coordinate.
 
FlatBase & getGrid (int32_t ix) const
 
 GPUd () void getKnotU(int32_t iKnot
 Get (u1,u2) of i-th knot.
 
 GPUd () int32_t calcNumberOfParameters(int32_t nYdim) const
 _______________ Expert tools _______________
 
void cloneFromObject (const Spline2DContainerBase &obj, char *newFlatBufferPtr)
 _____________ FlatObject functionality, see FlatObject class for description ____________
 
void moveBufferTo (char *newBufferPtr)
 
template<class OtherFlatBase >
void importFrom (const Spline2DContainerBase< DataT, OtherFlatBase > &src)
 
void destroy ()
 
void setActualBufferAddress (char *actualFlatBufferPtr)
 
void setFutureBufferAddress (char *futureFlatBufferPtr)
 
- Public Member Functions inherited from o2::gpu::FlatObject
 FlatObject ()=default
 _____________ Constructors / destructors __________________________
 
 ~FlatObject ()
 
 FlatObject (const FlatObject &)=delete
 
FlatObjectoperator= (const FlatObject &)=delete
 
template<typename T >
T * resizeArray (T *&ptr, int32_t oldSize, int32_t newSize, T *newPtr=nullptr)
 
template<typename T >
T ** resizeArray (T **&ptr, int32_t oldSize, int32_t newSize, T **newPtr=nullptr)
 
void destroy ()
 _______________ Utilities _______________________________________________
 
 GPUdi () size_t getFlatBufferSize() const
 Gives size of the flat buffer.
 
 GPUdi () const char *getFlatBufferPtr() const
 Gives pointer to the flat buffer.
 
bool isConstructed () const
 Tells if the object is constructed.
 
bool isBufferInternal () const
 Tells if the buffer is internal.
 
void adoptInternalBuffer (char *buf)
 
void clearInternalBufferPtr ()
 
void printC () const
 Print the content of the flat buffer.
 

Static Public Member Functions

static Spline2DContainerBasereadFromFile (TFile &inpf, const char *name)
 read a class object from the file
 
static int32_t test (const bool draw=0, const bool drawDataPoints=1)
 _______________ Test tools _______________
 
- Static Public Member Functions inherited from o2::gpu::FlatObject
static constexpr size_t alignSize (size_t sizeBytes, size_t alignmentBytes)
 _______________ Generic utilities _______________________________________________
 
template<class T >
static T * relocatePointer (const char *oldBase, char *newBase, const T *ptr)
 Relocates a pointer inside a buffer to the new buffer address.
 
template<class T , class TFile >
static int32_t writeToFile (T &obj, TFile &outf, const char *name)
 write a child class object to the file
 
template<class T , class TFile >
static T * readFromFile (TFile &inpf, const char *name)
 read a child class object from the file
 
template<class T >
static std::string stressTest (T &obj)
 Test the flat object functionality for a child class T.
 

Public Attributes

int32_t & u1
 
int32_t int32_t &u2 const
 

Protected Member Functions

void recreate (int32_t nYdim, int32_t nKnotsX1, int32_t nKnotsX2)
 Constructor for a regular spline.
 
void recreate (int32_t nYdim, int32_t nKnotsX1, const int32_t knotU1[], int32_t nKnotsX2, const int32_t knotU2[])
 Constructor for an irregular spline.
 
- Protected Member Functions inherited from o2::gpu::FlatObject
void startConstruction ()
 _____________ Construction _________
 
void finishConstruction (int32_t flatBufferSize)
 
void cloneFromObject (const FlatObject &obj, char *newFlatBufferPtr)
 
charreleaseInternalBuffer ()
 _____________ Methods for making the data buffer external __________________________
 
void moveBufferTo (char *newBufferPtr)
 
void setActualBufferAddress (char *actualFlatBufferPtr)
 _____________ Methods for moving the class with its external buffer to another location __________________________
 
void setFutureBufferAddress (char *futureFlatBufferPtr)
 
 ClassDefNV (FlatObject, 1)
 Pointer to the flat buffer.
 

Protected Attributes

int32_t mYdim = 0
 _____________ Data members ____________
 
Spline1D< DataT, 0, FlatBase > mGridX1
 grid for U axis
 
Spline1D< DataT, 0, FlatBase > mGridX2
 grid for V axis
 
DataT * mParameters = nullptr
 
- Protected Attributes inherited from o2::gpu::FlatObject
int32_t mFlatBufferSize = 0
 size of the flat buffer
 
uint32_t mConstructionMask = ConstructionState::NotConstructed
 mask for constructed object members, first two bytes are used by this class
 
charmFlatBufferContainer = nullptr
 
charmFlatBufferPtr = nullptr
 

Additional Inherited Members

- Protected Types inherited from o2::gpu::FlatObject
enum  ConstructionState : uint32_t { NotConstructed = 0x0 , Constructed = 0x1 , InProgress = 0x2 }
 GPUCA_GPUCODE. More...
 
- Static Protected Member Functions inherited from o2::gpu::FlatObject
static constexpr size_t getClassAlignmentBytes ()
 GPUCA_GPUCODE.
 
static constexpr size_t getBufferAlignmentBytes ()
 Gives minimal alignment in bytes required for the flat buffer.
 

Detailed Description

template<typename DataT, class FlatBase = FlatObject>
class o2::gpu::Spline2DContainerBase< DataT, FlatBase >

================================================================================================== The class Spline2DContainerBase is a base Spline2D class. It contains all the class members and those methods which only depends on the DataT data type. It also contains all non-inlined methods with the implementation in SplineSpec.cxx file.

DataT is a data type, which is supposed to be either double or float. For other possible data types one has to add the corresponding instantiation line at the end of the Spline2DSpec.cxx file

Definition at line 48 of file Spline2DSpec.h.

Constructor & Destructor Documentation

◆ Spline2DContainerBase() [1/2]

template<typename DataT , class FlatBase = FlatObject>
o2::gpu::Spline2DContainerBase< DataT, FlatBase >::Spline2DContainerBase ( )
default

_____________ C++ constructors / destructors __________________________

Default constructor

◆ Spline2DContainerBase() [2/2]

template<typename DataT , class FlatBase = FlatObject>
o2::gpu::Spline2DContainerBase< DataT, FlatBase >::Spline2DContainerBase ( const Spline2DContainerBase< DataT, FlatBase > &  )
delete

Disable all other constructors.

◆ ~Spline2DContainerBase()

template<typename DataT , class FlatBase = FlatObject>
o2::gpu::Spline2DContainerBase< DataT, FlatBase >::~Spline2DContainerBase ( )
default

Destructor.

Member Function Documentation

◆ approximateFunction()

template<typename DataT , class FlatBase = FlatObject>
void o2::gpu::Spline2DContainerBase< DataT, FlatBase >::approximateFunction ( double  x1Min,
double  x1Max,
double  x2Min,
double  x2Max,
std::function< void(double x1, double x2, double f[])>  F,
int32_t  nAuxiliaryDataPointsU1 = 4,
int32_t  nAuxiliaryDataPointsU2 = 4 
)

_______________ Construction interface ________________________

approximate a function F with this spline

◆ approximateFunctionViaDataPoints()

template<typename DataT , class FlatBase = FlatObject>
void o2::gpu::Spline2DContainerBase< DataT, FlatBase >::approximateFunctionViaDataPoints ( double  x1Min,
double  x1Max,
double  x2Min,
double  x2Max,
std::function< void(double x1, double x2, double f[])>  F,
int32_t  nAuxiliaryDataPointsX1,
int32_t  nAuxiliaryDataPointsX2 
)

◆ cloneFromObject()

template<typename DataT , class FlatBase = FlatObject>
void o2::gpu::Spline2DContainerBase< DataT, FlatBase >::cloneFromObject ( const Spline2DContainerBase< DataT, FlatBase > &  obj,
char newFlatBufferPtr 
)

_____________ FlatObject functionality, see FlatObject class for description ____________

◆ destroy()

template<typename DataT , class FlatBase = FlatObject>
void o2::gpu::Spline2DContainerBase< DataT, FlatBase >::destroy ( )

◆ getGrid()

template<typename DataT , class FlatBase = FlatObject>
FlatBase & o2::gpu::Spline2DContainerBase< DataT, FlatBase >::getGrid ( int32_t  ix) const
inline

Definition at line 114 of file Spline2DSpec.h.

◆ getGridX1()

template<typename DataT , class FlatBase = FlatObject>
FlatBase & o2::gpu::Spline2DContainerBase< DataT, FlatBase >::getGridX1 ( ) const
inline

Definition at line 108 of file Spline2DSpec.h.

◆ getGridX2()

template<typename DataT , class FlatBase = FlatObject>
FlatBase & o2::gpu::Spline2DContainerBase< DataT, FlatBase >::getGridX2 ( ) const
inline

Definition at line 111 of file Spline2DSpec.h.

◆ GPUd() [1/11]

template<typename DataT , class FlatBase = FlatObject>
o2::gpu::Spline2DContainerBase< DataT, FlatBase >::GPUd ( ) const

Get 1-D grid for the X1 coordinate.

◆ GPUd() [2/11]

template<typename DataT , class FlatBase = FlatObject>
o2::gpu::Spline2DContainerBase< DataT, FlatBase >::GPUd ( ) const

Get 1-D grid for the X2 coordinate.

◆ GPUd() [3/11]

template<typename DataT , class FlatBase = FlatObject>
o2::gpu::Spline2DContainerBase< DataT, FlatBase >::GPUd ( ) const

Get 1-D grid for X1 or X2 coordinate.

◆ GPUd() [4/11]

template<typename DataT , class FlatBase = FlatObject>
o2::gpu::Spline2DContainerBase< DataT, FlatBase >::GPUd ( ) const
inline

_______________ Expert tools _______________

Number of parameters for given Y dimensions

Definition at line 170 of file Spline2DSpec.h.

◆ GPUd() [5/11]

template<typename DataT , class FlatBase = FlatObject>
o2::gpu::Spline2DContainerBase< DataT, FlatBase >::GPUd ( ) const
inline

Get a number of knots.

Definition at line 105 of file Spline2DSpec.h.

◆ GPUd() [6/11]

template<typename DataT , class FlatBase = FlatObject>
o2::gpu::Spline2DContainerBase< DataT, FlatBase >::GPUd ( ) const
inline

Number of parameters.

Definition at line 99 of file Spline2DSpec.h.

◆ GPUd() [7/11]

template<typename DataT , class FlatBase = FlatObject>
o2::gpu::Spline2DContainerBase< DataT, FlatBase >::GPUd ( ) const
inline

_______________ Getters ________________________

Get number of Y dimensions

Definition at line 93 of file Spline2DSpec.h.

◆ GPUd() [8/11]

template<typename DataT , class FlatBase = FlatObject>
o2::gpu::Spline2DContainerBase< DataT, FlatBase >::GPUd ( ) const
inline

Size of the parameter array in bytes.

Definition at line 102 of file Spline2DSpec.h.

◆ GPUd() [9/11]

template<typename DataT , class FlatBase = FlatObject>
o2::gpu::Spline2DContainerBase< DataT, FlatBase >::GPUd ( ) const
inline

_____________ Version control __________________________

Version control

Definition at line 54 of file Spline2DSpec.h.

◆ GPUd() [10/11]

template<typename DataT , class FlatBase = FlatObject>
o2::gpu::Spline2DContainerBase< DataT, FlatBase >::GPUd ( ) const
inline

Get minimal required alignment for the spline parameters.

Definition at line 96 of file Spline2DSpec.h.

◆ GPUd() [11/11]

template<typename DataT , class FlatBase = FlatObject>
o2::gpu::Spline2DContainerBase< DataT, FlatBase >::GPUd ( )

Get (u1,u2) of i-th knot.

◆ importFrom()

template<typename DataT , class FlatBase = FlatObject>
template<class OtherFlatBase >
template void o2::gpu::Spline2DContainerBase< DataT, FlatBase >::importFrom< o2::gpu::FlatObject > ( const Spline2DContainerBase< DataT, OtherFlatBase > &  src)

Copy schema fields (ydim, grid dimensions) from a spline with a different FlatBase. Used by TPCFastTransformPOD::create() to populate NoFlatObject-based splines.

◆ moveBufferTo()

template<typename DataT , class FlatBase = FlatObject>
void o2::gpu::Spline2DContainerBase< DataT, FlatBase >::moveBufferTo ( char newBufferPtr)

◆ readFromFile()

template<typename DataT , class FlatBase = FlatObject>
static Spline2DContainerBase * o2::gpu::Spline2DContainerBase< DataT, FlatBase >::readFromFile ( TFile &  inpf,
const char name 
)
static

read a class object from the file

◆ recreate() [1/2]

template<typename DataT , class FlatBase = FlatObject>
void o2::gpu::Spline2DContainerBase< DataT, FlatBase >::recreate ( int32_t  nYdim,
int32_t  nKnotsX1,
const int32_t  knotU1[],
int32_t  nKnotsX2,
const int32_t  knotU2[] 
)
protected

Constructor for an irregular spline.

◆ recreate() [2/2]

template<typename DataT , class FlatBase = FlatObject>
void o2::gpu::Spline2DContainerBase< DataT, FlatBase >::recreate ( int32_t  nYdim,
int32_t  nKnotsX1,
int32_t  nKnotsX2 
)
protected

Constructor for a regular spline.

◆ setActualBufferAddress()

template<typename DataT , class FlatBase = FlatObject>
void o2::gpu::Spline2DContainerBase< DataT, FlatBase >::setActualBufferAddress ( char actualFlatBufferPtr)

◆ setFutureBufferAddress()

template<typename DataT , class FlatBase = FlatObject>
void o2::gpu::Spline2DContainerBase< DataT, FlatBase >::setFutureBufferAddress ( char futureFlatBufferPtr)

◆ test()

template<typename DataT , class FlatBase = FlatObject>
static int32_t o2::gpu::Spline2DContainerBase< DataT, FlatBase >::test ( const bool  draw = 0,
const bool  drawDataPoints = 1 
)
static

_______________ Test tools _______________

Test the class functionality

◆ writeToFile()

template<typename DataT , class FlatBase = FlatObject>
int32_t o2::gpu::Spline2DContainerBase< DataT, FlatBase >::writeToFile ( TFile &  outf,
const char name 
)

_______________ IO ________________________

write a class object to the file

Member Data Documentation

◆ const

template<typename DataT , class FlatBase = FlatObject>
int32_t int32_t& u2 o2::gpu::Spline2DContainerBase< DataT, FlatBase >::const

Definition at line 117 of file Spline2DSpec.h.

◆ mGridX1

template<typename DataT , class FlatBase = FlatObject>
Spline1D<DataT, 0, FlatBase> o2::gpu::Spline2DContainerBase< DataT, FlatBase >::mGridX1
protected

grid for U axis

Definition at line 206 of file Spline2DSpec.h.

◆ mGridX2

template<typename DataT , class FlatBase = FlatObject>
Spline1D<DataT, 0, FlatBase> o2::gpu::Spline2DContainerBase< DataT, FlatBase >::mGridX2
protected

grid for V axis

Definition at line 207 of file Spline2DSpec.h.

◆ mParameters

template<typename DataT , class FlatBase = FlatObject>
DataT* o2::gpu::Spline2DContainerBase< DataT, FlatBase >::mParameters = nullptr
protected

Definition at line 208 of file Spline2DSpec.h.

◆ mYdim

template<typename DataT , class FlatBase = FlatObject>
int32_t o2::gpu::Spline2DContainerBase< DataT, FlatBase >::mYdim = 0
protected

_____________ Data members ____________

dimentionality of F

Definition at line 205 of file Spline2DSpec.h.

◆ u1

template<typename DataT , class FlatBase = FlatObject>
int32_t& o2::gpu::Spline2DContainerBase< DataT, FlatBase >::u1

Definition at line 117 of file Spline2DSpec.h.


The documentation for this class was generated from the following files: