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

#include <TPCFastSpaceChargeCorrection.h>

Inherits o2::gpu::FlatObject.

Classes

struct  RowActiveArea
 
struct  RowInfo
 The struct contains necessary info for TPC padrow. More...
 
struct  SliceInfo
 
struct  SliceRowInfo
 

Public Types

typedef Spline2D< float, 3 > SplineType
 

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 ________________________
 
 GPUd () void setTimeStamp(int64_t v)
 Sets the time stamp of the current calibaration.
 
 GPUd () void setInterpolationSafetyMargin(float val)
 
 GPUd () const SplineType &getSpline(int32_t slice
 Gives const pointer to a spline.
 
 GPUd () SplineType &getSpline(int32_t slice
 Gives pointer to a spline.
 
 GPUd () float *getSplineData(int32_t slice
 Gives pointer to spline data.
 
 GPUd () const float *getSplineData(int32_t slice
 Gives pointer to spline data.
 
 GPUd () int32_t getCorrection(int32_t slice
 
 GPUd () void getCorrectionInvCorrectedX(int32_t slice
 inverse correction: Corrected U and V -> coorrected X
 
 GPUd () void getCorrectionInvUV(int32_t slice
 inverse correction: Corrected U and V -> uncorrected U and V
 
 GPUd () float getMaxDriftLength(int32_t slice
 maximal possible drift length of the active area
 
 GPUd () float getMaxDriftLength(int32_t slice
 maximal possible drift length of the active area
 
 GPUd () float getMaxDriftLength(int32_t slice) const
 maximal possible drift length of the active area
 
 GPUd () void schrinkUV(int32_t slice
 _______________ Utilities _______________________________________________
 
 GPUd () void schrinkCorrectedUV(int32_t slice
 shrink corrected u,v coordinats to the TPC row area +/- fkInterpolationSafetyMargin
 
 GPUd () void convUVtoGrid(int32_t slice
 convert u,v to internal grid coordinates
 
 GPUd () void convGridToUV(int32_t slice
 convert u,v to internal grid coordinates
 
 GPUd () void convCorrectedUVtoGrid(int32_t slice
 convert corrected u,v to internal grid coordinates
 
 GPUd () const TPCFastTransformGeo &getGeometry() const
 TPC geometry information.
 
int64_t getTimeStamp () const
 Gives the time stamp of the current calibaration parameters.
 
 GPUd () float getInterpolationSafetyMargin() const
 Gives the interpolation safety marging around the TPC row.
 
 GPUd () const RowInfo &getRowInfo(int32_t row) const
 Gives TPC row info.
 
 GPUd () const SliceInfo &getSliceInfo(int32_t slice) const
 Gives TPC slice info.
 
 GPUd () SliceInfo &getSliceInfo(int32_t slice)
 Gives TPC slice info.
 
 GPUd () const SliceRowInfo &getSliceRowInfo(int32_t slice
 Gives TPC slice & row info.
 
 GPUd () SliceRowInfo &getSliceRowInfo(int32_t slice
 Gives TPC slice & 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
 
void destroy ()
 _______________ Utilities _______________________________________________
 
size_t getFlatBufferSize () const
 Gives size of the flat buffer.
 
const chargetFlatBufferPtr () 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 ()
 _____________ Memory alignment __________________________
 
- Static Public Member Functions inherited from o2::gpu::FlatObject
static 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 const
 
int32_t row
 
int32_t int32_t iSpline = 0)
 
int32_t float u
 
int32_t float float v
 
int32_t float float float & dx
 
int32_t float float float float & du
 
int32_t float float float float float &dv const
 
int32_t float corrU
 
int32_t float float corrV
 
int32_t float float float &corrX const
 
int32_t float float float & nomU
 
int32_t float float float float &nomV const
 
int32_t float pad const
 
int32_t float & u
 
int32_t float float &v const
 
int32_t float & corrU
 
int32_t float float &corrV const
 
int32_t float float float & gridU
 
int32_t float float float float &gridV const
 
int32_t float gridU
 
int32_t float float gridV
 
int32_t float float float & u
 
int32_t float float float float &v const
 
int32_t float cu
 
int32_t float float cv
 

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 ()
 _____________ Memory alignment __________________________
 
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 39 of file TPCFastSpaceChargeCorrection.h.

Member Typedef Documentation

◆ SplineType

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 45 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 95 of file TPCFastSpaceChargeCorrection.cxx.

◆ constructWithNoCorrection()

void TPCFastSpaceChargeCorrection::constructWithNoCorrection ( const TPCFastTransformGeo geo)

Definition at line 438 of file TPCFastSpaceChargeCorrection.cxx.

◆ destroy()

void TPCFastSpaceChargeCorrection::destroy ( )

Definition at line 62 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 312 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 197 of file FlatObject.h.

◆ getClassAlignmentBytes()

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

_____________ Memory alignment __________________________

Gives minimal alignment in bytes required for the class object

Definition at line 194 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 196 of file TPCFastSpaceChargeCorrection.h.

◆ GPUd() [1/25]

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

Gives pointer to spline data.

◆ GPUd() [2/25]

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

Gives TPC row info.

Definition at line 202 of file TPCFastSpaceChargeCorrection.h.

◆ GPUd() [3/25]

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

Gives TPC slice info.

Definition at line 205 of file TPCFastSpaceChargeCorrection.h.

◆ GPUd() [4/25]

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

Gives TPC slice & row info.

◆ GPUd() [5/25]

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

Gives const pointer to a spline.

◆ GPUd() [6/25]

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

TPC geometry information.

Definition at line 190 of file TPCFastSpaceChargeCorrection.h.

◆ GPUd() [7/25]

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

Gives pointer to spline data.

◆ GPUd() [8/25]

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

Gives the interpolation safety marging around the TPC row.

Definition at line 199 of file TPCFastSpaceChargeCorrection.h.

◆ GPUd() [9/25]

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

maximal possible drift length of the active area

◆ GPUd() [10/25]

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

maximal possible drift length of the active area

◆ GPUd() [11/25]

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

maximal possible drift length of the active area

◆ GPUd() [12/25]

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

_______________ The main method: cluster correction _______________________

◆ GPUd() [13/25]

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

Gives TPC slice info.

Definition at line 211 of file TPCFastSpaceChargeCorrection.h.

◆ GPUd() [14/25]

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

Gives TPC slice & row info.

◆ GPUd() [15/25]

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

Gives pointer to a spline.

◆ GPUd() [16/25]

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

convert corrected u,v to internal grid coordinates

◆ GPUd() [17/25]

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

convert u,v to internal grid coordinates

◆ GPUd() [18/25]

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

convert u,v to internal grid coordinates

◆ GPUd() [19/25]

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

inverse correction: Corrected U and V -> coorrected X

◆ GPUd() [20/25]

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

inverse correction: Corrected U and V -> uncorrected U and V

◆ GPUd() [21/25]

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

shrink corrected u,v coordinats to the TPC row area +/- fkInterpolationSafetyMargin

◆ GPUd() [22/25]

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

_______________ Utilities _______________________________________________

shrink u,v coordinats to the TPC row area +/- fkInterpolationSafetyMargin

◆ GPUd() [23/25]

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

Set safety marging for the interpolation around the TPC row. Outside of this area the interpolation returns the boundary values.

Definition at line 139 of file TPCFastSpaceChargeCorrection.h.

◆ GPUd() [24/25]

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

_______________ Initialization interface ________________________

Set no correction

◆ GPUd() [25/25]

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

Sets the time stamp of the current calibaration.

Definition at line 135 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 132 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 206 of file TPCFastSpaceChargeCorrection.cxx.

◆ releaseInternalBuffer()

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

Making the data buffer external.

Definition at line 220 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 (i.e. to another maschine)

Definition at line 141 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 178 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 289 of file TPCFastSpaceChargeCorrection.cxx.

◆ setSplineScenario()

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

Sets approximation scenario.

Sets approximation scenario

Definition at line 302 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 249 of file TPCFastSpaceChargeCorrection.cxx.

Member Data Documentation

◆ const [1/9]

int32_t float float float float float &dv o2::gpu::TPCFastSpaceChargeCorrection::const
Initial value:
{
return mSliceRowInfoPtr[mGeo.getNumberOfRows() * slice + row]

Definition at line 142 of file TPCFastSpaceChargeCorrection.h.

◆ const [2/9]

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

Definition at line 155 of file TPCFastSpaceChargeCorrection.h.

◆ const [3/9]

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

Definition at line 158 of file TPCFastSpaceChargeCorrection.h.

◆ const [4/9]

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

Definition at line 161 of file TPCFastSpaceChargeCorrection.h.

◆ const [5/9]

int32_t float pad o2::gpu::TPCFastSpaceChargeCorrection::const

Definition at line 164 of file TPCFastSpaceChargeCorrection.h.

◆ const [6/9]

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

Definition at line 175 of file TPCFastSpaceChargeCorrection.h.

◆ const [7/9]

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

Definition at line 178 of file TPCFastSpaceChargeCorrection.h.

◆ const [8/9]

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

Definition at line 181 of file TPCFastSpaceChargeCorrection.h.

◆ const [9/9]

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

Definition at line 184 of file TPCFastSpaceChargeCorrection.h.

◆ corrU [1/2]

int32_t float o2::gpu::TPCFastSpaceChargeCorrection::corrU

Definition at line 158 of file TPCFastSpaceChargeCorrection.h.

◆ corrU [2/2]

int32_t float& o2::gpu::TPCFastSpaceChargeCorrection::corrU

Definition at line 178 of file TPCFastSpaceChargeCorrection.h.

◆ corrV

int32_t float float o2::gpu::TPCFastSpaceChargeCorrection::corrV

Definition at line 158 of file TPCFastSpaceChargeCorrection.h.

◆ cu

int32_t float o2::gpu::TPCFastSpaceChargeCorrection::cu

Definition at line 187 of file TPCFastSpaceChargeCorrection.h.

◆ cv

int32_t float float o2::gpu::TPCFastSpaceChargeCorrection::cv

Definition at line 187 of file TPCFastSpaceChargeCorrection.h.

◆ du

int32_t float float float float & o2::gpu::TPCFastSpaceChargeCorrection::du

Definition at line 155 of file TPCFastSpaceChargeCorrection.h.

◆ dx

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

Definition at line 155 of file TPCFastSpaceChargeCorrection.h.

◆ gridU [1/2]

int32_t float float float & o2::gpu::TPCFastSpaceChargeCorrection::gridU

Definition at line 181 of file TPCFastSpaceChargeCorrection.h.

◆ gridU [2/2]

int32_t float o2::gpu::TPCFastSpaceChargeCorrection::gridU

Definition at line 184 of file TPCFastSpaceChargeCorrection.h.

◆ gridV

int32_t float float o2::gpu::TPCFastSpaceChargeCorrection::gridV

Definition at line 184 of file TPCFastSpaceChargeCorrection.h.

◆ iSpline

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

Definition at line 148 of file TPCFastSpaceChargeCorrection.h.

◆ nomU

int32_t float float float& o2::gpu::TPCFastSpaceChargeCorrection::nomU

Definition at line 161 of file TPCFastSpaceChargeCorrection.h.

◆ row

int32_t o2::gpu::TPCFastSpaceChargeCorrection::row
Initial value:
{
return mSliceRowInfoPtr[mGeo.getNumberOfRows() * slice + row]

Definition at line 145 of file TPCFastSpaceChargeCorrection.h.

◆ u [1/3]

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

Definition at line 155 of file TPCFastSpaceChargeCorrection.h.

◆ u [2/3]

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

Definition at line 175 of file TPCFastSpaceChargeCorrection.h.

◆ u [3/3]

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

Definition at line 184 of file TPCFastSpaceChargeCorrection.h.

◆ v

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

Definition at line 155 of file TPCFastSpaceChargeCorrection.h.


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