CMS 3D CMS Logo

TFitConstraintM.h
Go to the documentation of this file.
1 #ifndef TFitConstraintM_hh
2 #define TFitConstraintM_hh
3 
5 #include <vector>
6 
7 #include "TMatrixD.h"
8 
9 class TAbsFitParticle;
10 
12 
13 public :
14 
16  TFitConstraintM(std::vector<TAbsFitParticle*>* ParList1,
17  std::vector<TAbsFitParticle*>* ParList2,
18  Double_t Mass = 0);
19  TFitConstraintM(const TString &name, const TString &title,
20  std::vector<TAbsFitParticle*>* ParList1,
21  std::vector<TAbsFitParticle*>* ParList2,
22  Double_t Mass = 0);
23 
24  ~TFitConstraintM() override;
25 
26  void addParticle1( TAbsFitParticle* particle );
27  void addParticle2( TAbsFitParticle* particle );
28  void addParticles1( TAbsFitParticle* p1, TAbsFitParticle* p2 = nullptr, TAbsFitParticle* p3 = nullptr, TAbsFitParticle* p4 = nullptr,
29  TAbsFitParticle* p5 = nullptr, TAbsFitParticle* p6 = nullptr, TAbsFitParticle* p7 = nullptr, TAbsFitParticle* p8 = nullptr,
30  TAbsFitParticle* p9 = nullptr, TAbsFitParticle* p10 = nullptr);
31  void addParticles2( TAbsFitParticle* p1, TAbsFitParticle* p2 = nullptr, TAbsFitParticle* p3 = nullptr, TAbsFitParticle* p4 = nullptr,
32  TAbsFitParticle* p5 = nullptr, TAbsFitParticle* p6 = nullptr, TAbsFitParticle* p7 = nullptr, TAbsFitParticle* p8 = nullptr,
33  TAbsFitParticle* p9 = nullptr, TAbsFitParticle* p10 = nullptr);
35 
36  // returns derivative df/dP with P=(p,E) and f the constraint f=0 for
37  // one particle. The matrix contains one row (df/dp, df/dE).
38  TMatrixD* getDerivative( TAbsFitParticle* particle ) override;
39  Double_t getInitValue() override;
40  Double_t getCurrentValue() override;
41 
42  Bool_t OnList(std::vector<TAbsFitParticle*>* List, TAbsFitParticle* particle);
43  Double_t CalcMass(std::vector<TAbsFitParticle*>* List, Bool_t IniVal);
44 
45  TString getInfoString() override;
46  void print() override;
47 
48 protected :
49 
50  std::vector<TAbsFitParticle*> _ParList1; // Vector containing first list of constrained particles ( sum[ m_i ] - sum[ m_j ] == 0 )
51  std::vector<TAbsFitParticle*> _ParList2; // Vector containing second list of constrained particles ( sum[ m_i ] - sum[ m_j ] == 0 )
53 
54 };
55 
56 #endif
57 
void print() override
Double_t CalcMass(std::vector< TAbsFitParticle * > *List, Bool_t IniVal)
Double_t getCurrentValue() override
void setMassConstraint(Double_t Mass)
Double_t _TheMassConstraint
Bool_t OnList(std::vector< TAbsFitParticle * > *List, TAbsFitParticle *particle)
TMatrixD * getDerivative(TAbsFitParticle *particle) override
~TFitConstraintM() override
double p4[4]
Definition: TauolaWrapper.h:92
double p2[4]
Definition: TauolaWrapper.h:90
TString getInfoString() override
void addParticles2(TAbsFitParticle *p1, TAbsFitParticle *p2=nullptr, TAbsFitParticle *p3=nullptr, TAbsFitParticle *p4=nullptr, TAbsFitParticle *p5=nullptr, TAbsFitParticle *p6=nullptr, TAbsFitParticle *p7=nullptr, TAbsFitParticle *p8=nullptr, TAbsFitParticle *p9=nullptr, TAbsFitParticle *p10=nullptr)
void addParticles1(TAbsFitParticle *p1, TAbsFitParticle *p2=nullptr, TAbsFitParticle *p3=nullptr, TAbsFitParticle *p4=nullptr, TAbsFitParticle *p5=nullptr, TAbsFitParticle *p6=nullptr, TAbsFitParticle *p7=nullptr, TAbsFitParticle *p8=nullptr, TAbsFitParticle *p9=nullptr, TAbsFitParticle *p10=nullptr)
std::vector< TAbsFitParticle * > _ParList1
double p1[4]
Definition: TauolaWrapper.h:89
void addParticle1(TAbsFitParticle *particle)
Double_t getInitValue() override
std::vector< TAbsFitParticle * > _ParList2
void addParticle2(TAbsFitParticle *particle)
double p3[4]
Definition: TauolaWrapper.h:91