ATLAS Offline Software
MuCCaFitter.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // MuCCaFitter.h
7 // Header file for class MuCCaFitter
9 // (c) ATLAS Detector software
11 //
13 
14 #ifndef MuCCaFITTER_H
15 #define MuCCaFITTER_H
16 
17 #include <vector>
18 
21 
22 namespace MuonCalib {
23 
29  class MuCCaFitter : public IMdtSegmentFitter {
30  public:
32  bool fit(MuonCalibSegment& seg) const;
33 
40  bool fit(MuonCalibSegment& seg, HitSelection selection) const;
41 
43  void printLevel(int level);
44 
45  private:
46  bool m_debug;
47 
52  // double getY( const Amg::Vector3D& p ) const { return p.y(); }
53  // double getX( const Amg::Vector3D& p ) const { return p.x(); }
54  // double getZ( const Amg::Vector3D& p ) const { return p.z(); }
55  // Amg::Vector3D getVec( double x, double y, double z) const { return Amg::Vector3D( x, y, z ); }
56  double getY(const Amg::Vector3D& p) const { return p.z(); }
57  double getX(const Amg::Vector3D& p) const { return p.x(); }
58  double getZ(const Amg::Vector3D& p) const { return p.y(); }
59  Amg::Vector3D getVec(double x, double y, double z) const { return Amg::Vector3D(x, z, y); }
60  };
61 
68  public:
69  void Computelin(double x1, double y1, double r1, double x2, double y2, double r2);
70  void Computelinparnew(double x1, double y1, double r1, double x2, double y2, double r2);
71  void computehitsfromcircles(double x0, double y0, double r0, double x1, double y1, double r1, double a, double b);
72  // void Computehitpsemes(int nhit,double *xcirc, double *ycirc,
73  // double *rcirc, double a, double b);
74  void Computehitpsemes(int nhit, const std::vector<double>& xcirc, const std::vector<double>& ycirc, const std::vector<double>& rcirc, double a,
75  double b);
76  // void Computeparam3(int number_of_hits,double x[100],double y[100],
77  // double r[100],double sr[100]);
78  void Computeparam3(int number_of_hits, const std::vector<double>& x, const std::vector<double>& y, const std::vector<double>& r, const std::vector<double>& sr);
79  double get_a();
80  double get_b();
81  double get_da();
82  double get_db();
83  double get_corrab();
84  double get_chi2f();
85 
86  private:
89  double m_bfpar[4];
91  double m_xout0;
92  double m_yout0;
93  double m_xout1;
94  double m_yout1;
96  double m_xpoint[100];
97  double m_ypoint[100];
99  double m_aoutn;
100  double m_sig2a;
101  double m_bout;
102  double m_sig2b;
103  double m_corrab;
104  double m_chi2f;
105  };
106 
107 } // namespace MuonCalib
108 #endif
MuonCalib::MuCCaFitterImplementation::Computelin
void Computelin(double x1, double y1, double r1, double x2, double y2, double r2)
Definition: MuCCaFitter.cxx:375
beamspotman.r
def r
Definition: beamspotman.py:676
plotBeamSpotCompare.x1
x1
Definition: plotBeamSpotCompare.py:216
MuonCalib::MuCCaFitter::getZ
double getZ(const Amg::Vector3D &p) const
Definition: MuCCaFitter.h:58
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
MuonCalibSegment.h
IMdtSegmentFitter.h
MuonCalib::MuCCaFitterImplementation::m_angularcoefficient
double m_angularcoefficient[4]
parameters of the 4 tangent lines from first and last hit
Definition: MuCCaFitter.h:88
MuonCalib::MuCCaFitterImplementation::get_da
double get_da()
Definition: MuCCaFitter.cxx:273
plotBeamSpotCompare.x2
x2
Definition: plotBeamSpotCompare.py:218
MuonCalib::MuCCaFitterImplementation::m_ypoint
double m_ypoint[100]
Definition: MuCCaFitter.h:97
MuonCalib::MuonCalibSegment
Definition: MuonCalibSegment.h:39
MuonCalib::MuCCaFitterImplementation::m_yout1
double m_yout1
Definition: MuCCaFitter.h:94
MuonCalib::MuCCaFitterImplementation::Computelinparnew
void Computelinparnew(double x1, double y1, double r1, double x2, double y2, double r2)
Definition: MuCCaFitter.cxx:278
MuonCalib::MuCCaFitterImplementation::get_chi2f
double get_chi2f()
Definition: MuCCaFitter.cxx:276
MuonCalib::MuCCaFitter::fit
bool fit(MuonCalibSegment &seg) const
fit using all hits
Definition: MuCCaFitter.cxx:18
MuonCalib::IMdtSegmentFitter
Definition: IMdtSegmentFitter.h:30
MuonCalib::MuCCaFitterImplementation::m_bfpar
double m_bfpar[4]
Definition: MuCCaFitter.h:89
x
#define x
makeTRTBarrelCans.y1
tuple y1
Definition: makeTRTBarrelCans.py:15
MuonCalib::MuCCaFitterImplementation::m_xpoint
double m_xpoint[100]
track points
Definition: MuCCaFitter.h:96
MuonCalib::MuCCaFitterImplementation::m_xout0
double m_xout0
track points from 2 circles
Definition: MuCCaFitter.h:91
MuonCalib::MuCCaFitterImplementation::m_bout
double m_bout
track constant term
Definition: MuCCaFitter.h:101
python.iconfTool.models.loaders.level
level
Definition: loaders.py:20
MuonCalib::MuCCaFitterImplementation::m_sig2a
double m_sig2a
track slope's variance
Definition: MuCCaFitter.h:100
MuonCalib::MuCCaFitterImplementation::get_b
double get_b()
Definition: MuCCaFitter.cxx:272
MuonCalib::MuCCaFitterImplementation
Definition: MuCCaFitter.h:67
MuonCalib::MuCCaFitterImplementation::m_xout1
double m_xout1
Definition: MuCCaFitter.h:93
python.SystemOfUnits.sr
int sr
Definition: SystemOfUnits.py:113
MuonCalib::MuCCaFitterImplementation::computehitsfromcircles
void computehitsfromcircles(double x0, double y0, double r0, double x1, double y1, double r1, double a, double b)
Definition: MuCCaFitter.cxx:495
z
#define z
MuonCalib::MuCCaFitter::getX
double getX(const Amg::Vector3D &p) const
Definition: MuCCaFitter.h:57
MuonCalib::MuCCaFitterImplementation::m_chi2f
double m_chi2f
chisquared
Definition: MuCCaFitter.h:104
MuonCalib::MuCCaFitterImplementation::m_sig2b
double m_sig2b
error on track constant term
Definition: MuCCaFitter.h:102
makeTRTBarrelCans.y2
tuple y2
Definition: makeTRTBarrelCans.py:18
MuonCalib::MuCCaFitterImplementation::get_corrab
double get_corrab()
Definition: MuCCaFitter.cxx:275
MuonCalib
CscCalcPed - algorithm that finds the Cathode Strip Chamber pedestals from an RDO.
Definition: CscCalcPed.cxx:22
selection
std::string selection
Definition: fbtTestBasics.cxx:73
MuonCalib::MuCCaFitterImplementation::get_db
double get_db()
Definition: MuCCaFitter.cxx:274
MuonCalib::MuCCaFitter
Definition: MuCCaFitter.h:29
plotBeamSpotMon.b
b
Definition: plotBeamSpotMon.py:77
MuonCalib::MuCCaFitterImplementation::m_aoutn
double m_aoutn
results
Definition: MuCCaFitter.h:99
MuonCalib::MuCCaFitterImplementation::m_yout0
double m_yout0
Definition: MuCCaFitter.h:92
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
MuonCalib::MuCCaFitter::getVec
Amg::Vector3D getVec(double x, double y, double z) const
Definition: MuCCaFitter.h:59
MuonCalib::MuCCaFitter::m_debug
bool m_debug
Definition: MuCCaFitter.h:46
a
TList * a
Definition: liststreamerinfos.cxx:10
y
#define y
MuonCalib::MuCCaFitterImplementation::Computeparam3
void Computeparam3(int number_of_hits, const std::vector< double > &x, const std::vector< double > &y, const std::vector< double > &r, const std::vector< double > &sr)
Definition: MuCCaFitter.cxx:155
MuonCalib::MuCCaFitterImplementation::m_corrab
double m_corrab
correlation term
Definition: MuCCaFitter.h:103
MuonCalib::MuCCaFitter::getY
double getY(const Amg::Vector3D &p) const
these methods are needed to change the reference frame between the local one of the hit and one used ...
Definition: MuCCaFitter.h:56
MuonCalib::MuCCaFitterImplementation::get_a
double get_a()
Definition: MuCCaFitter.cxx:271
MuonCalib::MuCCaFitter::printLevel
void printLevel(int level)
set print level
Definition: MuCCaFitter.cxx:14
MuonCalib::MuCCaFitterImplementation::Computehitpsemes
void Computehitpsemes(int nhit, const std::vector< double > &xcirc, const std::vector< double > &ycirc, const std::vector< double > &rcirc, double a, double b)
Definition: MuCCaFitter.cxx:467
MuonCalib::IMdtSegmentFitter::HitSelection
std::vector< unsigned int > HitSelection
Definition: IMdtSegmentFitter.h:32