17#ifndef ALICEO2_MCH_ALIGNER
18#define ALICEO2_MCH_ALIGNER
31#include <TGeoManager.h>
32#include <TGeoMatrix.h>
113 void init(TString DataRecFName =
"millerecords.root", TString ConsRecFName =
"milleconstraints.root");
207 fDoEvaluation =
value;
213 fRefitStraightTracks =
value;
218 void SetSigmaXY(
double sigmaX,
double sigmaY);
262 void GroupDetElems(
const int* detElemList,
int nDetElem,
unsigned int parameterMask =
ParAll);
285 void AddConstraints(
const bool* bChOnOff,
unsigned int parameterMask);
295 void GlobalFit(std::vector<double>&
params, std::vector<double>& errors, std::vector<double>& pulls);
305 void ReAlign(std::vector<o2::detectors::AlignParam>&
params, std::vector<double>& misAlignments);
307 void SetAlignmentResolution(
const TClonesArray* misAlignArray,
int chId,
double chResX,
double chResY,
double deResX,
double deResY);
321 fDisableRecordWriter =
true;
332 void SetLocalDerivative(
int index,
double value)
338 void SetGlobalDerivative(
int index,
double value)
344 LocalTrackParam RefitStraightTrack(Track&,
double)
const;
346 void FillDetElemData(
const Cluster*);
348 void FillRecPointData(
const Cluster*);
350 void FillTrackParamData(
const TrackParam*);
352 void LocalEquationX(
const double*
r);
354 void LocalEquationY(
const double*
r);
356 TGeoCombiTrans DeltaTransform(
const double* detElemMisAlignment)
const;
358 bool isMatrixConvertedToAngles(
const double* rot,
double& psi,
double& theta,
double& phi)
const;
363 void AddConstraint(
double* parameters,
double value);
365 int GetChamberId(
int iDetElemNumber)
const;
367 bool DetElemIsValid(
int iDetElemId)
const;
369 int GetDetElemNumber(
int iDetElemId)
const;
371 TString GetParameterMaskString(
unsigned int parameterMask)
const;
373 TString GetSidesMaskString(
unsigned int sidesMask)
const;
387 bool fRefitStraightTracks;
396 double fResCutInitial;
411 double fTrackSlope0[2];
414 double fTrackSlope[2];
417 double fTrackPos0[3];
431 kFreeParId = kFixedParId - 1,
437 std::vector<int> fGlobalParameterStatus;
440 std::vector<double> fGlobalDerivatives;
443 std::vector<double> fLocalDerivatives;
458 bool fDisableRecordWriter;
460 LocalTrackClusterResidual* fTrkClRes;
471 long mNEntriesAutoSave = 10000;
474 bool mWithConstraintsRecWriter;
478 bool mWithConstraintsRecReader =
false;
Definition of the base alignment parameters class.
Definition of the MCH track for internal use.
General class for alignment with large number of degrees of freedom, adapted from AliROOT.
Class to store the data of single track processing.
Store residuals and local/global deriavtives from a single track processing.
HMPID cluster implementation.
void ReleaseDetElem(int iDetElemId, unsigned int parameterMask=ParAll)
void SetRefitStraightTracks(bool value)
set to true to refit tracks
void SetBFieldOn(bool value)
Set flag for Magnetic field On/Off.
void SetAllowedVariation(int iPar, double value)
void ReAlign(std::vector< o2::detectors::AlignParam > ¶ms, std::vector< double > &misAlignments)
void SetDetElemNonLinear(int iSt, unsigned int parameterMask)
void SetRunNumber(int id)
run number
static const int fgNDetElemCh[fgNCh]
Number of detection elements per chamber.
void FixParameter(int iPar)
o2::fwdalign::MillePedeRecord & GetRecord()
void SetAlignmentResolution(const TClonesArray *misAlignArray, int chId, double chResX, double chResY, double deResX, double deResY)
void GlobalFit(std::vector< double > ¶ms, std::vector< double > &errors, std::vector< double > &pulls)
perform global fit
static const int fgDetElemHalfCh[fgNHalfCh][fgNDetHalfChMax]
list of detection elements per tracking module
@ fNGlobal
Number of global parameters.
@ fgNDetHalfChMax
max number of detector elements per half chamber
@ fgNSt
Number tracking stations.
@ fgNHalfCh
Number of half chambers.
@ fNLocal
Number of local parameters.
@ fgNCh
Number tracking chambers.
@ fgNParCh
Number of degrees of freedom per chamber.
@ fgNTrkMod
Number of tracking modules.
void AddConstraints(const bool *bChOnOff, unsigned int parameterMask)
void SetDoEvaluation(bool value)
set to true to do refit evaluation
void SetParameterNonLinear(int iPar)
void ReleaseParameter(int iDetElem, int iPar)
void FixHalfSpectrometer(const bool *bChOnOff, unsigned int sidesMask=AllSides, unsigned int parameterMask=ParAll)
void SetChamberNonLinear(int iCh, unsigned int parameterMask)
void init(TString DataRecFName="millerecords.root", TString ConsRecFName="milleconstraints.root")
void FixChamber(int iCh, unsigned int parameterMask=ParAll)
void PrintGlobalParameters(void) const
print global parameters
SidesMask
detector sides bit set, used for selecting sides in constrains
static const int fgSNDetElemCh[fgNCh+1]
Sum of detection elements up to this chamber.
void ProcessTrack(Track &track, const o2::mch::geo::TransformationCreator &transformation, Bool_t doAlignment, Double_t weight=1)
double GetParError(int iPar) const
get error on a given parameter
void ReleaseChamber(int iCh, unsigned int parameterMask=ParAll)
void GroupDetElems(int detElemMin, int detElemMax, unsigned int parameterMask=ParAll)
ParameterMask
global parameter bit set, used for masks
void InitGlobalParameters(double *par)
initialize global parameters to a give set of values
void FixDetElem(int iDetElemId, unsigned int parameterMask=ParAll)
void GroupChamber(int iCh, unsigned int parameterMask=ParAll)
void FixAll(unsigned int parameterMask=ParAll)
void SetParameterNonLinear(int iDetElem, int iPar)
void FixParameter(int iDetElem, int iPar)
void SetSigmaXY(double sigmaX, double sigmaY)
void ReleaseParameter(int iPar)
void DisableRecordWriter()
void GroupHalfChamber(int iCh, int iHalf, unsigned int parameterMask=ParAll)
static const int fgNDetElemHalfCh[fgNHalfCh]
Number of detection element per tracking module.
local track residual, for tempoarary eval
~LocalTrackClusterResidual()=default
LocalTrackClusterResidual()=default
local track parameters, for refit
~LocalTrackParam()=default
LocalTrackParam()=default
GLuint GLuint GLfloat weight
GLsizei const GLfloat * value
GLenum const GLfloat * params
std::function< o2::math_utils::Transform3D(int detElemId)> TransformationCreator
a couple of static helper functions to create timestamp values for CCDB queries or override obsolete ...