1 #ifndef __JSIRENE__JEVENTSHAPEVARIABLES__
2 #define __JSIRENE__JEVENTSHAPEVARIABLES__
24 namespace JPP {
using namespace JSIRENE; }
48 static const int MAX_STEPS = 20;
49 static const double epsilon = 1e-9;
52 Vec axis0(0.0, 0.0, 0.0);
69 THROW(JValueOutOfRange,
"getThrust(): No final state tracks given.");
77 double res = numeric_limits<double>::max();
79 for (
int k = 0; k < MAX_STEPS && res >
epsilon; ++
k) {
81 Vec axis1(0.0, 0.0, 0.0);
89 axis1 += (p.
dot(axis0) > 0.0 ? p : -p);
95 res = acos( axis0.
dot(axis1) );
111 pSum += fabs(p.
dot(axis0));
183 for (
int k = 0;
k < (int) this->size(); ++
k) {
184 (*this)[
k] += getContribution(p0, p1,
k) / Evis / Evis;
256 const double r = 2.0)
271 a00 += c * p.
x * p.
x;
272 a01 += c * p.
x * p.
y;
273 a02 += c * p.
x * p.
z;
275 a10 += c * p.
y * p.
x;
276 a11 += c * p.
y * p.
y;
277 a12 += c * p.
y * p.
z;
279 a20 += c * p.
z * p.
x;
280 a21 += c * p.
z * p.
y;
281 a22 += c * p.
z * p.
z;
283 norm += c * p.
dot(p);
300 const double r = 2.0) :
323 return 3 * (lambda[1] + lambda[2]) / 2.0;
334 return 3 * lambda[2] / 2.0;
345 return (fabs(lambda[0] + lambda[1]) > 0.0 ?
346 2 * lambda[1] / (lambda[0] + lambda[1]) : 0.0);
357 return 4 * lambda[0] * lambda[1] / (lambda[0] + lambda[1]) / (lambda[0] + lambda[1]);
368 return 3 * (lambda[0]*lambda[1] + lambda[0]*lambda[2] + lambda[1]*lambda[2]);
379 return 27 * lambda[0] * lambda[1] * lambda[2];
437 lambda = getEigenValues();
461 return lambda[2] / (lambda[0] + lambda[1] + lambda[2]);
eigen_values getEigenValues(const double epsilon=1e-6) const
Get eigen values.
then fatal No hydrophone data file $HYDROPHONE_TXT fi sort gr k
Class for hit inertia tensor calculations.
std::vector< double >::reference reference
Auxiliary methods for mathematics.
double getContribution(const Vec &p0, const Vec &p1, const size_t n)
Get contribution to Fox-Wolfram moment from two momenta.
JSphericityTensor(const Evt &event, const double r=2.0)
Constructor.
Class for computing Fox-Wolfram moments.
JFoxWolframMoments(const Evt &event, const JCylinder3D &can=getMaximumContainmentVolume(), const int N=4)
Constructor.
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
JFoxWolframMoments()
Default constructor.
double len() const
Get length.
eigen_values lambda
sorted eigenvalues
bool is_finalstate(const Trk &track)
Test whether given track corresponds to a final state particle.
double getD() const
Get D-variable.
double dot(const Vec &v) const
Get dot product.
JFoxWolframMoments(const std::vector< Trk >::const_iterator __begin, const std::vector< Trk >::const_iterator __end, const JCylinder3D &can=getMaximumContainmentVolume(), const int N=4)
Constructor.
The Vec class is a straightforward 3-d vector, which also works in pyroot.
JSphericityTensor(std::vector< Trk >::const_iterator __begin, std::vector< Trk >::const_iterator __end, const double r=2.0)
Constructor.
double getKineticEnergy(const double E, const double m)
Get kinetic energy of particle with given mass.
Class for sphericity tensor calculations.
double getC() const
Get C-variable.
const JCylinder3D getMaximumContainmentVolume()
Auxiliary function to retrieve the maximum cylindrical containment volume.
JSphericityTensor()
Default constructor.
JPosition3D getPosition(const Vec &pos)
Get position.
const eigen_values & getEigenValues() const
Get eigenvalues.
T pow(const T &x, const double y)
Power .
double getVisibleEnergy(const Trk &track, const JCylinder3D &can=getMaximumContainmentVolume())
Get the visible energy of a track.
double getAplanarity() const
Get aplanarity.
double getY() const
Get y position.
double getLengthSquared() const
Get length squared.
Vec & normalize()
Normalise this vector.
JMatrix3S::eigen_values eigen_values
double getSphericity() const
Get sphericity.
$WORKDIR ev_configure_dqsimulator txt echo process $DQ_SIMULATOR $i $SOURCE_HOST[$index] csh c(setenv ROOTSYS $ROOTSYS &&source $JPP_DIR/setenv.csh $JPP_DIR &&($DQ_SIMULATOR\-u\$NAME\$\-H\$SERVER\$\-M\$LOGGER\$\-d $DEBUG</dev/null > &/dev/null &))'
then usage $script< input file >[option[primary[working directory]]] nWhere option can be N
double getCircularity() const
Get circularity.
JHitInertiaTensor(const Evt &event, const JPosition3D &reference)
Constructor.
double legendre(const size_t n, const double x)
Legendre polynome.
double getX() const
Get x position.
JHitInertiaTensor()
Default constructor.
Data structure for position in three dimensions.
double getEigenvalueRatio() const
Get eigenvalue ratio.
JHitInertiaTensor(std::vector< Hit >::const_iterator __begin, std::vector< Hit >::const_iterator __end, const JPosition3D &reference)
Constructor.
do echo Generating $dir eval D
double getZ() const
Get z position.
double getPlanarFlow() const
Get planar flow.
std::vector< Trk > mc_trks
MC: list of MC truth tracks.
JMatrix3S::eigen_values eigen_values
eigen_values lambda
eigenvalues
The Evt class respresent a Monte Carlo (MC) event as well as an offline event.
double getThrust(const std::vector< Trk >::const_iterator __begin, const std::vector< Trk >::const_iterator __end)
Compute thrust for a given range of tracks.