BOSS 7.0.4
BESIII Offline Software System
Loading...
Searching...
No Matches
KinematicFit Class Reference

#include <KinematicFit.h>

+ Inheritance diagram for KinematicFit:

Public Member Functions

 ~KinematicFit ()
 
void AddResonance (int number, double mres, std::vector< int > tlis)
 
void AddResonance (int number, double mres, int n1)
 
void AddResonance (int number, double mres, int n1, int n2)
 
void AddResonance (int number, double mres, int n1, int n2, int n3)
 
void AddResonance (int number, double mres, int n1, int n2, int n3, int n4)
 
void AddResonance (int number, double mres, int n1, int n2, int n3, int n4, int n5)
 
void AddResonance (int number, double mres, int n1, int n2, int n3, int n4, int n5, int n6)
 
void AddResonance (int number, double mres, int n1, int n2, int n3, int n4, int n5, int n6, int n7)
 
void AddResonance (int number, double mres, int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8)
 
void AddResonance (int number, double mres, int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8, int n9)
 
void AddResonance (int number, double mres, int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8, int n9, int n10)
 
void AddResonance (int number, double mres, int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8, int n9, int n10, int n11)
 
void AddResonance (int number, double mres, int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8, int n9, int n10, int n11, int n12)
 
void AddTotalEnergy (int number, double etot, std::vector< int > lis)
 
void AddTotalEnergy (int number, double etot, int n1)
 
void AddTotalEnergy (int number, double etot, int n1, int n2)
 
void AddTotalEnergy (int number, double etot, int n1, int n2, int n3)
 
void AddTotalEnergy (int number, double etot, int n1, int n2, int n3, int n4)
 
void AddTotalEnergy (int number, double etot, int n1, int n2, int n3, int n4, int n5)
 
void AddTotalEnergy (int number, double etot, int n1, int n2, int n3, int n4, int n5, int n6)
 
void AddTotalEnergy (int number, double etot, int n1, int n2, int n3, int n4, int n5, int n6, int n7)
 
void AddTotalEnergy (int number, double etot, int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8)
 
void AddTotalEnergy (int number, double etot, int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8, int n9)
 
void AddTotalEnergy (int number, double etot, int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8, int n9, int n10)
 
void AddTotalEnergy (int number, double etot, int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8, int n9, int n10, int n11)
 
void AddTotalEnergy (int number, double etot, int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8, int n9, int n10, int n11, int n12)
 
void AddTotalMomentum (int number, double ptot, std::vector< int > lis)
 
void AddTotalMomentum (int number, double ptot, int n1)
 
void AddTotalMomentum (int number, double ptot, int n1, int n2)
 
void AddTotalMomentum (int number, double ptot, int n1, int n2, int n3)
 
void AddTotalMomentum (int number, double ptot, int n1, int n2, int n3, int n4)
 
void AddTotalMomentum (int number, double ptot, int n1, int n2, int n3, int n4, int n5)
 
void AddTotalMomentum (int number, double ptot, int n1, int n2, int n3, int n4, int n5, int n6)
 
void AddTotalMomentum (int number, double ptot, int n1, int n2, int n3, int n4, int n5, int n6, int n7)
 
void AddTotalMomentum (int number, double ptot, int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8)
 
void AddTotalMomentum (int number, double ptot, int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8, int n9)
 
void AddTotalMomentum (int number, double ptot, int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8, int n9, int n10)
 
void AddTotalMomentum (int number, double ptot, int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8, int n9, int n10, int n11)
 
void AddTotalMomentum (int number, double ptot, int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8, int n9, int n10, int n11, int n12)
 
void AddThreeMomentum (int number, Hep3Vector p3)
 
void AddFourMomentum (int number, HepLorentzVector p4)
 
void AddFourMomentum (int number, double etot)
 
void AddEqualMass (int number, std::vector< int > tlis1, std::vector< int > tlis2)
 
void BuildVirtualParticle (int number)
 
void init ()
 
void setFlag (const bool flag=1)
 
void setIterNumber (const int niter=5)
 
void setChisqCut (const double chicut=200, const double chiter=0.05)
 
void setKalman (const int kalman)
 
void setEspread (const double espread=0.0009)
 
void setCollideangle (const double collideangle=11e-3)
 
void setDynamicerror (const bool dynamicerror=1)
 
bool Fit ()
 
bool Fit (int n)
 
double chisq () const
 
double chisq (int n) const
 
HepLorentzVector pfit (int n) const
 
HepLorentzVector pfit1 (int n) const
 
WTrackParameter origin (int n) const
 
WTrackParameter infit (int n) const
 
HepVector pull (int n)
 
double espread () const
 
double collideangle () const
 
bool dynamicerror () const
 
HepVector cpu () const
 
WTrackParameter wVirtualTrack (int n) const
 
 ~KinematicFit ()
 
void AddResonance (int number, double mres, std::vector< int > tlis)
 
void AddResonance (int number, double mres, int n1)
 
void AddResonance (int number, double mres, int n1, int n2)
 
void AddResonance (int number, double mres, int n1, int n2, int n3)
 
void AddResonance (int number, double mres, int n1, int n2, int n3, int n4)
 
void AddResonance (int number, double mres, int n1, int n2, int n3, int n4, int n5)
 
void AddResonance (int number, double mres, int n1, int n2, int n3, int n4, int n5, int n6)
 
void AddResonance (int number, double mres, int n1, int n2, int n3, int n4, int n5, int n6, int n7)
 
void AddResonance (int number, double mres, int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8)
 
void AddResonance (int number, double mres, int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8, int n9)
 
void AddResonance (int number, double mres, int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8, int n9, int n10)
 
void AddResonance (int number, double mres, int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8, int n9, int n10, int n11)
 
void AddResonance (int number, double mres, int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8, int n9, int n10, int n11, int n12)
 
void AddTotalEnergy (int number, double etot, std::vector< int > lis)
 
void AddTotalEnergy (int number, double etot, int n1)
 
void AddTotalEnergy (int number, double etot, int n1, int n2)
 
void AddTotalEnergy (int number, double etot, int n1, int n2, int n3)
 
void AddTotalEnergy (int number, double etot, int n1, int n2, int n3, int n4)
 
void AddTotalEnergy (int number, double etot, int n1, int n2, int n3, int n4, int n5)
 
void AddTotalEnergy (int number, double etot, int n1, int n2, int n3, int n4, int n5, int n6)
 
void AddTotalEnergy (int number, double etot, int n1, int n2, int n3, int n4, int n5, int n6, int n7)
 
void AddTotalEnergy (int number, double etot, int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8)
 
void AddTotalEnergy (int number, double etot, int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8, int n9)
 
void AddTotalEnergy (int number, double etot, int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8, int n9, int n10)
 
void AddTotalEnergy (int number, double etot, int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8, int n9, int n10, int n11)
 
void AddTotalEnergy (int number, double etot, int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8, int n9, int n10, int n11, int n12)
 
void AddTotalMomentum (int number, double ptot, std::vector< int > lis)
 
void AddTotalMomentum (int number, double ptot, int n1)
 
void AddTotalMomentum (int number, double ptot, int n1, int n2)
 
void AddTotalMomentum (int number, double ptot, int n1, int n2, int n3)
 
void AddTotalMomentum (int number, double ptot, int n1, int n2, int n3, int n4)
 
void AddTotalMomentum (int number, double ptot, int n1, int n2, int n3, int n4, int n5)
 
void AddTotalMomentum (int number, double ptot, int n1, int n2, int n3, int n4, int n5, int n6)
 
void AddTotalMomentum (int number, double ptot, int n1, int n2, int n3, int n4, int n5, int n6, int n7)
 
void AddTotalMomentum (int number, double ptot, int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8)
 
void AddTotalMomentum (int number, double ptot, int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8, int n9)
 
void AddTotalMomentum (int number, double ptot, int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8, int n9, int n10)
 
void AddTotalMomentum (int number, double ptot, int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8, int n9, int n10, int n11)
 
void AddTotalMomentum (int number, double ptot, int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8, int n9, int n10, int n11, int n12)
 
void AddThreeMomentum (int number, Hep3Vector p3)
 
void AddFourMomentum (int number, HepLorentzVector p4)
 
void AddFourMomentum (int number, double etot)
 
void AddEqualMass (int number, std::vector< int > tlis1, std::vector< int > tlis2)
 
void BuildVirtualParticle (int number)
 
void init ()
 
void setFlag (const bool flag=1)
 
void setIterNumber (const int niter=5)
 
void setChisqCut (const double chicut=200, const double chiter=0.05)
 
void setKalman (const int kalman)
 
void setEspread (const double espread=0.0009)
 
void setCollideangle (const double collideangle=11e-3)
 
void setDynamicerror (const bool dynamicerror=1)
 
bool Fit ()
 
bool Fit (int n)
 
double chisq () const
 
double chisq (int n) const
 
HepLorentzVector pfit (int n) const
 
HepLorentzVector pfit1 (int n) const
 
