ATLAS Offline Software
Loading...
Searching...
No Matches
SiGeometryManagerTool.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 INDETALIGNGEOMTOOLS_SIGEOMETRYMANAGERTOOL_H
6#define INDETALIGNGEOMTOOLS_SIGEOMETRYMANAGERTOOL_H
7
9
11
14
16
17#include <TGeoManager.h>
18
19
30
31namespace InDetDD
32{
35}
36
37class SCT_ID;
38class PixelID;
39class SiliconID;
40
41namespace Trk
42{
43 class AlignPar;
44 class AlignModule;
45}
46
47namespace InDet
48{
50 {
51 public:
52 SiGeometryManagerTool(const std::string& type, const std::string& name, const IInterface * parent);
53 virtual ~SiGeometryManagerTool();
54
55 StatusCode initialize();
56 StatusCode finalize();
57
62 int ReadGeometry(int solveLevel);
63
64 // the following two methods need to be overloaded but we don't need them (for the moment)
66 void StoreModPositions(std::string) {};
67
69 void buildGeometry();
70
74
76 bool checkAlignLevel();
77
79 void setLogStream(std::ostream * os);
80
81 private:
82
84 void buildL0();
85
88
91
93 bool moduleSelected(unsigned long long modId);
94
96 void dumpGeometry();
97
99 bool isOneDetOnly(const Trk::AlignModule * mod, Trk::AlignModule::DetectorType dettype) const;
100
103
107
108 ToolHandle<Trk::IGeometryManagerTool> m_pixelGeoManager;
109 ToolHandle<Trk::IGeometryManagerTool> m_sctGeoManager;
110
111 ToolHandle<Trk::IAlignModuleTool> m_alignModuleTool;
112
115
116 std::vector<Trk::AlignModuleList *> m_idHashToAlignModuleMaps;
117
120
121 // alignment transforms
128
129 double m_sigmaX;
130 double m_sigmaY;
131 double m_sigmaZ;
135
136 // Silicon joboptions
139
141 std::vector<unsigned long long> m_moduleSelection;
142
145
146 Gaudi::Property<std::string> m_pixelDetManagerName{this,"PixelDetectorManager","Pixel","Name of the Pixel Detector Manager to attempt to retrieve"};
147 Gaudi::Property<std::string> m_stripDetManagerName{this,"StripDetectorManager","SCT","Name of the Strip Detector Manager to attempt to retrieve"};
148
149 }; // end class
150
151} // end namespace
152
153#endif // INDETALIGNGEOMTOOLS_SIGEOMETRYMANAGERTOOL_H
An STL vector of pointers that by default owns its pointed-to elements.
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 ...
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
Derived DataVector<T>.
Definition DataVector.h:795
Dedicated detector manager extending the functionality of the SiDetectorManager with dedicated pixel ...
Dedicated detector manager extending the functionality of the SiDetectorManager with dedicated SCT in...
const InDetDD::PixelDetectorManager * m_pixelDetManager
pointer to PIX detector manager
DataVector< DataVector< Trk::AlignPar > > * m_alignParList
ToolHandle< Trk::IGeometryManagerTool > m_pixelGeoManager
pointer to Pixel geometry manager
void buildGeometry()
builds geometry for Silicon alignment
void setSigmas(Trk::AlignModule *mod, DataVector< Trk::AlignPar > *modPars)
sets sigmas for modules
ToolHandle< Trk::IAlignModuleTool > m_alignModuleTool
pointer to AlignModuleTool
Gaudi::Property< std::string > m_pixelDetManagerName
bool moduleSelected(Trk::AlignModule *mod)
check wheather module is selected for module pointer
int ReadGeometry(int solveLevel)
read the geometry Method is called from the main AlignAlg to build the geometry based on the requeste...
void buildL0()
creates L0 AlignModules for Silicon
const SCT_ID * m_sctHelper
pointer to SCT detector manager
const SiliconID * m_idHelper
pointer to Silicon detector manager
ToolHandle< Trk::IGeometryManagerTool > m_sctGeoManager
pointer to SCT geometry manager
DataVector< DataVector< Trk::AlignPar > > * m_fullAlignParList
std::vector< unsigned long long > m_moduleSelection
void setLogStream(std::ostream *os)
sets the output stream for the logfile
void dumpGeometry()
print basic geometry info to screen
const InDetDD::SCT_DetectorManager * m_sctDetManager
pointer to SCT detector manager
bool isOneDetOnly(const Trk::AlignModule *mod, Trk::AlignModule::DetectorType dettype) const
check whether the module is of a single detector type
bool checkAlignLevel()
check whether the alignment level is correct
Trk::AlignModuleList m_idHashToAlignModuleMap
const PixelID * m_pixHelper
pointer to PIX detector manager
std::vector< Trk::AlignModuleList * > m_idHashToAlignModuleMaps
Gaudi::Property< std::string > m_stripDetManagerName
SiGeometryManagerTool(const std::string &type, const std::string &name, const IInterface *parent)
void addModuleParameters(Trk::AlignModule *module, DataVector< DataVector< Trk::AlignPar > > *allFullModPars, DataVector< DataVector< Trk::AlignPar > > *allActiveModPars)
adds alignment parameters for the module checks for active parameters and calls setSigmas()
Dedicated detector manager extending the functionality of the SiDetectorManager with dedicated pixel ...
This is an Identifier helper class for the Pixel subdetector.
Definition PixelID.h:67
Dedicated detector manager extending the functionality of the SiDetectorManager with dedicated SCT in...
This is an Identifier helper class for the SCT subdetector.
Definition SCT_ID.h:68
This is an Identifier helper class for both the Pixel and SCT subdetectors.
Definition SiliconID.h:42
Message Stream Member.
Primary Vertex Finder.
Ensure that the ATLAS eigen extensions are properly loaded.
std::vector< AlignModule * > AlignModuleList