15 #include "MathUtils.h"
54 : _pdgId(0), _3Q(0), _prompt(false), _decays(false), _prod_vertex(), _decay_vertex() { }
57 Particle(
double px,
double py,
double pz,
double E,
int pdgid)
58 : _p4(px, py, pz,
E), _pdgId(pdgid), _3Q(0), _prompt(false), _decays(false), _prod_vertex(), _decay_vertex() { }
67 : _p4(
mom), _pdgId(pdgid),_3Q(0), _prompt(false), _decays(false), _prod_vertex(), _decay_vertex() { }
71 : _p4(p.
mom()), _pdgId(p.
pid()), _3Q(p.get_3Q()), _prompt(p.
is_prompt()), _decays(p.does_decay()), _prod_vertex(p.prod_vertex()), _decay_vertex(p.decay_vertex()) { }
75 : _p4(p->
mom()), _pdgId(p->
pid()), _3Q(p->get_3Q()), _prompt(p->
is_prompt()), _decays(p->does_decay()), _prod_vertex(p->prod_vertex()), _decay_vertex(p->decay_vertex()) { }
83 _decays= p.does_decay();
84 _prod_vertex = p.prod_vertex();
85 _decay_vertex = p.decay_vertex();
96 operator const P4& ()
const {
return mom(); }
98 operator const P4* ()
const {
return &
mom(); }
109 const P4&
mom()
const {
return _p4; }
116 void translate_zt(
double dz,
double dt)
118 _prod_vertex.translate_zt(dz,dt);
121 _decay_vertex.translate_zt(dz,dt);
126 const P4& prod_vertex()
const {
return _prod_vertex; }
127 const P4& decay_vertex()
const {
return _decay_vertex; }
129 void set_prod(
const P4& p4) { _prod_vertex = p4; }
130 void set_decay(
const P4& p4) { _decay_vertex = p4; _decays=
true;}
132 bool does_decay()
const {
return _decays; }
134 void set_3Q(
int qqq) {_3Q = qqq;}
135 int get_3Q()
const {
return _3Q;}
159 double E()
const {
return mom().E(); }
167 double p()
const {
return mom().
p();}
187 int pid()
const {
return _pdgId; }
189 int abspid()
const {
return abs(_pdgId); }
A 4-momentum class for vectors.
Definition: Vectors.h:45
double eta() const
Get the spatial vector pseudorapidity.
Definition: Vectors.h:465
double absrap() const
Get the 4-momentum absolute rapidity.
Definition: Vectors.h:471
double pT() const
Get the transverse momentum (same as rho)
Definition: Vectors.h:453
double phi() const
Get the spatial phi.
Definition: Vectors.h:461
double m() const
Get m.
Definition: Vectors.h:414
double pT2() const
Get the transverse momentum squared (same as rho2)
Definition: Vectors.h:451
double abseta() const
Get the spatial vector absolute pseudorapidity.
Definition: Vectors.h:467
P4 & setM(double mass)
Set the mass // Mark: preserve momentum, update energy.
Definition: Vectors.h:174
double rap() const
Get the 4-momentum rapidity.
Definition: Vectors.h:469
double p() const
Get the spatial 3-vector |p|.
Definition: Vectors.h:443
Definition: Particle.h:24
int pid() const
Get PDG ID code.
Definition: Particle.h:187
void set_mom(const P4 &p4)
Set the 4 vector.
Definition: Particle.h:113
Particle & operator=(const Particle &p)
Copy assignment operator.
Definition: Particle.h:78
double rap() const
Get the rapidity.
Definition: Particle.h:150
double abseta() const
Get the abs pseudorapidity.
Definition: Particle.h:147
Particle()
Default constructor.
Definition: Particle.h:53
void set_pid(int pid)
Set PDG ID code.
Definition: Particle.h:191
const P4 & mom() const
Get the 4 vector.
Definition: Particle.h:109
void set_mass(double mass)
Set the mass (of the 4 vector)
Definition: Particle.h:140
Particle(const Particle &p)
Copy constructor.
Definition: Particle.h:70
double pT2() const
Get the squared transverse momentum.
Definition: Particle.h:162
void set_prompt(bool isprompt=true)
Set promptness.
Definition: Particle.h:178
double absrap() const
Get the abs rapidity.
Definition: Particle.h:153
double eta() const
Get the pseudorapidity.
Definition: Particle.h:144
Particle(const Particle *p)
Copy constructor from a pointer.
Definition: Particle.h:74
double E() const
Get the energy.
Definition: Particle.h:159
int abspid() const
Get abs PDG ID code.
Definition: Particle.h:189
double pT() const
Get the squared transverse momentum.
Definition: Particle.h:165
double mass()
Get the mass (of the 4 vector)
Definition: Particle.h:138
double phi() const
Get the azimuthal angle.
Definition: Particle.h:156
bool is_prompt() const
Is this particle connected to the hard process or from a hadron/tau decay?
Definition: Particle.h:176
Particle(double px, double py, double pz, double E, int pdgid)
"Cartesian" constructor
Definition: Particle.h:57
Particle(const P4 &mom, int pdgid)
4-mom + PDG ID constructor
Definition: Particle.h:66
Modified by Mark Goodsell goodsell@lpthe.jussieu.fr
Definition: ATLAS_SUSY_2018_16.cc:27