40 passSelection(particle_.passSelection),
41 genStatus(particle_.genStatus),
42 lifetime(particle_.lifetime),
43 mothers(particle_.mothers),
44 daughters(particle_.daughters)
53 std::swap(
id, particle_.
id);
54 std::swap(
p4, particle_.
p4);
73 std::vector<int> result;
74 for (
auto& dau:
daughters){
if (dau) result.push_back(dau->id); }
78 for (
auto* part:
mothers){
if (part) part->getRelatedParticles(particles); }
79 for (
auto* part:
daughters){
if (part) part->getRelatedParticles(particles); }
83 for (
auto* part:
daughters){
if (part) part->getDaughterParticles(particles); }
92 if (
isAWBoson(
id) || abs(
id)==37 || abs(
id)==2212 || abs(
id)==211 || abs(
id)==321 || abs(
id)==411 || abs(
id)==521) cpos = 1.;
96 if (
id<0) cpos *= -1.;
103 std::vector<MELAParticle*> particles;
105 for (std::vector<MELAParticle*>::iterator it = particles.begin(); it<particles.end(); it++) (*it)->boost(vec,
false);
110 <<
"MELAParticle::boost: "
111 <<
"|v|**2 = " << vec.Mag2() <<
" >=1 cannot be used to boost. "
112 <<
"v = ( " << vec.X() <<
" , " << vec.Y() <<
" , " << vec.Z() <<
" )"
117 return TUtilHelpers::checkElementExists<MELAParticle const*, MELAParticle*>(myParticle, particleArray);
121 if (!part1 || !part2)
return res;
129 double const part_mass = this->
m();
130 TVector3
const part_vec = this->
vect();
133 if (part_mass>0.) res = part_vec * (
lifetime/part_mass);