ATLAS Offline Software
Loading...
Searching...
No Matches
TRT_AlignDbSvc.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 TRT_CONDITIONSSERVICES_TRT_ALIGNDBSVC_H
6#define TRT_CONDITIONSSERVICES_TRT_ALIGNDBSVC_H
7
22
23
26#include "GaudiKernel/ToolHandle.h"
30#include "GaudiKernel/ServiceHandle.h"
32#include <vector>
33ATLAS_NO_CHECK_FILE_THREAD_SAFETY; // This class uses const_cast. Legacy code
34
35namespace InDetDD {
36 class TRT_DetectorManager ;
37}
39class TRT_ID ;
40
44class TRT_AlignDbSvc: public extends<AthService, ITRT_AlignDbSvc>
45{
46 public:
47
49 TRT_AlignDbSvc( const std::string& name, ISvcLocator* pSvcLocator );
50
52 virtual ~TRT_AlignDbSvc();
53
55 virtual StatusCode initialize();
56
58 virtual StatusCode finalize();
59
60 // TOOL METHODS
61
63 StatusCode IOVCallBack();
64
66 StatusCode writeAlignTextFile(const std::string & file) const;
67 StatusCode writeStrawAlignTextFile(const std::string & file) const;
68 StatusCode writeGlobalFolderFile(const std::string & file) const;
69
71 StatusCode readAlignTextFile(const std::string & file);
72
74 StatusCode streamOutAlignObjects() const;
75
77 StatusCode registerAlignObjects(const std::string & tag, int run1, int event1, int run2, int event2) const;
78
80 StatusCode setAlignTransform(Identifier ident, Amg::Transform3D trans, unsigned int level);
81
83 StatusCode tweakAlignTransform(Identifier ident, Amg::Transform3D trans, unsigned int level);
84
86 const Amg::Transform3D getAlignmentTransform(const Identifier& ident, unsigned int level) const;
87 const Amg::Transform3D* getAlignmentTransformPtr(const Identifier& ident, unsigned int level) const;
88
90 StatusCode tweakGlobalFolder(Identifier ident, const Amg::Transform3D& trans );
91
92 private:
93
95 StatusCode setAlignTransformL1(Identifier ident, const Amg::Transform3D& trans);
96
98 StatusCode setAlignTransformL2(Identifier ident, Amg::Transform3D trans);
99
101 StatusCode setAlignTransformL3(Identifier ident, Amg::Transform3D trans);
102
104 const Amg::Transform3D getAlignmentTransformL1(Identifier const& ident) const ;
105 const Amg::Transform3D* getAlignmentTransformL1Ptr(Identifier const& ident) const ;
106
108 const Amg::Transform3D getAlignmentTransformL2(Identifier const& ident) const ;
109 const Amg::Transform3D* getAlignmentTransformL2Ptr(Identifier const& ident) const ;
110
112 StatusCode tweakAlignTransformL1(Identifier ident, const Amg::Transform3D& trans);
113
115 StatusCode tweakAlignTransformL2(Identifier ident, const Amg::Transform3D& trans);
116
118 StatusCode tweakAlignTransformL3(Identifier ident, Amg::Transform3D trans);
119
121 AlignableTransform* getTransPtr(const std::string& key) const;
122
124 const AlignableTransform* cgetTransPtr(const std::string& key) const;
125
127 static int getRingForStrawLayer(int strawlayer) ;
128
130 bool isOldKey(const std::string& input) const;
131
133 static std::string prefixtag(const std::string& key) ;
134
136 static std::string intToString(int input) ;
137
139 static void printTransform(const std::string& thisName, const Amg::Transform3D& transform) ;
140
142 void printCondObjects() const ;
143
145 StatusCode createAlignObjects() const;
146
150
153
155 std::string findkey(const Identifier& ident, const std::string& type) const;
156
161 std::string m_alignroot;
162 std::string m_alignString;
163 std::string m_par_alitextfile;
164 std::vector<std::string> m_alignobjs;
165 std::vector<int> m_alignchans;
166 ToolHandle<IAthenaOutputStreamTool> m_streamer;
167 mutable std::vector<Amg::Transform3D*> m_amgTransformCache;
168
169 std::string m_alignDBprefix; // Not very elegant hack to make more modular for DB modifications
170
172 bool m_forceUserDBConfig; // DB folder scheme is auto-config now; This allows user override
173};
174
175#endif
CondMultChanCollection< AlignableTransform > AlignableTransformContainer
abstract interface to Service to manage TRT alignment conditions
abstract interface to TRT straw alignment constants
Define macros for attributes used to control the static checker.
#define ATLAS_NO_CHECK_FILE_THREAD_SAFETY
This is a tool that allows streaming out of DataObjects.
The Detector Manager for all TRT Detector elements, it acts as the interface to the detector elements...
std::vector< Amg::Transform3D * > m_amgTransformCache
StatusCode setAlignTransformL1(Identifier ident, const Amg::Transform3D &trans)
set Level 1 AlignableTransform for an identifier
virtual StatusCode initialize()
tool initialize
const TRT_ID * m_trtid
trt id helper
const Amg::Transform3D * getAlignmentTransformL2Ptr(Identifier const &ident) const
get Level L2 Transform for an identifier
ToolHandle< IAthenaOutputStreamTool > m_streamer
OutputStreamTool.
AlignableTransform * getTransPtr(const std::string &key) const
get AlignableTransform pointer for an object key
const Amg::Transform3D * getAlignmentTransformL1Ptr(Identifier const &ident) const
get Level L1 Transform for an identifier
virtual StatusCode finalize()
tool finalize
StatusCode writeGlobalFolderFile(const std::string &file) const
std::vector< std::string > m_alignobjs
folder names
StatusCode tweakAlignTransformL1(Identifier ident, const Amg::Transform3D &trans)
tweak Level 1 AlignableTransform for an identifier
static void printTransform(const std::string &thisName, const Amg::Transform3D &transform)
Output the transform to the cout, for debugging.
StatusCode registerAlignObjects(const std::string &tag, int run1, int event1, int run2, int event2) const
register alignment objects with the IoV service
const Amg::Transform3D getAlignmentTransformL2(Identifier const &ident) const
get Level 2 AlignableTransform for an identifier
StatusCode createAlignObjects() const
Create an empty set of AlignableTransforms for the GeoModel setup.
StatusCode writeStrawAlignTextFile(const std::string &file) const
void printCondObjects() const
Output the conditions objects currently in memory.
StatusCode tweakAlignTransformL3(Identifier ident, Amg::Transform3D trans)
tweak Level 3 AlignableTransform for an identifier
StatusCode writeAlignTextFile(const std::string &file) const
write AlignableTransforms to flat text file
StatusCode IOVCallBack()
Call back function for alignment folders.
StatusCode readAlignTextFile(const std::string &file)
read AlignableTransforms from text file into TDS
std::string m_alignString
alignment string searched for
ServiceHandle< ITRT_StrawAlignDbSvc > m_trtStrawAlignDbSvc
const Amg::Transform3D * getAlignmentTransformPtr(const Identifier &ident, unsigned int level) const
get Level L2 Transform for an identifier
std::string findkey(const Identifier &ident, const std::string &type) const
Return the object key for a given identifier and data type.
StatusCode tweakAlignTransformL2(Identifier ident, const Amg::Transform3D &trans)
tweak Level 2 AlignableTransform for an identifier
const Amg::Transform3D getAlignmentTransform(const Identifier &ident, unsigned int level) const
get AlignableTransform for an identifier
std::string m_par_alitextfile
input text file
const AlignableTransformContainer * getContainer() const
Return the container.
StatusCode setAlignTransformL3(Identifier ident, Amg::Transform3D trans)
set Level 3 AlignableTransform for an identifier
virtual ~TRT_AlignDbSvc()
destructor
const Amg::Transform3D getAlignmentTransformL1(Identifier const &ident) const
get Level 1 AlignableTransform for an identifier
StatusCode setAlignTransformL2(Identifier ident, Amg::Transform3D trans)
set Level 2 AlignableTransform for an identifier
StatusCode setAlignTransform(Identifier ident, Amg::Transform3D trans, unsigned int level)
set AlignableTransform for an identifier
static std::string intToString(int input)
Convert from an int to a string.
const InDetDD::TRT_DetectorManager * m_trtman
detector manager
static std::string prefixtag(const std::string &key)
Return the prefix tag for a given calibration folder.
static int getRingForStrawLayer(int strawlayer)
Returns the ring for a given strawLayer.
StatusCode streamOutAlignObjects() const
write the alignment objects to output
const AlignableTransform * cgetTransPtr(const std::string &key) const
get const AlignableTransform pointer for an object key
ServiceHandle< StoreGateSvc > m_detStore
std::vector< int > m_alignchans
channels
StatusCode tweakGlobalFolder(Identifier ident, const Amg::Transform3D &trans)
tweak L1 DB for global folders for an identifier
std::string m_alignDBprefix
TRT_AlignDbSvc(const std::string &name, ISvcLocator *pSvcLocator)
constructor
StatusCode tweakAlignTransform(Identifier ident, Amg::Transform3D trans, unsigned int level)
tweak AlignableTransform for an identifier
StatusCode createAlignObjectsWhichDoNotAlreadyExist()
Create an empty set of AlignableTransforms for the transforms which are not created by XXXXXXX from t...
bool isOldKey(const std::string &input) const
Returns the true if the input key is from the old endcap scheme.
std::string m_alignroot
root alignment folder
This is an Identifier helper class for the TRT subdetector.
Definition TRT_ID.h:84
Eigen::Affine3d Transform3D
Message Stream Member.
TFile * file