WTrackParameter origin (int n) const
 
WTrackParameter infit (int n) const
 
HepVector pull (int n)
 
double espread () const
 
double collideangle () const
 
bool dynamicerror () const
 
HepVector cpu () const
 
WTrackParameter wVirtualTrack (int n) const
 
- Public Member Functions inherited from TrackPool
 TrackPool ()
 
 ~TrackPool ()
 
void AddTrack (const int number, const double mass, const RecMdcTrack *trk)
 
void AddTrack (const int number, const double mass, const RecMdcKalTrack *trk)
 
void AddTrack (const int number, const double mass, const RecEmcShower *trk)
 
void AddTrack (const int number, const WTrackParameter wtrk)
 
void AddMissTrack (const int number, const double mass)
 
void AddMissTrack (const int number, const double mass, const HepLorentzVector p4)
 
void AddMissTrack (const int number, const double mass, const RecEmcShower *trk)
 
void AddMissTrack (const int number, const RecEmcShower *trk)
 
void AddMissTrack (const int number, const HepLorentzVector p4)
 
void AddTrackVertex (const int number, const double mass, const RecEmcShower *trk)
 
std::vector< int > AddList (int n1)
 
std::vector< int > AddList (int n1, int n2)
 
std::vector< int > AddList (int n1, int n2, int n3)
 
std::vector< int > AddList (int n1, int n2, int n3, int n4)
 
std::vector< int > AddList (int n1, int n2, int n3, int n4, int n5)
 
std::vector< int > AddList (int n1, int n2, int n3, int n4, int n5, int n6)
 
std::vector< int > AddList (int n1, int n2, int n3, int n4, int n5, int n6, int n7)
 
std::vector< int > AddList (int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8)
 
std::vector< int > AddList (int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8, int n9)
 
std::vector< int > AddList (int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8, int n9, int n10)
 
std::vector< int > AddList (int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8, int n9, int n10, int n11)
 
std::vector< int > AddList (int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8, int n9, int n10, int n11, int n12)
 
std::vector< WTrackParameterwTrackOrigin () const
 
std::vector< WTrackParameterwTrackInfit () const
 
std::vector< int > wTrackList () const
 
WTrackParameter wTrackOrigin (int n) const
 
WTrackParameter wTrackInfit (int n) const
 
int wTrackList (int n) const
 
int numberWTrack () const
 
std::vector< GammaShapeGammaShapeValue () const
 
std::vector< int > GammaShapeList () const
 
GammaShape GammaShapeValue (int n) const
 
int GammaShapeList (int n) const
 
int numberGammaShape () const
 
void setWTrackOrigin (const int n, const WTrackParameter wtrk)
 
void setWTrackInfit (const int n, const WTrackParameter wtrk)
 
void setWTrackOrigin (const WTrackParameter wtrk)
 
void setWTrackInfit (const WTrackParameter wtrk)
 
void setWTrackList (const int n)
 
void clearWTrackOrigin ()
 
void clearWTrackInfit ()
 
void clearWTrackList ()
 
void clearone ()
 
void cleartwo ()
 
int numberone () const
 
int numbertwo () const
 
vector< int > mappositionA () const
 
vector< int > mappositionB () const
 
vector< int > mapkinematic () const
 
void clearMapkinematic ()
 
void clearMappositionA ()
 
void clearMappositionB ()
 
void setMapkinematic (const int n)
 
void setMappositionA (const int n)
 
void setMappositionB (const int n)
 
void setGammaShape (const int n, const GammaShape gammashape)
 
void setGammaShape (const GammaShape gammashape)
 
void setGammaShapeList (const int n)
 
void clearGammaShape ()
 
void clearGammaShapeList ()
 
void setBeamPosition (const HepPoint3D BeamPosition)
 
void setVBeamPosition (const HepSymMatrix VBeamPosition)
 
HepPoint3D getBeamPosition () const
 
HepSymMatrix getVBeamPosition () const
 
 TrackPool ()
 
 ~TrackPool ()
 
void AddTrack (const int number, const double mass, const RecMdcTrack *trk)
 
void AddTrack (const int number, const double mass, const RecMdcKalTrack *trk)
 
void AddTrack (const int number, const double mass, const RecEmcShower *trk)
 
void AddTrack (const int number, const WTrackParameter wtrk)
 
void AddMissTrack (const int number, const double mass)
 
void AddMissTrack (const int number, const double mass, const HepLorentzVector p4)
 
void AddMissTrack (const int number, const double mass, const RecEmcShower *trk)
 
void AddMissTrack (const int number, const RecEmcShower *trk)
 
void AddMissTrack (const int number, const HepLorentzVector p4)
 
void AddTrackVertex (const int number, const double mass, const RecEmcShower *trk)
 
std::vector< int > AddList (int n1)
 
std::vector< int > AddList (int n1, int n2)
 
std::vector< int > AddList (int n1, int n2, int n3)
 
std::vector< int > AddList (int n1, int n2, int n3, int n4)
 
std::vector< int > AddList (int n1, int n2, int n3, int n4, int n5)
 
std::vector< int > AddList (int n1, int n2, int n3, int n4, int n5, int n6)
 
std::vector< int > AddList (int n1, int n2, int n3, int n4, int n5, int n6, int n7)
 
std::vector< int > AddList (int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8)
 
std::vector< int > AddList (int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8, int n9)
 
std::vector< int > AddList (int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8, int n9, int n10)
 
std::vector< int > AddList (int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8, int n9, int n10, int n11)
 
std::vector< int > AddList (int n1, int n2, int n3, int n4, int n5, int n6, int n7, int n8, int n9, int n10, int n11, int n12)
 
std::vector< WTrackParameterwTrackOrigin () const
 
std::vector< WTrackParameterwTrackInfit () const
 
std::vector< int > wTrackList () const
 
WTrackParameter wTrackOrigin (int n) const
 
WTrackParameter wTrackInfit (int n) const
 
int wTrackList (int n) const
 
int numberWTrack () const
 
std::vector< GammaShapeGammaShapeValue () const
 
std::vector< int > GammaShapeList () const
 
GammaShape GammaShapeValue (int n) const
 
int GammaShapeList (int n) const
 
int numberGammaShape () const
 
void setWTrackOrigin (const int n, const WTrackParameter wtrk)
 
void setWTrackInfit (const int n, const WTrackParameter wtrk)
 
void setWTrackOrigin (const WTrackParameter wtrk)
 
void setWTrackInfit (const WTrackParameter wtrk)
 
void setWTrackList (const int n)
 
void clearWTrackOrigin ()
 
void clearWTrackInfit ()
 
void clearWTrackList ()
 
void clearone ()
 
void cleartwo ()
 
int numberone () const
 
int numbertwo () const
 
vector< int > mappositionA () const
 
vector< int > mappositionB () const
 
vector< int > mapkinematic () const
 
void clearMapkinematic ()
 
void clearMappositionA ()
 
void clearMappositionB ()
 
void setMapkinematic (const int n)
 
void setMappositionA (const int n)
 
void setMappositionB (const int n)
 
void setGammaShape (const int n, const GammaShape gammashape)
 
void setGammaShape (const GammaShape gammashape)
 
void setGammaShapeList (const int n)
 
void clearGammaShape ()
 
void clearGammaShapeList ()
 
void setBeamPosition (const HepPoint3D BeamPosition)
 
void setVBeamPosition (const HepSymMatrix VBeamPosition)
 
HepPoint3D getBeamPosition () const
 
HepSymMatrix getVBeamPosition () const
 

Static Public Member Functions

static KinematicFitinstance ()
 
static KinematicFitinstance ()
 

Detailed Description

Constructor & Destructor Documentation

◆ ~KinematicFit() [1/2]

KinematicFit::~KinematicFit ( )

Definition at line 28 of file KinematicFit.cxx.

28 {
29 // if(m_pointer) delete m_pointer;
30}

◆ ~KinematicFit() [2/2]

KinematicFit::~KinematicFit ( )

Member Function Documentation

◆ AddEqualMass() [1/2]

void KinematicFit::AddEqualMass ( int  number,
std::vector< int >  tlis1,
std::vector< int >  tlis2 
)

Definition at line 322 of file KinematicFit.cxx.

322 {
324 HepSymMatrix Vne = HepSymMatrix(1,0);
325 kc.EqualMassConstraints(tlis1, tlis2, Vne);
326 m_kc.push_back(kc);
327 if((unsigned int) number != m_kc.size()-1)
328 std::cout << "wrong kinematic constraints index" << std::endl;
329}
void EqualMassConstraints(std::vector< int > tlis1, std::vector< int > tlis2, HepSymMatrix Vne)

◆ AddEqualMass() [2/2]

void KinematicFit::AddEqualMass ( int  number,
std::vector< int >  tlis1,
std::vector< int >  tlis2 
)

◆ AddFourMomentum() [1/4]

void KinematicFit::AddFourMomentum ( int  number,
double  etot 
)

Definition at line 379 of file KinematicFit.cxx.

