ATLAS Offline Software
Loading...
Searching...
No Matches
IAlignModuleTool.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_ALIGNMODULETOOL_IH
6#define TRKALIGNINTERFACES_ALIGNMODULETOOL_IH
7
8#include "GaudiKernel/IAlgTool.h"
9#include "GaudiKernel/ToolHandle.h"
11
15
16#include <fstream>
17
31
32namespace Trk {
33 class Track;
34 class AlignTrack;
35 class AlignTSOS;
36 class RIO_OnTrack;
37
38 static const InterfaceID
39 IID_TRKALIGNINTERFACES_IAlignModuleTool("Trk::IAlignModuleTool",1,0);
40
41
42 class IAlignModuleTool: virtual public IAlgTool {
43
44 public:
45 static const InterfaceID& interfaceID();
46
47 virtual ~IAlignModuleTool() {};
48
49 virtual StatusCode initialize() = 0;
50 virtual StatusCode finalize() = 0;
51
54
57
58 //
59 // GeometryManagerTool methods
60 //
61
63 virtual void setAlignModules(AlignModuleList* alignmods,
64 std::vector<AlignModuleList*>* idHashToAlignModMap) = 0;
65
67 virtual void setAlignParLists(DataVector<DataVector<AlignPar> >* fullAlignParList,
68 DataVector<DataVector<AlignPar> >* alignParList) = 0;
69
71 virtual void setSubDetElement(AlignModule::DetectorType detType, bool status) = 0;
72 virtual bool subDetElement(AlignModule::DetectorType detType) const = 0;
73
74 //
75 // AlignTrackCreator methods
76 //
77
81
85
87 virtual void setMeasurementProperties(AlignTSOS *) const {};
88
89 //
90 // MatrixTool methods
91 //
92
94 virtual int nAlignParameters() const = 0;
95
98 virtual const AlignModuleList* alignModules1D() = 0;
100
101
102 // DerivCalcTool methods
103
105 virtual DataVector<AlignPar>* getAlignPars(const AlignModule* alignModule) const = 0;
106
108 virtual void shiftModule(const AlignModule*, const Track*,
109 AlignModule::TransformParameters, double) const {}
110 virtual void restoreModule(const AlignModule*) const {}
111
112
113 //
114 // AlignDBTool methods
115 //
116
123
125 virtual const AlignModuleList* getAlignModuleCollection() const = 0;
126
127
128 //
129 // FillNtuple methods
130 //
131
133 virtual DataVector<AlignPar>* getFullAlignPars(const AlignModule* alignModule) const = 0;
134
135 //
136 // Other
137 //
138
140 virtual void setLogStream(std::ostream * os) { m_logStream = os; }
141
142 protected:
143
144 std::ostream * m_logStream = nullptr;
145
146 };
147
150
151} // end namespace
152
153#endif // TRKALIGNINTERFACES_ALIGNMODULETOOL_IH
An STL vector of pointers that by default owns its pointed-to elements.
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...
Derived DataVector<T>.
Definition DataVector.h:795
Class to handle RIO On Tracks ROT) for InDet and Muons, it inherits from the common MeasurementBase.
Definition RIO_OnTrack.h:70
TransformParameters
enum to keep track of transformation coordinates
Definition AlignModule.h:54
virtual AlignModule * findAlignModule(const TrkDetElementBase *det, AlignModule::DetectorType=AlignModule::NDetectorTypes) const =0
finds AlignModule for a detector element
virtual bool subDetElement(AlignModule::DetectorType detType) const =0
virtual void shiftModule(const AlignModule *, const Track *, AlignModule::TransformParameters, double) const
shifts and restores tubes traversed by track in module (used by ShiftingDerivCalcTool)
virtual void setAlignModules(AlignModuleList *alignmods, std::vector< AlignModuleList * > *idHashToAlignModMap)=0
sets AlignModules for a particular detector type
virtual void fillDetAlignmentParameters(const TrkDetElementBase *det, DataVector< AlignPar > *apVec, AlignModule::DetectorType detType=AlignModule::NDetectorTypes) const =0
returns alignment parameters for a detector element, applying AlignModule transforms if necessary
virtual const AlignModuleList * getAlignModuleCollection() const =0
gets all AlignModules for a particular detector type
virtual void setSubDetElement(AlignModule::DetectorType detType, bool status)=0
set and retrieve flag whether or not the sub-TrkDetElementBase structures are aligned for a given det...
virtual DataVector< AlignPar > * alignParList1D()=0
virtual AlignModuleListType alignModuleListType() const =0
returns type of AlignModuleList (see AlignModuleList.h for more info)
virtual DataVector< AlignPar > * getFullAlignPars(const AlignModule *alignModule) const =0
returns vector of full AlignPars for an AlignModule
virtual AlignModule * findAlignModule(const RIO_OnTrack *rio, AlignModule::DetectorType=AlignModule::NDetectorTypes) const =0
finds AlignModule for a detector element (used by AlignTrackCreator)
virtual StatusCode finalize()=0
virtual void setLogStream(std::ostream *os)
sets the output stream for the logfile
static const InterfaceID & interfaceID()
virtual int nAlignParameters() const =0
number of alignment parameters for all detector types
virtual void setAlignParLists(DataVector< DataVector< AlignPar > > *fullAlignParList, DataVector< DataVector< AlignPar > > *alignParList)=0
sets AlignPar for AlignModules for a particular detector type
virtual AlignModule::DetectorType getDetectorType(const TrkDetElementBase *det) const =0
gets detector type for a detector element
virtual const AlignModuleList * alignModules1D()=0
converts 2-D AlignParList and AlignModuleList for all detector types to single 1-D vectors (used by M...
virtual void setMeasurementProperties(AlignTSOS *) const
allows to set detector specific properties of AlignTSOS, like measurement direction (CSC) or fan-out ...
virtual DataVector< AlignPar > * getAlignPars(const AlignModule *alignModule) const =0
returns alignment parameters for a single module
std::ostream * m_logStream
logfile output stream
virtual void restoreModule(const AlignModule *) const
virtual StatusCode initialize()=0
Class to handle RIO On Tracks ROT) for InDet and Muons, it inherits from the common MeasurementBase.
Definition RIO_OnTrack.h:70
This is the base class for all tracking detector elements with read-out relevant information.
Ensure that the ATLAS eigen extensions are properly loaded.
std::vector< AlignModule * > AlignModuleList
static const InterfaceID IID_TRKALIGNINTERFACES_IAlignModuleTool("Trk::IAlignModuleTool", 1, 0)
AlignModuleListType
Type of AlignModuleList (see description above).