ATLAS Offline Software
Loading...
Searching...
No Matches
PixelGeometryManagerTool.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_PIXELGEOMETRYMANAGERTOOL_H
6#define INDETALIGNGEOMTOOLS_PIXELGEOMETRYMANAGERTOOL_H
7
9
11
14
16
27
28namespace InDetDD
29{
31}
32
33class PixelID;
34
35namespace Trk
36{
37 class AlignPar;
38 class AlignModule;
39}
40
41class IRDBAccessSvc;
42class IGeoModelSvc;
43
44namespace InDet
45{
47 {
48
49 public:
50 PixelGeometryManagerTool(const std::string& type, const std::string& name, const IInterface * parent);
52
53 StatusCode initialize();
54 StatusCode finalize();
55
60 int ReadGeometry(int solveLevel);
61
62 // the following two methods need to be overloaded but we don't need them (for the moment)
64 void StoreModPositions(std::string) {};
65
67 void buildGeometry();
68
72
74 bool checkAlignLevel();
75
78
81
82 void setAlignLevel(int level);
83
86
87
88 private:
89
92
94 void buildL1();
95
97 void buildL11();
98
100 void buildL12Barrel();
101
103 void buildL12Endcaps();
104
106 void buildL15Barrel();
107
109 void buildL16Barrel();
110
112 void buildL2Barrel();
113
115 void buildL2Endcaps();
116
118 void buildL22Barrel();
119
121 void buildL26Barrel();
122
124 void buildL27Barrel();
125
127 void buildL3Barrel();
128
130 void buildL3Endcaps();
131
133 void buildL1DBM();
134
136 void buildL2DBM();
137
139 void buildL3DBM();
140
143
146
148 bool moduleSelected(unsigned long long modId);
149
151 void dumpGeometry();
152
154 bool isTopHalf(unsigned int phi, unsigned int layer) const;
155
156 void printTransform(const Amg::Transform3D & tr) const;
157
159
161
162 ToolHandle<Trk::IAlignModuleTool> m_alignModuleTool;
163
166
167 std::vector<Trk::AlignModuleList *> m_idHashToAlignModuleMaps;
168
171
174
176 std::vector<unsigned long long> m_moduleSelection;
177
180
188
189
196
204
211
219
226
229
230 Gaudi::Property<std::string> m_pixelDetManagerName{this,"PixelDetectorManager","Pixel","Name of the Pixel Detector Manager to attempt to retrieve"};
231 Gaudi::Property<bool> m_doEtaCorrection{this,"EtaCorrection",true,"If we should check the DB to see if eta 0 should be skipped"};
232
233 }; // end class
234
235} // end namespace
236
237#endif // INDETALIGNGEOMTOOLS_PIXELGEOMETRYMANAGERTOOL_H
238
Scalar phi() const
phi method
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
IRDBAccessSvc is an abstract interface to the athena service that provides the following functionalit...
Dedicated detector manager extending the functionality of the SiDetectorManager with dedicated pixel ...
void buildL15Barrel()
creates L15 AlignModules for Pixel Barrel : 2 half-shells
Gaudi::Property< std::string > m_pixelDetManagerName
void buildL11()
creates L11 IBL as 1 module and old-pixel as 1 module
void buildL16Barrel()
creates L16 AlignModules for Pixel Barrel : IBL staves , remainder of barrel 1 Module
void printTransform(const Amg::Transform3D &tr) const
void buildL2DBM()
creates L2 AlignModules for Pixel DBM : 8 telescopes
void buildL1DBM()
creates L1 AlignModules for Pixel DBM : 2 endcaps
void buildL3DBM()
creates L2 AlignModules for Pixel DBM : 24 modules
ToolHandle< Trk::IAlignModuleTool > m_alignModuleTool
pointer to AlignModuleTool
void dumpGeometry()
print basic geometry info to screen
DataVector< DataVector< Trk::AlignPar > > * m_fullAlignParList
void buildL3Endcaps()
creates L3 AlignModules for Pixel Endcaps : module (wafer) level
PixelGeometryManagerTool(const std::string &type, const std::string &name, const IInterface *parent)
void buildGeometry()
builds geometry for Silicon alignment
const InDetDD::PixelDetectorManager * m_detManager
pointer to PIX detector manager
std::vector< unsigned long long > m_moduleSelection
void buildL1()
creates L1 AlignModules for Pixel : full Pixel
void buildL2Endcaps()
creates L2 AlignModules for Pixel Endcaps : 2 x 3 disks
bool checkAlignLevelEndcaps()
check whether the alignment level for the endcaps is correct
void buildL2Barrel()
creates L2 AlignModules for Pixel Barrel : 3 layers
bool checkAlignLevel()
check whether the alignment level is correct
int getNoSkipEtaValueFromGeometry() const
get sipeta value from geometry DB
void buildL12Barrel()
creates L12 AlignModules for Pixel Barrel : whole barrel as 1 module
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()
ServiceHandle< IRDBAccessSvc > m_rdbAccessSvc
void buildL26Barrel()
creates L26 AlignModules for Pixel Barrel : IBL staves remainder at L2
ServiceHandle< IGeoModelSvc > m_geoModelSvc
void buildL3Barrel()
creates L3 AlignModules for Pixel Barrel : module (wafer) level
void setAlignLevel(int level)
set alignment level
bool isTopHalf(unsigned int phi, unsigned int layer) const
Checks whether the given phi module in a given barrel layer belongs to top or bottom half.
bool checkAlignLevelBarrel()
check whether the alignment level for the barrel is correct
int m_etaCorrection
eta correction value needed when IBL is present
void setSigmas(Trk::AlignModule *mod, DataVector< Trk::AlignPar > *modPars)
sets sigmas for modules
const PixelID * m_idHelper
pointer to PIX detector manager
DataVector< DataVector< Trk::AlignPar > > * m_alignParList
void buildL12Endcaps()
creates L12 AlignModules for Pixel Barrel : 2 endcaps
int ReadGeometry(int solveLevel)
read the geometry Method is called from the main AlignAlg to build the geometry based on the requeste...
void buildL27Barrel()
creates L27 AlignModules for Pixel Barrel : 112 staves (ladders)
bool moduleSelected(Trk::AlignModule *mod)
check wheather module is selected for module pointer
std::vector< Trk::AlignModuleList * > m_idHashToAlignModuleMaps
void buildL22Barrel()
creates L22 AlignModules for Pixel Barrel : 6 half-layers
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
Eigen::Affine3d Transform3D
Message Stream Member.
Primary Vertex Finder.
Ensure that the ATLAS eigen extensions are properly loaded.
std::vector< AlignModule * > AlignModuleList