PandaRoot
RhoKinFitter.h
Go to the documentation of this file.
1 #ifndef RhoKinFitter_H
2 #define RhoKinFitter_H
3 // //
5 // RhoKinFitter //
6 // //
7 // V. Jha 2010 FZ Juelich //
8 // //
10 
11 #include "RhoFitterBase.h"
12 #include "RhoCandList.h"
13 #include "TVector3.h"
14 #include "TMatrixDSym.h"
15 #include "TMatrixD.h"
16 #include "TLorentzVector.h"
17 #include "TDecompLU.h"
18 
19 class RhoCandidate;
20 
21 class RhoKinFitter : public RhoFitterBase {
22  public:
24  virtual ~RhoKinFitter();
25 
26  void Add4MomConstraint(TLorentzVector lv);
27  void AddMomConstraint(TVector3 v);
28  void AddTotEConstraint(double energy);
29  void AddTotMomConstraint(double momentum);
30  void AddMassConstraint(double mass);
31  Bool_t Fit();
32  Bool_t FitAll()
33  {
34  Fatal("RhoKinFitter::FitAll()", "Not applicable. Please use Fit().");
35  return kFALSE;
36  };
37 
38  double Chi2Diff() { return fChi2Diff; }
39  double GetPull() { return fPull; }
40  double Chi2Contribution(const RhoCandidate &) const
41  {
42  Error("RhoKinFitter::Chi2Contribution", "No chi2 contribution available.");
43  return -9999.;
44  };
45 
46  private:
47  void SetMatrices();
48  void ZeroMatrices();
49  void ReadMatrix();
50  void ReadKinMatrix();
51  void ReadMassKinMatrix();
52  void Read4MomKinMatrix();
53  void ReadMomKinMatrix();
54  void ReadTotEKinMatrix();
55  void ReadTotMomKinMatrix();
56  Bool_t Solve();
57  void SetOutput();
58 
59  TMatrixD fAl0; // original parameters
60  TMatrixD fAl1; // fitted parameters
61  TMatrixD fV_al0; // Covariance matrix for original parameters
62  TMatrixD fV_al1; // Covariance matrix for original parameters
63 
64  TMatrixD fmD; // Matrix of constraint derivitives
65  TMatrixD fmE; // Matrix of vertex constraints
66  TMatrixD fmd; // Vector of evaluated constraints
67  TMatrixD fmPull;
68 
69  Int_t fNvar; // Number of variables (=4 for 4 vector)
70  Int_t fNpar; // Number of parameters=Npart*fNvar
71  Int_t fNcon; // Number of constraints
72  Int_t fNc; // countNumber of constraints added
73  Int_t fNiter; // Number of times Solve has been called
74  Int_t fNunKnown; // Number of unknowns
75  Int_t fNumCon; // Number of constraints ...
76 
77  double fMass;
78  TLorentzVector flmm;
79  TVector3 fmm;
80  double fEc;
81  double fMom;
82 
83  int f4MomConstraint;
84  int fMomConstraint;
85  int fTotEConstraint;
86  int fMassConstraint;
87  int fTotMomConstraint;
88 
89  double fChi2Diff;
90  double fPull;
91 
92  ClassDef(RhoKinFitter, 1)
93 };
94 
95 #endif
void AddMomConstraint(TVector3 v)
double Chi2Contribution(const RhoCandidate &) const
Definition: RhoKinFitter.h:40
void AddTotMomConstraint(double momentum)
void AddMassConstraint(double mass)
RhoKinFitter(RhoCandidate *b)
void Add4MomConstraint(TLorentzVector lv)
__m128 v
Definition: P4_F32vec4.h:3
void AddTotEConstraint(double energy)
virtual ~RhoKinFitter()
Bool_t FitAll()
Definition: RhoKinFitter.h:32
double GetPull()
Definition: RhoKinFitter.h:39
Bool_t Fit()
double Chi2Diff()
Definition: RhoKinFitter.h:38
TMatrixT< double > TMatrixD
Definition: PndLmdDim.h:52