379 {
380
381 HepLorentzVector p4(0.0, 0.0, 0.0, etot);
382 std::vector<int> tlis;
383 tlis.clear();
385
386 for(int i = 0; i < numberWTrack(); i++) {
387 tlis.push_back(i);
388 }
389 HepSymMatrix Vme = HepSymMatrix (4,0);
390 Vme[3][3] = 2*m_espread*m_espread;
391 // kc.FourMomentumConstraints(p4, tlis, Vme);
392 kc.FourMomentumConstraints(p4, tlis, Vme);
393 m_kc.push_back(kc);
394 if((unsigned int) number != m_kc.size()-1)
395 std::cout << "wrong kinematic constraints index" << std::endl;
396}
Double_t etot
void FourMomentumConstraints(const HepLorentzVector p4, std::vector< int > tlis, HepSymMatrix Vme)

◆ AddFourMomentum() [2/4]

void KinematicFit::AddFourMomentum ( int  number,
double  etot 
)

◆ AddFourMomentum() [3/4]

void KinematicFit::AddFourMomentum ( int  number,
HepLorentzVector  p4 
)

Definition at line 354 of file KinematicFit.cxx.

354 {
355
356 std::vector<int> tlis;
357 tlis.clear();
359
360 for(int i = 0; i < numberWTrack(); i++) {
361 tlis.push_back(i);
362 }
363 // for(int i = 0; i < numberWTrack_V(); i++) {
364 // tlis_V.push_back(i);
365 // }
366
367 HepSymMatrix Vme = HepSymMatrix(4,0);
368 Vme[0][0] = 2*m_espread*m_espread*sin(m_collideangle)*sin(m_collideangle);
369 Vme[0][3] = 2*m_espread*m_espread*sin(m_collideangle);
370 Vme[3][3] = 2*m_espread*m_espread;
371
372 // kc.FourMomentumConstraints(p4, tlis, Vme);
373 kc.FourMomentumConstraints(p4, tlis, Vme);
374 m_kc.push_back(kc);
375 if((unsigned int) number != m_kc.size()-1)
376 std::cout << "wrong kinematic constraints index" << std::endl;
377}
double sin(const BesAngle a)

Referenced by Ppjrhopi::execute(), DQAKsKpi::execute(), DQAKsKpiDEDX::execute(), DQARhopi::execute(), JsiLL::execute(), and CalibEventSelect::execute().

◆ AddFourMomentum() [4/4]

void KinematicFit::AddFourMomentum ( int  number,
HepLorentzVector  p4 
)

◆ AddResonance() [1/26]

void KinematicFit::AddResonance ( int  number,
double  mres,
int  n1 
)

Definition at line 72 of file KinematicFit.cxx.

72 {
73 std::vector<int> tlis = AddList(n1);
74 AddResonance(number, mres, tlis);
75}
int n1
Definition: SD0Tag.cxx:54
void AddResonance(int number, double mres, std::vector< int > tlis)
std::vector< int > AddList(int n1)
Definition: TrackPool.cxx:483

◆ AddResonance() [2/26]

void KinematicFit::AddResonance ( int  number,
double  mres,
int  n1 
)

◆ AddResonance() [3/26]

void KinematicFit::AddResonance ( int  number,
double  mres,
int  n1,
int  n2 
)

Definition at line 77 of file KinematicFit.cxx.

77 {
78 std::vector<int> tlis = AddList(n1, n2);
79 AddResonance(number, mres, tlis);
80}
int n2
Definition: SD0Tag.cxx:55

◆ AddResonance() [4/26]

void KinematicFit::AddResonance ( int  number,
double  mres,
int  n1,
int  n2 
)

◆ AddResonance() [5/26]

void KinematicFit::AddResonance ( int  number,
double  mres,
int  n1,
int  n2,
int  n3 
)

Definition at line 82 of file KinematicFit.cxx.

82 {
83 std::vector<int> tlis = AddList(n1, n2, n3);
84 AddResonance(number, mres, tlis);
85}

◆ AddResonance() [6/26]

void KinematicFit::AddResonance ( int  number,
double  mres,
int  n1,
int  n2,
int  n3 
)

◆ AddResonance() [7/26]

void KinematicFit::AddResonance ( int  number,
double  mres,
int  n1,
int  n2,
int  n3,
int  n4 
)

Definition at line 87 of file KinematicFit.cxx.

87 {
88 std::vector<int> tlis = AddList(n1, n2, n3, n4);
89 AddResonance(number, mres, tlis);
90}

◆ AddResonance() [8/26]

void KinematicFit::AddResonance ( int  number,
double  mres,
int  n1,
int  n2,
int  n3,
int  n4 
)

◆ AddResonance() [9/26]

void KinematicFit::AddResonance ( int  number,
double  mres,
int  n1,
int  n2,
int  n3,
int  n4,
int  n5 
)

Definition at line 92 of file KinematicFit.cxx.

93 {
94 std::vector<int> tlis = AddList(n1, n2, n3, n4, n5);
95 AddResonance(number, mres, tlis);
96}

◆ AddResonance() [10/26]

void KinematicFit::AddResonance ( int  number,
double  mres,
int  n1,
int  n2,
int  n3,
int  n4,
int  n5 
)

◆ AddResonance() [11/26]

void KinematicFit::AddResonance ( int  number,
double  mres,
int  n1,
int  n2,
int  n3,
int  n4,
int  n5,
int  n6 
)

Definition at line 98 of file KinematicFit.cxx.

99 {
100 std::vector<int> tlis = AddList(n1, n2, n3, n4, n5, n6);
101 AddResonance(number, mres, tlis);
102}

◆ AddResonance() [12/26]

void KinematicFit::AddResonance ( int  number,
double  mres,
int  n1,
int  n2,
int  n3,
int  n4,
int  n5,
int  n6 
)

◆ AddResonance() [13/26]

void KinematicFit::AddResonance ( int  number,
double  mres,
int  n1,
int  n2,
int  n3,
int  n4,
int  n5,
int  n6,
int  n7 
)

Definition at line 104 of file KinematicFit.cxx.

105 {
106 std::vector<int> tlis = AddList(n1, n2, n3, n4, n5, n6, n7);
107 AddResonance(number, mres, tlis);
108}

◆ AddResonance() [14/26]

void KinematicFit::AddResonance ( int  number,
double  mres,
int  n1,
int  n2,
int  n3,
int  n4,
int  n5,
int  n6,
int  n7 
)

◆ AddResonance() [15/26]

void KinematicFit::AddResonance ( int  number,
double  mres,
int  n1,
int  n2,
int  n3,
int  n4,
int  n5,
int  n6,
int  n7,
int  n8 
)

Definition at line 110 of file KinematicFit.cxx.

111 {
112 std::vector<int> tlis = AddList(n1, n2, n3, n4, n5, n6, n7, n8);
113 AddResonance(number, mres, tlis);
114}

◆ AddResonance() [16/26]

void KinematicFit::AddResonance ( int  number,
double  mres,
int  n1,
int  n2,
int  n3,
int  n4,
int  n5,
int  n6,
int  n7,
int  n8 
)

◆ AddResonance() [17/26]

void KinematicFit::AddResonance ( int  number,
double  mres,
int  n1,
int  n2,
int  n3,
int  n4,
int  n5,
int  n6,
int  n7,
int  n8,
int  n9 
)

Definition at line 116 of file KinematicFit.cxx.

117 {
118 std::vector<int> tlis = AddList(n1, n2, n3, n4, n5, n6, n7, n8, n9);
119 AddResonance(number, mres, tlis);
120}

◆ AddResonance() [18/26]

void KinematicFit::AddResonance ( int  number,
double  mres,
int  n1,
int  n2,
int  n3,
int  n4,
int  n5,
int  n6,
int  n7,
int  n8,
int  n9 
)

◆ AddResonance() [19/26]

void KinematicFit::AddResonance ( int  number,
double  mres,
int  n1,
int  n2,
int  n3,
int  n4,
int  n5,
int  n6,
int  n7,
int  n8,
int  n9,
int  n10 
)

Definition at line 122 of file KinematicFit.cxx.

123 {
124 std::vector<int> tlis = AddList(n1, n2, n3, n4, n5, n6, n7, n8, n9, n10);
125 AddResonance(number, mres, tlis);
126}

◆ AddResonance() [20/26]

void KinematicFit::AddResonance ( int  number,
double  mres,
int  n1,
int  n2,
int  n3,
int  n4,
int  n5,
int  n6,
int  n7,
int  n8,
int  n9,
int  n10 
)

◆ AddResonance() [21/26]

void KinematicFit::AddResonance ( int  number,
double  mres,
int  n1,
int  n2,
int  n3,
int  n4,
int  n5,
int  n6,
int  n7,
int  n8,
int  n9,
int  n10,
int  n11 
)

Definition at line 129 of file KinematicFit.cxx.

131 {
132 std::vector<int> tlis = AddList(n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11);
133 AddResonance(number, mres, tlis);
134}

