ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
MuonSpectrometer
MuonCalib
MdtCalib
MdtCalibData
MdtCalibData
BFieldCorFunc.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3
*/
4
#ifndef MuonCalib_BFieldCorFuncH
5
#define MuonCalib_BFieldCorFuncH
6
namespace
MuonCalib
{
7
8
}
9
10
11
// STL //
12
#include <string>
13
#include <vector>
14
#include <limits>
15
16
// CLHEP //
17
#include "
EventPrimitives/EventPrimitives.h
"
18
19
// MuonCalib //
20
#include "
MdtCalibData/IMdtBFieldCorFunc.h
"
21
#include "
MdtCalibData/IRtRelation.h
"
22
23
namespace
MuonCalib
{
24
25
class
IRtRelation
;
26
27
47
class
BFieldCorFunc
:
public
IMdtBFieldCorFunc
{
48
public
:
49
// Constructors //
50
explicit
BFieldCorFunc
(
const
std::string &quality,
const
CalibFunc::ParVec
&
parameters
,
const
IRtRelation
*rt);
60
explicit
BFieldCorFunc
(
const
CalibFunc::ParVec
&
parameters
,
const
IRtRelation
*rt);
64
65
// Methods //
66
// get-methods //
67
69
double
epsilon
()
const
;
70
71
// set-methods //
73
// void setEpsilon(const double eps);
74
77
void
setRtRelationship
(
const
IRtRelation
&rt);
78
79
// methods required by the base class "IMdtBFieldCorFunc" //
80
std::string
name
()
const
;
81
88
double
correction
(
double
t,
double
B_wire,
double
B_mu)
const
;
89
96
double
correction_to_B
(
double
t,
double
B_wire,
double
B_mu,
double
B_factor = -1.0)
const
;
97
98
private
:
99
// data //
100
101
// parameters (copy of m_parameter in the base class, needed to enable overwriting)
102
std::vector<double>
m_param
{};
103
104
// quality setting //
105
std::string
m_quality
{};
// quality string ("high", "medium", "low")
106
double
m_step_size
{0.};
// integration step size steering the quality
107
108
// correction function //
109
Amg::VectorX
m_alpha
;
// parameter of the fit function describing the
110
// integral part of the correction function
111
112
113
// information about r(t) used to calculate the correction function //
114
115
// minimum and maximum drift times allowed by the r-t relationship
116
double
m_t_min
{-std::numeric_limits<double>::max()};
117
double
m_t_max
{std::numeric_limits<double>::max()};
118
// minimum and maximum drift radius
119
double
m_r_min
{-std::numeric_limits<double>::max()};
120
double
m_r_max
{std::numeric_limits<double>::max()};
121
122
// private methods //
123
// initialization method, parameters are the parameters passed to constructor of this class
124
void
init
(
const
std::string &quality,
const
CalibFunc::ParVec
¶ms,
const
IRtRelation
*rt);
125
126
// get t(r) for the relationship "rt", the method is auxiliary and not optimized;
127
// it will disappear when the t(r) will be available in the MuonCalib framework
128
double
t_from_r
(
const
double
r
,
const
IRtRelation
*rt)
const
;
129
130
// get the integral in the correction function from r_min to r_max; rt contains the drift
131
// velocity needed to calculate the integral
132
double
integral
(
const
double
r_min,
const
double
r_max,
const
IRtRelation
*rt)
const
;
133
};
134
135
}
// namespace MuonCalib
136
137
#endif
EventPrimitives.h
IMdtBFieldCorFunc.h
IRtRelation.h
MuonCalib::BFieldCorFunc::t_from_r
double t_from_r(const double r, const IRtRelation *rt) const
Definition
BFieldCorFunc.cxx:112
MuonCalib::BFieldCorFunc::setRtRelationship
void setRtRelationship(const IRtRelation &rt)
< set the parameter of the B-field correction function = eps
Definition
BFieldCorFunc.cxx:176
MuonCalib::BFieldCorFunc::integral
double integral(const double r_min, const double r_max, const IRtRelation *rt) const
Definition
BFieldCorFunc.cxx:140
MuonCalib::BFieldCorFunc::m_r_max
double m_r_max
Definition
BFieldCorFunc.h:120
MuonCalib::BFieldCorFunc::m_param
std::vector< double > m_param
Definition
BFieldCorFunc.h:102
MuonCalib::BFieldCorFunc::m_quality
std::string m_quality
Definition
BFieldCorFunc.h:105
MuonCalib::BFieldCorFunc::m_r_min
double m_r_min
Definition
BFieldCorFunc.h:119
MuonCalib::BFieldCorFunc::correction
double correction(double t, double B_wire, double B_mu) const
get t(r, !=0)-t(r, =0); t = drift time t [ns] for B=0; B_wire = magnetic field parallel to the anode ...
Definition
BFieldCorFunc.cxx:182
MuonCalib::BFieldCorFunc::m_t_max
double m_t_max
Definition
BFieldCorFunc.h:117
MuonCalib::BFieldCorFunc::name
std::string name() const
get the class name
Definition
BFieldCorFunc.cxx:180
MuonCalib::BFieldCorFunc::BFieldCorFunc
BFieldCorFunc(const std::string &quality, const CalibFunc::ParVec ¶meters, const IRtRelation *rt)
Constructor: quality = "high", slow but accurate initialization initialization of the correction func...
Definition
BFieldCorFunc.cxx:20
MuonCalib::BFieldCorFunc::m_step_size
double m_step_size
Definition
BFieldCorFunc.h:106
MuonCalib::BFieldCorFunc::m_t_min
double m_t_min
Definition
BFieldCorFunc.h:116
MuonCalib::BFieldCorFunc::init
void init(const std::string &quality, const CalibFunc::ParVec ¶ms, const IRtRelation *rt)
Definition
BFieldCorFunc.cxx:30
MuonCalib::BFieldCorFunc::epsilon
double epsilon() const
< get the parameter of the B-field correction function
Definition
BFieldCorFunc.cxx:175
MuonCalib::BFieldCorFunc::correction_to_B
double correction_to_B(double t, double B_wire, double B_mu, double B_factor=-1.0) const
Definition
BFieldCorFunc.cxx:225
MuonCalib::BFieldCorFunc::m_alpha
Amg::VectorX m_alpha
Definition
BFieldCorFunc.h:109
MuonCalib::CalibFunc::parameters
const ParVec & parameters() const
Definition
CalibFunc.h:40
MuonCalib::CalibFunc::ParVec
std::vector< double > ParVec
Definition
CalibFunc.h:35
MuonCalib::IMdtBFieldCorFunc::IMdtBFieldCorFunc
IMdtBFieldCorFunc(const CalibFunc::ParVec &vec)
Definition
IMdtBFieldCorFunc.h:16
MuonCalib::IRtRelation
generic interface for a rt-relation
Definition
IRtRelation.h:19
r
int r
Definition
globals.cxx:22
Amg::VectorX
Eigen::Matrix< double, Eigen::Dynamic, 1 > VectorX
Dynamic Vector - dynamic allocation.
Definition
EventPrimitives.h:30
MuonCalib
CscCalcPed - algorithm that finds the Cathode Strip Chamber pedestals from an RDO.
Definition
CscCalcPed.cxx:21
Generated on
for ATLAS Offline Software by
1.17.0