1 #ifndef __JFIT__JLINE1ZESTIMATOR__ 
    2 #define __JFIT__JLINE1ZESTIMATOR__ 
   19 namespace JPP { 
using namespace JFIT; }
 
  111       (*this)(__begin, __end);
 
  135       if (
N >= NUMBER_OF_PARAMETERS) {
 
  144         for (
T i = __begin; i != __end; ++i) {
 
  151         const double W = 1.0/
N;
 
  168         double xi =  j->getX() - getX();
 
  169         double yi =  j->getY() - getY();
 
  174           if ((
done = (++j == __end))) {
 
  178           double xj =  j->getX() - getX();
 
  179           double yj =  j->getY() - getY();
 
  186           const double y  = ((xj + xi) * dx +
 
  218         if (fabs(svd.S.a11) < MINIMAL_SVD_WEIGHT * fabs(svd.S.a00)) {
 
  219           THROW(
JValueOutOfRange, 
"JEstimator<JLine1Z>::JEstimator(): singular value " << svd.S.a11 << 
' ' << svd.S.a00);
 
  222         V = svd.invert(MINIMAL_SVD_WEIGHT);
 
  224         __x += 
V.a00 * y0  +  
V.a01 * y1  +  
V.a02 * y2;
 
  225         __y += 
V.a10 * y0  +  
V.a11 * y1  +  
V.a12 * y2;
 
  226         __t  = 
V.a20 * y0  +  
V.a21 * y1  +  
V.a22 * y2;
 
  232         throw JValueOutOfRange(
"JEstimator<JLine1Z>::JEstimator(): Not enough data points.");
 
  263       if (
N != (
int) A.
size()) {
 
  267       if (
N >= NUMBER_OF_PARAMETERS) {
 
  277         for (
size_t row = 0; row != A.
size(); ++row, ++i) {
 
  279           const double dx = i->getX() - getX();
 
  280           const double dy = i->getY() - getY();
 
  282           const double rt = sqrt(dx*dx + dy*dy);
 
  295           for (
size_t col = 0; col != A.
size(); ++col, ++
j) {
 
  297             const double dx = j->getX() - getX();
 
  298             const double dy = j->getY() - getY();
 
  299             const double dz = j->getZ() - getZ();
 
  301             const double rt = sqrt(dx*dx + dy*dy);
 
  314             const double vs = 
A(row,col);
 
  320             V.a00 += xr * vs * xc;
 
  321             V.a01 += xr * vs * yc;
 
  322             V.a02 += xr * vs * tc;
 
  323             V.a11 += yr * vs * yc;
 
  324             V.a12 += yr * vs * tc;
 
  325             V.a22 += tr * vs * tc;
 
  335         if (fabs(svd.S.a11) < MINIMAL_SVD_WEIGHT * fabs(svd.S.a00)) {
 
  336           THROW(
JValueOutOfRange, 
"JEstimator<JLine1Z>::update(): singular value " << svd.S.a11 << 
' ' << svd.S.a00);
 
  339         V = svd.invert(MINIMAL_SVD_WEIGHT);
 
  341         __x += 
V.a00 * x1  +  
V.a01 * y1  +  
V.a02 * t1;
 
  342         __y += 
V.a10 * x1  +  
V.a11 * y1  +  
V.a12 * t1;
 
  343         __t  = 
V.a20 * x1  +  
V.a21 * y1  +  
V.a22 * t1;
 
  351     static const int NUMBER_OF_PARAMETERS  =  3;  
 
Linear fit of straight line parallel to z-axis to set of hits (objects with position and time)...
 
double getKappaC()
Get average R-dependence of arrival time of Cherenkov light (a.k.a. 
 
std::vector< T >::difference_type distance(typename std::vector< T >::const_iterator first, typename PhysicsEvent::const_iterator< T > second)
Specialisation of STL distance. 
 
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message. 
 
JEstimator()
Default constructor. 
 
Template definition of linear fit. 
 
V(JDAQEvent-JTriggerReprocessor)*1.0/(JDAQEvent+1.0e-10)
 
JEstimator(T __begin, T __end)
Constructor. 
 
Determination of the co-variance matrix of hits for a track along z-axis (JFIT::JLine1Z). 
 
void update(T __begin, T __end, const JMatrixNZ &A)
Update track parameters using updated co-variance matrix (e.g. matrix with one hit switched off)...
 
do set_variable OUTPUT_DIRECTORY $WORKDIR T
 
const JEstimator< JLine1Z > & operator()(T __begin, T __end)
Fit. 
 
Singular value decomposition. 
 
JMATH::JMatrix3S V
co-variance matrix of fit parameters 
 
size_t size() const 
Get dimension of matrix. 
 
then usage $script< input file >[option[primary[working directory]]] nWhere option can be N
 
const double getSpeedOfLight()
Get speed of light. 
 
const double getInverseSpeedOfLight()
Get inverse speed of light. 
 
Data structure for fit of straight line paralel to z-axis. 
 
Exception for accessing a value in a collection that is outside of its range. 
 
source $JPP_DIR setenv csh $JPP_DIR &dev null eval JShellParser o a A
 
static double MINIMAL_SVD_WEIGHT
minimal SVD weight.