◆ AddResonance() [22/26]

void KinematicFit::AddResonance ( int  number,
double  mres,
int  n1,
int  n2,
int  n3,
int  n4,
int  n5,
int  n6,
int  n7,
int  n8,
int  n9,
int  n10,
int  n11 
)

◆ AddResonance() [23/26]

void KinematicFit::AddResonance ( int  number,
double  mres,
int  n1,
int  n2,
int  n3,
int  n4,
int  n5,
int  n6,
int  n7,
int  n8,
int  n9,
int  n10,
int  n11,
int  n12 
)

Definition at line 136 of file KinematicFit.cxx.

138 {
139 std::vector<int> tlis = AddList(n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12);
140 AddResonance(number, mres, tlis);
141}

◆ AddResonance() [24/26]

void KinematicFit::AddResonance ( int  number,
double  mres,
int  n1,
int  n2,
int  n3,
int  n4,
int  n5,
int  n6,
int  n7,
int  n8,
int  n9,
int  n10,
int  n11,
int  n12 
)

◆ AddResonance() [25/26]

void KinematicFit::AddResonance ( int  number,
double  mres,
std::vector< int >  tlis 
)

Definition at line 143 of file KinematicFit.cxx.

143 {
145 HepSymMatrix Vre = HepSymMatrix(1,0);
146 kc.ResonanceConstraints(mres, tlis, Vre);
147 m_kc.push_back(kc);
148 if((unsigned int) number != m_kc.size()-1)
149 std::cout << "wrong kinematic constraints index" << std::endl;
150}
void ResonanceConstraints(const double mres, std::vector< int > tlis, HepSymMatrix Vre)

Referenced by AddResonance(), Pi0EtaToGGRecAlg::execute(), and Pi0::Pi0ListToTDS().

◆ AddResonance() [26/26]

void KinematicFit::AddResonance ( int  number,
double  mres,
std::vector< int >  tlis 
)

◆ AddThreeMomentum() [1/2]

void KinematicFit::AddThreeMomentum ( int  number,
Hep3Vector  p3 
)

Definition at line 335 of file KinematicFit.cxx.

335 {
336 std::vector<int> tlis;
337 tlis.clear();
338 WTrackParameter wtrk;
340
341 for(int i = 0; i < numberWTrack(); i++) {
342 tlis.push_back(i);
343 }
344 kc.ThreeMomentumConstraints(p3, tlis);
345 m_kc.push_back(kc);
346 if((unsigned int) number != m_kc.size()-1)
347 std::cout << "wrong kinematic constraints index" << std::endl;
348}
void ThreeMomentumConstraints(const Hep3Vector p3, std::vector< int > tlis)

◆ AddThreeMomentum() [2/2]

void KinematicFit::AddThreeMomentum ( int  number,
Hep3Vector  p3 
)

◆ AddTotalEnergy() [1/26]

void KinematicFit::AddTotalEnergy ( int  number,
double  etot,
int  n1 
)

Definition at line 240 of file KinematicFit.cxx.

240 {
241 std::vector<int> tlis = AddList(n1);
242 AddTotalEnergy(number, etot, tlis);
243}
void AddTotalEnergy(int number, double etot, std::vector< int > lis)

◆ AddTotalEnergy() [2/26]

void KinematicFit::AddTotalEnergy ( int  number,
double  etot,
int  n1 
)

◆ AddTotalEnergy() [3/26]

void KinematicFit::AddTotalEnergy ( int  number,
double  etot,
int  n1,
int  n2 
)

Definition at line 244 of file KinematicFit.cxx.

244 {
245 std::vector<int> tlis = AddList(n1, n2);
246 AddTotalEnergy(number, etot, tlis);
247}

◆ AddTotalEnergy() [4/26]

void KinematicFit::AddTotalEnergy ( int  number,
double  etot,
int  n1,
int  n2 
)

◆ AddTotalEnergy() [5/26]

void KinematicFit::AddTotalEnergy ( int  number,
double  etot,
int  n1,
int  n2,
int  n3 
)

Definition at line 249 of file KinematicFit.cxx.

249 {
250 std::vector<int> tlis = AddList(n1, n2, n3);
251 AddTotalEnergy(number, etot, tlis);
252}

◆ AddTotalEnergy() [6/26]

void KinematicFit::AddTotalEnergy ( int  number,
double  etot,
int  n1,
int  n2,
int  n3 
)

◆ AddTotalEnergy() [7/26]

void KinematicFit::AddTotalEnergy ( int  number,
double  etot,
int  n1,
int  n2,
int  n3,
int  n4 
)

Definition at line 254 of file KinematicFit.cxx.

254 {
255 std::vector<int> tlis = AddList(n1, n2, n3, n4);
256 AddTotalEnergy(number, etot, tlis);
257}

◆ AddTotalEnergy() [8/26]

void KinematicFit::AddTotalEnergy ( int  number,
double  etot,
int  n1,
int  n2,
int  n3,
int  n4 
)

◆ AddTotalEnergy() [9/26]

void KinematicFit::AddTotalEnergy ( int  number,
double  etot,
int  n1,
int  n2,
int  n3,
int  n4,
int  n5 
)

Definition at line 259 of file KinematicFit.cxx.

260 {
261 std::vector<int> tlis = AddList(n1, n2, n3, n4, n5);
262 AddTotalEnergy(number, etot, tlis);
263}

◆ AddTotalEnergy() [10/26]

void KinematicFit::AddTotalEnergy ( int  number,
double  etot,
int  n1,
int  n2,
int  n3,
int  n4,
int  n5 
)

◆ AddTotalEnergy() [11/26]

void KinematicFit::AddTotalEnergy ( int  number,
double  etot,
int  n1,
int  n2,
int  n3,
int  n4,
int  n5,
int  n6 
)

Definition at line 265 of file KinematicFit.cxx.

266 {
267 std::vector<int> tlis = AddList(n1, n2, n3, n4, n5, n6);
268 AddTotalEnergy(number, etot, tlis);
269}

◆ AddTotalEnergy() [12/26]

void KinematicFit::AddTotalEnergy ( int  number,
double  etot,
int  n1,
int  n2,
int  n3,
int  n4,
int  n5,
int  n6 
)

◆ AddTotalEnergy() [13/26]

void KinematicFit::AddTotalEnergy ( int  number,
double  etot,
int  n1,
int  n2,
int  n3,
int  n4,
int  n5,
int  n6,
int  n7 
)

Definition at line 271 of file KinematicFit.cxx.

272 {
273 std::vector<int> tlis = AddList(n1, n2, n3, n4, n5, n6, n7);
274 AddTotalEnergy(number, etot, tlis);
275}

◆ AddTotalEnergy() [14/26]

void KinematicFit::AddTotalEnergy ( int  number,
double  etot,
int  n1,
int  n2,
int  n3,
int  n4,
int  n5,
int  n6,
int  n7 
)

◆ AddTotalEnergy() [15/26]

void KinematicFit::AddTotalEnergy ( int  number,
double  etot,
int  n1,
int  n2,
int  n3,
int  n4,
int  n5,
int  n6,
int  n7,
int  n8 
)

Definition at line 277 of file KinematicFit.cxx.

278 {
279 std::vector<int> tlis = AddList(n1, n2, n3, n4, n5, n6, n7, n8);
280 AddTotalEnergy(number, etot, tlis);
281}

◆ AddTotalEnergy() [16/26]

void KinematicFit::AddTotalEnergy ( int  number,
double  etot,
int  n1,
int  n2,
int  n3,
int  n4,
int  n5,
int  n6,
int  n7,
int  n8 
)

◆ AddTotalEnergy() [17/26]

void KinematicFit::AddTotalEnergy ( int  number,
double  etot,
int  n1,
int  n2,
int  n3,
int  n4,
int  n5,
int  n6,
int  n7,
int  n8,
int  n9 
)

Definition at line 283 of file KinematicFit.cxx.

284 {
285 std::vector<int> tlis = AddList(n1, n2, n3, n4, n5, n6, n7, n8, n9);
286 AddTotalEnergy(number, etot, tlis);
287}

◆ AddTotalEnergy() [18/26]

void KinematicFit::AddTotalEnergy ( int  number,
double  etot,
int  n1,
int  n2,
int  n3,
int  n4,
int  n5,
int  n6,
int  n7,
int  n8,
int  n9 
)

◆ AddTotalEnergy() [19/26]

void KinematicFit::AddTotalEnergy ( int  number,
double  etot,
int  n1,
int  n2,
int  n3,
int  n4,
int  n5,
int  n6,
int  n7,
int  n8,
int  n9,
int  n10 
)

Definition at line 289 of file KinematicFit.cxx.

291 {
292 std::vector<int> tlis = AddList(n1, n2, n3, n4, n5, n6, n7, n8, n9, n10);
293 AddTotalEnergy(number, etot, tlis);
294}

◆ AddTotalEnergy() [20/26]

