11#ifndef ALICEO2_BASE_DETMATRIXCACHE_H
12#define ALICEO2_BASE_DETMATRIXCACHE_H
32template <
typename T = o2::math_utils::Transform3D>
52 int getSize()
const {
return mCache.size(); }
57 if ((
unsigned int)sensID >= mCache.size()) {
58 LOG(fatal) <<
"SensID " << sensID <<
" exceeds cache size of " << mCache.size();
63 const T&
getMatrix(
int sensID)
const {
return mCache[sensID]; }
64 bool isFilled()
const {
return !mCache.empty(); }
67 std::vector<T> mCache;
168 int getCacheHelper(
int sensID)
170 if (sensID >= mIndirectSize) {
171 LOG(fatal) <<
"SendID " << sensID <<
" exceeds indirect cache size of " << mIndirectSize;
173 if (mIndirection[sensID] >= 0) {
174 return mIndirection[sensID];
176 return (mIndirection[sensID] = mNextEntry++);
179 int mIndirectSize = 0;
181 std::vector<short> mIndirection;
Timeframe settings Average distance in cm of events merged into Randomize distance around average distance of merged events Simulate correct bunch interactions instead of placing only the average number of events A value[n] sets TFlen for[n] collisions in Number of bunches per trainsort Number of bunch trains Instantaneous interaction rate Do not simulate border Total number of collisions to be placed in the interior of all time Do not select random but walk over array of events in stride steps h Event generator settings h configStandalone Use CPU for GPU Force usage of the specified GPU device no CPU fallback Continue processing after an error s
Static class with identifiers, bitmasks and names for ALICE detectors.
static constexpr const char * getName(ID id)
names of defined detectors
Variant of DetMatrixCache for non consecutive indexing.
int getIndirectSize() const
const Mat3D & getMatrixT2L(int sensID) const
void setMatrixT2L(const Mat3D &matrix, int sensID)
DetMatrixCacheIndirect(const o2::detectors::DetID &id)
DetMatrixCacheIndirect & operator=(const DetMatrixCacheIndirect &geom)=delete
o2::math_utils::Rotation2Df_t Rot2D
void setSize(int s)=delete
void setMatrixT2GRot(const Rot2D &matrix, int sensID)
o2::math_utils::Transform3D Mat3D
void setMatrixL2G(const Mat3D &matrix, int sensID)
void setMatrixT2G(const Mat3D &matrix, int sensID)
const Rot2D & getMatrixT2GRot(int sensID) const
const Mat3D & getMatrixL2G(int sensID) const
~DetMatrixCacheIndirect() override=default
bool isMatrixAvailable(int sensID) const
DetMatrixCacheIndirect(const DetMatrixCacheIndirect &src)=delete
DetMatrixCacheIndirect()=default
const Mat3D & getMatrixT2G(int sensID) const
MatrixCache< Rot2D > & getCacheT2GRot()
virtual void fillMatrixCache(int mask)=0
o2::detectors::DetID mDetID
detector ID
const Mat3D & getMatrixT2L(int sensID) const
const MatrixCache< Mat3D > & getCacheT2L() const
const char * getName() const
const Rot2D & getMatrixT2GRot(int sensID) const
virtual ~DetMatrixCache()=default
this may serve as a base class for detector interface to geometry, make it virtual
MatrixCache< Mat3D > & getCacheL2G()
MatrixCache< Mat3D > & getCacheT2L()
MatrixCache< Rot2D > mT2GRot
Tracking to Global matrices in case of barrel (simple rotation)
MatrixCache< Mat3D > mL2G
Local to Global matrices.
DetMatrixCache(const DetMatrixCache &src)=delete
const o2::detectors::DetID & getDetID() const
DetMatrixCache & operator=(const DetMatrixCache &geom)=delete
o2::math_utils::Rotation2Df_t Rot2D
MatrixCache< Mat3D > mT2G
Tracking to Global matrices (general case)
const Mat3D & getMatrixL2G(int sensID) const
ClassDef(DetMatrixCache, 1)
const MatrixCache< Mat3D > & getCacheT2G() const
int mSize
prebooked number of sensors
MatrixCache< Mat3D > & getCacheT2G()
o2::math_utils::Transform3D Mat3D
DetMatrixCache(const o2::detectors::DetID &id)
const MatrixCache< Rot2D > & getCacheT2GRot() const
const MatrixCache< Mat3D > & getCacheL2G() const
const Mat3D & getMatrixT2G(int sensID) const
MatrixCache< Mat3D > mT2L
Tracking to Local matrices.
MatrixCache is a vector of cached transform matrices (per sensor) for specific Transformation type.
int getSize() const
get the size of the cache
void setMatrix(const T &mat, int sensID)
assign matrix to a slot
const T & getMatrix(int sensID) const
void setSize(int s)
set the size of the cache
MatrixCache(const MatrixCache &src)=delete
MatrixCache & operator=(const MatrixCache &src)=delete
std::string detectors(const std::vector< std::string > &det, unsigned mask)
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...
LOG(info)<< "Compressed in "<< sw.CpuTime()<< " s"