CMS 3D CMS Logo

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
MuonDT13ChamberResidual.cc
Go to the documentation of this file.
2 
4  DetId id = hit->geographicalId();
5 
6  LocalPoint hitChamberPos = m_chamberAlignable->surface().toLocal(m_globalGeometry->idToDet(id)->toGlobal(hit->localPosition()));
7  LocalPoint tsosChamberPos = m_chamberAlignable->surface().toLocal(m_globalGeometry->idToDet(id)->toGlobal(tsos->localPosition()));
8 
9  double residual = tsosChamberPos.x() - hitChamberPos.x(); // residual is track minus hit
10  double weight = 1. / hit->localPositionError().xx(); // weight linear fit by hit-only local error
11  double layerPosition = tsosChamberPos.z(); // the layer's position in the chamber's coordinate system
12 
13  m_numHits++;
14 
15  // "x" is the layerPosition, "y" is the residual (this is a linear fit to residual versus layerPosition)
17  m_residual_x += weight * layerPosition;
18  m_residual_y += weight * residual;
19  m_residual_xx += weight * layerPosition * layerPosition;
20  m_residual_xy += weight * layerPosition * residual;
21 
22  // "x" is the layerPosition, "y" is chamberx (this is a linear fit to chamberx versus layerPosition)
23  m_trackx_1 += weight;
24  m_trackx_x += weight * layerPosition;
25  m_trackx_y += weight * tsosChamberPos.x();
26  m_trackx_xx += weight * layerPosition * layerPosition;
27  m_trackx_xy += weight * layerPosition * tsosChamberPos.x();
28 
29  // "x" is the layerPosition, "y" is chambery (this is a linear fit to chambery versus layerPosition)
30  m_tracky_1 += weight;
31  m_tracky_x += weight * layerPosition;
32  m_tracky_y += weight * tsosChamberPos.y();
33  m_tracky_xx += weight * layerPosition * layerPosition;
34  m_tracky_xy += weight * layerPosition * tsosChamberPos.y();
35 
36  m_localIDs.push_back(id);
37  m_localResids.push_back(tsos->localPosition().x() - hit->localPosition().x());
38  m_individual_x.push_back(layerPosition);
39  m_individual_y.push_back(residual);
40  m_individual_weight.push_back(weight);
41 }
float xx() const
Definition: LocalError.h:19
std::vector< double > m_individual_y
T y() const
Definition: PV3DBase.h:57
std::vector< double > m_individual_x
std::vector< DetId > m_localIDs
align::RotationType toLocal(const align::RotationType &) const
Return in local frame a rotation given in global frame.
std::vector< double > m_localResids
T z() const
Definition: PV3DBase.h:58
AlignableDetOrUnitPtr m_chamberAlignable
const AlignableSurface & surface() const
Return the Surface (global position and orientation) of the object.
Definition: Alignable.h:126
Definition: DetId.h:20
virtual LocalError localPositionError() const =0
void addResidual(const TrajectoryStateOnSurface *tsos, const TransientTrackingRecHit *hit)
edm::ESHandle< GlobalTrackingGeometry > m_globalGeometry
DetId geographicalId() const
T x() const
Definition: PV3DBase.h:56
virtual LocalPoint localPosition() const =0
std::vector< double > m_individual_weight
double residual() const