void KinematicFit::AddTotalEnergy ( int  number,
double  etot,
int  n1,
int  n2,
int  n3,
int  n4,
int  n5,
int  n6,
int  n7,
int  n8,
int  n9,
int  n10 
)

◆ AddTotalEnergy() [21/26]

void KinematicFit::AddTotalEnergy ( int  number,
double  etot,
int  n1,
int  n2,
int  n3,
int  n4,
int  n5,
int  n6,
int  n7,
int  n8,
int  n9,
int  n10,
int  n11 
)

Definition at line 297 of file KinematicFit.cxx.

299 {
300 std::vector<int> tlis = AddList(n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11);
301 AddTotalEnergy(number, etot, tlis);
302}

◆ AddTotalEnergy() [22/26]

void KinematicFit::AddTotalEnergy ( int  number,
double  etot,
int  n1,
int  n2,
int  n3,
int  n4,
int  n5,
int  n6,
int  n7,
int  n8,
int  n9,
int  n10,
int  n11 
)

◆ AddTotalEnergy() [23/26]

void KinematicFit::AddTotalEnergy ( int  number,
double  etot,
int  n1,
int  n2,
int  n3,
int  n4,
int  n5,
int  n6,
int  n7,
int  n8,
int  n9,
int  n10,
int  n11,
int  n12 
)

Definition at line 304 of file KinematicFit.cxx.

306 {
307 std::vector<int> tlis = AddList(n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12);
308 AddTotalEnergy(number, etot, tlis);
309}

◆ AddTotalEnergy() [24/26]

void KinematicFit::AddTotalEnergy ( int  number,
double  etot,
int  n1,
int  n2,
int  n3,
int  n4,
int  n5,
int  n6,
int  n7,
int  n8,
int  n9,
int  n10,
int  n11,
int  n12 
)

◆ AddTotalEnergy() [25/26]

void KinematicFit::AddTotalEnergy ( int  number,
double  etot,
std::vector< int >  lis 
)

Definition at line 311 of file KinematicFit.cxx.

311 {
314 m_kc.push_back(kc);
315 if((unsigned int) number != m_kc.size()-1)
316 std::cout << "wrong kinematic constraints index" << std::endl;
317}
void TotalEnergyConstraints(const double etot, std::vector< int > tlis)

Referenced by AddTotalEnergy().

◆ AddTotalEnergy() [26/26]

void KinematicFit::AddTotalEnergy ( int  number,
double  etot,
std::vector< int >  lis 
)

◆ AddTotalMomentum() [1/26]

void KinematicFit::AddTotalMomentum ( int  number,
double  ptot,
int  n1 
)

Definition at line 157 of file KinematicFit.cxx.

157 {
158 std::vector<int> tlis = AddList(n1);
159 AddTotalMomentum(number, ptot, tlis);
160}
void AddTotalMomentum(int number, double ptot, std::vector< int > lis)

◆ AddTotalMomentum() [2/26]

void KinematicFit::AddTotalMomentum ( int  number,
double  ptot,
int  n1 
)

◆ AddTotalMomentum() [3/26]

void KinematicFit::AddTotalMomentum ( int  number,
double  ptot,
int  n1,
int  n2 
)

Definition at line 161 of file KinematicFit.cxx.

161 {
162 std::vector<int> tlis = AddList(n1, n2);
163 AddTotalMomentum(number, ptot, tlis);
164}

◆ AddTotalMomentum() [4/26]

void KinematicFit::AddTotalMomentum ( int  number,
double  ptot,
int  n1,
int  n2 
)

◆ AddTotalMomentum() [5/26]

void KinematicFit::AddTotalMomentum ( int  number,
double  ptot,
int  n1,
int  n2,
int  n3 
)

Definition at line 166 of file KinematicFit.cxx.

166 {
167 std::vector<int> tlis = AddList(n1, n2, n3);
168 AddTotalMomentum(number, ptot, tlis);
169}

◆ AddTotalMomentum() [6/26]

void KinematicFit::AddTotalMomentum ( int  number,
double  ptot,
int  n1,
int  n2,
int  n3 
)

◆ AddTotalMomentum() [7/26]

void KinematicFit::AddTotalMomentum ( int  number,
double  ptot,
int  n1,
int  n2,
int  n3,
int  n4 
)

Definition at line 171 of file KinematicFit.cxx.

171 {
172 std::vector<int> tlis = AddList(n1, n2, n3, n4);
173 AddTotalMomentum(number, ptot, tlis);
174}

◆ AddTotalMomentum() [8/26]

void KinematicFit::AddTotalMomentum ( int  number,
double  ptot,
int  n1,
int  n2,
int  n3,
int  n4 
)

◆ AddTotalMomentum() [9/26]

void KinematicFit::AddTotalMomentum ( int  number,
double  ptot,
int  n1,
int  n2,
int  n3,
int  n4,
int  n5 
)

Definition at line 176 of file KinematicFit.cxx.

177 {
178 std::vector<int> tlis = AddList(n1, n2, n3, n4, n5);
179 AddTotalMomentum(number, ptot, tlis);
180}

◆ AddTotalMomentum() [10/26]

void KinematicFit::AddTotalMomentum ( int  number,
double  ptot,
int  n1,
int  n2,
int  n3,
int  n4,
int  n5 
)

◆ AddTotalMomentum() [11/26]

void KinematicFit::AddTotalMomentum ( int  number,
double  ptot,
int  n1,
int  n2,
int  n3,
int  n4,
int  n5,
int  n6 
)

Definition at line 182 of file KinematicFit.cxx.

183 {
184 std::vector<int> tlis = AddList(n1, n2, n3, n4, n5, n6);
185 AddTotalMomentum(number, ptot, tlis);
186}

◆ AddTotalMomentum() [12/26]

void KinematicFit::AddTotalMomentum ( int  number,
double  ptot,
int  n1,
int  n2,
int  n3,
int  n4,
int  n5,
int  n6 
)

◆ AddTotalMomentum() [13/26]

void KinematicFit::AddTotalMomentum ( int  number,
double  ptot,
int  n1,
int  n2,
int  n3,
int  n4,
int  n5,
int  n6,
int  n7 
)

Definition at line 188 of file KinematicFit.cxx.

189 {
190 std::vector<int> tlis = AddList(n1, n2, n3, n4, n5, n6, n7);
191 AddTotalMomentum(number, ptot, tlis);
192}

◆ AddTotalMomentum() [14/26]

void KinematicFit::AddTotalMomentum ( int  number,
double  ptot,
int  n1,
int  n2,
int  n3,
int  n4,
int  n5,
int  n6,
int  n7 
)

◆ AddTotalMomentum() [15/26]

void KinematicFit::AddTotalMomentum ( int  number,
double  ptot,
int  n1,
int  n2,
int  n3,
int  n4,
int  n5,
int  n6,
int  n7,
int  n8 
)

Definition at line 194 of file KinematicFit.cxx.

195 {
196 std::vector<int> tlis = AddList(n1, n2, n3, n4, n5, n6, n7, n8);
197 AddTotalMomentum(number, ptot, tlis);
198}

◆ AddTotalMomentum() [16/26]

void KinematicFit::AddTotalMomentum ( int  number,
double  ptot,
int  n1,
int  n2,
int  n3,
int  n4,
int  n5,
int  n6,
int  n7,
int  n8 
)

◆ AddTotalMomentum() [17/26]

void KinematicFit::AddTotalMomentum ( int  number,
double  ptot,
int  n1,
int  n2,
int  n3,
int  n4,
int  n5,
int  n6,
int  n7,
int  n8,
int  n9 
)

Definition at line 200 of file KinematicFit.cxx.

201 {
202 std::vector<int> tlis = AddList(n1, n2, n3, n4, n5, n6, n7, n8, n9);
203 AddTotalMomentum(number, ptot, tlis);
204}

◆ AddTotalMomentum() [18/26]

void KinematicFit::AddTotalMomentum ( int  number,
double  ptot,
int  n1,
int  n2,
int  n3,
int  n4,
int  n5,
int  n6,
int  n7,
int  n8,
int  n9 
)

◆ AddTotalMomentum() [19/26]

void KinematicFit::AddTotalMomentum ( int  number,
double  ptot,
int  n1,
int  n2,
int  n3,
int  n4,
int  n5,
int  n6,
int  n7,
int  n8,
int  n9,
int  n10 
)

Definition at line 206 of file KinematicFit.cxx.

208 {
209 std::vector<int> tlis = AddList(n1, n2, n3, n4, n5, n6, n7, n8, n9, n10);
210 AddTotalMomentum(number, ptot, tlis);
211}

◆ AddTotalMomentum() [20/26]

void KinematicFit::AddTotalMomentum ( int  number,
double  ptot,
int  n1,
int  n2,
int  n3,
int  n4,
int  n5,
int  n6,
int  n7,
int  n8,
int  n9,
int  n10 
)

◆ AddTotalMomentum() [21/26]

