5#ifndef TRKALIGNGENTOOLS_MATRIXTOOL_H
6#define TRKALIGNGENTOOLS_MATRIXTOOL_H
22#include "GaudiKernel/ToolHandle.h"
27#include <TMatrixDSym.h>
28#include "CLHEP/Matrix/SymMatrix.h"
53 class IAlignModuleTool;
71 const IInterface* parent);
143 this,
"AlignModuleTool",
"Trk::AlignModuleTool/AlignModuleTool"};
155 "run diagonalization instead of inversion"};
157 {
this,
"EigenvalueThreshold", 0.,
"cut on the minimum eigenvalue"};
160 {
this,
"SolveOption",
NONE,
"solving option"};
162 "cut on the weak modes which number is <par_modcut"};
164 "cut on the minimum number of hits per module"};
166 "cut on the minimum number of tracks per module"};
168 "pull cut for the automatic weak mode removal method"};
170 "eigenvalue step for the second pass in the automatic weak mode removal method"};
172 "corr in the diagonal basis step for the third pass in the auto weak mode removal method"};
174 Gaudi::Property<bool>
m_calDet{
this,
"MatrixDet",
false,
175 "compute bigmatrix's determinant ?"};
176 Gaudi::Property<bool>
m_wSqMatrix{
this,
"WriteSquareMatrix",
false,
177 "write a triangular matrix by default (true: square format) ?"};
179 "write big matrix and vector into files ?"};
181 "also write big matrix and vector into txt files ?"};
183 "write eigenvalues and eigenvectors into files ?"};
185 "also write eigenvalues and eigenvectors into txt files ?"};
187 "write module name instead of Identifier to vector file"};
190 "write hitmap into file"};
192 "write hitmap into text file"};
194 "accumulate hitymap from files"};
197 "write out files to a root file"};
199 "if True then files will be read from TFiles instead of Binary files"};
201 Gaudi::Property<bool>
m_runLocal{
this,
"RunLocalMethod",
true,
202 "Run solving using Local method"};
206 "scale matrix by number of hits before solving"};
209 "add constant to diagonal to effectively cut on weak eigenmodes"};
212 "run spurious removal"};
215 {
this,
"CalculateFullCovariance",
true,
216 "calculate full covariance matrix for Lapack"};
218 Gaudi::Property<std::string>
m_pathbin{
this,
"PathBinName",
"./",
219 "path binary files (in/out)"};
220 Gaudi::Property<std::string>
m_pathtxt{
this,
"PathTxtName",
"./",
221 "path ascii files (in/out)"};
223 "prefix string to filenames"};
226 {
this,
"TFileName",
"AlignmentTFile.root",
"prefix string to filenames"};
229 {
this,
"ScalapackMatrixName",
"eigenvectors.bin",
"Scalapack matrix name"};
231 {
this,
"ScalapackVectorName",
"eigenvalues.bin",
"Scalapack vector name"};
234 {
this,
"InputMatrixFiles", {
"matrix.bin"},
235 "input binary files containing matrix terms"};
237 {
this,
"InputVectorFiles", {
"vector.bin"},
238 "input binary files containing vector terms"};
241 {
this,
"InputHitmapFiles", {
"hitmap.bin"},
242 "input binary files containing the hitmaps"};
245 {
this,
"InputTFiles", {
"AlignmentTFile.root"},
246 "input binary files containing matrix terms"};
252 "maximum number of reading TFile errors"};
256 {
this,
"AlignIBLbutNotPixel",
false};
258 {
this,
"AlignPixelbutNotIBL",
false};
261 {
this,
"DeactivateSCT_ECA_LastDisk",
false};
contains the implementation of the methods of class AlMat, for handling general NxM matrices
contains the base implementation for handling symmertic matrices
contains the implementation for handling symmetric matrices in triangular representation
Ensure that the ATLAS eigen extensions are properly loaded.
@ z
global position (cartesian)