ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
MuonSpectrometer
MuonReconstruction
MuonRecEvent
MuonRIO_OnTrack
MuonRIO_OnTrack
MuonDriftCircleErrorStrategy.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#ifndef MUON_MUONRIOONTRACK_MUONDRIFTCIRCLEERRORSTRATEGY_H
6
#define MUON_MUONRIOONTRACK_MUONDRIFTCIRCLEERRORSTRATEGY_H
7
8
#include <bitset>
9
#include "GaudiKernel/MsgStream.h"
10
#include <iostream>
11
12
namespace
Muon
{
13
typedef
std::bitset<23>
MuonDriftCircleErrorStrategyInput
;
14
15
class
MuonDriftCircleErrorStrategy
{
16
public
:
17
enum
Strategy
{
Moore
=0,
Muon
=1,
UnknownStrategy
=0x7};
// FIXME - better names
18
enum
CreationParameter
{
BroadError
=3,
// Bit 3. Create with broad errors.
19
ScaledError
,
// Error scaling is turned on (this is applied after eveyrthing else)
20
FixedError
,
21
ParameterisedErrors
,
22
StationError
,
23
ErrorAtPredictedPosition
,
24
T0Refit
,
25
TofCorrection
,
26
PropCorrection
,
27
TempCorrection
,
28
MagFieldCorrection
,
29
SlewCorrection
,
30
BackgroundCorrection
,
31
Segment
,
32
FirstCalibWindowBit
33
};
34
static
constexpr
std::size_t
nCalibWindowBits
= 4;
35
MuonDriftCircleErrorStrategy
() =
default
;
36
MuonDriftCircleErrorStrategy
(
const
MuonDriftCircleErrorStrategyInput
& bits):
m_bits
(bits){}
37
void
setStrategy
(
Strategy
);
38
void
setParameter
(
CreationParameter
,
bool
value);
39
void
setCalibWindow
(
unsigned
long
);
40
41
bool
creationParameter
(
CreationParameter
)
const
;
42
unsigned
long
calibWindow
()
const
;
43
Strategy
strategy
()
const
;
44
45
const
MuonDriftCircleErrorStrategyInput
&
getBits
()
const
{
return
m_bits
; }
46
47
private
:
48
MuonDriftCircleErrorStrategyInput
m_bits
{};
49
};
50
}
51
52
inline
53
void
54
Muon::MuonDriftCircleErrorStrategy::setStrategy
(
Muon::MuonDriftCircleErrorStrategy::Strategy
st) {
55
unsigned
int
holder =
static_cast<
unsigned
int
>
(st);
56
m_bits
[0] = holder&0x1;
57
m_bits
[1] = holder&0x2;
58
m_bits
[2] = holder&0x4;
59
}
60
61
inline
62
void
63
Muon::MuonDriftCircleErrorStrategy::setParameter
(
Muon::MuonDriftCircleErrorStrategy::CreationParameter
cp,
bool
value) {
64
m_bits
[
static_cast<
unsigned
int
>
(cp)] = value;
65
}
66
67
inline
68
void
69
Muon::MuonDriftCircleErrorStrategy::setCalibWindow
(
unsigned
long
config) {
70
std::bitset<nCalibWindowBits> tmpconfig(config);
71
72
// Copy temporary bitset into m_bits
73
// Should do this with std::copy
74
for
(std::size_t itmp=0,i=
FirstCalibWindowBit
; itmp<
nCalibWindowBits
; ++itmp,++i) {
75
m_bits
[i] = tmpconfig[itmp];
76
}
77
78
}
79
80
inline
81
bool
82
Muon::MuonDriftCircleErrorStrategy::creationParameter
(
Muon::MuonDriftCircleErrorStrategy::CreationParameter
cp)
const
{
83
return
m_bits
[
static_cast<
unsigned
int
>
(cp)];
84
}
85
86
inline
87
unsigned
long
88
Muon::MuonDriftCircleErrorStrategy::calibWindow
()
const
{
89
std::bitset<nCalibWindowBits> tmpconfig;
90
91
// Copy relevant part of m_bits into temporary bitset
92
// Should do this with std::copy
93
for
(std::size_t itmp=0,i=
FirstCalibWindowBit
; itmp<
nCalibWindowBits
; ++itmp,++i) {
94
tmpconfig[itmp] =
m_bits
[i];
95
}
96
97
return
tmpconfig.to_ulong();
98
}
99
100
inline
101
Muon::MuonDriftCircleErrorStrategy::Strategy
102
Muon::MuonDriftCircleErrorStrategy::strategy
()
const
{
103
switch
(
m_bits
.to_ulong()&0x7){
104
case
0:
105
return
Moore
;
106
case
1:
107
return
Muon
;
108
default
:
109
return
UnknownStrategy
;
110
}
111
return
UnknownStrategy
;
112
}
113
114
inline
std::ostream&
operator <<
( std::ostream& sl,
const
Muon::MuonDriftCircleErrorStrategy
& mdces)
115
{
116
sl <<
"MuonDriftCircleErrorStrategy with strategy "
;
117
const
Muon::MuonDriftCircleErrorStrategyInput
myBits = mdces.
getBits
();
118
switch
(mdces.
strategy
()){
119
case
0:
120
sl <<
"Moore"
;
121
break
;
122
case
1:
123
sl <<
"Muon"
;
124
break
;
125
default
:
126
sl <<
"Unknown Strategy"
;
127
}
128
sl <<
" and configuration bits "
<< myBits;
129
sl <<
" including CalibWindow "
<< mdces.
calibWindow
() << std::endl;
130
return
sl;
131
}
132
133
inline
MsgStream&
operator <<
( MsgStream& sl,
const
Muon::MuonDriftCircleErrorStrategy
& mdces)
134
{
135
sl <<
"MuonDriftCircleErrorStrategy with strategy "
;
136
const
Muon::MuonDriftCircleErrorStrategyInput
myBits = mdces.
getBits
();
137
switch
(mdces.
strategy
()){
138
case
0:
139
sl <<
"Moore"
;
140
break
;
141
case
1:
142
sl <<
"Muon"
;
143
break
;
144
default
:
145
sl <<
"Unknown Strategy"
;
146
}
147
sl <<
" and configuration bits "
<< myBits;
148
sl <<
" including CalibWindow "
<< mdces.
calibWindow
() << std::endl;
149
return
sl;
150
}
151
152
153
#endif
Muon::MuonDriftCircleErrorStrategy
Definition
MuonDriftCircleErrorStrategy.h:15
Muon::MuonDriftCircleErrorStrategy::setStrategy
void setStrategy(Strategy)
Select the strategy to be used - only one can be set at a time.
Definition
MuonDriftCircleErrorStrategy.h:54
Muon::MuonDriftCircleErrorStrategy::creationParameter
bool creationParameter(CreationParameter) const
Definition
MuonDriftCircleErrorStrategy.h:82
Muon::MuonDriftCircleErrorStrategy::m_bits
MuonDriftCircleErrorStrategyInput m_bits
0,1,2 are reserved for Strategy, 3-16 are Creation parameters, 17-20 are calib window bits
Definition
MuonDriftCircleErrorStrategy.h:48
Muon::MuonDriftCircleErrorStrategy::MuonDriftCircleErrorStrategy
MuonDriftCircleErrorStrategy()=default
Muon::MuonDriftCircleErrorStrategy::nCalibWindowBits
static constexpr std::size_t nCalibWindowBits
Allows up to 16 configurations to be recorded.
Definition
MuonDriftCircleErrorStrategy.h:34
Muon::MuonDriftCircleErrorStrategy::strategy
Strategy strategy() const
Definition
MuonDriftCircleErrorStrategy.h:102
Muon::MuonDriftCircleErrorStrategy::getBits
const MuonDriftCircleErrorStrategyInput & getBits() const
Definition
MuonDriftCircleErrorStrategy.h:45
Muon::MuonDriftCircleErrorStrategy::calibWindow
unsigned long calibWindow() const
Returns calibration configuration.
Definition
MuonDriftCircleErrorStrategy.h:88
Muon::MuonDriftCircleErrorStrategy::setParameter
void setParameter(CreationParameter, bool value)
Definition
MuonDriftCircleErrorStrategy.h:63
Muon::MuonDriftCircleErrorStrategy::setCalibWindow
void setCalibWindow(unsigned long)
Only the first nCalibWindowBits bits will be stored!
Definition
MuonDriftCircleErrorStrategy.h:69
Muon::MuonDriftCircleErrorStrategy::MuonDriftCircleErrorStrategy
MuonDriftCircleErrorStrategy(const MuonDriftCircleErrorStrategyInput &bits)
first 3 bits are Strategy, then come CreationParameter, last four are calib window bits
Definition
MuonDriftCircleErrorStrategy.h:36
Muon::MuonDriftCircleErrorStrategy::Strategy
Strategy
Definition
MuonDriftCircleErrorStrategy.h:17
Muon::MuonDriftCircleErrorStrategy::Moore
@ Moore
Definition
MuonDriftCircleErrorStrategy.h:17
Muon::MuonDriftCircleErrorStrategy::UnknownStrategy
@ UnknownStrategy
Definition
MuonDriftCircleErrorStrategy.h:17
Muon::MuonDriftCircleErrorStrategy::CreationParameter
CreationParameter
Definition
MuonDriftCircleErrorStrategy.h:18
Muon::MuonDriftCircleErrorStrategy::StationError
@ StationError
A term is added to account for misaligned.
Definition
MuonDriftCircleErrorStrategy.h:22
Muon::MuonDriftCircleErrorStrategy::T0Refit
@ T0Refit
A special error was applied to account for the T0 refit (user defined via jobProperties).
Definition
MuonDriftCircleErrorStrategy.h:24
Muon::MuonDriftCircleErrorStrategy::FixedError
@ FixedError
A fixed error is given to this hit (user defined via jobProperties).
Definition
MuonDriftCircleErrorStrategy.h:20
Muon::MuonDriftCircleErrorStrategy::BroadError
@ BroadError
Definition
MuonDriftCircleErrorStrategy.h:18
Muon::MuonDriftCircleErrorStrategy::MagFieldCorrection
@ MagFieldCorrection
Magnetic field correction was applied in calibration.
Definition
MuonDriftCircleErrorStrategy.h:28
Muon::MuonDriftCircleErrorStrategy::ParameterisedErrors
@ ParameterisedErrors
Use parameterised errors.
Definition
MuonDriftCircleErrorStrategy.h:21
Muon::MuonDriftCircleErrorStrategy::SlewCorrection
@ SlewCorrection
Slewing correction was applied in calibration.
Definition
MuonDriftCircleErrorStrategy.h:29
Muon::MuonDriftCircleErrorStrategy::ScaledError
@ ScaledError
Definition
MuonDriftCircleErrorStrategy.h:19
Muon::MuonDriftCircleErrorStrategy::FirstCalibWindowBit
@ FirstCalibWindowBit
First bit recording the calibration configuration.
Definition
MuonDriftCircleErrorStrategy.h:32
Muon::MuonDriftCircleErrorStrategy::TofCorrection
@ TofCorrection
Time of flight correction was applied in calibration.
Definition
MuonDriftCircleErrorStrategy.h:25
Muon::MuonDriftCircleErrorStrategy::BackgroundCorrection
@ BackgroundCorrection
Background correction was applied in calibration.
Definition
MuonDriftCircleErrorStrategy.h:30
Muon::MuonDriftCircleErrorStrategy::ErrorAtPredictedPosition
@ ErrorAtPredictedPosition
Definition
MuonDriftCircleErrorStrategy.h:23
Muon::MuonDriftCircleErrorStrategy::PropCorrection
@ PropCorrection
Propagation correction was applied in calibration.
Definition
MuonDriftCircleErrorStrategy.h:26
Muon::MuonDriftCircleErrorStrategy::Segment
@ Segment
Treating a segment or a track.
Definition
MuonDriftCircleErrorStrategy.h:31
Muon::MuonDriftCircleErrorStrategy::TempCorrection
@ TempCorrection
Temperature correction was applied in calibration.
Definition
MuonDriftCircleErrorStrategy.h:27
Muon
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.
Definition
TrackSystemController.h:46
Muon::operator<<
std::ostream & operator<<(std::ostream &ostr, const Muon::HedgehogBoard &board)
Definition
HedgehogBoard.cxx:11
Muon::MuonDriftCircleErrorStrategyInput
std::bitset< 23 > MuonDriftCircleErrorStrategyInput
Definition
MuonDriftCircleErrorStrategy.h:13
Generated on
for ATLAS Offline Software by
1.17.0