void KinematicFit::AddTotalMomentum ( int  number,
double  ptot,
int  n1,
int  n2,
int  n3,
int  n4,
int  n5,
int  n6,
int  n7,
int  n8,
int  n9,
int  n10,
int  n11 
)

Definition at line 214 of file KinematicFit.cxx.

216 {
217 std::vector<int> tlis = AddList(n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11);
218 AddTotalMomentum(number, ptot, tlis);
219}

◆ AddTotalMomentum() [22/26]

void KinematicFit::AddTotalMomentum ( int  number,
double  ptot,
int  n1,
int  n2,
int  n3,
int  n4,
int  n5,
int  n6,
int  n7,
int  n8,
int  n9,
int  n10,
int  n11 
)

◆ AddTotalMomentum() [23/26]

void KinematicFit::AddTotalMomentum ( int  number,
double  ptot,
int  n1,
int  n2,
int  n3,
int  n4,
int  n5,
int  n6,
int  n7,
int  n8,
int  n9,
int  n10,
int  n11,
int  n12 
)

Definition at line 221 of file KinematicFit.cxx.

223 {
224 std::vector<int> tlis = AddList(n1, n2, n3, n4, n5, n6, n7, n8, n9, n10, n11, n12);
225 AddTotalMomentum(number, ptot, tlis);
226}

◆ AddTotalMomentum() [24/26]

void KinematicFit::AddTotalMomentum ( int  number,
double  ptot,
int  n1,
int  n2,
int  n3,
int  n4,
int  n5,
int  n6,
int  n7,
int  n8,
int  n9,
int  n10,
int  n11,
int  n12 
)

◆ AddTotalMomentum() [25/26]

void KinematicFit::AddTotalMomentum ( int  number,
double  ptot,
std::vector< int >  lis 
)

Definition at line 228 of file KinematicFit.cxx.

228 {
230 kc.TotalMomentumConstraints(ptot, tlis);
231 m_kc.push_back(kc);
232 if((unsigned int) number != m_kc.size()-1)
233 std::cout << "wrong kinematic constraints index" << std::endl;
234}
void TotalMomentumConstraints(const double ptot, std::vector< int > tlis)

Referenced by AddTotalMomentum().

◆ AddTotalMomentum() [26/26]

void KinematicFit::AddTotalMomentum ( int  number,
double  ptot,
std::vector< int >  lis 
)

◆ BuildVirtualParticle() [1/2]

void KinematicFit::BuildVirtualParticle ( int  number)

Definition at line 793 of file KinematicFit.cxx.

793 {
794//
795// q = p1 + p2 + ... + pn
796//
797 upCovmtx();
798 KinematicConstraints kc = m_kc[n];
799 int ntrk = (kc.Ltrk()).size();
800 int charge = 0;
801 HepVector w(7, 0);
802 HepSymMatrix ew(7, 0);
803 HepMatrix dwdp(7, 7, 0);
804 dwdp[0][0] = 1;
805 dwdp[1][1] = 1;
806 dwdp[2][2] = 1;
807 dwdp[3][3] = 1;
808 dwdp[4][4] = 1;
809 dwdp[5][5] = 1;
810 dwdp[6][6] = 1;
811 for (int i = 0; i < ntrk; i++) {
812 int itk = (kc.Ltrk())[i];
813 charge += wTrackInfit(itk).charge();
814 w[0] = w[0] + wTrackInfit(itk).w()[0];
815 w[1] = w[1] + wTrackInfit(itk).w()[1];
816 w[2] = w[2] + wTrackInfit(itk).w()[2];
817 w[3] = w[3] + wTrackInfit(itk).w()[3];
818 w[4] = 0.0;//
819 w[5] = 0.0;// set virtual particle's vertex at (0,0,0)
820 w[6] = 0.0;//
821 ew = ew + (wTrackInfit(itk).Ew()).similarity(dwdp); // the vertex matrix of this particles is not correct, because we do not use vertex information in kinematicfit, so ...
822 }
823 double m = sqrt(w[3]*w[3] - w[0]*w[0] - w[1]*w[1] - w[2]*w[2]);
824 WTrackParameter vwtrk;
825 vwtrk.setCharge(charge);
826 vwtrk.setW(w);
827 vwtrk.setEw(ew);
828 vwtrk.setMass(m);
829 m_virtual_wtrk.push_back(vwtrk);
830}
const Int_t n
double w
std::vector< WTrackParameter > wTrackInfit() const

Referenced by Pi0EtaToGGRecAlg::execute().

◆ BuildVirtualParticle() [2/2]

void KinematicFit::BuildVirtualParticle ( int  number)

◆ chisq() [1/4]

◆ chisq() [2/4]

double KinematicFit::chisq ( ) const
inline

Definition at line 150 of file InstallArea/include/VertexFit/VertexFit/KinematicFit.h.

150{return m_chi;}

◆ chisq() [3/4]

double KinematicFit::chisq ( int  n) const
inline

Definition at line 151 of file Analysis/VertexFit/VertexFit-00-02-82/VertexFit/KinematicFit.h.

151{return m_chisq[n];}

◆ chisq() [4/4]

double KinematicFit::chisq ( int  n) const
inline

Definition at line 151 of file InstallArea/include/VertexFit/VertexFit/KinematicFit.h.

151{return m_chisq[n];}

◆ collideangle() [1/2]

double KinematicFit::collideangle ( ) const
inline

Definition at line 166 of file Analysis/VertexFit/VertexFit-00-02-82/VertexFit/KinematicFit.h.

166{return m_collideangle;}

Referenced by setCollideangle().

◆ collideangle() [2/2]

double KinematicFit::collideangle ( ) const
inline

Definition at line 166 of file InstallArea/include/VertexFit/VertexFit/KinematicFit.h.

166{return m_collideangle;}

◆ cpu() [1/2]

HepVector KinematicFit::cpu ( ) const
inline

Definition at line 169 of file Analysis/VertexFit/VertexFit-00-02-82/VertexFit/KinematicFit.h.

169{return m_cpu;}

◆ cpu() [2/2]

HepVector KinematicFit::cpu ( ) const
inline

Definition at line 169 of file InstallArea/include/VertexFit/VertexFit/KinematicFit.h.

169{return m_cpu;}

◆ dynamicerror() [1/2]

bool KinematicFit::dynamicerror ( ) const
inline

Definition at line 167 of file Analysis/VertexFit/VertexFit-00-02-82/VertexFit/KinematicFit.h.

167{return m_dynamicerror;}

Referenced by setDynamicerror().

◆ dynamicerror() [2/2]

bool KinematicFit::dynamicerror ( ) const
inline

Definition at line 167 of file InstallArea/include/VertexFit/VertexFit/KinematicFit.h.

167{return m_dynamicerror;}

◆ espread() [1/2]

double KinematicFit::espread ( ) const
inline

Definition at line 165 of file Analysis/VertexFit/VertexFit-00-02-82/VertexFit/KinematicFit.h.

165{return m_espread;}

Referenced by setEspread().

◆ espread() [2/2]

double KinematicFit::espread ( ) const
inline

Definition at line 165 of file InstallArea/include/VertexFit/VertexFit/KinematicFit.h.

165{return m_espread;}

◆ Fit() [1/4]

bool KinematicFit::Fit ( )

Definition at line 604 of file KinematicFit.cxx.

