~christopher-hunt08/maus/maus_integrated_kalman

« back to all changes in this revision

Viewing changes to src/common_cpp/Recon/Kalman/MAUSSciFiIntegratedPropagator.hh

  • Committer: Christopher Hunt
  • Date: 2018-07-04 14:12:12 UTC
  • Revision ID: christopher.hunt08@imperial.ac.uk-20180704141212-orzzl40mi53xc6kh
Added files for field integrated kalman filter. Now to test it...

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* This file is part of MAUS: http://micewww.pp.rl.ac.uk:8080/projects/maus
 
2
 *
 
3
 * MAUS is free software: you can redistribute it and/or modify
 
4
 * it under the terms of the GNU General Public License as published by
 
5
 * the Free Software Foundation, either version 3 of the License, or
 
6
 * (at your option) any later version.
 
7
 *
 
8
 * MAUS is distributed in the hope that it will be useful,
 
9
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 
10
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
11
 * GNU General Public License for more details.
 
12
 *
 
13
 * You should have received a copy of the GNU General Public License
 
14
 * along with MAUS.  If not, see <http://www.gnu.org/licenses/>.
 
15
 *
 
16
 */
 
17
 
 
18
#ifndef MAUS_INTEGRATEDPROPAGATORS_HH
 
19
#define MAUS_INTEGRATEDPROPAGATORS_HH
 
20
 
 
21
#include "src/common_cpp/Recon/SciFi/SciFiGeometryHelper.hh"
 
22
#include "src/common_cpp/Utils/Constants.hh"
 
23
 
 
24
#include "src/common_cpp/Recon/Kalman/KalmanTrack.hh"
 
25
#include "src/common_cpp/Recon/Kalman/KalmanPropagatorBase.hh"
 
26
#include "src/common_cpp/Recon/Kalman/Global/ErrorTracking.hh"
 
27
 
 
28
namespace MAUS {
 
29
 
 
30
  class FieldIntegratedPropagator : public Kalman::Propagator_base {
 
31
    public :
 
32
      explicit FieldIntegratedPropagator(SciFiGeometryHelper* helper);
 
33
 
 
34
      virtual void Propagate(const Kalman::TrackPoint& start_tp, Kalman::TrackPoint& end_tp);
 
35
 
 
36
      virtual TMatrixD CalculatePropagator(const Kalman::TrackPoint& start,
 
37
                                                                    const Kalman::TrackPoint& end);
 
38
 
 
39
      virtual TMatrixD CalculateProcessNoise(const Kalman::TrackPoint& start,
 
40
                                                                    const Kalman::TrackPoint& end);
 
41
 
 
42
      virtual ~FieldIntegratedPropagator() {}
 
43
 
 
44
    protected :
 
45
 
 
46
    private :
 
47
 
 
48
      Kalman::Global::ErrorTracking _errorTracking;
 
49
      Kalman::Global::ErrorTracking _perfectErrorTracking;
 
50
 
 
51
      double* _V_convert_to_array(Kalman::State state, double position);
 
52
      Kalman::State _V_convert_to_state(double* array);
 
53
 
 
54
      double* _M_convert_to_array(Kalman::State state, double position);
 
55
      TMatrixD _M_convert_to_matrix(double* array);
 
56
  };
 
57
}
 
58
 
 
59
#endif // MAUS_INTEGRATEDPROPAGATORS_HH
 
60