ATLAS Offline Software
Loading...
Searching...
No Matches
IPCMatrixTool.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef TRKALIGNGENTOOLS_IPCMATRIXTOOL_H
6#define TRKALIGNGENTOOLS_IPCMATRIXTOOL_H
7
21
24
25namespace Trk {
26
27 class AlVec;
28 class AlSymMatBase;
29 class IPCMat;
30
31 class IPCMatrixTool : public AthAlgTool, virtual public IMatrixTool {
32 public:
33
35 IPCMatrixTool(const std::string& type, const std::string& name,
36 const IInterface* parent);
37
39 virtual ~IPCMatrixTool();
40
42 StatusCode initialize();
43
45 StatusCode finalize();
46
48 StatusCode allocateMatrix(int nDoF);
49
51 void prepareBinaryFiles(int solveOption);
52
55
57 void addFirstDerivatives(std::list<int,double>& derivatives);
58
61
63 void addSecondDerivatives(std::list<std::pair<int,int>,double >& derivatives);
64
67
69 int solve();
70
71 void addFirstDerivative(int irow, double firstderiv);
72 void addSecondDerivative(int irow, int icol, double secondderiv);
73
74 //void setAlignModule(int, const AlignModule*, int) {}
75
76 private:
77
80
81 std::string m_ipcmatMatName;
82 std::string m_ipcmatVecName;
83
86
87 }; // end of class
88
89 inline void IPCMatrixTool::addFirstDerivative(int, double) { /*m_bigvector[i]+=firstderiv;*/ }
90
91 inline void IPCMatrixTool::addSecondDerivative(int, int, double) { /*m_bigmatrix[irow][icol]+=secondderiv;*/ }
92
93
94} // end of namespace
95
96#endif // TRKALIGNGENTOOLS_IPCMATRIXTOOL_H
97
98
99
100
101
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
contains the base implementation for handling symmertic matrices
IMatrixTool()
constructor
void addSecondDerivatives(AlSymMatBase *matrix)
adds second derivatives to matrix
StatusCode initialize()
initialize
std::string m_ipcmatMatName
IPC binary matrix filename.
IPCMatrixTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor.
void addFirstDerivatives(AlVec *vector)
adds first derivative to vector
bool accumulateFromFiles()
accumulates from files
void prepareBinaryFiles(int solveOption)
reads/writes matrix entries from/to binary files as necessary
virtual ~IPCMatrixTool()
Virtual destructor.
int solve()
solves for alignment parameters
std::string m_ipcmatVecName
IPC binary vector filename.
bool m_IPCremoval
remove spurious + align.
IPCMat * m_ipcmat
Pointer to IPCMat, used for parallel processing.
StatusCode allocateMatrix(int nDoF)
allocates memory for IPC matrix and vector
void addFirstDerivative(int irow, double firstderiv)
StatusCode finalize()
initialize
void addSecondDerivative(int irow, int icol, double secondderiv)
Ensure that the ATLAS eigen extensions are properly loaded.