~vpec/maus/tof_calib_read

« back to all changes in this revision

Viewing changes to src/common_cpp/DataStructure/SciFiTrackPoint.cc

Merging start

Show diffs side-by-side

added added

removed removed

Lines of Context:
28
28
                                     _chi2(-1),
29
29
                                     _pos(ThreeVector(0, 0, 0)),
30
30
                                     _mom(ThreeVector(0, 0, 0)),
 
31
                                     _covariance(0),
 
32
                                     _errors(0),
31
33
                                     _pull(-1),
32
34
                                     _residual(-1),
33
35
                                     _smoothed_residual(-1) {
38
40
  delete _cluster;
39
41
}
40
42
 
41
 
SciFiTrackPoint::SciFiTrackPoint(const KalmanState *kalman_site) {
42
 
  int id = kalman_site->id();
43
 
  if ( id < 0 ) {
44
 
    _tracker = 0;
45
 
  } else {
46
 
    _tracker = 1;
47
 
  }
48
 
  _spill = kalman_site->spill();
49
 
  _event = kalman_site->event();
50
 
 
51
 
  id = abs(id);
52
 
  _station = ((id-1)/3)+1;
53
 
  _plane   = (id-1)%3;
54
 
  _channel = kalman_site->measurement()(0, 0);
55
 
 
56
 
  _chi2 = kalman_site->chi2();
57
 
 
58
 
  TMatrixD state_vector = kalman_site->a(KalmanState::Smoothed);
59
 
  int dimension = state_vector.GetNrows();
60
 
 
61
 
  if ( dimension == 4 ) {
62
 
    _pos.setZ(kalman_site->z());
63
 
    _mom.setZ(200.0); // MeV/c
64
 
    _pos.setX(state_vector(0, 0));
65
 
    _mom.setX(state_vector(1, 0));
66
 
    _pos.setY(state_vector(2, 0));
67
 
    _mom.setY(state_vector(3, 0));
68
 
  } else if ( dimension == 5 ) {
69
 
    _pos.setX(state_vector(0, 0));
70
 
    _mom.setX(state_vector(1, 0));
71
 
    _pos.setY(state_vector(2, 0));
72
 
    _mom.setY(state_vector(3, 0));
73
 
    _pos.setZ(kalman_site->z());
74
 
    _mom.setZ(1./fabs(state_vector(4, 0)));
75
 
  }
76
 
 
77
 
  _pull              = kalman_site->residual(KalmanState::Projected)(0, 0);
78
 
  _residual          = kalman_site->residual(KalmanState::Filtered)(0, 0);
79
 
  _smoothed_residual = kalman_site->residual(KalmanState::Smoothed)(0, 0);
80
 
 
81
 
  TMatrixD C = kalman_site->covariance_matrix(KalmanState::Smoothed);
82
 
  int size = C.GetNrows();
83
 
  int num_elements = size*size;
84
 
  double* matrix_elements = C.GetMatrixArray();
85
 
  std::vector<double> covariance(matrix_elements, matrix_elements+num_elements);
86
 
  _covariance = covariance;
87
 
 
88
 
  _cluster = new TRef(kalman_site->cluster());
89
 
}
 
43
//SciFiTrackPoint::SciFiTrackPoint(const KalmanState *kalman_site) {
 
44
//  int id = kalman_site->id();
 
45
//  if ( id < 0 ) {
 
46
//    _tracker = 0;
 
47
//  } else {
 
48
//    _tracker = 1;
 
49
//  }
 
50
//  _spill = kalman_site->spill();
 
51
//  _event = kalman_site->event();
 
52
//
 
53
//  id = abs(id);
 
54
//  _station = ((id-1)/3)+1;
 
55
//  _plane   = (id-1)%3;
 
56
//  _channel = kalman_site->measurement()(0, 0);
 
57
//
 
58
//  _chi2 = kalman_site->chi2();
 
59
//
 
60
//  TMatrixD state_vector = kalman_site->a(KalmanState::Smoothed);
 
61
//  int dimension = state_vector.GetNrows();
 
62
//
 
63
//  if ( dimension == 4 ) {
 
64
//    _pos.setZ(kalman_site->z());
 
65
//    _mom.setZ(200.0); // MeV/c
 
66
//    _pos.setX(state_vector(0, 0));
 
67
//    _mom.setX(state_vector(1, 0));
 
68
//    _pos.setY(state_vector(2, 0));
 
69
//    _mom.setY(state_vector(3, 0));
 
70
//  } else if ( dimension == 5 ) {
 
71
//    _pos.setX(state_vector(0, 0));
 
72
//    _mom.setX(state_vector(1, 0));
 
73
//    _pos.setY(state_vector(2, 0));
 
74
//    _mom.setY(state_vector(3, 0));
 
75
//    _pos.setZ(kalman_site->z());
 
76
//    _mom.setZ(1./fabs(state_vector(4, 0)));
 
77
//  }
 
78
//
 
79
//  _pull              = kalman_site->residual(KalmanState::Projected)(0, 0);
 
80
//  _residual          = kalman_site->residual(KalmanState::Filtered)(0, 0);
 
81
//  _smoothed_residual = kalman_site->residual(KalmanState::Smoothed)(0, 0);
 
82
//
 
