ATLAS Offline Software
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 
24 
25 namespace 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 
43 
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 
66  bool accumulateFromFiles();
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 
Trk::IPCMatrixTool
Definition: IPCMatrixTool.h:31
Trk::IMatrixTool
Definition: IMatrixTool.h:35
Trk::AlVec
Definition: AlVec.h:23
Trk::IPCMatrixTool::accumulateFromFiles
bool accumulateFromFiles()
accumulates from files
Definition: IPCMatrixTool.cxx:91
Trk::AlSymMatBase
Definition: AlSymMatBase.h:38
Trk::IPCMatrixTool::allocateMatrix
StatusCode allocateMatrix(int nDoF)
allocates memory for IPC matrix and vector
Definition: IPCMatrixTool.cxx:63
Trk::IPCMatrixTool::addSecondDerivatives
void addSecondDerivatives(AlSymMatBase *matrix)
adds second derivatives to matrix
Definition: IPCMatrixTool.cxx:110
Trk::IPCMatrixTool::solve
int solve()
solves for alignment parameters
Definition: IPCMatrixTool.cxx:98
atlasStyleMacro.icol
int icol
Definition: atlasStyleMacro.py:13
Trk::IPCMatrixTool::addFirstDerivative
void addFirstDerivative(int irow, double firstderiv)
Definition: IPCMatrixTool.h:89
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
vector
Definition: MultiHisto.h:13
AthAlgTool.h
test_pyathena.parent
parent
Definition: test_pyathena.py:15
Trk::IPCMatrixTool::addFirstDerivatives
void addFirstDerivatives(AlVec *vector)
adds first derivative to vector
Definition: IPCMatrixTool.cxx:105
histSizes.list
def list(name, path='/')
Definition: histSizes.py:38
IMatrixTool.h
Trk::IPCMatrixTool::finalize
StatusCode finalize()
initialize
Definition: IPCMatrixTool.cxx:55
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Trk::IPCMatrixTool::m_ipcmatMatName
std::string m_ipcmatMatName
IPC binary matrix filename.
Definition: IPCMatrixTool.h:81
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
Trk::IPCMatrixTool::m_IPCremoval
bool m_IPCremoval
remove spurious + align.
Definition: IPCMatrixTool.h:85
Trk::IPCMatrixTool::m_ipcmatVecName
std::string m_ipcmatVecName
IPC binary vector filename.
Definition: IPCMatrixTool.h:82
Trk::IPCMatrixTool::IPCMatrixTool
IPCMatrixTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor.
Definition: IPCMatrixTool.cxx:24
Trk::IPCMatrixTool::addSecondDerivative
void addSecondDerivative(int irow, int icol, double secondderiv)
Definition: IPCMatrixTool.h:91
python.testIfMatch.matrix
matrix
Definition: testIfMatch.py:66
Trk::IPCMatrixTool::~IPCMatrixTool
virtual ~IPCMatrixTool()
Virtual destructor.
Definition: IPCMatrixTool.cxx:39
Trk::IPCMat
Definition: IPCMat.h:37
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
Trk::IPCMatrixTool::m_ipcmat
IPCMat * m_ipcmat
Pointer to IPCMat, used for parallel processing.
Definition: IPCMatrixTool.h:79
Trk::IPCMatrixTool::prepareBinaryFiles
void prepareBinaryFiles(int solveOption)
reads/writes matrix entries from/to binary files as necessary
Definition: IPCMatrixTool.cxx:85
AthAlgTool
Definition: AthAlgTool.h:26
Trk::IPCMatrixTool::initialize
StatusCode initialize()
initialize
Definition: IPCMatrixTool.cxx:47