Project
Loading...
Searching...
No Matches
o2::gpu::TPCFastSpaceChargeCorrection Class Referenceabstract

#include <TPCFastSpaceChargeCorrection.h>

Inherits o2::gpu::FlatObject.

Classes

struct  GridInfo
 
struct  RowInfo
 
struct  SliceInfo
 

Public Types

typedef Spline2D< float, 3 > SplineTypeXYZ
 
typedef Spline2D< float, 1 > SplineTypeInvX
 
typedef Spline2D< float, 2 > SplineTypeInvYZ
 
typedef SplineTypeXYZ SplineType
 
using SlimSplineTypeXYZ = Spline2D< float, 3, NoFlatObject >
 Slim variants (NoFlatObject base) for use in TPCFastTransformPOD.
 
using SlimSplineTypeInvX = Spline2D< float, 1, NoFlatObject >
 
using SlimSplineTypeInvYZ = Spline2D< float, 2, NoFlatObject >
 
using SlimSplineType = SlimSplineTypeXYZ
 

Public Member Functions

 TPCFastSpaceChargeCorrection ()
 _____________ Constructors / destructors __________________________
 
 TPCFastSpaceChargeCorrection (const TPCFastSpaceChargeCorrection &)=delete
 Copy constructor: disabled to avoid ambiguity. Use cloneTo[In/Ex]ternalBuffer() instead.
 
TPCFastSpaceChargeCorrectionoperator= (const TPCFastSpaceChargeCorrection &)=delete
 Assignment operator: disabled to avoid ambiguity. Use cloneTo[In/Ex]ternalBuffer() instead.
 
 ~TPCFastSpaceChargeCorrection ()
 Destructor.
 
void cloneFromObject (const TPCFastSpaceChargeCorrection &obj, char *newFlatBufferPtr)
 Construction interface.
 
void destroy ()
 
void moveBufferTo (char *newBufferPtr)
 
void setActualBufferAddress (char *actualFlatBufferPtr)
 Moving the class with its external buffer to another location.
 
void setFutureBufferAddress (char *futureFlatBufferPtr)
 
void startConstruction (const TPCFastTransformGeo &geo, int32_t numberOfSplineScenarios)
 _______________ Construction interface ________________________
 
void setRowScenarioID (int32_t iRow, int32_t iScenario)
 Initializes a TPC row.
 
void setSplineScenario (int32_t scenarioIndex, const SplineType &spline)
 Sets approximation scenario.
 
void finishConstruction ()
 Finishes construction: puts everything to the flat buffer, releases temporary memory.
 
