Auxiliary class for performing Lorentz boosts.
More...
#include <JLorentzBoost.hh>
Auxiliary class for performing Lorentz boosts.
Definition at line 45 of file JLorentzBoost.hh.
JAANET::JLorentzBoost::JLorentzBoost |
( |
| ) |
|
|
inline |
JAANET::JLorentzBoost::JLorentzBoost |
( |
const Boost & |
boost | ) |
|
|
inline |
double JAANET::JLorentzBoost::getGamma |
( |
| ) |
const |
|
inline |
Retrieve gamma factor.
- Returns
- gamma factor
Definition at line 70 of file JLorentzBoost.hh.
72 const double beta2 = this->BetaVector().Mag2();
74 return 1.0 / sqrt(1.0 - beta2);
template<class CoordSystem >
LorentzVector<CoordSystem> JAANET::JLorentzBoost::operator() |
( |
const LorentzVector< CoordSystem > & |
x4 | ) |
const |
|
inline |
Lorentz boost operator.
- Parameters
-
- Returns
- boosted 4-vector
Definition at line 85 of file JLorentzBoost.hh.
87 return static_cast<const Boost&
>(*this)(x4);
void JAANET::JLorentzBoost::operator() |
( |
JVertex3D & |
vertex | ) |
const |
|
inline |
Lorentz boost operator.
- Parameters
-
Definition at line 96 of file JLorentzBoost.hh.
99 using namespace ROOT::Math;
101 const XYZTVector x0(vertex.getX(), vertex.getY(), vertex.getZ(), vertex.getT() *
getSpeedOfLight());
102 const XYZTVector x1 = (*this)(x0);
104 const JPosition3D pos1(x1.X(), x1.Y(), x1.Z());
106 vertex.setPosition(pos1);
const double getSpeedOfLight()
Get speed of light.
void JAANET::JLorentzBoost::operator() |
( |
JTrack3E & |
track, |
|
|
const double |
mass |
|
) |
| const |
|
inline |
Lorentz boost operator.
- Parameters
-
track | track |
mass | track particle mass |
Definition at line 117 of file JLorentzBoost.hh.
121 using namespace ROOT::Math;
125 const XYZTVector x0(track.getX(), track.getY(), track.getZ(), track.getT() *
getSpeedOfLight());
126 const XYZTVector x1 = (*this)(x0);
128 const PxPyPzEVector p0(Ekin * track.getDX(), Ekin * track.getDY(), Ekin * track.getDZ(), track.getE());
129 const PxPyPzEVector
p1 = (*this)(p0);
131 const JVector3D pos1(x1.X(), x1.Y(), x1.Z());
132 const JVersor3D dir1(
p1.X(),
p1.Y(),
p1.Z());
134 track.setPosition (pos1);
135 track.setDirection(dir1);
double getKineticEnergy(const double E, const double m)
Get kinetic energy of particle with given mass.
const double getSpeedOfLight()
Get speed of light.
void JAANET::JLorentzBoost::operator() |
( |
Trk & |
track | ) |
const |
|
inline |
Lorentz boost operator.
N.B.: Only initial and final state tracks are boosted.
- Parameters
-
Definition at line 147 of file JLorentzBoost.hh.
151 using namespace ROOT::Math;
160 const PxPyPzEVector p0(Ekin.
x, Ekin.
y, Ekin.
z, track.
E);
161 const PxPyPzEVector
p1 = (*this)(p0);
164 track.
dir =
Vec(p1.Px(), p1.Py(), p1.Pz());
178 track.
pos =
Vec(x0.getX(), x0.getY(), x0.getZ());
180 track.
len = x0.getDistance(x1);
double t
track time [ns] (when the particle is at pos )
double E
Energy [GeV] (either MC truth or reconstructed)
double len() const
Get length.
bool is_finalstate(const Trk &track)
Test whether given track corresponds to a final state particle.
The Vec class is a straightforward 3-d vector, which also works in pyroot.
double getKineticEnergy(const double E, const double m)
Get kinetic energy of particle with given mass.
JPosition3D getPosition(const Vec &pos)
Get position.
double len
length, if applicable [m]
static const int TRK_ST_ININUCLEI
Initial state nuclei (gseagen)
bool is_initialstate(const Trk &track)
Test whether given track corresponds to an initial state particle.
Vec & normalize()
Normalise this vector.
int status
MC status code, see km3net-dataformat/definitions/trkmembers.csv for values.
Vec pos
postion [m] of the track at time t
const double getSpeedOfLight()
Get speed of light.
void JAANET::JLorentzBoost::operator() |
( |
Hit & |
hit | ) |
const |
|
inline |
Lorentz boost operator.
N.B.: The time-over-threshold is not boosted.
- Parameters
-
Definition at line 191 of file JLorentzBoost.hh.
196 const double dt = hit.
t - hit.
tdc;
201 hit.
pos =
Vec(vertex.getX(), vertex.getY(), vertex.getZ());
202 hit.
t = vertex.getT();
unsigned int tdc
hit tdc (=time in ns)
The Vec class is a straightforward 3-d vector, which also works in pyroot.
JPosition3D getPosition(const Vec &pos)
Get position.
double getGamma() const
Retrieve gamma factor.
double t
hit time (from tdc+calibration or MC truth)
template<class T >
void JAANET::JLorentzBoost::operator() |
( |
T |
__begin, |
|
|
T |
__end |
|
) |
| const |
|
inline |
Lorentz boost operator.
- Parameters
-
__begin | begin of data |
__end | end of data |
Definition at line 215 of file JLorentzBoost.hh.
219 for (
T i = __begin;
i != __end; ++
i) {
do set_variable OUTPUT_DIRECTORY $WORKDIR T
void JAANET::JLorentzBoost::operator() |
( |
Evt & |
event | ) |
const |
|
inline |
Lorentz boost operator.
N.B.: Intermediate state tracks as well as
the event timestamps and MC-time variable are not boosted.
- Parameters
-
Definition at line 232 of file JLorentzBoost.hh.
234 (*this)(
event.mc_trks.begin(),
event.mc_trks.end());
235 (*this)(
event.mc_hits.begin(),
event.mc_hits.end());
236 (*this)(
event.trks.begin(),
event.trks.end());
237 (*this)(
event.hits.begin(),
event.hits.end());
The documentation for this struct was generated from the following file: