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