EpIC 1.1.0
Monte Carlo generator for exclusive processes
Loading...
Searching...
No Matches
Particle.h
1
8#ifndef BEANS_PARTICLE_H_
9#define BEANS_PARTICLE_H_
10
11#include <TLorentzVector.h>
12#include <TVector3.h>
13#include <string>
14
15#include "../types/AxisType.h"
16#include "../types/ParticleType.h"
17
18namespace EPIC {
19
27class Particle : public PARTONS::BaseObject {
28
29public:
34
39
43 Particle(ParticleType::Type type, const TLorentzVector &lv);
44
49 Particle(ParticleType::Type type, const TVector3 &mom);
50
55 Particle(ParticleType::Type type, const TVector3 &dir, double E);
56
60 Particle(const Particle &other);
61
65 virtual ~Particle();
66
70 double getEnergy() const;
71
75 double getMass() const;
76
80 TVector3 getMomentum() const;
81
85 double getPseudoRapidity() const;
86
92 void rotate(AxisType::Type axis, double angle);
93
99 void rotate(const TVector3 &dir, double angle);
100
106 void rotate(const Particle &particle, double angle);
107
112 double getAngle(AxisType::Type axis) const;
113
118 double getAngle(const TVector3 &dir) const;
119
124 double getAngle(const Particle &particle) const;
125
130 void boost(const TVector3 &v);
131
136 void boost(const Particle &particle);
137
141 std::string toString() const;
142
143 //********************************************************
144 //*** SETTERS AND GETTERS ********************************
145 //********************************************************
146
150 const TLorentzVector &getFourMomentum() const;
151
155 void setFourMomentum(const TLorentzVector &lv);
156
161
166
167private:
168 ParticleType::Type m_type;
169 TLorentzVector m_lv;
170};
171}
172
173#endif /* BEANS_PARTICLE_H_ */
Type
Definition: AxisType.h:32
Single particle.
Definition: Particle.h:27
const TLorentzVector & getFourMomentum() const
double getAngle(const TVector3 &dir) const
Particle(ParticleType::Type type, const TVector3 &mom)
Particle(ParticleType::Type type, const TVector3 &dir, double E)
void setFourMomentum(const TLorentzVector &lv)
void rotate(const TVector3 &dir, double angle)
ParticleType::Type getType() const
void rotate(const Particle &particle, double angle)
double getAngle(AxisType::Type axis) const
double getAngle(const Particle &particle) const
void boost(const Particle &particle)
double getMass() const
double getPseudoRapidity() const
Particle(const Particle &other)
void rotate(AxisType::Type axis, double angle)
Particle(ParticleType::Type type, const TLorentzVector &lv)
TVector3 getMomentum() const
void boost(const TVector3 &v)
std::string toString() const
Particle(ParticleType::Type type)
void setType(ParticleType::Type type)
double getEnergy() const
virtual ~Particle()
Type
Definition: ParticleType.h:33