![]() |
ATLAS Offline Software
|
#include <BFieldCorFunc.h>
Public Types | |
using | ParVec = std::vector< double > |
Public Member Functions | |
BFieldCorFunc (const std::string &quality, const CalibFunc::ParVec ¶meters, const IRtRelation *rt) | |
Constructor: quality = "high", slow but accurate initialization initialization of the correction function, quality = "medium", compromise between speed and accuracy of the initialization of the correction function (default), quality = "low", fast initialization of the correction function at the price of lower quality. More... | |
BFieldCorFunc (const CalibFunc::ParVec ¶meters, const IRtRelation *rt) | |
Constructor: parameters[0] = high voltage [V], parameters[1] = \epsilon ,. More... | |
double | epsilon () const |
< get the \epsilon parameter of the B-field correction function More... | |
void | setRtRelationship (const IRtRelation &rt) |
< set the \epsilon parameter of the B-field correction function = eps More... | |
std::string | name () const |
get the class name More... | |
double | correction (double t, double B_wire, double B_mu) const |
get t(r, \vec{B} !=0)-t(r, \vec{B} =0); t = drift time t [ns] for B=0; B_wire = magnetic field parallel to the anode wire of the given tube, B_mu = magnetic field orthogonal to the wire and parallel to the muon trajectory in the given tube [B] = Tesla More... | |
double | correction_to_B (double t, double B_wire, double B_mu, double B_factor=-1.0) const |
virtual std::string | typeName () const |
unsigned int | nPar () const |
const ParVec & | parameters () const |
double | par (unsigned int index) const |
Private Member Functions | |
void | init (const std::string &quality, const CalibFunc::ParVec ¶ms, const IRtRelation *rt) |
double | t_from_r (const double r, const IRtRelation *rt) const |
double | integral (const double r_min, const double r_max, const IRtRelation *rt) const |
Private Attributes | |
std::vector< double > | m_param {} |
std::string | m_quality {} |
double | m_step_size {0.} |
Amg::VectorX | m_alpha |
double | m_t_min {-std::numeric_limits<double>::max()} |
double | m_t_max {std::numeric_limits<double>::max()} |
double | m_r_min {-std::numeric_limits<double>::max()} |
double | m_r_max {std::numeric_limits<double>::max()} |
ParVec | m_parameters {} |
This class allows the user to get the difference between the drift time measured by a tube operated in a magnetic field \vec{B} and the drift time which would be measured by this tube if \vec{B} vanished.
Correction:
t(r,\vec{B}) = t(r,\vec{B}=0) + B_\perp^{2-\epsilon}\cdot \int\limits_{25\ \mu m}^{r} \frac{v_{B=0}^{1-\epsilon}(r')} {E^{2-\epsilon}(r')}\,dr'
.
B_\perp = |\vec{B}_\perp| ; \vec{B}_\perp = \vec{B}_{wire}+\vec{B}_\mu ;
\vec{B}_{wire} : magnetic field parallel to the anode wire of the given tube;
\vec{B}_\mu : magnetic field magnetic field perpendicular to wire and parallel to the muon trajectory in the given tube.
Definition at line 47 of file BFieldCorFunc.h.
|
inherited |
Definition at line 35 of file CalibFunc.h.
|
explicit |
Constructor: quality = "high", slow but accurate initialization initialization of the correction function, quality = "medium", compromise between speed and accuracy of the initialization of the correction function (default), quality = "low", fast initialization of the correction function at the price of lower quality.
parameters[0] = high voltage [V], parameters[1] = \epsilon ,
Definition at line 20 of file BFieldCorFunc.cxx.
|
explicit |
Constructor: parameters[0] = high voltage [V], parameters[1] = \epsilon ,.
Definition at line 25 of file BFieldCorFunc.cxx.
|
virtual |
get t(r, \vec{B} !=0)-t(r, \vec{B} =0); t = drift time t [ns] for B=0; B_wire = magnetic field parallel to the anode wire of the given tube, B_mu = magnetic field orthogonal to the wire and parallel to the muon trajectory in the given tube [B] = Tesla
Implements MuonCalib::IMdtBFieldCorFunc.
Definition at line 182 of file BFieldCorFunc.cxx.
double BFieldCorFunc::correction_to_B | ( | double | t, |
double | B_wire, | ||
double | B_mu, | ||
double | B_factor = -1.0 |
||
) | const |
Definition at line 225 of file BFieldCorFunc.cxx.
double BFieldCorFunc::epsilon | ( | ) | const |
< get the \epsilon parameter of the B-field correction function
Definition at line 175 of file BFieldCorFunc.cxx.
|
private |
Definition at line 30 of file BFieldCorFunc.cxx.
|
private |
Definition at line 140 of file BFieldCorFunc.cxx.
|
virtual |
get the class name
get t(r, \vec{B} !=0)-t(r, \vec{B} =0); t = measured drift time t [ns]; B_wire = magnetic field parallel to the anode wire of the given tube, B_mu = magnetic field orthogonal to the wire and parallel to the muon trajectory in the given tube [B] = Tesla
Implements MuonCalib::CalibFunc.
Definition at line 180 of file BFieldCorFunc.cxx.
|
inlineinherited |
Definition at line 39 of file CalibFunc.h.
|
inlineinherited |
Definition at line 41 of file CalibFunc.h.
Definition at line 40 of file CalibFunc.h.
void BFieldCorFunc::setRtRelationship | ( | const IRtRelation & | rt | ) |
< set the \epsilon parameter of the B-field correction function = eps
< set the r-t relationship used to calculate the B field correction to the measured drift time = rt
Definition at line 176 of file BFieldCorFunc.cxx.
|
private |
Definition at line 112 of file BFieldCorFunc.cxx.
|
inlinevirtualinherited |
Implements MuonCalib::CalibFunc.
Definition at line 18 of file IMdtBFieldCorFunc.h.
|
private |
Definition at line 109 of file BFieldCorFunc.h.
|
private |
Definition at line 102 of file BFieldCorFunc.h.
|
privateinherited |
Definition at line 48 of file CalibFunc.h.
|
private |
Definition at line 105 of file BFieldCorFunc.h.
|
private |
Definition at line 120 of file BFieldCorFunc.h.
|
private |
Definition at line 119 of file BFieldCorFunc.h.
|
private |
Definition at line 106 of file BFieldCorFunc.h.
|
private |
Definition at line 117 of file BFieldCorFunc.h.
|
private |
Definition at line 116 of file BFieldCorFunc.h.