ATLAS Offline Software
Loading...
Searching...
No Matches
TRT_AlignDbSvc.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 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"
31#include "GaudiKernel/ServiceHandle.h"
33#include <vector>
34ATLAS_NO_CHECK_FILE_THREAD_SAFETY; // This class uses const_cast. Legacy code
35
36namespace InDetDD {
37 class TRT_DetectorManager ;
38}
40class TRT_ID ;
41
45class TRT_AlignDbSvc: public extends<AthService, ITRT_AlignDbSvc>
46{
47 public:
48
50 TRT_AlignDbSvc( const std::string& name, ISvcLocator* pSvcLocator );
51
53 virtual ~TRT_AlignDbSvc();
54
56 virtual StatusCode initialize();
57
59 virtual StatusCode finalize();
60
61 // TOOL METHODS
62
65
67 StatusCode writeAlignTextFile(const std::string & file) const;
68 StatusCode writeStrawAlignTextFile(const std::string & file) const;
69 StatusCode writeGlobalFolderFile(const std::string & file) const;
70
72 StatusCode readAlignTextFile(const std::string & file);
73
75 StatusCode streamOutAlignObjects() const;
76
78 StatusCode registerAlignObjects(const std::string & tag, int run1, int event1, int run2, int event2) const;
79
81 StatusCode setAlignTransform(Identifier ident, Amg::Transform3D trans, unsigned int level);
82
84 StatusCode tweakAlignTransform(Identifier ident, Amg::Transform3D trans, unsigned int level);
85
87 const Amg::Transform3D getAlignmentTransform(const Identifier& ident, unsigned int level) const;
88 const Amg::Transform3D* getAlignmentTransformPtr(const Identifier& ident, unsigned int level) const;
89
91 StatusCode tweakGlobalFolder(Identifier ident, const Amg::Transform3D& trans );
92
93 private:
94
96 StatusCode setAlignTransformL1(Identifier ident, const Amg::Transform3D& trans);
97
99 StatusCode setAlignTransformL2(Identifier ident, Amg::Transform3D trans);
100
102 StatusCode setAlignTransformL3(Identifier ident, Amg::Transform3D trans);
103
105 const Amg::Transform3D getAlignmentTransformL1(Identifier const& ident) const ;
106 const Amg::Transform3D* getAlignmentTransformL1Ptr(Identifier const& ident) const ;
107
109 const Amg::Transform3D getAlignmentTransformL2(Identifier const& ident) const ;
110 const Amg::Transform3D* getAlignmentTransformL2Ptr(Identifier const& ident) const ;
111
113 StatusCode tweakAlignTransformL1(Identifier ident, const Amg::Transform3D& trans);
114
116 StatusCode tweakAlignTransformL2(Identifier ident, const Amg::Transform3D& trans);
117
119 StatusCode tweakAlignTransformL3(Identifier ident, Amg::Transform3D trans);
120
122 AlignableTransform* getTransPtr(const std::string& key) const;
123
125 const AlignableTransform* cgetTransPtr(const std::string& key) const;
126
128 static int getRingForStrawLayer(int strawlayer) ;
129
131 bool isOldKey(const std::string& input) const;
132
134 static std::string prefixtag(const std::string& key) ;
135
137 static std::string intToString(int input) ;
138
140 static void printTransform(const std::string& thisName, const Amg::Transform3D& transform) ;
141
143 void printCondObjects() const ;
144
146 StatusCode createAlignObjects() const;
147
151
154
156 std::string findkey(const Identifier& ident, const std::string& type) const;
157
162 std::string m_alignroot;
163 std::string m_alignString;
164 std::string m_par_alitextfile;
165 std::vector<std::string> m_alignobjs;
166 std::vector<int> m_alignchans;
168 ToolHandle<IAthenaOutputStreamTool> m_streamer;
169 mutable std::vector<Amg::Transform3D*> m_amgTransformCache;
170
171 std::string m_alignDBprefix; // Not very elegant hack to make more modular for DB modifications
172
174 bool m_forceUserDBConfig; // DB folder scheme is auto-config now; This allows user override
175};
176
177#endif
CondMultChanCollection< AlignableTransform > AlignableTransformContainer
defines an "iterator" over instances of a given type in StoreGateSvc
#define IOVSVC_CALLBACK_ARGS
short hand for IOVSvc call back argument list, to be used when no access to formal arguments is neede...
Definition IOVSvcDefs.h:24
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
an iterator over instances of a given type in StoreGateSvc.
Definition DataHandle.h:43
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 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
const DataHandle< AlignableTransformContainer > m_aligncontainerhandle
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.
StatusCode IOVCallBack(IOVSVC_CALLBACK_ARGS)
Call back function for alignment folders.
std::string m_alignroot
root alignment folder
This is an Identifier helper class for the TRT subdetector.
Definition TRT_ID.h:82
Eigen::Affine3d Transform3D
Message Stream Member.
TFile * file