604 {
605 bool okfit = false;
606 TStopwatch timer;
607 m_nktrk = numberWTrack();
608 m_pOrigin = HepVector(m_nktrk * NTRKPAR, 0);
609 m_pInfit = HepVector(m_nktrk * NTRKPAR, 0);
610 m_covOrigin = HepSymMatrix(m_nktrk * NTRKPAR, 0);
611 m_covInfit = HepSymMatrix(m_nktrk * NTRKPAR, 0);
612 m_massvector = HepVector(m_nktrk, 0);
613 for(int i = 0; i < numberWTrack(); i++) {
615 setPOrigin(i, (wTrackOrigin(i).w()).sub(1, NTRKPAR));
616 setPInfit(i, (wTrackOrigin(i).w()).sub(1, NTRKPAR));
617 setCovOrigin(i, (wTrackOrigin(i).Ew()).sub(1, NTRKPAR));
618 setMassvector(i, wTrackOrigin(i).mass());
619 }
620
621 //
622 // iteration
623 //
624 // cout<<"m_pInfit ="<<m_pInfit<<endl;
625 // cout<<"m_covOrigin="<<m_covOrigin<<endl;
626 // cout<<"m_massvector ="<<m_massvector<<endl;
627
628 std::vector<double> chisq;
629 chisq.clear();
630 int nc = 0;
631 for(int i = 0; i < m_kc.size(); i++)
632 nc += m_kc[i].nc();
633
634 m_D = HepMatrix(nc, m_nktrk * NTRKPAR, 0);
635 m_DT = HepMatrix(m_nktrk * NTRKPAR, nc, 0);
636 m_d = HepVector(nc, 0);
637
638 for(int it = 0; it < m_niter; it++) {
639
640 timer.Start();
641 m_nc = 0;
642 for(unsigned int i = 0; i < m_kc.size(); i++) {
643 KinematicConstraints kc = m_kc[i];
644 // std::vector<WTrackParameter> wlis;
645 // std::vector<WTrackParameter> wlis_V;
646 // wlis.clear();
647 // wlis_V.clear();
648 // for(unsigned int j = 0; j < (kc.Ltrk()).size(); j++) {
649 // int n = (kc.Ltrk())[j];
650 // WTrackParameter wtrk = wTrackInfit(n);
651 // if(m_espread!=0) wtrk = wTrackOrigin(n);
652 // wlis.push_back(wtrk);
653 // }
654 // for(unsigned int j = 0; j < (kc.Ltrk_V()).size(); j++) {
655 // int n = (kc.Ltrk_V())[j];
656 // WTrackParameter wtrk = wTrackInfit_V(n);
657 // wlis_V.push_back(wtrk);
658 // }
659 // kc.UpdateConstraints(wlis, wlis_V);
660 // m_kc[i] = kc;
661 //cout<<"wlis_V ="<<(wlis_V[0].w())[0]<<endl;
662 updateConstraints(kc);
663 // std::cout << "updata OK " << m_d << std::endl;
664 }
665 timer.Stop();
666 m_cpu[0] += timer.CpuTime();
667
668 fit();
669 chisq.push_back(m_chi);
670 if(it > 0) {
671 double delchi = chisq[it]- chisq[it-1];
672 if(fabs(delchi) < m_chiter)
673 break;
674 }
675 }
676 if(m_chi >= m_chicut) {
677
678 return okfit;
679 }
680 // update track parameter and its covariance matrix
681 // upTrkpar();
682 // covMatrix();
683 timer.Start();
684 //upCovmtx();
685 timer.Stop();
686 m_cpu[5] += timer.CpuTime();
687
688 okfit = true;
689
690 /*
691 for (int i = 0; i<numberWTrack(); i++){
692 if (wTrackOrigin(i).charge()==0) continue ;
693 HTrackParameter horigin = HTrackParameter(wTrackOrigin(i));
694 HTrackParameter hinfit = HTrackParameter(wTrackInfit(i));
695
696 HepVector a0 = horigin.hel();
697 HepVector a1 = hinfit.hel();
698 HepSymMatrix v0 = horigin.eHel();
699 HepSymMatrix v1 = hinfit.eHel();
700 HepVector pull(5,0);
701 for (int k=0; k<5; k++) {
702 pull[k] = (a0[k]-a1[k])/sqrt(abs(v0[k][k]-v1[k][k]));
703 }
704
705 WTrackParameter wtrk2 = wTrackInfit(i);
706 wtrk2.setPull(pull);
707 // for (int l=0;l<5; l++) {
708 //(wTrackInfit(i).pull())[l]=(wtrk2.pull())[l];
709 // }
710 setWTrackInfit(i, wtrk2);
711 }
712 */
713 /*/
714
715 for (int i = 0; i<numberWTrack_V(); i++){
716 //if (wTrackOrigin(i).charge()==0) continue ;
717 HTrackParameter horigin_V = HTrackParameter(wTrackOrigin_V(i));
718 HTrackParameter hinfit_V = HTrackParameter(wTrackInfit_V(i));
719
720 HepVector a0 = horigin.hel();
721 HepVector a1 = hinfit.hel();
722 HepSymMatrix v0 = horigin.eHel();
723 HepSymMatrix v1 = hinfit.eHel();
724 HepVector pull(5,0);
725 for (int k=0; k<5; k++) {
726 pull[k] = (a0[k]-a1[k])/sqrt(abs(v0[k][k]-v1[k][k]));
727 }
728
729 WTrackParameter wtrk2 = wTrackInfit(i);
730 wtrk2.setPull(pull);
731 // for (int l=0;l<5; l++) {
732 //(wTrackInfit(i).pull())[l]=(wtrk2.pull())[l];
733 // }
734 setWTrackInfit(i, wtrk2);
735 }
736 */
737
738 return okfit;
739}
double mass
std::vector< WTrackParameter > wTrackOrigin() const
void setWTrackInfit(const int n, const WTrackParameter wtrk)

Referenced by Ppjrhopi::execute(), DQAKsKpi::execute(), DQAKsKpiDEDX::execute(), DQARhopi::execute(), JsiLL::execute(), CalibEventSelect::execute(), Pi0EtaToGGRecAlg::execute(), and Pi0::Pi0ListToTDS().

◆ Fit() [2/4]

bool KinematicFit::Fit ( )

◆ Fit() [3/4]

bool KinematicFit::Fit ( int  n)

Definition at line 741 of file KinematicFit.cxx.

741 {
742 bool okfit = false;
743 if(n < 0 || (unsigned int)n >= m_kc.size()) return okfit;
744
745 m_nktrk = numberWTrack();
746 m_pOrigin = HepVector(m_nktrk * NTRKPAR, 0);
747 m_pInfit = HepVector(m_nktrk * NTRKPAR, 0);
748 m_covOrigin = HepSymMatrix(m_nktrk * NTRKPAR, 0);
749 m_covInfit = HepSymMatrix(m_nktrk * NTRKPAR, 0);
750 m_massvector = HepVector(m_nktrk * NTRKPAR, 0);
751 for(int i = 0; i < numberWTrack(); i++) {
753 setPOrigin(i, (wTrackOrigin(i).w()).sub(1, NTRKPAR));
754 setPInfit(i, (wTrackOrigin(i).w()).sub(1, NTRKPAR));
755 setCovOrigin(i, (wTrackOrigin(i).Ew()).sub(1, NTRKPAR));
756 setMassvector(i, wTrackOrigin(i).mass());
757 }
758
759 //
760 // iteration loop
761 //
762
763 std::vector<double> chisq;
764 chisq.clear();
765
766 m_D = HepMatrix(m_kc[n].nc(), m_nktrk * NTRKPAR, 0);
767 m_DT = HepMatrix(m_nktrk * NTRKPAR, m_kc[n].nc(), 0);
768 m_d = HepVector(m_kc[n].nc(), 0);
769
770 for(int it = 0; it < m_niter; it++) {
771 m_nc = 0;
772 KinematicConstraints kc = m_kc[n];
773 updateConstraints(kc);
774 // m_kc[n] = kc;
775 fit(n);
776
777 chisq.push_back(m_chisq[n]);
778 if(it > 0) {
779 double delchi = chisq[it]- chisq[it-1];
780 if(fabs(delchi) < m_chiter)
781 break;
782 }
783 }
784
785 if(m_chisq[n] >= m_chicut) return okfit;
786 // ====update cov====
787 // upCovmtx();
788 okfit = true;
789 return okfit;
790}

◆ Fit() [4/4]

bool KinematicFit::Fit ( int  n)

◆ infit() [1/2]

WTrackParameter KinematicFit::infit ( int  n) const
inline

◆ infit() [2/2]

WTrackParameter KinematicFit::infit ( int  n) const
inline

Definition at line 161 of file InstallArea/include/VertexFit/VertexFit/KinematicFit.h.

161{return wTrackInfit(n);}

◆ init() [1/2]

void KinematicFit::init ( )

Definition at line 33 of file KinematicFit.cxx.

33 {
37 //For Virtual Particles
38 //gamma shape
44 clearone();
45 cleartwo();
46 setBeamPosition(HepPoint3D(0.0,0.0,0.0));
47 setVBeamPosition(HepSymMatrix(3,0));
48
49 //=============
50 m_kc.clear();
51 m_chisq.clear();
52 m_chi = 9999.;
53 m_niter = 10;
54 m_chicut = 200.;
55 m_chiter = 0.005;
56 m_espread = 0.0;
57 m_kalman = 0;
58 m_collideangle = 11e-3;
59 m_flag = 0;
60 m_dynamicerror = 0;
61 m_nc = 0;
62 m_cpu = HepVector(10, 0);
63 m_massvector = HepVector(12,0);
64 m_virtual_wtrk.clear();
65}
HepGeom::Point3D< double > HepPoint3D
Definition: Gam4pikp.cxx:37
void setVBeamPosition(const HepSymMatrix VBeamPosition)
void setBeamPosition(const HepPoint3D BeamPosition)

Referenced by Ppjrhopi::execute(), DQAKsKpi::execute(), DQAKsKpiDEDX::execute(), DQARhopi::execute(), JsiLL::execute(), CalibEventSelect::execute(), Pi0EtaToGGRecAlg::execute(), and Pi0::Pi0ListToTDS().

◆ init() [2/2]

void KinematicFit::init ( )

◆ instance() [1/2]

KinematicFit * KinematicFit::instance ( )
static

◆ instance() [2/2]

static KinematicFit * KinematicFit::instance ( )
static

◆ origin() [1/2]

WTrackParameter KinematicFit::origin ( int  n) const
inline

◆ origin() [2/2]

WTrackParameter KinematicFit::origin ( int  n) const
inline

