6 #include "masterclass/dataobjects/BParticle.h"
9 BParticle::BParticle(
float px,
float py,
float pz,
float e,
10 float charge, SIMPLEPID pid)
21 float BParticle::GetMass(SIMPLEPID pid)
25 case PHOTON:
return 0;
26 case ELECTRON:
return 0.51;
27 case PION:
return 0.139;
28 case MUON:
return 0.105;
29 case KAON:
return 0.497;
30 case PROTON:
return 0.938;
31 case JPSI:
return 3.1;
33 case DSTAR:
return 2.01;
35 case PHI:
return 1.02;
36 case LAMBDA0:
return 1.115683;
43 float BParticle::GetMass()
45 float m2 = m_e * m_e - m_px * m_px - m_py * m_py - m_pz * m_pz;
50 void BParticle::SetEnergyFromMass(
float mass)
53 m_e = sqrt(mass * mass + m_px * m_px + m_py * m_py + m_pz * m_pz);
57 void BParticle::SetEnergyFromPid()
59 SetEnergyFromMass(GetMass(m_pid));
62 int SelectParticles(TClonesArray* pin ,
int charge, SIMPLEPID type, TClonesArray* pout)
68 if (p->charge() ==
charge && p->pid() == type) {
69 TClonesArray& list = *pout;
76 int CombineParticles(TClonesArray* plist1 , TClonesArray* plist2 ,
int same,
float masslow,
float massup, SIMPLEPID pid,
85 for (TIter next2 = (plist1 != plist2 && same == 0) ? TIter(plist2) : TIter(next1) ;
BParticle* p2 = (
BParticle*) next2();) {
87 if (p.InMassRange(masslow, massup)) {
89 TClonesArray& list = *pout;