PandaRoot
RhoKinHyperonVtxFitter.h
Go to the documentation of this file.
1 #ifndef RhoKinHyperonVtxFitter_H
2 #define RhoKinHyperonVtxFitter_H
3 // //
5 // RhoKinHyperonVtxFitter //
6 // //
7 // Author: V. Jha 2010 //
8 // //
10 
11 #include "RhoFitterBase.h"
12 #include "RhoCandList.h"
13 
14 #include "TVector3.h"
15 #include "TMatrixDSym.h"
16 #include "TMatrixD.h"
17 #include "TLorentzVector.h"
18 #include "TDecompLU.h"
19 
20 class RhoCandidate;
21 
23  public:
25  virtual ~RhoKinHyperonVtxFitter();
26  void AddMassConstraint(double mass);
27  // void AddPointingConstraint(TVector3 pVtx);
28  double GetPull() { return fPull; }
29 
30  void SetNMaxIterations(int nit = 20)
31  {
32  fNMaxIterations = nit;
33  fIterateExact = false;
34  };
35  void SetNIterationsExact(int nit = 2)
36  {
37  fNMaxIterations = nit;
38  fIterateExact = true;
39  };
40  void SetMinDChisq(double m = 0.001) { fMinDChisq = fabs(m); };
41  TMatrixD GetAl0() { return al0; }
42  TMatrixD GetVal0() { return V_al0; }
43  TMatrixD GetVal_composite() { return covC; }
44 
45  private:
46  Bool_t FitNode(RhoCandidate *b);
47 
48  void SetMatrices();
49  void ResetMatrices();
50  void ReadMatrix();
51 
52  void ReadKinMatrix();
53  void ReadMassKinMatrix();
54  // void ReadPointingKinMatrix() {ReadPointingKinMatrix(fHeadOfTree);};
55  // void ReadPointingKinMatrix(RhoCandidate* head);
56 
57  Bool_t Compute(RhoCandidate *c);
58  void SetOutput(RhoCandidate *head);
59 
60  void TransportToPoca(TMatrixD &, TMatrixD &, TMatrixD &, TMatrixD &, TMatrixD &);
61  void TransportToVertex(TMatrixD &, TMatrixD &, TMatrixD &, TMatrixD &, TMatrixD &);
62  void GetCovariance(TMatrixD &a_cov0, TMatrixD &cov_al_x, TMatrixD &V_vtx, TMatrixD &covS);
63 
64  TMatrixD al0; // original parameters
65  TMatrixD al1; // fitted parameters
66  TMatrixD V_al0; // Covariance matrix for original parameters
67  TMatrixD V_al1; // Covariance matrix for original parameters
68  TMatrixD covC; // Covariance matrix for composite
69 
70  TMatrixD mD; // Matrix of constraint derivitives
71  TMatrixD mE; // Matrix of vertex constraints
72  TMatrixD md; // Vector of evaluated constraints
73  TMatrixD mPull;
74 
75  Int_t fNvar; // Number of variables (=4 for 4 vector)
76  Int_t fNpar; // Number of parameters=Npart*fNvar
77  Int_t fNpart; // Number of particles
78  Int_t fNcon; // Number of constraints
79 
80  Int_t fNc; // countNumber of constraints added
81  Int_t fNiter; // Number of times Solve has been called
82  Int_t fNumKnown; // Number of unknowns
83  Int_t NumCon; // Number of constraints ...
84 
85  int niter;
86  double fChi2Diff;
87  double fPull;
88 
89  // VtxVertex _vertex;
90  TMatrixD vtx_ex;
91  TMatrixD vtx_st;
92 
93  double fMass;
94  // TVector3 fpVtx;
95 
96  int fMassConstraint;
97  // int fPointConstraint;
98 
99  // control abortion of fit
100  double fMinDChisq;
101  int fNMaxIterations;
102  bool fIterateExact;
103 
104  int fnDof;
105  double fchiSquare;
106 
107  ClassDef(RhoKinHyperonVtxFitter, 1) // A Kinematic Vertex Fitter
108 };
109 
110 #endif
__m128 m
Definition: P4_F32vec4.h:26
void AddMassConstraint(double mass)
void SetNIterationsExact(int nit=2)
void SetNMaxIterations(int nit=20)
friend F32vec4 fabs(const F32vec4 &a)
Definition: P4_F32vec4.h:46
void SetMinDChisq(double m=0.001)
virtual ~RhoKinHyperonVtxFitter()
RhoKinHyperonVtxFitter(RhoCandidate *b)
TMatrixT< double > TMatrixD
Definition: PndLmdDim.h:52