~maus-scifi/maus/tracker_devel

« back to all changes in this revision

Viewing changes to src/common_cpp/Recon/Kalman/KalmanSeed.cc

  • Committer: cheid001
  • Date: 2015-04-01 11:46:50 UTC
  • mfrom: (1144.1.2 tracker_devel)
  • Revision ID: cheid001-20150401114650-w005e6s21mcnstve
merging updates

Show diffs side-by-side

added added

removed removed

Lines of Context:
131
131
 
132
132
TMatrixD KalmanSeed::ComputeInitialStateVector(const SciFiHelicalPRTrack* seed,
133
133
                                               const SciFiSpacePointPArray &spacepoints) {
134
 
  // Get pt in MeV.
135
134
  double c  = CLHEP::c_light;
136
135
  // Charge guess should come from PR.
137
136
  _particle_charge = seed->get_charge();
145
144
 
146
145
  // Get seed values.
147
146
  double r  = seed->get_R();
148
 
  double pt = _particle_charge*c*_Bz*r;
149
 
  double dsdz  = fabs(seed->get_dsdz());
 
147
  double pt = fabs(_particle_charge*c*_Bz*r);
 
148
  double dsdz = fabs(seed->get_dsdz());
150
149
  double x0 = seed->get_circle_x0(); // Circle Center x
151
150
  double y0 = seed->get_circle_y0(); // Circle Center y
152
151
  double s = seed->get_line_sz_c() - _particle_charge*length*dsdz; // Path length at start plane
153
152
  double phi_0 = s / r; // Phi at start plane
154
153
  double phi = phi_0 + TMath::PiOver2(); // Direction of momentum
155
154
 
 
155
  // TODO: Actually propagate the track parrameters and covariance matrix back to start plane.
 
156
  //       This is an approximation.
156
157
  ThreeVector patrec_momentum( pt*cos(phi), pt*sin(phi), fabs(pt/dsdz) );
157
158
  double P = patrec_momentum.mag();
158
159
  double patrec_bias; // Account for two planes of energy loss
228
229
  TMatrixD patrec_covariance( _n_parameters, _n_parameters );
229
230
  TMatrixD covariance( _n_parameters, _n_parameters );
230
231
 
231
 
  if ( cov.size() != _n_parameters*_n_parameters ) {
 
232
  if ( cov.size() != (unsigned int)_n_parameters*_n_parameters ) {
232
233
    throw MAUS::Exception( MAUS::Exception::recoverable, 
233
234
                          "Dimension of covariance matrix does not match the state vector",
234
235
                          "KalmanSeed::ComputeInitalCovariance(Helical)");
288
289
  TMatrixD patrec_covariance( _n_parameters, _n_parameters );
289
290
  TMatrixD covariance( _n_parameters, _n_parameters );
290
291
 
291
 
  if ( cov.size() != _n_parameters*_n_parameters ) {
 
292
  if ( cov.size() != (unsigned int)_n_parameters*_n_parameters ) {
292
293
    throw MAUS::Exception( MAUS::Exception::recoverable, 
293
294
                          "Dimension of covariance matrix does not match the state vector",
294
295
                          "KalmanSeed::ComputeInitalCovariance(Straight)");