ATLAS Offline Software
Loading...
Searching...
No Matches
IDerivCalcTool.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef TRKALIGNINTERFACES_IDERIVCALCTOOL_IH
6#define TRKALIGNINTERFACES_IDERIVCALCTOOL_IH
7
22
23#include "GaudiKernel/IAlgTool.h"
24
25#include <fstream>
26
27namespace Trk {
28
29 class Track;
30 class AlignTSOS;
31 class AlignTrack;
32
33 static const InterfaceID
35
36 class IDerivCalcTool : virtual public IAlgTool {
37
38 public:
39
42 NONE = 0,
43 SOLVE = 1,
48 }; // this is also defined in TrkGlobAlign class
49
51 virtual ~IDerivCalcTool() {}
52
54 static const InterfaceID& interfaceID();
55
57 void setSolveOption(int solveOption) { m_solveOption=solveOption; }
58
60 virtual bool setDerivatives(AlignTrack* alignTrack) = 0;
61
63 virtual void showStatistics() = 0;
64
65 //bool storeSuperStructures() { return m_storeSuperStructures; }
66
68 virtual bool setResidualCovMatrix(AlignTrack* alignTrack) const = 0;
69
71 virtual void setLogStream(std::ostream * os) { m_logStream = os; }
72
73 protected:
74 //bool m_storeSuperStructures; //!< Store Super Structures information in txt file ?
75
76 std::ostream * m_logStream = nullptr;
77
78 private:
79
81
82 }; // end of class
83
84 inline const InterfaceID& IDerivCalcTool::interfaceID() {
86 }
87
88} // end of namespace
89
90
91#endif // TRKALIGNINTERFACES_IDERIVCALCTOOL_IH
AlignTSOS is a TSOS with extra variables useful for alignment.
AlignTrack is a generalization of a Trk::Track, used as the basic object to contain track information...
virtual void setLogStream(std::ostream *os)
sets the output stream for the logfile
std::ostream * m_logStream
logfile output stream
virtual bool setDerivatives(AlignTrack *alignTrack)=0
sets partial derivatives of residuals w.r.t.
virtual void showStatistics()=0
write statistics to log file
void setSolveOption(int solveOption)
solving option (see enum above)
virtual bool setResidualCovMatrix(AlignTrack *alignTrack) const =0
sets residual covariance matrix
static const InterfaceID & interfaceID()
Retrieve interface ID.
SolveOption
enum of different solving options
@ DIRECT_SOLVE_FAST
direct Fast (Eigen method) solving, already available matrix & vector
@ DIRECT_SOLVE_CLUSTER
computation of alignment parameters from SCALAPAK already solved matrix
@ SOLVE
solving after data accumulation (LAPACK)
@ SOLVE_FAST
Fast (Eigen method) solving after data accumulation.
@ NONE
not solve in any case (to be used when ipc)
@ DIRECT_SOLVE
direct solving (LAPACK), already available matrix & vector
virtual ~IDerivCalcTool()
Virtual destructor.
Ensure that the ATLAS eigen extensions are properly loaded.
static const InterfaceID IID_TRKALIGNINTERFACES_IDerivCalcTool("IDerivCalcTool", 1, 0)