Definition at line 160 of file InstallArea/include/VertexFit/VertexFit/KinematicFit.h.

160{return wTrackOrigin(n);}

◆ pfit() [1/2]

HepLorentzVector KinematicFit::pfit ( int  n) const
inline

◆ pfit() [2/2]

HepLorentzVector KinematicFit::pfit ( int  n) const
inline

Definition at line 154 of file InstallArea/include/VertexFit/VertexFit/KinematicFit.h.

154{return p4Infit(n);}

◆ pfit1() [1/2]

HepLorentzVector KinematicFit::pfit1 ( int  n) const
inline

Definition at line 157 of file Analysis/VertexFit/VertexFit-00-02-82/VertexFit/KinematicFit.h.

157{return p4Origin(n);}

◆ pfit1() [2/2]

HepLorentzVector KinematicFit::pfit1 ( int  n) const
inline

Definition at line 157 of file InstallArea/include/VertexFit/VertexFit/KinematicFit.h.

157{return p4Origin(n);}

◆ pull() [1/2]

HepVector KinematicFit::pull ( int  n)

Definition at line 870 of file KinematicFit.cxx.

870 {
871 upCovmtx();
872
873 if (wTrackOrigin(n).charge()!=0){
874 HepVector W(6,0);
875 HepSymMatrix Ew(6,0);
876 HepVector W1(7,0);
877 HepSymMatrix Ew1(7,0);
879 // W = wTrackOrigin(n).w();
880 // Ew = wTrackOrigin(n).Ew();
881 //cout<<"===Origin status==="<<endl;
882 //cout<<"W = "<<W<<endl;
883 //cout<<"Ew ="<<Ew<<endl;
884 for(int i=0; i<3; i++) {
885 W[i] = pInfit(n)[i];
886 }
887 W[3] = wTrackOrigin(n).w()[4];
888 W[4] = wTrackOrigin(n).w()[5];
889 W[5] = wTrackOrigin(n).w()[6];
890 for(int j=0; j<3; j++) {
891 for(int k=0; k<3; k++) {
892 Ew[j][k] = covInfit(n)[j][k];
893 }
894 }
895
896 for(int j=3; j<6; j++) {
897 for(int k=3; k<6; k++) {
898 Ew[j][k] = wTrackOrigin(n).Ew()[j+1][k+1];
899 }
900 }
901 //
902 // define J matrix to transfer 3 parameters to 4 parameters
903 //
904 double px = p4Infit(n).px();
905 double py = p4Infit(n).py();
906 double pz = p4Infit(n).pz();
907 double e = p4Infit(n).e();
908 HepMatrix J(7, 6, 0);
909 J[0][0] = 1;
910 J[1][1] = 1;
911 J[2][2] = 1;
912 J[3][0] = px/e;
913 J[3][1] = py/e;
914 J[3][2] = pz/e;
915 J[4][3] = 1;
916 J[5][4] = 1;
917 J[6][5] = 1;
918 W1 = J * W;
919 Ew1 = Ew.similarity(J) ;
920
921
922
923 // cout<<"===Infiddt status==="<<endl;
924 // cout<<"p4 ="<<p4Infit(n)<<endl;
925 // cout<<"W ="<<wTrackOrigin(n).w()<<endl;
926 // cout<<"W1 ="<<W1<<endl;
927 // cout<<"Ew ="<<wTrackOrigin(n).Ew()<<endl;
928 // cout<<"Ew1 ="<<Ew1<<endl;
929
930 wtrk.setW(W1);
931 wtrk.setEw(Ew1);
932 setWTrackInfit(n, wtrk);
935
936 HepVector a0 = horigin.hel();
937 HepVector a1 = hinfit.hel();
938 HepSymMatrix v0 = horigin.eHel();
939 HepSymMatrix v1 = hinfit.eHel();
940 HepVector pull(11,0);
941 for (int k=0; k<5; k++) {
942 pull[k] = (a0[k]-a1[k])/sqrt(abs(v0[k][k]-v1[k][k]));
943 // cout<<"pull ["<<k<<"] ="<<pull[k]<<endl;
944 }
945 for (int l=5; l<9; l++) {
946 pull[l] = (wTrackOrigin(n).w()[l-5] - wTrackInfit(n).w()[l-5])/sqrt(abs(wTrackOrigin(n).Ew()[l-5][l-5] - wTrackInfit(n).Ew()[l-5][l-5]));
947 // cout<<"pull ["<<l<<"] ="<<pull[l]<<endl;
948 }
949
950 // pull[9] = wTrackOrigin(n).w()[3] - wTrackInfit(n).w()[3];
951 // pull[10] =1/sqrt(abs(wTrackOrigin(n).Ew()[3][3] - wTrackInfit(n).Ew()[3][3]));
952 return pull;
953 }else {
954 HepVector pull(3,0);
955 for (int m=0; m<3; m++) {
956 pull[m] = (wTrackOrigin(n).w()[m] - wTrackInfit(n).w()[m])/sqrt(abs(wTrackOrigin(n).Ew()[m][m] - wTrackInfit(n).Ew()[m][m]));
957 }
958 return pull;
959 }
960}
HepVector pull(int n)

Referenced by pull().

◆ pull() [2/2]

HepVector KinematicFit::pull ( int  n)

◆ setChisqCut() [1/2]

void KinematicFit::setChisqCut ( const double  chicut = 200,
const double  chiter = 0.05 
)
inline

Definition at line 132 of file Analysis/VertexFit/VertexFit-00-02-82/VertexFit/KinematicFit.h.

132{m_chicut = chicut;m_chiter=chiter;}

◆ setChisqCut() [2/2]

void KinematicFit::setChisqCut ( const double  chicut = 200,
const double  chiter = 0.05 
)
inline

Definition at line 132 of file InstallArea/include/VertexFit/VertexFit/KinematicFit.h.

132{m_chicut = chicut;m_chiter=chiter;}

◆ setCollideangle() [1/2]

void KinematicFit::setCollideangle ( const double  collideangle = 11e-3)
inline

◆ setCollideangle() [2/2]

void KinematicFit::setCollideangle ( const double  collideangle = 11e-3)
inline

Definition at line 138 of file InstallArea/include/VertexFit/VertexFit/KinematicFit.h.

138{m_collideangle = collideangle;}

◆ setDynamicerror() [1/2]

void KinematicFit::setDynamicerror ( const bool  dynamicerror = 1)
inline

◆ setDynamicerror() [2/2]

void KinematicFit::setDynamicerror ( const bool  dynamicerror = 1)
inline

Definition at line 139 of file InstallArea/include/VertexFit/VertexFit/KinematicFit.h.

139{m_dynamicerror = dynamicerror;}

◆ setEspread() [1/2]

void KinematicFit::setEspread ( const double  espread = 0.0009)
inline

◆ setEspread() [2/2]

void KinematicFit::setEspread ( const double  espread = 0.0009)
inline

Definition at line 137 of file InstallArea/include/VertexFit/VertexFit/KinematicFit.h.

137{m_espread = espread;}

◆ setFlag() [1/2]

void KinematicFit::setFlag ( const bool  flag = 1)
inline

◆ setFlag() [2/2]

void KinematicFit::setFlag ( const bool  flag = 1)
inline

Definition at line 130 of file InstallArea/include/VertexFit/VertexFit/KinematicFit.h.

130{m_flag = flag;}

◆ setIterNumber() [1/2]

void KinematicFit::setIterNumber ( const int  niter = 5)
inline

Definition at line 131 of file Analysis/VertexFit/VertexFit-00-02-82/VertexFit/KinematicFit.h.

131{m_niter = niter;}

Referenced by Pi0EtaToGGRecAlg::execute().

◆ setIterNumber() [2/2]

void KinematicFit::setIterNumber ( const int  niter = 5)
inline

Definition at line 131 of file InstallArea/include/VertexFit/VertexFit/KinematicFit.h.

131{m_niter = niter;}

◆ setKalman() [1/2]

void KinematicFit::setKalman ( const int  kalman)
inline

Definition at line 136 of file Analysis/VertexFit/VertexFit-00-02-82/VertexFit/KinematicFit.h.

136{m_kalman = kalman;}

◆ setKalman() [2/2]

void KinematicFit::setKalman ( const int  kalman)
inline

Definition at line 136 of file InstallArea/include/VertexFit/VertexFit/KinematicFit.h.

136{m_kalman = kalman;}

◆ wVirtualTrack() [1/2]

WTrackParameter KinematicFit::wVirtualTrack ( int  n) const
inline

Definition at line 171 of file Analysis/VertexFit/VertexFit-00-02-82/VertexFit/KinematicFit.h.

171{return m_virtual_wtrk[n];}

◆ wVirtualTrack() [2/2]

WTrackParameter KinematicFit::wVirtualTrack ( int  n) const
inline

Definition at line 171 of file InstallArea/include/VertexFit/VertexFit/KinematicFit.h.

171{return m_virtual_wtrk[n];}

The documentation for this class was generated from the following files: