24#ifndef ALIGNABLEVOLUME_H
25#define ALIGNABLEVOLUME_H
29#include <TGeoMatrix.h>
78 int getVolID()
const {
return (
int)GetUniqueID(); }
101 mDOF &= ~(0x1 << dof);
168 virtual void updateL2GRecoMatrices(
const std::vector<o2::detectors::AlignParam>& algArr,
const TGeoHMatrix* cumulDelta);
172 void delta2Matrix(TGeoHMatrix& deltaM,
const double* delta)
const;
177 void getDeltaT2LmodLOC(TGeoHMatrix& matMod,
const double* delta,
const TGeoHMatrix& relMat)
const;
178 void getDeltaT2LmodTRA(TGeoHMatrix& matMod,
const double* delta,
const TGeoHMatrix& relMat)
const;
186 void createAlignmentObjects(std::vector<o2::detectors::AlignParam>& arr,
const TGeoHMatrix* envelopeDelta =
nullptr)
const;
209 void Print(
const Option_t* opt =
"")
const override;
210 virtual void writePedeInfo(FILE* parOut,
const Option_t* opt =
"")
const;
218 void calcFree(
bool condFree =
true);
Definition of the base alignment parameters class.
Interface to contiguous set of DOFs in the controller class.
AlignableVolume * mParent
void calcFree(bool condFree=true)
void setSkip(bool v=true)
void setDummyEnvelope(bool v=true)
virtual void prepareMatrixL2G(bool reco=false)
double getXTracking() const
uint32_t getFreeDOFGeomPattern() const
double getAlpTracking() const
int getNProcessedPoints() const
virtual void updateL2GRecoMatrices(const std::vector< o2::detectors::AlignParam > &algArr, const TGeoHMatrix *cumulDelta)
void createPreGloDeltaMatrix(TGeoHMatrix &deltaM) const
bool isNameMatching(const std::string ®exStr) const
@ kExclFromParentConstraintBit
static const char * sFrameName[kNVarFrames]
static uint32_t sDefGeomFree
AlignableVolume * getChild(int i) const
const TGeoHMatrix & getMatrixT2L() const
virtual void writePedeInfo(FILE *parOut, const Option_t *opt="") const
bool isChildrenDOFConstrained(int dof) const
virtual bool isSensor() const
static void setDefGeomFree(uint8_t patt)
AlignableVolume()=default
int getNDOFGeomFree() const
void Print(const Option_t *opt="") const override
static const char * sDOFName[kNDOFGeom]
void unConstrainChildrenDOF(int dof)
void getDeltaT2LmodLOC(TGeoHMatrix &matMod, const double *delta) const
void setMeasuredDOFPattern(uint32_t pat)
virtual void prepareMatrixL2GIdeal()
void addAutoConstraints()
bool isMeasuredDOF(int dof) const
void delta2Matrix(TGeoHMatrix &deltaM, const double *delta) const
~AlignableVolume() override
void setMatrixL2GIdeal(const TGeoHMatrix &m)
void setInternalID(int v)
void getParValGeom(double *delta) const
void getDeltaT2LmodTRA(TGeoHMatrix &matMod, const double *delta) const
Frame_t getVarFrame() const
bool getExcludeFromParentConstraint() const
ClassDefOverride(AlignableVolume, 2)
bool isCondDOF(int dof) const
const TGeoHMatrix & getMatrixL2G() const
TGeoHMatrix mMatDeltaRefGlo
void constrainChildrenDOF(int dof)
void setGlobalDeltaRef(const TGeoHMatrix &mat)
virtual void writeLabeledPedeResults(FILE *parOut) const
const TGeoHMatrix & getMatrixL2GReco() const
bool isFreeDOF(int dof) const
bool createGloDeltaMatrix(TGeoHMatrix &deltaM) const
bool hasChildrenConstraint() const
uint32_t getFreeDOFPattern() const
virtual void addChild(AlignableVolume *ch)
uint8_t getChildrenConstraintPattern() const
bool createLocDeltaMatrix(TGeoHMatrix &deltaM) const
void createAlignmenMatrix(TGeoHMatrix &alg, const TGeoHMatrix *envelopeDelta=nullptr) const
void setParent(AlignableVolume *par)
bool ownsDOFID(int id) const
void setMatrixL2GReco(const TGeoHMatrix &m)
void getMatrixT2G(TGeoHMatrix &m) const
static const char * getGeomDOFName(int i)
AlignableVolume * getVolOfDOFID(int id) const
AlignableVolume & operator=(const AlignableVolume &)
void setChildrenConstrainPattern(uint32_t pat)
AlignableVolume(const AlignableVolume &)
void setMatrixL2G(const TGeoHMatrix &m)
bool isDummyEnvelope() const
void createAlignmentObjects(std::vector< o2::detectors::AlignParam > &arr, const TGeoHMatrix *envelopeDelta=nullptr) const
const TGeoHMatrix & getMatrixL2GIdeal() const
virtual int finalizeStat()
bool getInitDOFsDone() const
int getInternalID() const
AlignableVolume * getParent() const
void createPreLocDeltaMatrix(TGeoHMatrix &deltaM) const
const TGeoHMatrix & getGlobalDeltaRef() const
void setMatrixT2L(const TGeoHMatrix &m)
virtual void prepareMatrixT2L()
const char * getSymName() const
static uint8_t getDefGeomFree()
void setVarFrame(Frame_t f)
virtual const char * getDOFName(int i) const
void excludeFromParentConstraint(bool v=true)
void setFreeDOFPattern(uint32_t pat)
void align(gsl::span< ElinkEncoder< BareFormat, CHARGESUM > > elinks)
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...