ATLAS Offline Software
Loading...
Searching...
No Matches
IGeometryManagerTool.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_IGEOMETRYMANAGERTOOL_H
6#define TRKALIGNINTERFACES_IGEOMETRYMANAGERTOOL_H
7
8#include "GaudiKernel/IAlgTool.h"
9
12
22
23#include <fstream>
24
25class TFile;
26
27static const InterfaceID
29
30namespace Trk {
31
32 class AlignModule;
33 class AlignPar;
34
35class IGeometryManagerTool : virtual public IAlgTool {
36
37 public:
39
40 static const InterfaceID& interfaceID();
41
42 virtual StatusCode initialize() = 0;
43 virtual StatusCode finalize() = 0;
44
46 virtual int ReadGeometry(int solvelevel) = 0;
47
48 virtual void PrintModPositions() = 0;
49 virtual void StoreModPositions(std::string filename) = 0;
50
52 virtual void setNtuple(TFile*) {}
53
55 virtual void setLogStream(std::ostream * os) { m_logStream = os; }
56
58 virtual void buildGeometry() {};
59
63
65 virtual int getNextIDHash() { return m_hashCounter++; };
66
68 virtual void setFirstIDHash(unsigned int idhash) { m_hashCounter=idhash; };
69
72
74 virtual void setHashMaps(std::vector<Trk::AlignModuleList *> * maps) { m_idHashToAlignModuleMapsPtr=maps; }
75
77 virtual bool checkAlignLevel() { return true; }
78
80 virtual int alignLevel() { return m_alignLevel; }
81
83 virtual void setAlignLevel(int level) { m_alignLevel = level; }
84
86 virtual int alignLevelBarrel() { return m_alignLevelBarrel; }
87
89 virtual void setAlignLevelBarrel(int level) { m_alignLevelBarrel = level; }
90
92 virtual bool checkAlignLevelBarrel() { return true; }
93
95 virtual int alignLevelEndcaps() { return m_alignLevelEndcaps; }
96
98 virtual void setAlignLevelEndcaps(int level) { m_alignLevelEndcaps = level; }
99
101 virtual bool checkAlignLevelEndcaps() { return true; }
102
103 protected:
104
107
109 std::vector<Trk::AlignModuleList *> * m_idHashToAlignModuleMapsPtr = nullptr;
110
112
113 std::ostream * m_logStream = nullptr;
114
115 int m_alignLevel = 0;
118
119}; // end class definition
120
124
125} // end namespace
126
127#endif // TRKALIGNINTERFACES_IGEOMETRYMANAGERTOOL_H
An STL vector of pointers that by default owns its pointed-to elements.
static const InterfaceID IID_TRKALIGNINTERFACES_IGeometryManagerTool("IGeometryManagerTool", 1, 0)
AlignModule is a grouping of TrkDetElementBase objects, grouped according to the type of alignment,...
AlignPar contains all the information related to an alignment parameter of a particular align module ...
Derived DataVector<T>.
Definition DataVector.h:795
virtual void setModuleList(Trk::AlignModuleList *list)
set pointer to module list to which the modules should be added to
virtual void setAlignLevelBarrel(int level)
set alignment level
std::ostream * m_logStream
logfile output stream
virtual void setAlignLevel(int level)
set alignment level
virtual void setFirstIDHash(unsigned int idhash)
set first free IDHash usable for new AlignModule
int m_alignLevelBarrel
alignment level
virtual void setLogStream(std::ostream *os)
sets the output stream for the logfile
virtual int alignLevel()
get alignment level
static const InterfaceID & interfaceID()
virtual bool checkAlignLevelEndcaps()
check whether the alignment level is allowed
virtual void setNtuple(TFile *)
Sets output ntuple file, to be implemented if needed for detector-specific implementation.
virtual void setHashMaps(std::vector< Trk::AlignModuleList * > *maps)
set pointer to vector of hashMaps to which the elements should be added to
virtual int alignLevelEndcaps()
get alignment level
int m_hashCounter
variable for setting the idHash of the AlignModules
virtual void addModuleParameters(Trk::AlignModule *, DataVector< DataVector< Trk::AlignPar > > *, DataVector< DataVector< Trk::AlignPar > > *)
set alignment parameters for a given module and add them to the list the arguments are AlignModule,...
virtual StatusCode initialize()=0
virtual void setAlignLevelEndcaps(int level)
set alignment level
virtual void buildGeometry()
create align modules and add them to the list
virtual int getNextIDHash()
get next free IDHash usable for new AlignModule
Trk::AlignModuleList * m_alignModuleListPtr
pointer to module list to which the modules are added
int m_alignLevelEndcaps
alignment level
virtual bool checkAlignLevel()
check whether the alignment level is allowed
virtual int alignLevelBarrel()
get alignment level
virtual void PrintModPositions()=0
virtual StatusCode finalize()=0
virtual void StoreModPositions(std::string filename)=0
virtual bool checkAlignLevelBarrel()
check whether the alignment level is allowed
virtual int ReadGeometry(int solvelevel)=0
build collection of AlignModules for a particular detector type, return number of alignment parameter...
std::vector< Trk::AlignModuleList * > * m_idHashToAlignModuleMapsPtr
pointer to vector of hashMaps to which the elements are added
Ensure that the ATLAS eigen extensions are properly loaded.
std::vector< AlignModule * > AlignModuleList