1#ifndef __JAANET__JLORENTZBOOST__
2#define __JAANET__JLORENTZBOOST__
22#include "Math/Vector4D.h"
23#include "Math/GenVector/Boost.h"
24#include "Math/GenVector/LorentzVector.h"
39 using ROOT::Math::Boost;
40 using ROOT::Math::LorentzVector;
75 return 1.0 / sqrt(1.0 -
beta2);
85 template<
class CoordSystem>
88 return static_cast<const Boost&
>(*this)(
x4);
100 using namespace ROOT::Math;
108 vertex.setT(x1.T() / getSpeedOfLight());
119 const double mass)
const
122 using namespace ROOT::Math;
152 using namespace ROOT::Math;
166 if (
track.dir.len() > 0) {
track.dir.normalize(); }
220 for (T i = __begin; i != __end; ++i) {
235 (*this)(
event.mc_trks.begin(),
event.mc_trks.end());
236 (*this)(
event.mc_hits.begin(),
event.mc_hits.end());
237 (*this)(
event.trks.begin(),
event.trks.end());
238 (*this)(
event.hits.begin(),
event.hits.end());
261 THROW(
JValueOutOfRange,
"getBoostToCOM(): Given event does not correspond to a neutrino interaction.");
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
Data structure for position in three dimensions.
Data structure for vector in three dimensions.
double getY() const
Get y position.
double getDistance(const JVector3D &pos) const
Get distance to point.
double getZ() const
Get z position.
double getX() const
Get x position.
Data structure for normalised vector in three dimensions.
double getT(const JVector3D &pos) const
Get arrival time of Cherenkov light at given position.
Exception for accessing a value in a collection that is outside of its range.
Template definition of a multi-dimensional oscillation probability interpolation table.
Extensions to Evt data format.
void boostToCOM(Evt &event)
Boost event to the Center of Mass (COM) frame.
double getKineticEnergy(const Trk &trk)
Get track kinetic energy.
bool has_neutrino(const Evt &evt)
Test whether given event has an incoming neutrino.
bool is_finalstate(const Trk &track)
Test whether given track corresponds to a final state particle.
double getE0(const Evt &evt)
Get initial state energy of a neutrino interaction.
bool is_initialstate(const Trk &track)
Test whether given track corresponds to an initial state particle.
JPosition3D getPosition(const Vec &pos)
Get position.
JLorentzBoost getBoostToCOM(const Evt &event)
Get Lorentz boost to the Center of Mass (COM) frame for a given neutrino interaction.
const Trk & get_neutrino(const Evt &evt)
Get incoming neutrino.
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
The Evt class respresent a Monte Carlo (MC) event as well as an offline event.
Auxiliary class for performing Lorentz boosts.
void operator()(JTrack3E &track, const double mass) const
Lorentz boost operator.
void operator()(JVertex3D &vertex) const
Lorentz boost operator.
void operator()(Hit &hit) const
Lorentz boost operator.
void operator()(Trk &track) const
Lorentz boost operator.
double getGamma() const
Retrieve gamma factor.
void operator()(T __begin, T __end) const
Lorentz boost operator.
JLorentzBoost()
Default constructor.
LorentzVector< CoordSystem > operator()(const LorentzVector< CoordSystem > &x4) const
Lorentz boost operator.
void operator()(Evt &event) const
Lorentz boost operator.
JLorentzBoost(const Boost &boost)
Copy constructor.
The Trk class represents a Monte Carlo (MC) particle as well as a reconstructed track/shower.
The Vec class is a straightforward 3-d vector, which also works in pyroot.
static const int TRK_ST_ININUCLEI
Initial state nuclei (gseagen)