ATLAS Offline Software
IDerivCalcTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef TRKALIGNINTERFACES_IDERIVCALCTOOL_IH
6 #define TRKALIGNINTERFACES_IDERIVCALCTOOL_IH
7 
23 #include "GaudiKernel/IAlgTool.h"
24 
25 #include <fstream>
26 
27 namespace Trk {
28 
29  class Track;
30  class AlignTSOS;
31  class AlignTrack;
32 
33  static const InterfaceID
34  IID_TRKALIGNINTERFACES_IDerivCalcTool("IDerivCalcTool",1,0);
35 
36  class IDerivCalcTool : virtual public IAlgTool {
37 
38  public:
39 
41  enum SolveOption {
42  NONE = 0,
43  SOLVE = 1,
44  SOLVE_FAST = 2,
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;
77 
78  private:
79 
80  int m_solveOption = 0;
81 
82  }; // end of class
83 
84  inline const InterfaceID& IDerivCalcTool::interfaceID() {
85  return IID_TRKALIGNINTERFACES_IDerivCalcTool;
86  }
87 
88 } // end of namespace
89 
90 
91 #endif // TRKALIGNINTERFACES_IDERIVCALCTOOL_IH
Trk::IDerivCalcTool::setSolveOption
void setSolveOption(int solveOption)
solving option (see enum above)
Definition: IDerivCalcTool.h:57
Trk::IDerivCalcTool::showStatistics
virtual void showStatistics()=0
write statistics to log file
Trk::IDerivCalcTool::interfaceID
static const InterfaceID & interfaceID()
Retrieve interface ID.
Definition: IDerivCalcTool.h:84
Trk::IDerivCalcTool::m_logStream
std::ostream * m_logStream
logfile output stream
Definition: IDerivCalcTool.h:76
Trk::IDerivCalcTool::DIRECT_SOLVE_CLUSTER
@ DIRECT_SOLVE_CLUSTER
computation of alignment parameters from SCALAPAK already solved matrix
Definition: IDerivCalcTool.h:47
Trk::IDerivCalcTool::NONE
@ NONE
not solve in any case (to be used when ipc)
Definition: IDerivCalcTool.h:42
Trk::IDerivCalcTool::m_solveOption
int m_solveOption
Definition: IDerivCalcTool.h:80
Trk::IDerivCalcTool::SOLVE_FAST
@ SOLVE_FAST
Fast (Eigen method) solving after data accumulation.
Definition: IDerivCalcTool.h:44
Trk::IDerivCalcTool::SolveOption
SolveOption
enum of different solving options
Definition: IDerivCalcTool.h:41
Trk::IDerivCalcTool::~IDerivCalcTool
virtual ~IDerivCalcTool()
Virtual destructor.
Definition: IDerivCalcTool.h:51
Trk::IDerivCalcTool::SOLVE
@ SOLVE
solving after data accumulation (LAPACK)
Definition: IDerivCalcTool.h:43
Trk::IDerivCalcTool::setLogStream
virtual void setLogStream(std::ostream *os)
sets the output stream for the logfile
Definition: IDerivCalcTool.h:71
Trk::IDerivCalcTool::setResidualCovMatrix
virtual bool setResidualCovMatrix(AlignTrack *alignTrack) const =0
sets residual covariance matrix
AlignTSOS
AlignTSOS is a TSOS with extra variables useful for alignment. It is created using an implementation ...
Trk::IDerivCalcTool::DIRECT_SOLVE
@ DIRECT_SOLVE
direct solving (LAPACK), already available matrix & vector
Definition: IDerivCalcTool.h:45
Trk::IDerivCalcTool::DIRECT_SOLVE_FAST
@ DIRECT_SOLVE_FAST
direct Fast (Eigen method) solving, already available matrix & vector
Definition: IDerivCalcTool.h:46
ReadFromCoolCompare.os
os
Definition: ReadFromCoolCompare.py:231
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Trk::IDerivCalcTool::setDerivatives
virtual bool setDerivatives(AlignTrack *alignTrack)=0
sets partial derivatives of residuals w.r.t.
Trk::AlignTrack
Definition: AlignTrack.h:41
Trk::IDerivCalcTool
Definition: IDerivCalcTool.h:36
Track
Definition: TriggerChamberClusterOnTrackCreator.h:21
AlignTrack
AlignTrack is a generalization of a Trk::Track, used as the basic object to contain track information...