Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

KalmanPlaneSR.h

Go to the documentation of this file.
00001 
00002 // $Id: KalmanPlaneSR.h,v 1.16 2003/12/17 16:34:02 brebel Exp $
00003 //
00004 // KalmanPlaneSR
00005 //
00006 // Author:  R. Lee 2001.04.03
00007 //
00009 
00010 #ifndef KALMANPLANESR_H
00011 #define KALMANPLANESR_H
00012 
00013 #include "TMatrixD.h"
00014 #include "TObject.h"
00015 #include "TVectorD.h"
00016 #include "TVector.h"
00017 
00018 #include "CandTrackSR/TrackClusterSR.h"
00019 #include "Conventions/PlaneView.h"
00020 #include "Navigation/XxxItr.h"
00021 
00022 class AlgConfig;
00023 class VldContext;
00024 
00025 class KalmanPlaneSR  : public TObject
00026 {
00027 
00028 public:
00029   KalmanPlaneSR();                 // default ctor needed for ROOT I/O
00030   KalmanPlaneSR(TrackClusterSR *);
00031   KalmanPlaneSR(KalmanPlaneSR *);
00032   virtual ~KalmanPlaneSR();
00033 
00034   void Init(KalmanPlaneSR *);
00035   void InitKalman();
00036 
00037   Int_t GetPredictPlane(Int_t idir) const;
00038   void SetPredictPlane(Int_t plane, Int_t idir);
00039 
00040   Double_t GetPreStateValue(Int_t stateIndex, Int_t idir) const;
00041   void SetPreStateValue(Int_t stateIndex, Int_t idir, Double_t stateValue);
00042 
00043   Double_t GetFilStateValue(Int_t stateIndex, Int_t idir) const;
00044   void SetFilStateValue(Int_t stateIndex, Int_t idir, Double_t stateValue);
00045 
00046   Double_t GetGainValue(Int_t gainIndex, Int_t idir) const;
00047   void SetGainValue(Int_t gainIndex, Int_t idir, Double_t gainValue);
00048 
00049   Double_t GetPropagatorMatrixValue(Int_t idir, Int_t row, Int_t column) const;
00050   void SetPropagatorMatrixValue(Int_t idir, Int_t row, Int_t column, Double_t value);
00051 
00052   Double_t GetPreCovarianceMatrixValue(Int_t idir, Int_t row, Int_t column) const;
00053   void SetPreCovarianceMatrixValue(Int_t idir, Int_t row, Int_t column, Double_t value);
00054 
00055   Double_t GetFilCovarianceMatrixValue(Int_t idir, Int_t row, Int_t column) const;
00056   void SetFilCovarianceMatrix(Int_t idir, Double_t setMatrix[][5]);
00057   void SetFilCovarianceMatrixValue(Int_t idir, Int_t row, Int_t column, Double_t value);
00058 
00059   Double_t GetNoiseMatrixValue(Int_t idir, Int_t row, Int_t column) const;
00060   void SetNoiseMatrixValue(Int_t idir, Int_t row, Int_t column, Double_t value);
00061 
00062   Double_t GetPreChi2(Int_t idir) const;
00063   void SetPreChi2(Double_t chi2, Int_t idir);
00064 
00065   Double_t GetFilChi2(Int_t idir) const;
00066   void SetFilChi2(Double_t chi2, Int_t idir);
00067 
00068   Int_t GetZDir() const;
00069   void SetZDir(Int_t idir);
00070 
00071   Double_t GetRange() const;
00072   void SetRange(Double_t range);
00073 
00074   TrackClusterSR* GetTrackCluster() const;
00075   void SetTrackCluster(TrackClusterSR *cluster);
00076 
00077   const VldContext *GetVldContext();
00078 
00079   virtual Bool_t IsEquivalent(const TObject *rhs) const;
00080 
00081 private:
00082 
00083   TVectorD fPreState[2];
00084   TVectorD fFilState[2];
00085   TVectorD fGain[2];
00086 
00087   TMatrixD fPropagator[2]; // actually the transpose of the propagator
00088   TMatrixD fPreCovariance[2];
00089   TMatrixD fFilCovariance[2];
00090   TMatrixD fNoise[2];
00091 
00092   Double_t fPreChi2[2];
00093   Double_t fFilChi2[2];
00094 
00095   Int_t fPredictPlane[2];
00096 
00097   Int_t fZDir; // +1 if +z is forward, -1 if -z is forward
00098 
00099   Double_t fRange; // mg/cm**2 from track end
00100 
00101   TrackClusterSR *fTrackCluster;
00102 // KalmanPlaneSR does not own fTrackCluster; fTrackCluster should point
00103 // into CandFitTrackSR->fTrackClusterList
00104 
00105 ClassDef(KalmanPlaneSR,4)
00106 };
00107 
00108 XXXITRDEF(KalmanPlaneSR)
00109 
00110 #endif// KALMANPLANESR_H

Generated on Mon Feb 15 11:06:50 2010 for loon by  doxygen 1.3.9.1