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