ATLAS Offline Software
AlignmentErrorTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef MUONALIGNERRORTOOL_ALIGNMENTERRORTOOL_H
6 #define MUONALIGNERRORTOOL_ALIGNMENTERRORTOOL_H
7 
8 #include <iosfwd>
9 #include <string>
10 #include <boost/regex.hpp>
11 
13 #include "GaudiKernel/ServiceHandle.h"
14 #include "GaudiKernel/ToolHandle.h"
18 #include "MuonAlignmentData/MuonAlignmentErrorData.h" // for accessing info from the DB
22 
23 namespace Trk {
24  class RIO_OnTrack;
25 }
26 
27 namespace MuonAlign {
28 
30  public:
31 
32  AlignmentErrorTool(const std::string&, const std::string&,
33  const IInterface*);
34  ~AlignmentErrorTool() override = default;
35 
36  StatusCode initialize() override;
38  const Trk::Track& track,
39  std::vector<Trk::AlignmentDeviation*>& deviations) const override;
40 
41  private:
42  ToolHandle<MuonCalib::IIdToFixedIdTool> m_idTool{this, "idTool", "MuonCalib::IdToFixedIdTool"};
43  ServiceHandle<Muon::IMuonIdHelperSvc> m_idHelperSvc{this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"};
44 
45  // Struct for per-Station Deviations Information //
47  // SYSTEMATIC UNCERTAINTIES
48  double translation{0.0};
49  double rotation{0.0};
50  // RULE
53  // SET OF HITS SATISFYING THE RULE
54  std::vector<const Trk::RIO_OnTrack*> hits{};
55  // USEFUL NUMBERS
59  double sumW2{0.0};
60  };
61 
62  // SOME USEFUL METHODS //
63  // GET STATION EXACT NAME, FROM:
64  // https://gitlab.cern.ch/Asap/AsapModules/Track/MuonAlignTrk/-/blob/master/MuonAlignTrk/MuonFixedLongId.h?ref_type=heads
65  std::string hardwareName(MuonCalib::MuonFixedLongId calibId) const;
66  static std::string_view side(MuonCalib::MuonFixedLongId calibId) ;
67  std::string sectorString(MuonCalib::MuonFixedLongId calibId) const;
68  int sector(MuonCalib::MuonFixedLongId calibId) const;
69  int hardwareEta(MuonCalib::MuonFixedLongId calibId) const;
70  static bool isSmallSector(MuonCalib::MuonFixedLongId calibId) ;
71 
72  SG::ReadCondHandleKey<MuonAlignmentErrorData> m_readKey{this, "ReadKey", "MuonAlignmentErrorData", "Key of MuonAlignmentErrorData"};
73  };
74 } // namespace MuonAlign
75 
76 #endif
Trk::ITrkAlignmentDeviationTool
Interface for tool to add alignmenties to a global chi2 fit.
Definition: ITrkAlignmentDeviationTool.h:24
MuonAlign::AlignmentErrorTool::AlignmentErrorTool
AlignmentErrorTool(const std::string &, const std::string &, const IInterface *)
Definition: AlignmentErrorTool.cxx:27
MuonAlign::AlignmentErrorTool::deviationSummary_t::rotation
double rotation
Definition: AlignmentErrorTool.h:49
Trk::Track
The ATLAS Track class.
Definition: Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h:73
MuonAlign::AlignmentErrorTool::deviationSummary_t
Definition: AlignmentErrorTool.h:46
MuonAlign::AlignmentErrorTool::deviationSummary_t::sumU
Amg::Vector3D sumU
Definition: AlignmentErrorTool.h:57
MuonAlign::AlignmentErrorTool::deviationSummary_t::sumP
Amg::Vector3D sumP
Definition: AlignmentErrorTool.h:56
MuonAlign::AlignmentErrorTool::m_idTool
ToolHandle< MuonCalib::IIdToFixedIdTool > m_idTool
Definition: AlignmentErrorTool.h:42
MuonAlign::AlignmentErrorTool::sector
int sector(MuonCalib::MuonFixedLongId calibId) const
Definition: AlignmentErrorTool.cxx:328
MuonAlign::AlignmentErrorTool::deviationSummary_t::stationName
boost::regex stationName
Definition: AlignmentErrorTool.h:51
MuonAlign::AlignmentErrorTool::m_readKey
SG::ReadCondHandleKey< MuonAlignmentErrorData > m_readKey
Definition: AlignmentErrorTool.h:72
PrepareReferenceFile.regex
regex
Definition: PrepareReferenceFile.py:43
MuonAlign::AlignmentErrorTool::deviationSummary_t::translation
double translation
Definition: AlignmentErrorTool.h:48
GeoPrimitives.h
MuonCalib::MuonFixedLongId
Definition: MuonFixedLongId.h:50
MuonAlign
Definition: AlignmentRotationDeviation.h:10
MuonAlign::AlignmentErrorTool::hardwareName
std::string hardwareName(MuonCalib::MuonFixedLongId calibId) const
Definition: AlignmentErrorTool.cxx:295
MuonAlign::AlignmentErrorTool::initialize
StatusCode initialize() override
Definition: AlignmentErrorTool.cxx:31
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
AthAlgTool.h
MuonAlign::AlignmentErrorTool::hardwareEta
int hardwareEta(MuonCalib::MuonFixedLongId calibId) const
Definition: AlignmentErrorTool.cxx:361
MuonAlign::AlignmentErrorTool::deviationSummary_t::sumV
Amg::Vector3D sumV
Definition: AlignmentErrorTool.h:58
ReadCondHandleKey.h
MuonAlign::AlignmentErrorTool::m_idHelperSvc
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
Definition: AlignmentErrorTool.h:43
MuonAlign::AlignmentErrorTool::deviationSummary_t::sumW2
double sumW2
Definition: AlignmentErrorTool.h:59
MuonAlign::AlignmentErrorTool::deviationSummary_t::multilayer
boost::regex multilayer
Definition: AlignmentErrorTool.h:52
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
MuonAlign::AlignmentErrorTool
Definition: AlignmentErrorTool.h:29
Trk::MeasurementBaseType::RIO_OnTrack
@ RIO_OnTrack
Definition: MeasurementBase.h:49
MuonAlign::AlignmentErrorTool::sectorString
std::string sectorString(MuonCalib::MuonFixedLongId calibId) const
Definition: AlignmentErrorTool.cxx:317
MuonAlign::AlignmentErrorTool::deviationSummary_t::hits
std::vector< const Trk::RIO_OnTrack * > hits
Definition: AlignmentErrorTool.h:54
SG::ReadCondHandleKey< MuonAlignmentErrorData >
MuonAlign::AlignmentErrorTool::makeAlignmentDeviations
void makeAlignmentDeviations(const Trk::Track &track, std::vector< Trk::AlignmentDeviation * > &deviations) const override
Compute alignment deviations, given a track as input.
Definition: AlignmentErrorTool.cxx:42
MuonAlign::AlignmentErrorTool::~AlignmentErrorTool
~AlignmentErrorTool() override=default
MuonAlign::AlignmentErrorTool::isSmallSector
static bool isSmallSector(MuonCalib::MuonFixedLongId calibId)
Definition: AlignmentErrorTool.cxx:337
MuonAlign::AlignmentErrorTool::side
static std::string_view side(MuonCalib::MuonFixedLongId calibId)
Definition: AlignmentErrorTool.cxx:313
MuonAlignmentErrorData.h
xAOD::track
@ track
Definition: TrackingPrimitives.h:512
AthAlgTool
Definition: AthAlgTool.h:26
AlignmentDeviation.h
ITrkAlignmentDeviationTool.h
IMuonIdHelperSvc.h
IIdToFixedIdTool.h
generate::Zero
void Zero(TH1D *hin)
Definition: generate.cxx:32
ServiceHandle< Muon::IMuonIdHelperSvc >