ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
HighGranularityTimingDetector
HGTD_AlignAlgs
HGTD_AlignGenAlgs
src
HGTD_MisalignAlg.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#ifndef HGTD_ALIGNALGS_HGTD_MISALIGNALG_H
6
#define HGTD_ALIGNALGS_HGTD_MISALIGNALG_H
7
8
#include "
AthenaBaseComps/AthAlgorithm.h
"
9
#include "Gaudi/Property.h"
10
11
#include <vector>
12
#include <string>
13
#include <fstream>
14
#include "TTree.h"
15
16
#include "
HGTD_ReadoutGeometry/HGTD_DetectorElementCollection.h
"
17
#include "
HGTD_Identifier/HGTD_ID.h
"
18
19
#include "GaudiKernel/IRndmGenSvc.h"
20
#include "GaudiKernel/RndmGenerators.h"
21
#include "GaudiKernel/ITHistSvc.h"
22
23
#include "
HGTD_ReadoutGeometry/HGTD_DetectorManager.h
"
24
#include "GeoModelKernel/GeoVAlignmentStore.h"
25
26
#include "
HGTD_AlignGenTools/IHGTD_AlignDBTool.h
"
27
#include "GaudiKernel/ToolHandle.h"
28
29
class
GeoAlignableTransform;
30
31
class
HGTD_MisalignAlg
:
public
AthAlgorithm
{
32
33
public
:
34
using
AthAlgorithm::AthAlgorithm
;
35
36
virtual
StatusCode
initialize
()
override
;
37
virtual
StatusCode
execute
(
const
EventContext& ctx)
override
;
38
virtual
StatusCode
finalize
()
override
;
39
40
private
:
41
42
Gaudi::Property<int>
m_mode
{
this
,
"MisalignMode"
, 1};
43
Gaudi::Property<double>
m_shiftX
{
this
,
"ShiftX"
, 0.05};
44
Gaudi::Property<double>
m_shiftY
{
this
,
"ShiftY"
, 0.0};
45
Gaudi::Property<double>
m_shiftZ
{
this
,
"ShiftZ"
, 0.0};
46
47
Gaudi::Property<double>
m_sigmaX
{
this
,
"SigmaX"
, 0.01};
48
Gaudi::Property<double>
m_sigmaY
{
this
,
"SigmaY"
, 0.01};
49
Gaudi::Property<double>
m_sigmaZ
{
this
,
"SigmaZ"
, 0.01};
50
51
52
Gaudi::Property<bool>
m_applyTranslation
{
this
,
"ApplyTranslation"
,
true
};
53
Gaudi::Property<bool>
m_doDebugPrint
{
this
,
"DoDebugPrint"
,
true
};
54
55
Gaudi::Property<bool>
m_applyRotation
{
this
,
"ApplyRotation"
,
false
};
56
Gaudi::Property<int>
m_maxModules
{
this
,
"MaxModules"
, -1};
57
58
ServiceHandle<IRndmGenSvc>
m_rndmSvc
{
59
this
,
"RndmGenSvc"
,
"RndmGenSvc"
,
"Random number service"
60
};
61
62
Gaudi::Property<std::string>
m_randomStream
{
63
this
,
64
"RandomStream"
,
65
"HGTDMisalignment"
,
66
"Random number stream name"
67
};
68
69
std::vector<GeoAlignableTransform*>
m_alignables
;
70
71
Gaudi::Property<std::string>
m_outputFile
{
72
this
,
73
"OutputFile"
,
74
"hgtd_misalignment.txt"
,
75
"Output file name"
76
};
77
78
const
HGTD_DetectorManager
*
m_hgtdManager
{
nullptr
};
79
80
Gaudi::Property<bool>
m_applyToGeometry
{
81
this
,
82
"ApplyToGeometry"
,
83
false
,
84
"Apply misalignment deltas to HGTD alignable transforms"
85
};
86
87
Gaudi::Property<int>
m_testHash
{
88
this
,
89
"TestHash"
,
90
-1,
91
"If >=0, apply geometry delta only to this hash"
92
};
93
94
Gaudi::Property<bool>
m_createFreshDB
{
95
this
,
96
"CreateFreshDB"
,
97
true
,
98
"Create a new HGTD alignment database"
99
};
100
101
Gaudi::Property<std::string>
m_sqliteTag
{
102
this
,
103
"SQLiteTag"
,
104
"HGTD_AlignTag"
,
105
"SQLite alignment tag"
106
};
107
108
Gaudi::Property<bool>
m_writeToDB
{
109
this
,
110
"WriteToDB"
,
111
false
,
112
"Write misalignment to HGTD alignment database"
113
};
114
115
ToolHandle<IHGTD_AlignDBTool>
m_alignDBTool
{
116
this
,
117
"AlignDBTool"
,
118
"HGTD_AlignDBTool"
,
119
"HGTD alignment database tool"
120
};
121
122
const
HGTD_ID
*
m_hgtdIdHelper
{
nullptr
};
123
124
//------------------------------------------------------------
125
// Validation ROOT tree
126
// Stores one entry per HGTD detector element containing the
127
// nominal position together with the applied misalignment.
128
//------------------------------------------------------------
129
130
TTree*
m_tree
{
nullptr
};
131
132
// Alignment parameters
133
float
m_localDx
{0.f};
134
float
m_localDy
{0.f};
135
float
m_localDz
{0.f};
136
137
// Nominal module center
138
float
m_centerX
{0.f};
139
float
m_centerY
{0.f};
140
float
m_centerZ
{0.f};
141
142
// Misaligned module center
143
float
m_shiftedX
{0.f};
144
float
m_shiftedY
{0.f};
145
float
m_shiftedZ
{0.f};
146
147
// Detector identification
148
unsigned
int
m_hash
{0};
149
int
m_endcap
{0};
150
int
m_layer
{0};
151
int
m_phiModule
{0};
152
int
m_etaModule
{0};
153
154
std::ofstream
m_outfile
;
155
bool
m_firstEvent
{
true
};
156
unsigned
int
m_nEvents
{0};
157
158
StatusCode
GenerateMisalignment
();
159
160
161
};
162
163
#endif
AthAlgorithm.h
HGTD_DetectorElementCollection.h
HGTD_DetectorManager.h
HGTD_ID.h
IHGTD_AlignDBTool.h
AthAlgorithm::AthAlgorithm
AthAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor.
Definition
AthAlgorithm.cxx:10
HGTD_DetectorManager
The Detector manager has methods to retrieve the Identifier helper and methods to retrieve the detect...
Definition
HGTD_DetectorManager.h:42
HGTD_ID
This is an Identifier helper class for the HGTD subdetector.
Definition
HGTD_ID.h:47
HGTD_MisalignAlg
Definition
HGTD_MisalignAlg.h:31
HGTD_MisalignAlg::m_sigmaY
Gaudi::Property< double > m_sigmaY
Definition
HGTD_MisalignAlg.h:48
HGTD_MisalignAlg::m_shiftedZ
float m_shiftedZ
Definition
HGTD_MisalignAlg.h:145
HGTD_MisalignAlg::initialize
virtual StatusCode initialize() override
Definition
HGTD_MisalignAlg.cxx:16
HGTD_MisalignAlg::m_createFreshDB
Gaudi::Property< bool > m_createFreshDB
Definition
HGTD_MisalignAlg.h:94
HGTD_MisalignAlg::m_writeToDB
Gaudi::Property< bool > m_writeToDB
Definition
HGTD_MisalignAlg.h:108
HGTD_MisalignAlg::m_tree
TTree * m_tree
Definition
HGTD_MisalignAlg.h:130
HGTD_MisalignAlg::m_etaModule
int m_etaModule
Definition
HGTD_MisalignAlg.h:152
HGTD_MisalignAlg::m_hash
unsigned int m_hash
Definition
HGTD_MisalignAlg.h:148
HGTD_MisalignAlg::m_centerX
float m_centerX
Definition
HGTD_MisalignAlg.h:138
HGTD_MisalignAlg::m_outfile
std::ofstream m_outfile
Definition
HGTD_MisalignAlg.h:154
HGTD_MisalignAlg::m_outputFile
Gaudi::Property< std::string > m_outputFile
Definition
HGTD_MisalignAlg.h:71
HGTD_MisalignAlg::m_sigmaX
Gaudi::Property< double > m_sigmaX
Definition
HGTD_MisalignAlg.h:47
HGTD_MisalignAlg::m_applyRotation
Gaudi::Property< bool > m_applyRotation
Definition
HGTD_MisalignAlg.h:55
HGTD_MisalignAlg::m_localDz
float m_localDz
Definition
HGTD_MisalignAlg.h:135
HGTD_MisalignAlg::m_shiftZ
Gaudi::Property< double > m_shiftZ
Definition
HGTD_MisalignAlg.h:45
HGTD_MisalignAlg::m_shiftX
Gaudi::Property< double > m_shiftX
Definition
HGTD_MisalignAlg.h:43
HGTD_MisalignAlg::GenerateMisalignment
StatusCode GenerateMisalignment()
Definition
HGTD_MisalignAlg.cxx:207
HGTD_MisalignAlg::execute
virtual StatusCode execute(const EventContext &ctx) override
Execute method.
Definition
HGTD_MisalignAlg.cxx:130
HGTD_MisalignAlg::m_shiftY
Gaudi::Property< double > m_shiftY
Definition
HGTD_MisalignAlg.h:44
HGTD_MisalignAlg::m_localDy
float m_localDy
Definition
HGTD_MisalignAlg.h:134
HGTD_MisalignAlg::m_hgtdManager
const HGTD_DetectorManager * m_hgtdManager
Definition
HGTD_MisalignAlg.h:78
HGTD_MisalignAlg::m_centerY
float m_centerY
Definition
HGTD_MisalignAlg.h:139
HGTD_MisalignAlg::m_sigmaZ
Gaudi::Property< double > m_sigmaZ
Definition
HGTD_MisalignAlg.h:49
HGTD_MisalignAlg::m_layer
int m_layer
Definition
HGTD_MisalignAlg.h:150
HGTD_MisalignAlg::m_shiftedY
float m_shiftedY
Definition
HGTD_MisalignAlg.h:144
HGTD_MisalignAlg::m_localDx
float m_localDx
Definition
HGTD_MisalignAlg.h:133
HGTD_MisalignAlg::finalize
virtual StatusCode finalize() override
Definition
HGTD_MisalignAlg.cxx:379
HGTD_MisalignAlg::m_alignables
std::vector< GeoAlignableTransform * > m_alignables
Definition
HGTD_MisalignAlg.h:69
HGTD_MisalignAlg::m_maxModules
Gaudi::Property< int > m_maxModules
Definition
HGTD_MisalignAlg.h:56
HGTD_MisalignAlg::m_randomStream
Gaudi::Property< std::string > m_randomStream
Definition
HGTD_MisalignAlg.h:62
HGTD_MisalignAlg::m_sqliteTag
Gaudi::Property< std::string > m_sqliteTag
Definition
HGTD_MisalignAlg.h:101
HGTD_MisalignAlg::m_firstEvent
bool m_firstEvent
Definition
HGTD_MisalignAlg.h:155
HGTD_MisalignAlg::m_mode
Gaudi::Property< int > m_mode
Definition
HGTD_MisalignAlg.h:42
HGTD_MisalignAlg::AthAlgorithm
AthAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor.
Definition
AthAlgorithm.cxx:10
HGTD_MisalignAlg::m_shiftedX
float m_shiftedX
Definition
HGTD_MisalignAlg.h:143
HGTD_MisalignAlg::m_doDebugPrint
Gaudi::Property< bool > m_doDebugPrint
Definition
HGTD_MisalignAlg.h:53
HGTD_MisalignAlg::m_phiModule
int m_phiModule
Definition
HGTD_MisalignAlg.h:151
HGTD_MisalignAlg::m_applyToGeometry
Gaudi::Property< bool > m_applyToGeometry
Definition
HGTD_MisalignAlg.h:80
HGTD_MisalignAlg::m_nEvents
unsigned int m_nEvents
Definition
HGTD_MisalignAlg.h:156
HGTD_MisalignAlg::m_testHash
Gaudi::Property< int > m_testHash
Definition
HGTD_MisalignAlg.h:87
HGTD_MisalignAlg::m_centerZ
float m_centerZ
Definition
HGTD_MisalignAlg.h:140
HGTD_MisalignAlg::m_endcap
int m_endcap
Definition
HGTD_MisalignAlg.h:149
HGTD_MisalignAlg::m_rndmSvc
ServiceHandle< IRndmGenSvc > m_rndmSvc
Definition
HGTD_MisalignAlg.h:58
HGTD_MisalignAlg::m_hgtdIdHelper
const HGTD_ID * m_hgtdIdHelper
Definition
HGTD_MisalignAlg.h:122
HGTD_MisalignAlg::m_applyTranslation
Gaudi::Property< bool > m_applyTranslation
Definition
HGTD_MisalignAlg.h:52
HGTD_MisalignAlg::m_alignDBTool
ToolHandle< IHGTD_AlignDBTool > m_alignDBTool
Definition
HGTD_MisalignAlg.h:115
ServiceHandle
Definition
ClusterMakerTool.h:36
Generated on
for ATLAS Offline Software by
1.17.0