ATLAS Offline Software
Functions
MuonR4::SegmentFitHelpers Namespace Reference

Functions

double chiSqTermMdt (double y0, double tanTheta, const MuonR4::HoughHitType &measurement)
 
double chiSqTermStrip (double x0, double y0, double tanPhi, double tanTheta, const MuonR4::HoughHitType &measurement)
 
double segmentChiSquare (const double *par, const std::vector< MuonR4::HoughHitType > &hits, std::vector< double > &chi2PerMeas)
 

Function Documentation

◆ chiSqTermMdt()

double MuonR4::SegmentFitHelpers::chiSqTermMdt ( double  y0,
double  tanTheta,
const MuonR4::HoughHitType measurement 
)

TODO FIXME Johannes (@jojungge / @the.minions): Fix the -1 sign flip in your algebra!!!!! !

Definition at line 8 of file SegmentFitHelperFunctions.cxx.

8  {
10  const double theta{std::atan(-tanTheta)};
12  const Amg::Vector3D x0{y0 * Amg::Vector3D::UnitY()};
13  double dchi2 = std::abs((x0 - measurement->positionInChamber()).cross(dir).dot(Amg::Vector3D::UnitX())) - measurement->driftRadius();
14  return dchi2*dchi2 / (measurement->uncertainty().y()*measurement->uncertainty().y());
15 }

◆ chiSqTermStrip()

double MuonR4::SegmentFitHelpers::chiSqTermStrip ( double  x0,
double  y0,
double  tanPhi,
double  tanTheta,
const MuonR4::HoughHitType measurement 
)

Definition at line 17 of file SegmentFitHelperFunctions.cxx.

17  {
18  Amg::Vector2D residual{x0 + measurement->positionInChamber().z() * tanPhi - measurement->positionInChamber().x(),
19  y0 + measurement->positionInChamber().z() * tanTheta - measurement->positionInChamber().y()
20  };
21  AmgSymMatrix(2) weightMatrix = measurement->covariance().inverse();
22  return residual.dot(weightMatrix * residual);
23 }

◆ segmentChiSquare()

double MuonR4::SegmentFitHelpers::segmentChiSquare ( const double *  par,
const std::vector< MuonR4::HoughHitType > &  hits,
std::vector< double > &  chi2PerMeas 
)

Definition at line 24 of file SegmentFitHelperFunctions.cxx.

24  {
25 
26  double y0 = par[(int)MuonSegmentFitterEventData::parameterIndices::y0];
27  double x0 = par[(int)MuonSegmentFitterEventData::parameterIndices::x0];
28  double tanTheta = par[(int)MuonSegmentFitterEventData::parameterIndices::tanTheta];
29  double tanPhi = par[(int)MuonSegmentFitterEventData::parameterIndices::tanPhi];
30  double chi2 = 0.;
31  double nDF = -2.;
32  size_t iHit = 0;
33  for (auto & hit : hits){
34  double localchi2 = 0;
35  switch (hit->primaryMeasurement()->type()){
37  localchi2 = SegmentFitHelpers::chiSqTermMdt(y0,tanTheta, hit);
38  ++nDF;
39  break;
42  localchi2 = SegmentFitHelpers::chiSqTermStrip(x0,y0,tanPhi,tanTheta, hit);
43  nDF+=2;
44  break;
46  // FIXME TODO
47  break;
49  // FIXME TODO
50  break;
51  default:
52  break;
53  }
54  chi2PerMeas.at(iHit) = localchi2;
55  chi2 += localchi2;
56  ++iHit;
57  }
58  return (nDF != 0 ? chi2/nDF : chi2);
59 }
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
MuonR4::SegmentFitHelpers::chiSqTermMdt
double chiSqTermMdt(double y0, double tanTheta, const MuonR4::HoughHitType &measurement)
Definition: SegmentFitHelperFunctions.cxx:8
ClusterSeg::residual
@ residual
Definition: ClusterNtuple.h:20
Amg::Vector2D
Eigen::Matrix< double, 2, 1 > Vector2D
Definition: GeoPrimitives.h:48
theta
Scalar theta() const
theta method
Definition: AmgMatrixBasePlugin.h:71
xAOD::UncalibMeasType::MMClusterType
@ MMClusterType
MuonR4::SegmentFitHelpers::chiSqTermStrip
double chiSqTermStrip(double x0, double y0, double tanPhi, double tanTheta, const MuonR4::HoughHitType &measurement)
Definition: SegmentFitHelperFunctions.cxx:17
drawFromPickle.cos
cos
Definition: drawFromPickle.py:36
xAOD::UncalibMeasType::sTgcStripType
@ sTgcStripType
AmgSymMatrix
#define AmgSymMatrix(dim)
Definition: EventPrimitives.h:52
drawFromPickle.atan
atan
Definition: drawFromPickle.py:36
xAOD::UncalibMeasType::TgcStripType
@ TgcStripType
LArG4ShowerLibProcessing.hits
hits
Definition: LArG4ShowerLibProcessing.py:136
chi2
double chi2(TH1 *h0, TH1 *h1)
Definition: comparitor.cxx:522
beamspotman.dir
string dir
Definition: beamspotman.py:623
createCoolChannelIdFile.par
par
Definition: createCoolChannelIdFile.py:29
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
dot
Definition: dot.py:1
drawFromPickle.sin
sin
Definition: drawFromPickle.py:36
xAOD::UncalibMeasType::RpcStripType
@ RpcStripType
xAOD::UncalibMeasType::MdtDriftCircleType
@ MdtDriftCircleType