CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
MuonHitsChamberResidual.cc
Go to the documentation of this file.
1 
7 
9  AlignableNavigator *navigator,
10  DetId chamberId,
11  const AlignableDetOrUnitPtr& chamberAlignable)
12  : MuonChamberResidual(globalGeometry, navigator, chamberId, chamberAlignable)
13  , m_residual_1(0.)
14  , m_residual_x(0.) , m_residual_y(0.)
15  , m_residual_xx(0.) , m_residual_xy(0.)
16  , m_trackx_1(0.)
17  , m_trackx_x(0.) , m_trackx_y(0.)
18  , m_trackx_xx(0.) , m_trackx_xy(0.)
19  , m_tracky_1(0.)
20  , m_tracky_x(0.) , m_tracky_y(0.)
21  , m_tracky_xx(0.) , m_tracky_xy(0.)
22  , m_hitx_1(0.)
23  , m_hitx_x(0.) , m_hitx_y(0.)
24  , m_hitx_xx(0.) , m_hitx_xy(0.)
25  , m_hity_1(0.)
26  , m_hity_x(0.) , m_hity_y(0.)
27  , m_hity_xx(0.) , m_hity_xy(0.)
28 {}
29 
30 
32 {
33  assert(m_numHits > 1);
34 
36  m_residual = (m_residual_xx * m_residual_y - m_residual_x * m_residual_xy) / delta;
37 
38  delta = m_residual_1 * m_residual_xx - m_residual_x * m_residual_x;
40 
41  delta = m_residual_1 * m_residual_xx - m_residual_x * m_residual_x;
42  m_resslope = (m_residual_1 * m_residual_xy - m_residual_x * m_residual_y) / delta;
43 
44  delta = m_residual_1 * m_residual_xx - m_residual_x * m_residual_x;
46 
47  m_ndof = m_individual_x.size() - 2;
48 
49  m_chi2 = 0.;
50  double a = m_residual;
51  double b = m_resslope;
52  std::vector< double >::const_iterator x = m_individual_x.begin();
53  std::vector< double >::const_iterator y = m_individual_y.begin();
54  std::vector< double >::const_iterator w = m_individual_weight.begin();
55  for (; x != m_individual_x.end(); ++x, ++y, ++w) m_chi2 += pow((*y) - a - b * (*x), 2) * (*w);
56 
58  m_trackdxdz = (m_trackx_1 * m_trackx_xy - m_trackx_x * m_trackx_y) / delta;
59 
61  m_trackdydz = (m_tracky_1 * m_tracky_xy - m_tracky_x * m_tracky_y) / delta;
62 
63  delta = m_trackx_1 * m_trackx_xx - m_trackx_x * m_trackx_x;
64  m_trackx = (m_trackx_xx * m_trackx_y - m_trackx_x * m_trackx_xy) / delta;
65 
66  delta = m_tracky_1 * m_tracky_xx - m_tracky_x * m_tracky_x;
67  m_tracky = (m_tracky_xx * m_tracky_y - m_tracky_x * m_tracky_xy) / delta;
68 
69  delta = m_hitx_1 * m_hitx_xx - m_hitx_x * m_hitx_x;
70  m_segdxdz = (m_hitx_1 * m_hitx_xy - m_hitx_x * m_hitx_y) / delta;
71 
72  delta = m_hity_1 * m_hity_xx - m_hity_x * m_hity_x;
73  m_segdydz = (m_hity_1 * m_hity_xy - m_hity_x * m_hity_y) / delta;
74 
75  delta = m_hitx_1 * m_hitx_xx - m_hitx_x * m_hitx_x;
76  m_segx = (m_hitx_xx * m_hitx_y - m_hitx_x * m_hitx_xy) / delta;
77 
78  delta = m_hity_1 * m_hity_xx - m_hity_x * m_hity_x;
79  m_segy = (m_hity_xx * m_hity_y - m_hity_x * m_hity_xy) / delta;
80 }
81 
dbl * delta
Definition: mlp_gen.cc:36
std::vector< double > m_individual_y
std::vector< double > m_individual_x
T sqrt(T t)
Definition: SSEVec.h:48
Definition: DetId.h:18
double b
Definition: hdecay.h:120
double a
Definition: hdecay.h:121
MuonHitsChamberResidual(edm::ESHandle< GlobalTrackingGeometry > globalGeometry, AlignableNavigator *navigator, DetId chamberId, const AlignableDetOrUnitPtr &chamberAlignable)
T w() const
Definition: DDAxes.h:10
std::vector< double > m_individual_weight
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:40