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