ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
MuonSpectrometer
MuonAlignment
MuonAlignmentData
MuonAlignmentData
MdtAsBuiltPar.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 MUONALIGNMENTDATA_MDTASBUILTPAR_H
6
#define MUONALIGNMENTDATA_MDTASBUILTPAR_H
7
8
#include <string>
9
#include <array>
10
#include <iosfwd>
11
12
#include "
MuonAlignmentData/MuonAlignmentPar.h
"
13
19
class
MdtAsBuiltPar
:
public
MuonAlignmentPar
{
20
public
:
21
// Default constructor
22
MdtAsBuiltPar
() =
default
;
23
// destructor
24
virtual
~MdtAsBuiltPar
()
override
=
default
;
25
29
enum class
multilayer_t
{
ML1
= 0,
ML2
,
NMLTYPES
};
30
34
enum class
tubeSide_t
{
35
POS
= 0,
// s>0 side
36
NEG
,
// s<0 side
37
NTUBESIDETYPES
38
};
39
43
void
setAlignmentParameters
(
multilayer_t
iML,
tubeSide_t
iTubeSide,
float
y0
,
float
z0
,
float
alpha
,
float
ypitch
,
float
zpitch
,
44
int
stagg
);
45
46
47
// Getters
48
double
y0
(
multilayer_t
iML,
tubeSide_t
iTubeSide)
const
{
return
meas
(iML, iTubeSide).
y0
; }
49
double
z0
(
multilayer_t
iML,
tubeSide_t
iTubeSide)
const
{
return
meas
(iML, iTubeSide).
z0
; }
50
double
alpha
(
multilayer_t
iML,
tubeSide_t
iTubeSide)
const
{
return
meas
(iML, iTubeSide).
alpha
; }
51
double
ypitch
(
multilayer_t
iML,
tubeSide_t
iTubeSide)
const
{
return
meas
(iML, iTubeSide).
ypitch
; }
52
double
zpitch
(
multilayer_t
iML,
tubeSide_t
iTubeSide)
const
{
return
meas
(iML, iTubeSide).
zpitch
; }
53
int
stagg
(
multilayer_t
iML,
tubeSide_t
iTubeSide)
const
{
return
meas
(iML, iTubeSide).
stagg
; }
54
55
56
// Alignment parameters
57
struct
AlignmentParameters
{
58
AlignmentParameters
() =
default
;
59
float
y0
{0.f};
// y position of first wire w.r.t. reference point
60
float
z0
{0.f};
// z position of first wire w.r.t. reference point
61
float
alpha
{0.f};
// rotation around tube axis
62
float
ypitch
{0.f};
// y pitch
63
float
zpitch
{0.f};
// z pitch
64
int
stagg
{1};
// is tube staggering ATLAS-standard or reversed?
65
};
66
private
:
67
static
constexpr
unsigned
int
NMEAS
=
static_cast<
unsigned
int
>
(
multilayer_t::NMLTYPES
) *
68
static_cast<
unsigned
int
>
(
tubeSide_t::NTUBESIDETYPES
);
69
std::array<AlignmentParameters, NMEAS>
m_meas
{};
// in this order: ML1_HV, ML1_RO, ML2_HV, ML2_RO
70
71
AlignmentParameters
&
meas
(
multilayer_t
iML,
tubeSide_t
iTubeSide) {
72
const
unsigned
int
idx =
static_cast<
unsigned
int
>
(
tubeSide_t::NTUBESIDETYPES
) *
73
static_cast<
unsigned
int
>
(iML) +
static_cast<
unsigned
>
(iTubeSide);
74
return
m_meas
.at(idx);
75
}
76
const
AlignmentParameters
&
meas
(
multilayer_t
iML,
tubeSide_t
iTubeSide)
const
{
77
const
unsigned
int
idx =
static_cast<
unsigned
int
>
(
tubeSide_t::NTUBESIDETYPES
) *
78
static_cast<
unsigned
int
>
(iML) +
static_cast<
unsigned
>
(iTubeSide);
79
return
m_meas
.at(idx);
80
}
81
};
82
83
std::ostream&
operator<<
(std::ostream& ostr,
const
MdtAsBuiltPar
& par);
84
#endif
// MUONALIGNMENTDATA_MDTASBUILTPAR_H
operator<<
std::ostream & operator<<(std::ostream &ostr, const MdtAsBuiltPar &par)
Definition
MdtAsBuiltPar.cxx:8
MuonAlignmentPar.h
MdtAsBuiltPar
Container classifier the MDT as-built parameters See parameter description in http://atlas-muon-align...
Definition
MdtAsBuiltPar.h:19
MdtAsBuiltPar::stagg
int stagg(multilayer_t iML, tubeSide_t iTubeSide) const
Definition
MdtAsBuiltPar.h:53
MdtAsBuiltPar::meas
const AlignmentParameters & meas(multilayer_t iML, tubeSide_t iTubeSide) const
Definition
MdtAsBuiltPar.h:76
MdtAsBuiltPar::zpitch
double zpitch(multilayer_t iML, tubeSide_t iTubeSide) const
Definition
MdtAsBuiltPar.h:52
MdtAsBuiltPar::MdtAsBuiltPar
MdtAsBuiltPar()=default
MdtAsBuiltPar::ypitch
double ypitch(multilayer_t iML, tubeSide_t iTubeSide) const
Definition
MdtAsBuiltPar.h:51
MdtAsBuiltPar::alpha
double alpha(multilayer_t iML, tubeSide_t iTubeSide) const
Definition
MdtAsBuiltPar.h:50
MdtAsBuiltPar::m_meas
std::array< AlignmentParameters, NMEAS > m_meas
Definition
MdtAsBuiltPar.h:69
MdtAsBuiltPar::~MdtAsBuiltPar
virtual ~MdtAsBuiltPar() override=default
MdtAsBuiltPar::multilayer_t
multilayer_t
MDT multi-layer index.
Definition
MdtAsBuiltPar.h:29
MdtAsBuiltPar::multilayer_t::NMLTYPES
@ NMLTYPES
Definition
MdtAsBuiltPar.h:29
MdtAsBuiltPar::multilayer_t::ML2
@ ML2
Definition
MdtAsBuiltPar.h:29
MdtAsBuiltPar::multilayer_t::ML1
@ ML1
Definition
MdtAsBuiltPar.h:29
MdtAsBuiltPar::setAlignmentParameters
void setAlignmentParameters(multilayer_t iML, tubeSide_t iTubeSide, float y0, float z0, float alpha, float ypitch, float zpitch, int stagg)
Set the alignment parameters for a ML and a tube side.
Definition
MdtAsBuiltPar.cxx:33
MdtAsBuiltPar::NMEAS
static constexpr unsigned int NMEAS
Definition
MdtAsBuiltPar.h:67
MdtAsBuiltPar::meas
AlignmentParameters & meas(multilayer_t iML, tubeSide_t iTubeSide)
Definition
MdtAsBuiltPar.h:71
MdtAsBuiltPar::tubeSide_t
tubeSide_t
MDT tube side.
Definition
MdtAsBuiltPar.h:34
MdtAsBuiltPar::tubeSide_t::POS
@ POS
Definition
MdtAsBuiltPar.h:35
MdtAsBuiltPar::tubeSide_t::NEG
@ NEG
Definition
MdtAsBuiltPar.h:36
MdtAsBuiltPar::tubeSide_t::NTUBESIDETYPES
@ NTUBESIDETYPES
Definition
MdtAsBuiltPar.h:37
MdtAsBuiltPar::z0
double z0(multilayer_t iML, tubeSide_t iTubeSide) const
Definition
MdtAsBuiltPar.h:49
MdtAsBuiltPar::y0
double y0(multilayer_t iML, tubeSide_t iTubeSide) const
Definition
MdtAsBuiltPar.h:48
MuonAlignmentPar::MuonAlignmentPar
MuonAlignmentPar()=default
MdtAsBuiltPar::AlignmentParameters
Definition
MdtAsBuiltPar.h:57
MdtAsBuiltPar::AlignmentParameters::y0
float y0
Definition
MdtAsBuiltPar.h:59
MdtAsBuiltPar::AlignmentParameters::alpha
float alpha
Definition
MdtAsBuiltPar.h:61
MdtAsBuiltPar::AlignmentParameters::zpitch
float zpitch
Definition
MdtAsBuiltPar.h:63
MdtAsBuiltPar::AlignmentParameters::ypitch
float ypitch
Definition
MdtAsBuiltPar.h:62
MdtAsBuiltPar::AlignmentParameters::stagg
int stagg
Definition
MdtAsBuiltPar.h:64
MdtAsBuiltPar::AlignmentParameters::AlignmentParameters
AlignmentParameters()=default
MdtAsBuiltPar::AlignmentParameters::z0
float z0
Definition
MdtAsBuiltPar.h:60
Generated on
for ATLAS Offline Software by
1.17.0