83
//  TMatrixD C = kalman_site->covariance_matrix(KalmanState::Smoothed);
 
84
//  int size = C.GetNrows();
 
85
//  int num_elements = size*size;
 
86
//  double* matrix_elements = C.GetMatrixArray();
 
87
//  std::vector<double> covariance(num_elements);
 
88
//  for ( int i = 0; i < num_elements; ++i ) {
 
89
//    covariance[i] = matrix_elements[i];
 
90
//  }
 
91
//  _covariance = covariance;
 
92
//  std::vector<double> errors(size);
 
93
//  for ( int i = 0; i < size; ++i ) {
 
94
//    errors[i] = std::sqrt(fabs(C(i, i)));
 
95
//  }
 
96
//  _errors = errors;
 
97
//
 
98
//  _cluster = new TRef(kalman_site->cluster());
 
99
//}
 
100
 
 
101
 
 
102
//SciFiTrackPoint::SciFiTrackPoint(const Kalman::State& state, const SciFiGeometryHelper* geom) {
 
103
//  int id = state.GetId();
 
104
//  if ( id < 0 ) {
 
105
//    _tracker = 0;
 
106
//  } else {
 
107
//    _tracker = 1;
 
108
//  }
 
109
//  // TODO
 
110
////  _spill = state->spill();
 
111
////  _event = kalman_site->event();
 
112
//
 
113
//  TMatrixD state_vector = state.GetVector();
 
114
//  int dimension = state_vector.GetNrows();
 
115
//
 
116
//  const SciFiGeometryMap& geom_map = geom->GeometryMap();
 
117
//
 
118
//  SciFiGeometryMap::const_iterator it = geom_map.find(id);
 
119
//
 
120
//  ThreeVector reference_pos = geom->GetReferenceFramePosition(_tracker);
 
121
//  HepRotation reference_rot = geom->GetReferenceFrameRotation(_tracker);
 
122
//  
 
123
//  id = abs(id);
 
124
//  _station = ((id-1)/3)+1;
 
125
//  _plane   = (id-1)%3;
 
126
//
 
127
//  if ( dimension == 4 ) {
 
128
//    _pos.setZ(state.GetPosition());
 
129
//    _mom.setZ(200.0); // MeV/c
 
130
//    _pos.setX(state_vector(0, 0));
 
131
//    _mom.setX(state_vector(1, 0));
 
132
//    _pos.setY(state_vector(2, 0));
 
133
//    _mom.setY(state_vector(3, 0));
 
134
//  } else if ( dimension == 5 ) {
 
135
//    _pos.setX(state_vector(0, 0));
 
136
//    _mom.setX(state_vector(1, 0));
 
137
//    _pos.setY(state_vector(2, 0));
 
138
//    _mom.setY(state_vector(3, 0));
 
139
//    _pos.setZ(state.GetPosition());
 
140
//    _mom.setZ(1./fabs(state_vector(4, 0)));
 
141
//  }
 
142
//  _pos *= reference_rot;
 
143
//  _pos += reference_pos;
 
144
//
 
145
//  _mom *= reference_rot;
 
146
//
 
147
//  // TODO
 
148
////  _pull              = kalman_site->residual(KalmanState::Projected)(0, 0);
 
149
////  _residual          = kalman_site->residual(KalmanState::Filtered)(0, 0);
 
150
////  _smoothed_residual = kalman_site->residual(KalmanState::Smoothed)(0, 0);
 
151
//  _pull = 0.0;
 
152
//  _residual = 0.0;
 
153
//  _smoothed_residual = 0.0;
 
154
//
 
155
//  TMatrixD C = state.GetCovariance();
 
156
//  int size = C.GetNrows();
 
157
//  int num_elements = size*size;
 
158
//  double* matrix_elements = C.GetMatrixArray();
 
159
//  std::vector<double> covariance(num_elements);
 
160
//  for ( int i = 0; i < num_elements; ++i ) {
 
161
//    covariance[i] = matrix_elements[i];
 
162
//  }
 
163
//  _covariance = covariance;
 
164
//  std::vector<double> errors(size);
 
165
//  for ( int i = 0; i < size; ++i ) {
 
166
//    errors[i] = std::sqrt(fabs(C(i, i)));
 
167
//  }
 
168
//  _errors = errors;
 
169
//
 
170
//  //TODO
 
171
////  _cluster = new TRef(kalman_site->cluster());
 
172
//  _cluster = new TRef();
 
173
//}
90
174
 
91
175
SciFiTrackPoint::SciFiTrackPoint(const SciFiTrackPoint &point) {
92
176
  _spill = point.spill();
102
186
  _pos = point.pos();
103
187
  _mom = point.mom();
104
188
 
 
189
  _covariance = point._covariance;
 
190
  _errors = point._errors;
 
191
 
105
192
  _pull              = point.pull();
106
193
  _residual          = point.residual();
107
194
  _smoothed_residual = point.smoothed_residual();
126
213
  _pos = rhs.pos();
127
214
  _mom = rhs.mom();
128
215
 
 
216
  _covariance = rhs._covariance;
 
217
  _errors = rhs._errors;
 
218
 
129
219
  _pull              = rhs.pull();
130
220
  _residual          = rhs.residual();
131
221
  _smoothed_residual = rhs.smoothed_residual();