ATLAS Offline Software
Loading...
Searching...
No Matches
TRTGeometryManagerTool.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_TRTGEOMETRYMANAGERTOOL_H
6#define INDETALIGNGEOMTOOLS_TRTGEOMETRYMANAGERTOOL_H
7
9
11
14
16
26
27namespace InDetDD
28{
29 class TRT_DetectorManager;
30}
31
32class TRT_ID;
33
34namespace Trk
35{
36 class AlignPar;
37 class AlignModule;
38}
39
40namespace InDet
41{
43 {
44 public:
45 TRTGeometryManagerTool(const std::string& type, const std::string& name, const IInterface * parent);
47
48 StatusCode initialize();
49 StatusCode finalize();
50
55 int ReadGeometry(int solveLevel);
56
57 // the following two methods need to be overloaded but we don't need them (for the moment)
59 void StoreModPositions(std::string) {};
60
62 void buildGeometry();
63
67
69 bool checkAlignLevel();
70
73
76
77 void setAlignLevel(int level);
78
79 private:
80
83 void buildL0();
84
87 void buildL1Barrel();
88
91 void buildL1Endcaps();
92
95 void buildL2Barrel();
96
99 void buildL2Endcaps();
100
103 void buildL2EndcapsOLD();
104
107 void buildL3Barrel();
108
111 void buildL3Endcap();
112
115
118
120 bool moduleSelected(unsigned long long modId);
121
123 bool moduleSelectedBarrel(unsigned int iLayer, unsigned int iPhi);
124
126 bool moduleSelectedEndcap(unsigned int iwheel, unsigned int iphi);
127
129 void dumpGeometry();
130
132
134
135 ToolHandle<Trk::IAlignModuleTool> m_alignModuleTool;
136
139
140 std::vector<Trk::AlignModuleList*> m_idHashToAlignModuleMaps;
141
144
147
154
161
168
175
182
189
190 std::vector<int> m_barrelPhiSectors;
191 std::vector<int> m_barrelLayers;
192
194 std::vector<int> m_endcapPhiSectors;
195 std::vector<int> m_endcapWheels;
196
198 std::vector<unsigned long long> m_moduleSelection;
199
201 }; // end class
202
203} // end namespace
204
205#endif // INDETALIGNGEOMTOOLS_TRTGEOMETRYMANAGERTOOL_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
The Detector Manager for all TRT Detector elements, it acts as the interface to the detector elements...
void buildL2Endcaps()
builds geometry for L2 TRT Endcapalignment Creates 80 modules - 40 rings per endcap
bool moduleSelected(Trk::AlignModule *mod)
check wheather module is selected for module pointer
void setSigmas(Trk::AlignModule *mod, DataVector< Trk::AlignPar > *modPars)
sets sigmas for modules
void buildL2EndcapsOLD()
builds geometry for L2 TRT Endcapalignment Creates 28 modules - 14 wheels per endcap
bool checkAlignLevelEndcaps()
check whether the Endcap alignment level is correct
std::vector< Trk::AlignModuleList * > m_idHashToAlignModuleMaps
void dumpGeometry()
print basic geometry info to screen
void buildL0()
builds geometry for L1 TRT alignment Creates 1 module - the whole TRT
void setAlignLevel(int level)
set alignment level
Trk::AlignModuleList m_idHashToAlignModuleMap
int m_endcap
endcap_id of the endcap to align (-2 or 2 for endcap A or C, 0 for both)
const InDetDD::TRT_DetectorManager * m_trtDetManager
pointer to TRT detector manager
bool moduleSelectedEndcap(unsigned int iwheel, unsigned int iphi)
check wheather we are aligning the different endcaps and sectors
void buildGeometry()
builds geometry for TRT alignment
DataVector< DataVector< Trk::AlignPar > > * m_fullAlignParList
void buildL3Barrel()
builds geometry for L3 TRT Barrel alignment Creates many modules - one module per straw
bool moduleSelectedBarrel(unsigned int iLayer, unsigned int iPhi)
check wheather barrel module is selected by layer and phi
std::vector< int > m_barrelPhiSectors
list of barrel phi sectors to align (if empty, align everything)
void buildL1Endcaps()
builds geometry for L1 TRT Endcap alignment Creates 2 modules, one for each endcap
std::vector< int > m_barrelLayers
list of barrel layers to align (if empty, align everything)
std::vector< unsigned long long > m_moduleSelection
void buildL1Barrel()
builds geometry for L1 TRT Barrel alignment Creates single module for barrel
ToolHandle< Trk::IAlignModuleTool > m_alignModuleTool
pointer to AlignModuleTool
std::vector< int > m_endcapPhiSectors
list of endcap phi sectors to align (if empty, align everything)
void buildL3Endcap()
builds geometry for L3 TRT Endcap alignment Creates many modules - one module per straw
void buildL2Barrel()
builds geometry for L2 TRT Barrel alignment Creates 96 modules - 3 layers with 32 modules per layer
TRTGeometryManagerTool(const std::string &type, const std::string &name, const IInterface *parent)
int ReadGeometry(int solveLevel)
read the geometry Method is called from the main AlignAlg to build the geometry based on the requeste...
std::vector< int > m_endcapWheels
list of endcap wheels to align (if empty, align everything)
DataVector< DataVector< Trk::AlignPar > > * m_alignParList
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()
bool checkAlignLevel()
check whether the alignment level is correct
bool checkAlignLevelBarrel()
check whether the Barrel alignment level is correct
This is an Identifier helper class for the TRT subdetector.
Definition TRT_ID.h:82
Message Stream Member.
Primary Vertex Finder.
Ensure that the ATLAS eigen extensions are properly loaded.
std::vector< AlignModule * > AlignModuleList