void constructWithNoCorrection (const TPCFastTransformGeo &geo)
 
 GPUd () void setNoCorrection()
 _______________ Initialization interface ________________________
 
 GPUdi () void setTimeStamp(int64_t v)
 Sets the time stamp of the current calibaration.
 
 GPUd () const SplineType &getSplineForRow(int32_t row) const
 Gives const pointer to a spline.
 
 GPUd () SplineType &getSplineForRow(int32_t row)
 Gives pointer to a spline.
 
 GPUd () float *getCorrectionData(int32_t sector
 Gives pointer to spline data.
 
 GPUd () const float *getCorrectionData(int32_t sector
 Gives pointer to spline data.
 
 GPUd () const SplineTypeInvX &getSplineInvXforRow(int32_t row) const
 Gives const pointer to a spline for the inverse X correction.
 
 GPUd () SplineTypeInvX &getSplineInvXforRow(int32_t row)
 Gives pointer to a spline for the inverse X correction.
 
 GPUd () float *getCorrectionDataInvX(int32_t sector
 Gives pointer to spline data for the inverse X correction.
 
 GPUd () const float *getCorrectionDataInvX(int32_t sector
 Gives pointer to spline data for the inverse X correction.
 
 GPUd () const SplineTypeInvYZ &getSplineInvYZforRow(int32_t row) const
 Gives const pointer to a spline for the inverse YZ correction.
 
 GPUd () SplineTypeInvYZ &getSplineInvYZforRow(int32_t row)
 Gives pointer to a spline for the inverse YZ correction.
 
 GPUd () float *getCorrectionDataInvYZ(int32_t sector
 Gives pointer to spline data for the inverse YZ correction.
 
 GPUd () const float *getCorrectionDataInvYZ(int32_t sector
 Gives pointer to spline data for the inverse YZ correction.
 
 GPUdi () void getCorrectionLocal(int32_t sector
 
 GPUd () float getCorrectionXatRealYZ(int32_t sector
 inverse correction: Real Y and Z -> Real X
 
 GPUd () void getCorrectionYZatRealYZ(int32_t sector
 inverse correction: Real Y and Z -> measred Y and Z
 
 GPUd () void convLocalToGrid(int32_t sector
 _______________ Utilities _______________________________________________
 
 GPUd () void convGridToLocal(int32_t sector
 
 GPUd () void convRealLocalToGrid(int32_t sector
 
 GPUd () void convGridToRealLocal(int32_t sector
 
 GPUd () bool isLocalInsideGrid(int32_t sector
 
 GPUd () bool isRealLocalInsideGrid(int32_t sector
 
 GPUdi () const TPCFastTransformGeo &getGeometry() const
 TPC geometry information.
 
int64_t getTimeStamp () const
 Gives the time stamp of the current calibaration parameters.
 
 GPUdi () const RowInfo &getRowInfo(int32_t row) const
 Gives TPC row info.
 
 GPUdi () RowInfo &getRowInfo(int32_t row)
 Gives TPC row info.
 
void print () const
 Print method.
 
 GPUh () double testInverse(bool prn=0)
 
charreleaseInternalBuffer ()
 Making the data buffer external.
 
- 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 constexpr size_t getBufferAlignmentBytes ()
 _____________ FlatObject functionality, see FlatObject class for description ____________
 
static constexpr size_t getClassAlignmentBytes ()
 GPUCA_GPUCODE.
 
- 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 row
 
int32_t int32_t iSpline = 0)
 
int32_t row const
 
int32_t float y
 
int32_t float float z
 
int32_t float float float & dx
 
int32_t float float float float & dy
 
int32_t float float float float float &dz const
 
int32_t float realY
 
int32_t float float realZ const
 
int32_t float float realZ
 
int32_t float float float & y
 
int32_t float float float float &z const
 
int32_t float float float & u
 
int32_t float float float float & v
 
int32_t float float float float float &s const
 
int32_t float u
 
int32_t float float v
 
int32_t float float z const
 

Friends

class TPCFastTransformPOD
 

Additional Inherited Members

- Protected Types inherited from o2::gpu::FlatObject
enum  ConstructionState : uint32_t { NotConstructed = 0x0 , Constructed = 0x1 , InProgress = 0x2 }
 GPUCA_GPUCODE. More...
 
- 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.
 
- 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.
 
- 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
 

Detailed Description

The TPCFastSpaceChargeCorrection class represents correction of nominal coordinates of TPC clusters using best-fit splines

Row, U, V -> dX,dU,dV

The class is flat C structure. No virtual methods, no ROOT types are used.

Definition at line 40 of file TPCFastSpaceChargeCorrection.h.

Member Typedef Documentation

◆ SlimSplineType

◆ SlimSplineTypeInvX

◆ SlimSplineTypeInvYZ

◆ SlimSplineTypeXYZ

◆ SplineType

◆ SplineTypeInvX

◆ SplineTypeInvYZ

◆ SplineTypeXYZ

Constructor & Destructor Documentation

◆ TPCFastSpaceChargeCorrection() [1/2]

TPCFastSpaceChargeCorrection::TPCFastSpaceChargeCorrection ( )

_____________ Constructors / destructors __________________________

Default constructor: creates an empty uninitialized object

Definition at line 30 of file TPCFastSpaceChargeCorrection.cxx.

◆ TPCFastSpaceChargeCorrection() [2/2]

o2::gpu::TPCFastSpaceChargeCorrection::TPCFastSpaceChargeCorrection ( const TPCFastSpaceChargeCorrection )
delete

Copy constructor: disabled to avoid ambiguity. Use cloneTo[In/Ex]ternalBuffer() instead.

◆ ~TPCFastSpaceChargeCorrection()

TPCFastSpaceChargeCorrection::~TPCFastSpaceChargeCorrection ( )

Destructor.

Destructor

Definition at line 42 of file TPCFastSpaceChargeCorrection.cxx.

Member Function Documentation

◆ cloneFromObject()

void TPCFastSpaceChargeCorrection::cloneFromObject ( const TPCFastSpaceChargeCorrection obj,
char newFlatBufferPtr 
)

Construction interface.

Initializes from another object, copies data to newBufferPtr When newBufferPtr==nullptr, an internal container will be created, the data will be copied there. If there are any pointers inside the buffer, they has to be relocated (currently no pointers).

Definition at line 83 of file TPCFastSpaceChargeCorrection.cxx.

◆ constructWithNoCorrection()

void TPCFastSpaceChargeCorrection::constructWithNoCorrection ( const TPCFastTransformGeo geo)

Definition at line 590 of file TPCFastSpaceChargeCorrection.cxx.

◆ destroy()

void TPCFastSpaceChargeCorrection::destroy ( )

Definition at line 55 of file TPCFastSpaceChargeCorrection.cxx.

◆ finishConstruction()

void TPCFastSpaceChargeCorrection::finishConstruction ( )

Finishes construction: puts everything to the flat buffer, releases temporary memory.

Finishes construction: puts everything to the flat buffer, releases temporary memory

Definition at line 479 of file TPCFastSpaceChargeCorrection.cxx.

◆ getBufferAlignmentBytes()

static constexpr size_t o2::gpu::FlatObject::getBufferAlignmentBytes ( )
inlinestaticconstexpr

_____________ FlatObject functionality, see FlatObject class for description ____________

Memory alignment

Definition at line 195 of file FlatObject.h.

◆ getClassAlignmentBytes()

static constexpr size_t o2::gpu::FlatObject::getClassAlignmentBytes ( )
inlinestaticconstexpr

GPUCA_GPUCODE.

_____________ Memory alignment __________________________ Gives minimal alignment in bytes required for the class object

Definition at line 192 of file FlatObject.h.

◆ getTimeStamp()

int64_t o2::gpu::TPCFastSpaceChargeCorrection::getTimeStamp ( ) const
inline

Gives the time stamp of the current calibaration parameters.

Definition at line 262 of file TPCFastSpaceChargeCorrection.h.

◆ GPUd() [1/21]

o2::gpu::TPCFastSpaceChargeCorrection::GPUd ( )

◆ GPUd() [2/21]

o2::gpu::TPCFastSpaceChargeCorrection::GPUd ( )

◆ GPUd() [3/21]

o2::gpu::TPCFastSpaceChargeCorrection::GPUd ( ) const

Gives pointer to spline data.

◆ GPUd() [4/21]

o2::gpu::TPCFastSpaceChargeCorrection::GPUd ( ) const

Gives pointer to spline data for the inverse X correction.

◆ GPUd() [5/21]

o2::gpu::TPCFastSpaceChargeCorrection::GPUd ( ) const

Gives pointer to spline data for the inverse YZ correction.

◆ GPUd() [6/21]

o2::gpu::TPCFastSpaceChargeCorrection::GPUd ( ) const &

Gives const pointer to a spline.

◆ GPUd() [7/21]

o2::gpu::TPCFastSpaceChargeCorrection::GPUd ( ) const &

Gives const pointer to a spline for the inverse X correction.

◆ GPUd() [8/21]

o2::gpu::TPCFastSpaceChargeCorrection::GPUd ( ) const &

Gives const pointer to a spline for the inverse YZ correction.

◆ GPUd() [9/21]

o2::gpu::TPCFastSpaceChargeCorrection::GPUd ( )

Gives pointer to spline data.

◆ GPUd() [10/21]

o2::gpu::TPCFastSpaceChargeCorrection::GPUd ( )

Gives pointer to spline data for the inverse X correction.

◆ GPUd() [11/21]

o2::gpu::TPCFastSpaceChargeCorrection::GPUd ( )

Gives pointer to spline data for the inverse YZ correction.

◆ GPUd() [12/21]

o2::gpu::TPCFastSpaceChargeCorrection::GPUd ( )

inverse correction: Real Y and Z -> Real X

◆ GPUd() [13/21]

o2::gpu::TPCFastSpaceChargeCorrection::GPUd ( ) &

Gives pointer to a spline.

◆ GPUd() [14/21]

o2::gpu::TPCFastSpaceChargeCorrection::GPUd ( ) &

Gives pointer to a spline for the inverse X correction.

◆ GPUd() [15/21]

o2::gpu::TPCFastSpaceChargeCorrection::GPUd ( ) &

Gives pointer to a spline for the inverse YZ correction.

◆ GPUd() [16/21]

o2::gpu::TPCFastSpaceChargeCorrection::GPUd ( )

convert internal grid coordinates u,v to local y, z return values: y, z, scaling factor

◆ GPUd() [17/21]

o2::gpu::TPCFastSpaceChargeCorrection::GPUd ( )

convert internal grid coordinates to the real Y, Z return values: y, z

◆ GPUd() [18/21]

o2::gpu::TPCFastSpaceChargeCorrection::GPUd ( )

_______________ Utilities _______________________________________________

convert local y, z to internal grid coordinates u,v return values: u, v, scaling factor

◆ GPUd() [19/21]

o2::gpu::TPCFastSpaceChargeCorrection::GPUd ( )

convert real Y, Z to the internal grid coordinates return values: u, v, scaling factor

◆ GPUd() [20/21]

o2::gpu::TPCFastSpaceChargeCorrection::GPUd ( )

inverse correction: Real Y and Z -> measred Y and Z

◆ GPUd() [21/21]

o2::gpu::TPCFastSpaceChargeCorrection::GPUd ( )

_______________ Initialization interface ________________________

Set no correction

◆ GPUdi() [1/5]

o2::gpu::TPCFastSpaceChargeCorrection::GPUdi ( ) const &
inline

Gives TPC row info.

Definition at line 265 of file TPCFastSpaceChargeCorrection.h.

◆ GPUdi() [2/5]

o2::gpu::TPCFastSpaceChargeCorrection::GPUdi ( ) const &
inline

TPC geometry information.

Definition at line 256 of file TPCFastSpaceChargeCorrection.h.

◆ GPUdi() [3/5]

o2::gpu::TPCFastSpaceChargeCorrection::GPUdi ( ) &
inline

Gives TPC row info.

Definition at line 271 of file TPCFastSpaceChargeCorrection.h.

◆ GPUdi() [4/5]

o2::gpu::TPCFastSpaceChargeCorrection::GPUdi ( )

_______________ The main method: cluster correction _______________________

◆ GPUdi() [5/5]

o2::gpu::TPCFastSpaceChargeCorrection::GPUdi ( )
inline

Sets the time stamp of the current calibaration.

Definition at line 184 of file TPCFastSpaceChargeCorrection.h.

◆ GPUh()

o2::gpu::TPCFastSpaceChargeCorrection::GPUh ( )
pure virtual

◆ moveBufferTo()

void TPCFastSpaceChargeCorrection::moveBufferTo ( char newBufferPtr)

Sets buffer pointer to the new address, move the buffer content there.

Definition at line 120 of file TPCFastSpaceChargeCorrection.cxx.

◆ operator=()

TPCFastSpaceChargeCorrection & o2::gpu::TPCFastSpaceChargeCorrection::operator= ( const TPCFastSpaceChargeCorrection )
delete

Assignment operator: disabled to avoid ambiguity. Use cloneTo[In/Ex]ternalBuffer() instead.

◆ print()

void TPCFastSpaceChargeCorrection::print ( ) const

Print method.

Definition at line 381 of file TPCFastSpaceChargeCorrection.cxx.

◆ releaseInternalBuffer()

char * o2::gpu::FlatObject::releaseInternalBuffer ( )
inline

Making the data buffer external.

Definition at line 218 of file FlatObject.h.

◆ setActualBufferAddress()

void TPCFastSpaceChargeCorrection::setActualBufferAddress ( char actualFlatBufferPtr)

Moving the class with its external buffer to another location.

Sets the actual location of the external flat buffer after it has been moved (e.g. to another maschine)

< scenario index (which of Spline2D splines to use)

< offset for the spline data withing a TPC sector

< V coordinate of the V-grid start

< U coordinate of the U-grid start for corrected U

< V coordinate of the V-grid start for corrected V

< scale corrected U to U-grid coordinate

< scale corrected V to V-grid coordinate

Definition at line 129 of file TPCFastSpaceChargeCorrection.cxx.

◆ setFutureBufferAddress()

void TPCFastSpaceChargeCorrection::setFutureBufferAddress ( char futureFlatBufferPtr)

Sets a future location of the external flat buffer before moving it to this location (i.e. when copying to GPU). The object can be used immidiatelly after the move, call of setActualFlatBufferAddress() is not needed. !!! Information about the actual buffer location will be lost. !!! Most of the class methods may be called only after the buffer will be moved to its new location. !!! To undo call setActualFlatBufferAddress()

Definition at line 356 of file TPCFastSpaceChargeCorrection.cxx.

◆ setRowScenarioID()

void TPCFastSpaceChargeCorrection::setRowScenarioID ( int32_t  iRow,
int32_t  iScenario 
)

Initializes a TPC row.

Initializes a TPC row

Definition at line 457 of file TPCFastSpaceChargeCorrection.cxx.

◆ setSplineScenario()

void TPCFastSpaceChargeCorrection::setSplineScenario ( int32_t  scenarioIndex,
const SplineType spline 
)

Sets approximation scenario.

Sets approximation scenario

Definition at line 469 of file TPCFastSpaceChargeCorrection.cxx.

◆ startConstruction()

void TPCFastSpaceChargeCorrection::startConstruction ( const TPCFastTransformGeo geo,
int32_t  numberOfSplineScenarios 
)

_______________ Construction interface ________________________

Starts the construction procedure, reserves temporary memory

Starts the construction procedure, reserves temporary memory

Definition at line 416 of file TPCFastSpaceChargeCorrection.cxx.

Friends And Related Symbol Documentation

◆ TPCFastTransformPOD

Definition at line 42 of file TPCFastSpaceChargeCorrection.h.

Member Data Documentation

◆ const [1/6]

int32_t float float z o2::gpu::TPCFastSpaceChargeCorrection::const

Definition at line 208 of file TPCFastSpaceChargeCorrection.h.

◆ const [2/6]

int32_t float float float float float& dz o2::gpu::TPCFastSpaceChargeCorrection::const

Definition at line 226 of file TPCFastSpaceChargeCorrection.h.

◆ const [3/6]

int32_t float float realZ o2::gpu::TPCFastSpaceChargeCorrection::const

Definition at line 229 of file TPCFastSpaceChargeCorrection.h.

◆ const [4/6]

int32_t float float float float& z o2::gpu::TPCFastSpaceChargeCorrection::const

Definition at line 232 of file TPCFastSpaceChargeCorrection.h.

◆ const [5/6]

int32_t float float float float float& s o2::gpu::TPCFastSpaceChargeCorrection::const

Definition at line 238 of file TPCFastSpaceChargeCorrection.h.

◆ const [6/6]

int32_t float float z o2::gpu::TPCFastSpaceChargeCorrection::const

Definition at line 252 of file TPCFastSpaceChargeCorrection.h.

◆ dx

int32_t float float float& o2::gpu::TPCFastSpaceChargeCorrection::dx

Definition at line 226 of file TPCFastSpaceChargeCorrection.h.

◆ dy

int32_t float float float float& o2::gpu::TPCFastSpaceChargeCorrection::dy

Definition at line 226 of file TPCFastSpaceChargeCorrection.h.

◆ iSpline

int32_t int32_t o2::gpu::TPCFastSpaceChargeCorrection::iSpline = 0)

Definition at line 193 of file TPCFastSpaceChargeCorrection.h.

◆ realY

int32_t float o2::gpu::TPCFastSpaceChargeCorrection::realY

Definition at line 229 of file TPCFastSpaceChargeCorrection.h.

◆ realZ

int32_t float float o2::gpu::TPCFastSpaceChargeCorrection::realZ

Definition at line 232 of file TPCFastSpaceChargeCorrection.h.

◆ row

int32_t o2::gpu::TPCFastSpaceChargeCorrection::row

Definition at line 193 of file TPCFastSpaceChargeCorrection.h.

◆ u [1/2]

int32_t float o2::gpu::TPCFastSpaceChargeCorrection::u

Definition at line 238 of file TPCFastSpaceChargeCorrection.h.

◆ u [2/2]

int32_t float o2::gpu::TPCFastSpaceChargeCorrection::u

Definition at line 242 of file TPCFastSpaceChargeCorrection.h.

◆ v [1/2]

int32_t float float o2::gpu::TPCFastSpaceChargeCorrection::v

Definition at line 238 of file TPCFastSpaceChargeCorrection.h.

◆ v [2/2]

int32_t float float o2::gpu::TPCFastSpaceChargeCorrection::v

Definition at line 242 of file TPCFastSpaceChargeCorrection.h.

◆ y [1/2]

int32_t float o2::gpu::TPCFastSpaceChargeCorrection::y

Definition at line 226 of file TPCFastSpaceChargeCorrection.h.

◆ y [2/2]

int32_t float float float& o2::gpu::TPCFastSpaceChargeCorrection::y

Definition at line 232 of file TPCFastSpaceChargeCorrection.h.

◆ z

int32_t float float o2::gpu::TPCFastSpaceChargeCorrection::z

Definition at line 226 of file TPCFastSpaceChargeCorrection.h.


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