1#ifndef AMPGEN_KINEMATICS_H
2#define AMPGEN_KINEMATICS_H
8#include <TLorentzVector.h>
26 HelicityCosine(
const std::vector<unsigned>& p1,
const std::vector<unsigned>& p2,
27 const std::vector<unsigned>& pR);
29 HelicityCosine(
const unsigned& i,
const unsigned& j,
const std::vector<unsigned>& pR);
31 double operator()( std::vector<Event>::iterator evt )
const;
34 std::vector<unsigned> _i, _j, _pR;
42 MomentumTransfer(
const std::vector<unsigned>& _p1,
const std::vector<unsigned>& _p2 );
45 double Q2(
const double& s,
const double& s1,
const double& s2 )
const;
46 std::vector<unsigned> p1;
47 std::vector<unsigned> p2;
48 std::vector<unsigned> s;
62 double phi(
const Event& evt,
int i,
int j,
int k,
int w );
64 std::vector<double>
rotate(
const std::vector<double>& input,
const std::vector<double>& n,
const double& v );
65 void boost(
Event& evt,
const std::tuple<double, double, double>& n,
const double& v );
66 void rotate(
Event& evt,
const std::tuple<double, double, double>& n,
const double& v );
68 void rotateBasis(
Event& evt,
const TVector3& p1,
const TVector3& p2,
const TVector3& p3 );
77 double dotProduct(
const TLorentzVector& p1,
const TLorentzVector& p2,
const TLorentzVector& pX );
Encapsulates the final state particles of a single event.
double operator()(const Event &evt) const
double operator()(std::vector< Event >::iterator evt) const
HelicityCosine(const std::vector< unsigned > &p1, const std::vector< unsigned > &p2, const std::vector< unsigned > &pR)
HelicityCosine(const unsigned &i, const unsigned &j, const std::vector< unsigned > &pR)
MomentumTransfer(const std::vector< unsigned > &_p1, const std::vector< unsigned > &_p2)
double operator()(const Event &evt) const
TLorentzVector pFromEvent(const Event &evt, const unsigned &ref)
Helper function to extract a TLorentzVector of the ith decay product from an AmpGen::Event.
double acoplanarity(const Event &evt)
The extent to which a four body decay occurs within a single decay frame.
double dotProduct(const TLorentzVector &p1, const TLorentzVector &p2, const TLorentzVector &pX)
Helper function to calculate the (space-like) dot product between vectors p1 and p2 in the rest frame...
void boost(Event &evt, const std::tuple< double, double, double > &n, const double &v)
double phi(const Event &evt, int i, int j, int k, int w)
void rotateBasis(Event &evt, const TVector3 &p1, const TVector3 &p2, const TVector3 &p3)
double PHI(const Event &evt)
std::vector< double > rotate(const std::vector< double > &input, const std::vector< double > &n, const double &v)