Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
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 
26 #include "GaudiKernel/ToolHandle.h"
27 #include "StoreGate/DataHandle.h"
31 #include "GaudiKernel/ServiceHandle.h"
32 #include "StoreGate/StoreGateSvc.h"
33 #include <vector>
34 ATLAS_NO_CHECK_FILE_THREAD_SAFETY; // This class uses const_cast. Legacy code
35 
36 namespace InDetDD {
37  class TRT_DetectorManager ;
38 }
40 class TRT_ID ;
41 
45 class 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 
76 
78  StatusCode registerAlignObjects(const std::string & tag, int run1, int event1, int run2, int event2) const;
79 
82 
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 
92 
93  private:
94 
97 
100 
103 
107 
111 
114 
117 
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 
147 
151 
154 
156  std::string findkey(const Identifier& ident, const std::string& type) const;
157 
160  const TRT_ID* m_trtid;
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
TRT_AlignDbSvc::m_forceUserDBConfig
bool m_forceUserDBConfig
Definition: TRT_AlignDbSvc.h:174
TRT_AlignDbSvc::setAlignTransformL2
StatusCode setAlignTransformL2(Identifier ident, Amg::Transform3D trans)
set Level 2 AlignableTransform for an identifier
Definition: TRT_AlignDbSvc.cxx:771
ATLAS_NO_CHECK_FILE_THREAD_SAFETY
ATLAS_NO_CHECK_FILE_THREAD_SAFETY
Definition: TRT_AlignDbSvc.h:34
TRT_AlignDbSvc::m_amgTransformCache
std::vector< Amg::Transform3D * > m_amgTransformCache
Definition: TRT_AlignDbSvc.h:169
TRT_AlignDbSvc::tweakAlignTransformL2
StatusCode tweakAlignTransformL2(Identifier ident, const Amg::Transform3D &trans)
tweak Level 2 AlignableTransform for an identifier
Definition: TRT_AlignDbSvc.cxx:1000
TRT_AlignDbSvc::m_alignchans
std::vector< int > m_alignchans
channels
Definition: TRT_AlignDbSvc.h:166
TRT_AlignDbSvc::getTransPtr
AlignableTransform * getTransPtr(const std::string &key) const
get AlignableTransform pointer for an object key
Definition: TRT_AlignDbSvc.cxx:1397
TRT_AlignDbSvc::findkey
std::string findkey(const Identifier &ident, const std::string &type) const
Return the object key for a given identifier and data type.
Definition: TRT_AlignDbSvc.cxx:1169
TRT_AlignDbSvc::tweakAlignTransform
StatusCode tweakAlignTransform(Identifier ident, Amg::Transform3D trans, unsigned int level)
tweak AlignableTransform for an identifier
Definition: TRT_AlignDbSvc.cxx:897
CondMultChanCollection
A CondMultChanCollection is a template class which can hold a collection of T* objects which are inte...
Definition: CondMultChanCollection.h:52
TRT_AlignDbSvc::getRingForStrawLayer
static int getRingForStrawLayer(int strawlayer)
Returns the ring for a given strawLayer.
Definition: TRT_AlignDbSvc.cxx:1433
TRT_AlignDbSvc::writeGlobalFolderFile
StatusCode writeGlobalFolderFile(const std::string &file) const
Definition: TRT_AlignDbSvc.cxx:1479
IAthenaOutputStreamTool
This is a tool that allows streaming out of DataObjects. This has been factorized out from AthenaOutp...
Definition: IAthenaOutputStreamTool.h:69
TRT_AlignDbSvc::m_trtman
const InDetDD::TRT_DetectorManager * m_trtman
detector manager
Definition: TRT_AlignDbSvc.h:161
TRT_AlignDbSvc::m_par_alitextfile
std::string m_par_alitextfile
input text file
Definition: TRT_AlignDbSvc.h:164
TRT_AlignDbSvc::getAlignmentTransformL1Ptr
const Amg::Transform3D * getAlignmentTransformL1Ptr(Identifier const &ident) const
get Level L1 Transform for an identifier
Definition: TRT_AlignDbSvc.cxx:633
TRT_AlignDbSvc::m_alignobjs
std::vector< std::string > m_alignobjs
folder names
Definition: TRT_AlignDbSvc.h:165
IOVSVC_CALLBACK_ARGS
#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
TRT_AlignDbSvc::cgetTransPtr
const AlignableTransform * cgetTransPtr(const std::string &key) const
get const AlignableTransform pointer for an object key
Definition: TRT_AlignDbSvc.cxx:1403
DataHandle.h
python.CaloAddPedShiftConfig.type
type
Definition: CaloAddPedShiftConfig.py:42
TRT_AlignDbSvc::setAlignTransform
StatusCode setAlignTransform(Identifier ident, Amg::Transform3D trans, unsigned int level)
set AlignableTransform for an identifier
Definition: TRT_AlignDbSvc.cxx:696
python.iconfTool.models.loaders.level
level
Definition: loaders.py:20
TRT_AlignDbSvc::TRT_AlignDbSvc
TRT_AlignDbSvc(const std::string &name, ISvcLocator *pSvcLocator)
constructor
Definition: TRT_AlignDbSvc.cxx:37
TRT_AlignDbSvc::IOVCallBack
StatusCode IOVCallBack(IOVSVC_CALLBACK_ARGS)
Call back function for alignment folders.
Definition: TRT_AlignDbSvc.cxx:202
TRT_AlignDbSvc::createAlignObjectsWhichDoNotAlreadyExist
StatusCode createAlignObjectsWhichDoNotAlreadyExist()
Create an empty set of AlignableTransforms for the transforms which are not created by XXXXXXX from t...
Definition: TRT_AlignDbSvc.cxx:1338
TRT_AlignDbSvc::getAlignmentTransformPtr
const Amg::Transform3D * getAlignmentTransformPtr(const Identifier &ident, unsigned int level) const
get Level L2 Transform for an identifier
Definition: TRT_AlignDbSvc.cxx:619
ITRT_StrawAlignDbSvc.h
abstract interface to TRT straw alignment constants
TRT_AlignDbSvc::m_streamer
ToolHandle< IAthenaOutputStreamTool > m_streamer
OutputStreamTool.
Definition: TRT_AlignDbSvc.h:168
TRT_AlignDbSvc::readAlignTextFile
StatusCode readAlignTextFile(const std::string &file)
read AlignableTransforms from text file into TDS
Definition: TRT_AlignDbSvc.cxx:370
TRT_AlignDbSvc::~TRT_AlignDbSvc
virtual ~TRT_AlignDbSvc()
destructor
Definition: TRT_AlignDbSvc.cxx:63
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
maskDeadModules.run1
run1
Definition: maskDeadModules.py:40
AlignableTransformContainer.h
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
PlotPulseshapeFromCool.input
input
Definition: PlotPulseshapeFromCool.py:106
Amg::transform
Amg::Vector3D transform(Amg::Vector3D &v, Amg::Transform3D &tr)
Transform a point from a Trasformation3D.
Definition: GeoPrimitivesHelpers.h:156
file
TFile * file
Definition: tile_monitor.h:29
TRT_AlignDbSvc::getContainer
const AlignableTransformContainer * getContainer() const
Return the container.
Definition: TRT_AlignDbSvc.cxx:1621
TRT_AlignDbSvc::createAlignObjects
StatusCode createAlignObjects() const
Create an empty set of AlignableTransforms for the GeoModel setup.
Definition: TRT_AlignDbSvc.cxx:1305
TRT_AlignDbSvc::m_alignString
std::string m_alignString
alignment string searched for
Definition: TRT_AlignDbSvc.h:163
TRT_AlignDbSvc::getAlignmentTransformL1
const Amg::Transform3D getAlignmentTransformL1(Identifier const &ident) const
get Level 1 AlignableTransform for an identifier
Definition: TRT_AlignDbSvc.cxx:573
TRT_AlignDbSvc::setAlignTransformL3
StatusCode setAlignTransformL3(Identifier ident, Amg::Transform3D trans)
set Level 3 AlignableTransform for an identifier
Definition: TRT_AlignDbSvc.cxx:820
TRT_AlignDbSvc::m_dynamicDB
bool m_dynamicDB
Definition: TRT_AlignDbSvc.h:173
TRT_AlignDbSvc::streamOutAlignObjects
StatusCode streamOutAlignObjects() const
write the alignment objects to output
Definition: TRT_AlignDbSvc.cxx:510
TRT_AlignDbSvc::m_detStore
ServiceHandle< StoreGateSvc > m_detStore
Definition: TRT_AlignDbSvc.h:158
TRT_AlignDbSvc::setAlignTransformL1
StatusCode setAlignTransformL1(Identifier ident, const Amg::Transform3D &trans)
set Level 1 AlignableTransform for an identifier
Definition: TRT_AlignDbSvc.cxx:722
AlignableTransform
Definition: AlignableTransform.h:24
ReadCellNoiseFromCoolCompare.run2
run2
Definition: ReadCellNoiseFromCoolCompare.py:53
TRT_AlignDbSvc::printCondObjects
void printCondObjects() const
Output the conditions objects currently in memory.
Definition: TRT_AlignDbSvc.cxx:1375
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
TRT_AlignDbSvc::writeStrawAlignTextFile
StatusCode writeStrawAlignTextFile(const std::string &file) const
Definition: TRT_AlignDbSvc.cxx:358
TRT_AlignDbSvc::m_alignroot
std::string m_alignroot
root alignment folder
Definition: TRT_AlignDbSvc.h:162
TRT_AlignDbSvc::initialize
virtual StatusCode initialize()
tool initialize
Definition: TRT_AlignDbSvc.cxx:68
DataHandle
an iterator over instances of a given type in StoreGateSvc. It d-casts and caches locally the pointed...
Definition: DataHandle.h:43
TRT::Hit::ident
@ ident
Definition: HitInfo.h:77
TRT_AlignDbSvc::finalize
virtual StatusCode finalize()
tool finalize
Definition: TRT_AlignDbSvc.cxx:192
TRT_ID
Definition: TRT_ID.h:84
InDetDD::TRT_DetectorManager
The Detector Manager for all TRT Detector elements, it acts as the interface to the detector elements...
Definition: TRT_DetectorManager.h:69
TRT_AlignDbSvc::m_alignDBprefix
std::string m_alignDBprefix
Definition: TRT_AlignDbSvc.h:171
TRT_AlignDbSvc::tweakAlignTransformL3
StatusCode tweakAlignTransformL3(Identifier ident, Amg::Transform3D trans)
tweak Level 3 AlignableTransform for an identifier
Definition: TRT_AlignDbSvc.cxx:1039
TRT_AlignDbSvc::getAlignmentTransformL2
const Amg::Transform3D getAlignmentTransformL2(Identifier const &ident) const
get Level 2 AlignableTransform for an identifier
Definition: TRT_AlignDbSvc.cxx:588
InDetDD
Message Stream Member.
Definition: FakeTrackBuilder.h:8
TRT_AlignDbSvc::tweakGlobalFolder
StatusCode tweakGlobalFolder(Identifier ident, const Amg::Transform3D &trans)
tweak L1 DB for global folders for an identifier
Definition: TRT_AlignDbSvc.cxx:1528
AthService.h
TRT_AlignDbSvc::getAlignmentTransformL2Ptr
const Amg::Transform3D * getAlignmentTransformL2Ptr(Identifier const &ident) const
get Level L2 Transform for an identifier
Definition: TRT_AlignDbSvc.cxx:656
TRT_AlignDbSvc::m_trtStrawAlignDbSvc
ServiceHandle< ITRT_StrawAlignDbSvc > m_trtStrawAlignDbSvc
Definition: TRT_AlignDbSvc.h:159
TRT_AlignDbSvc::tweakAlignTransformL1
StatusCode tweakAlignTransformL1(Identifier ident, const Amg::Transform3D &trans)
tweak Level 1 AlignableTransform for an identifier
Definition: TRT_AlignDbSvc.cxx:951
TRT_AlignDbSvc::intToString
static std::string intToString(int input)
Convert from an int to a string.
Definition: TRT_AlignDbSvc.cxx:1463
CaloCondBlobAlgs_fillNoiseFromASCII.tag
string tag
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:24
ITRT_AlignDbSvc.h
abstract interface to Service to manage TRT alignment conditions
TRT_AlignDbSvc::m_trtid
const TRT_ID * m_trtid
trt id helper
Definition: TRT_AlignDbSvc.h:160
TRT_AlignDbSvc::printTransform
static void printTransform(const std::string &thisName, const Amg::Transform3D &transform)
Output the transform to the cout, for debugging.
Definition: TRT_AlignDbSvc.cxx:1470
TRT_AlignDbSvc::getAlignmentTransform
const Amg::Transform3D getAlignmentTransform(const Identifier &ident, unsigned int level) const
get AlignableTransform for an identifier
Definition: TRT_AlignDbSvc.cxx:559
TRT_AlignDbSvc::isOldKey
bool isOldKey(const std::string &input) const
Returns the true if the input key is from the old endcap scheme.
Definition: TRT_AlignDbSvc.cxx:1440
TRT_AlignDbSvc::m_aligncontainerhandle
const DataHandle< AlignableTransformContainer > m_aligncontainerhandle
Definition: TRT_AlignDbSvc.h:167
checker_macros.h
Define macros for attributes used to control the static checker.
TRT_AlignDbSvc
Definition: TRT_AlignDbSvc.h:46
StoreGateSvc.h
TRT_AlignDbSvc::registerAlignObjects
StatusCode registerAlignObjects(const std::string &tag, int run1, int event1, int run2, int event2) const
register alignment objects with the IoV service
Definition: TRT_AlignDbSvc.cxx:536
TRT_AlignDbSvc::writeAlignTextFile
StatusCode writeAlignTextFile(const std::string &file) const
write AlignableTransforms to flat text file
Definition: TRT_AlignDbSvc.cxx:236
ServiceHandle< StoreGateSvc >
mapkey::key
key
Definition: TElectronEfficiencyCorrectionTool.cxx:37
TRT_AlignDbSvc::prefixtag
static std::string prefixtag(const std::string &key)
Return the prefix tag for a given calibration folder.
Definition: TRT_AlignDbSvc.cxx:1240
Identifier
Definition: IdentifierFieldParser.cxx:14