PandaRoot
RhoKinVtxFitter.h
Go to the documentation of this file.
1 #ifndef RhoKinVtxFitter_H
2 #define RhoKinVtxFitter_H
3 // //
5 // RhoKinVtxFitter //
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 ~RhoKinVtxFitter();
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 
42  private:
43  Bool_t FitNode(RhoCandidate *b);
44 
45  void SetMatrices();
46  void ResetMatrices();
47  void ReadMatrix();
48 
49  void ReadKinMatrix();
50  void ReadMassKinMatrix();
51  // void ReadPointingKinMatrix() {ReadPointingKinMatrix(fHeadOfTree);};
52  // void ReadPointingKinMatrix(RhoCandidate* head);
53 
54  Bool_t Compute(RhoCandidate *c);
55  void SetOutput(RhoCandidate *head);
56 
57  void TransportToVertex(TMatrixD &, TMatrixD &, TMatrixD &, TMatrixD &, TMatrixD &);
58  void GetCovariance(TMatrixD &a_cov0, TMatrixD &cov_al_x, TMatrixD &V_vtx, TMatrixD &covS);
59 
60  TMatrixD al0; // original parameters
61  TMatrixD al1; // fitted parameters
62  TMatrixD V_al0; // Covariance matrix for original parameters
63  TMatrixD V_al1; // Covariance matrix for original parameters
64  TMatrixD covC; // Covariance matrix for composite
65 
66  TMatrixD mD; // Matrix of constraint derivitives
67  TMatrixD mE; // Matrix of vertex constraints
68  TMatrixD md; // Vector of evaluated constraints
69  TMatrixD mPull;
70 
71  Int_t fNvar; // Number of variables (=4 for 4 vector)
72  Int_t fNpar; // Number of parameters=Npart*fNvar
73  Int_t fNpart; // Number of particles
74  Int_t fNcon; // Number of constraints
75 
76  Int_t fNc; // countNumber of constraints added
77  Int_t fNiter; // Number of times Solve has been called
78  Int_t fNumKnown; // Number of unknowns
79  Int_t NumCon; // Number of constraints ...
80 
81  int niter;
82  double fChi2Diff;
83  double fPull;
84 
85  // VtxVertex _vertex;
86  TMatrixD vtx_ex;
87  TMatrixD vtx_st;
88 
89  double fMass;
90  // TVector3 fpVtx;
91 
92  int fMassConstraint;
93  // int fPointConstraint;
94 
95  // control abortion of fit
96  double fMinDChisq;
97  int fNMaxIterations;
98  bool fIterateExact;
99 
100  int fnDof;
101  double fchiSquare;
102 
103  ClassDef(RhoKinVtxFitter, 1) // A Kinematic Vertex Fitter
104 };
105 
106 #endif
__m128 m
Definition: P4_F32vec4.h:26
void SetNMaxIterations(int nit=20)
void SetNIterationsExact(int nit=2)
void AddMassConstraint(double mass)
friend F32vec4 fabs(const F32vec4 &a)
Definition: P4_F32vec4.h:46
RhoKinVtxFitter(RhoCandidate *b)
virtual ~RhoKinVtxFitter()
void SetMinDChisq(double m=0.001)
TMatrixT< double > TMatrixD
Definition: PndLmdDim.h:52