![]() |
Project
|
#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. | |
TPCFastSpaceChargeCorrection & | operator= (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) | |
char * | releaseInternalBuffer () |
Making the data buffer external. | |
![]() | |
FlatObject ()=default | |
_____________ Constructors / destructors __________________________ | |
~FlatObject () | |
FlatObject (const FlatObject &)=delete | |
FlatObject & | operator= (const FlatObject &)=delete |
void | destroy () |
_______________ Utilities _______________________________________________ | |
size_t | getFlatBufferSize () const |
Gives size of the flat buffer. | |
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 () |
_____________ Memory alignment __________________________ | |
![]() | |
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 | |
![]() | |
enum | ConstructionState : uint32_t { NotConstructed = 0x0 , Constructed = 0x1 , InProgress = 0x2 } |
GPUCA_GPUCODE. More... | |
![]() | |
void | startConstruction () |
_____________ Construction _________ | |
void | finishConstruction (int32_t flatBufferSize) |
void | cloneFromObject (const FlatObject &obj, char *newFlatBufferPtr) |
char * | releaseInternalBuffer () |
_____________ 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 constexpr size_t | getClassAlignmentBytes () |
_____________ Memory alignment __________________________ | |
static constexpr size_t | getBufferAlignmentBytes () |
Gives minimal alignment in bytes required for the flat buffer. | |
![]() | |
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 | |
char * | mFlatBufferContainer = nullptr |
char * | mFlatBufferPtr = nullptr |
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.
typedef Spline2D<float, 3> o2::gpu::TPCFastSpaceChargeCorrection::SplineType |
Definition at line 75 of file TPCFastSpaceChargeCorrection.h.
TPCFastSpaceChargeCorrection::TPCFastSpaceChargeCorrection | ( | ) |
_____________ Constructors / destructors __________________________
Default constructor: creates an empty uninitialized object
Definition at line 30 of file TPCFastSpaceChargeCorrection.cxx.
|
delete |
Copy constructor: disabled to avoid ambiguity. Use cloneTo[In/Ex]ternalBuffer() instead.
TPCFastSpaceChargeCorrection::~TPCFastSpaceChargeCorrection | ( | ) |
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.
void TPCFastSpaceChargeCorrection::constructWithNoCorrection | ( | const TPCFastTransformGeo & | geo | ) |
Definition at line 438 of file TPCFastSpaceChargeCorrection.cxx.
void TPCFastSpaceChargeCorrection::destroy | ( | ) |
Definition at line 62 of file TPCFastSpaceChargeCorrection.cxx.
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.
|
inlinestaticconstexpr |
_____________ FlatObject functionality, see FlatObject class for description ____________
Memory alignment
Definition at line 197 of file FlatObject.h.
|
inlinestaticconstexpr |
_____________ Memory alignment __________________________
Gives minimal alignment in bytes required for the class object
Definition at line 194 of file FlatObject.h.
|
inline |
Gives the time stamp of the current calibaration parameters.
Definition at line 196 of file TPCFastSpaceChargeCorrection.h.
o2::gpu::TPCFastSpaceChargeCorrection::GPUd | ( | ) | const |
Gives pointer to spline data.
|
inline |
Gives TPC row info.
Definition at line 202 of file TPCFastSpaceChargeCorrection.h.
|
inline |
Gives TPC slice info.
Definition at line 205 of file TPCFastSpaceChargeCorrection.h.
o2::gpu::TPCFastSpaceChargeCorrection::GPUd | ( | ) | const & |
Gives TPC slice & row info.
o2::gpu::TPCFastSpaceChargeCorrection::GPUd | ( | ) | const & |
Gives const pointer to a spline.
|
inline |
TPC geometry information.
Definition at line 190 of file TPCFastSpaceChargeCorrection.h.
o2::gpu::TPCFastSpaceChargeCorrection::GPUd | ( | ) |
Gives pointer to spline data.
|
inline |
Gives the interpolation safety marging around the TPC row.
Definition at line 199 of file TPCFastSpaceChargeCorrection.h.
o2::gpu::TPCFastSpaceChargeCorrection::GPUd | ( | ) |
maximal possible drift length of the active area
o2::gpu::TPCFastSpaceChargeCorrection::GPUd | ( | ) |
maximal possible drift length of the active area
o2::gpu::TPCFastSpaceChargeCorrection::GPUd | ( | ) | const |
maximal possible drift length of the active area
o2::gpu::TPCFastSpaceChargeCorrection::GPUd | ( | ) |
_______________ The main method: cluster correction _______________________
|
inline |
Gives TPC slice info.
Definition at line 211 of file TPCFastSpaceChargeCorrection.h.
o2::gpu::TPCFastSpaceChargeCorrection::GPUd | ( | ) | & |
Gives TPC slice & row info.
o2::gpu::TPCFastSpaceChargeCorrection::GPUd | ( | ) | & |
Gives pointer to a spline.
o2::gpu::TPCFastSpaceChargeCorrection::GPUd | ( | ) |
convert corrected u,v to internal grid coordinates
o2::gpu::TPCFastSpaceChargeCorrection::GPUd | ( | ) |
convert u,v to internal grid coordinates
o2::gpu::TPCFastSpaceChargeCorrection::GPUd | ( | ) |
convert u,v to internal grid coordinates
o2::gpu::TPCFastSpaceChargeCorrection::GPUd | ( | ) |
inverse correction: Corrected U and V -> coorrected X
o2::gpu::TPCFastSpaceChargeCorrection::GPUd | ( | ) |
inverse correction: Corrected U and V -> uncorrected U and V
o2::gpu::TPCFastSpaceChargeCorrection::GPUd | ( | ) |
shrink corrected u,v coordinats to the TPC row area +/- fkInterpolationSafetyMargin
o2::gpu::TPCFastSpaceChargeCorrection::GPUd | ( | ) |
_______________ Utilities _______________________________________________
shrink u,v coordinats to the TPC row area +/- fkInterpolationSafetyMargin
|
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.
o2::gpu::TPCFastSpaceChargeCorrection::GPUd | ( | ) |
_______________ Initialization interface ________________________
Set no correction
|
inline |
Sets the time stamp of the current calibaration.
Definition at line 135 of file TPCFastSpaceChargeCorrection.h.
|
pure virtual |
Sets buffer pointer to the new address, move the buffer content there.
Definition at line 132 of file TPCFastSpaceChargeCorrection.cxx.
|
delete |
Assignment operator: disabled to avoid ambiguity. Use cloneTo[In/Ex]ternalBuffer() instead.
void TPCFastSpaceChargeCorrection::print | ( | ) | const |
Print method.
Definition at line 206 of file TPCFastSpaceChargeCorrection.cxx.
|
inline |
Making the data buffer external.
Definition at line 220 of file FlatObject.h.
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.
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.
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.
void TPCFastSpaceChargeCorrection::setSplineScenario | ( | int32_t | scenarioIndex, |
const SplineType & | spline | ||
) |
Sets approximation scenario.
Sets approximation scenario
Definition at line 302 of file TPCFastSpaceChargeCorrection.cxx.
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.
int32_t float float float float float &dv o2::gpu::TPCFastSpaceChargeCorrection::const |
Definition at line 142 of file TPCFastSpaceChargeCorrection.h.
int32_t float float float float float& dv o2::gpu::TPCFastSpaceChargeCorrection::const |
Definition at line 155 of file TPCFastSpaceChargeCorrection.h.
int32_t float float float& corrX o2::gpu::TPCFastSpaceChargeCorrection::const |
Definition at line 158 of file TPCFastSpaceChargeCorrection.h.
int32_t float float float float& nomV o2::gpu::TPCFastSpaceChargeCorrection::const |
Definition at line 161 of file TPCFastSpaceChargeCorrection.h.
int32_t float pad o2::gpu::TPCFastSpaceChargeCorrection::const |
Definition at line 164 of file TPCFastSpaceChargeCorrection.h.
int32_t float float& v o2::gpu::TPCFastSpaceChargeCorrection::const |
Definition at line 175 of file TPCFastSpaceChargeCorrection.h.
int32_t float float& corrV o2::gpu::TPCFastSpaceChargeCorrection::const |
Definition at line 178 of file TPCFastSpaceChargeCorrection.h.
int32_t float float float float& gridV o2::gpu::TPCFastSpaceChargeCorrection::const |
Definition at line 181 of file TPCFastSpaceChargeCorrection.h.
int32_t float float float float& v o2::gpu::TPCFastSpaceChargeCorrection::const |
Definition at line 184 of file TPCFastSpaceChargeCorrection.h.
int32_t float o2::gpu::TPCFastSpaceChargeCorrection::corrU |
Definition at line 158 of file TPCFastSpaceChargeCorrection.h.
int32_t float& o2::gpu::TPCFastSpaceChargeCorrection::corrU |
Definition at line 178 of file TPCFastSpaceChargeCorrection.h.
int32_t float float o2::gpu::TPCFastSpaceChargeCorrection::corrV |
Definition at line 158 of file TPCFastSpaceChargeCorrection.h.
int32_t float o2::gpu::TPCFastSpaceChargeCorrection::cu |
Definition at line 187 of file TPCFastSpaceChargeCorrection.h.
int32_t float float o2::gpu::TPCFastSpaceChargeCorrection::cv |
Definition at line 187 of file TPCFastSpaceChargeCorrection.h.
int32_t float float float float & o2::gpu::TPCFastSpaceChargeCorrection::du |
Definition at line 155 of file TPCFastSpaceChargeCorrection.h.
int32_t float float float & o2::gpu::TPCFastSpaceChargeCorrection::dx |
Definition at line 155 of file TPCFastSpaceChargeCorrection.h.
int32_t float float float & o2::gpu::TPCFastSpaceChargeCorrection::gridU |
Definition at line 181 of file TPCFastSpaceChargeCorrection.h.
int32_t float o2::gpu::TPCFastSpaceChargeCorrection::gridU |
Definition at line 184 of file TPCFastSpaceChargeCorrection.h.
int32_t float float o2::gpu::TPCFastSpaceChargeCorrection::gridV |
Definition at line 184 of file TPCFastSpaceChargeCorrection.h.
int32_t int32_t o2::gpu::TPCFastSpaceChargeCorrection::iSpline = 0) |
Definition at line 148 of file TPCFastSpaceChargeCorrection.h.
int32_t float float float& o2::gpu::TPCFastSpaceChargeCorrection::nomU |
Definition at line 161 of file TPCFastSpaceChargeCorrection.h.
int32_t o2::gpu::TPCFastSpaceChargeCorrection::row |
Definition at line 145 of file TPCFastSpaceChargeCorrection.h.
int32_t float o2::gpu::TPCFastSpaceChargeCorrection::u |
Definition at line 155 of file TPCFastSpaceChargeCorrection.h.
int32_t float& o2::gpu::TPCFastSpaceChargeCorrection::u |
Definition at line 175 of file TPCFastSpaceChargeCorrection.h.
int32_t float float float& o2::gpu::TPCFastSpaceChargeCorrection::u |
Definition at line 184 of file TPCFastSpaceChargeCorrection.h.
int32_t float float o2::gpu::TPCFastSpaceChargeCorrection::v |
Definition at line 155 of file TPCFastSpaceChargeCorrection.h.