27#define MATRIX_BOUND_CHECK
31#include "CLHEP/Matrix/Vector.h"
32#include "CLHEP/Matrix/SymMatrix.h"
33#include "CLHEP/Matrix/Matrix.h"
34#include "MdcRecoUtil/Code.h"
35using CLHEP::HepVector;
36using CLHEP::HepMatrix;
37using CLHEP::HepSymMatrix;
55 (
double s,
int npar=0);
58 (
double s,
const HepVector& d);
81 inline void setDerivative(
int i,
double value) { _derivatives[i-1]=value;}
87 inline double number()
const {
return _number;}
90 inline double derivative(
int i)
const {
return _derivatives[i-1];}
91 inline int nMax() {
return _nmax;}
92 inline int nPar()
const {
return _npar;}
94 double error(
const HepSymMatrix& e)
const;
130 inline double sign()const {
return _number>=0 ? 1 : -1; }
235 double _derivatives[_nmax];
240 inline DifNumber& copyDerivs(
const HepVector&
v);
252#include "MdcRecoUtil/DifNumber.icc"
**********Class see also m_nmax DOUBLE PRECISION m_amel DOUBLE PRECISION m_x2 DOUBLE PRECISION m_alfinv DOUBLE PRECISION m_Xenph INTEGER m_KeyWtm INTEGER m_idyfs DOUBLE PRECISION m_zini DOUBLE PRECISION m_q2 DOUBLE PRECISION m_Wt_KF DOUBLE PRECISION m_WtCut INTEGER m_KFfin *COMMON c_KarLud $ !Input CMS energy[GeV] $ !CMS energy after beam spread beam strahlung[GeV] $ !Beam energy spread[GeV] $ !z boost due to beam spread $ !electron beam mass *ff pair spectrum $ !minimum v
DifNumber solveQuad(const DifNumber &a, const DifNumber &b, const DifNumber &c, int pref, Code &code)
friend bool operator==(const DifNumber &a, const DifNumber &b)
void fetchDerivatives(HepVector &v) const
friend DifNumber atan2(const DifNumber &y, const double &x)
friend DifNumber operator*(const DifNumber &a, const double &b)
friend DifNumber operator+(const DifNumber &a, const double &b)
friend bool operator>=(const DifNumber &a, const DifNumber &b)
DifNumber & power(double p)
void setIndepPar(const DifIndepPar *par)
HepVector derivatives() const
friend bool operator<(const DifNumber &a, const double &b)
double correlation(const DifNumber &b, const HepSymMatrix &e) const
friend bool operator>=(const double &a, const DifNumber &b)
friend bool operator==(const double &a, const DifNumber &b)
friend DifNumber asin(const DifNumber &a)
friend DifNumber operator-(const DifNumber &a, const double &b)
friend bool operator<(const DifNumber &a, const DifNumber &b)
friend DifNumber pow(const DifNumber &a, const DifNumber &b)
DifNumber(double s, int i, int npar)
friend bool operator!=(const DifNumber &a, const double &b)
friend DifNumber sqrt(const DifNumber &a)
DifNumber & operator=(const double &a)
friend bool operator>(const DifNumber &a, const double &b)
friend bool operator>(const DifNumber &a, const DifNumber &b)
friend DifNumber fabs(const DifNumber &a)
DifNumber & operator=(const DifNumber &a)
friend DifNumber operator/(const DifNumber &a, const double &b)
friend DifNumber operator+(const double &a, const DifNumber &b)
DifNumber operator-() const
friend DifNumber pow(const DifNumber &a, double i)
friend DifNumber sinh(const DifNumber &a)
DifNumber & operator/=(const DifNumber &a)
friend DifNumber tanh(const DifNumber &a)
friend bool operator>(const double &a, const DifNumber &b)
DifNumber(const DifNumber &s)
friend bool operator<(const double &a, const DifNumber &b)
double correlation(const DifNumber &b) const
friend DifNumber atan(const DifNumber &a)
friend DifNumber pow(const DifNumber &a, float i)
friend DifNumber operator*(const double &a, const DifNumber &b)
friend DifNumber tan(const DifNumber &a)
DifNumber & mod(double lo, double hi)
friend DifNumber exp(const DifNumber &a)
DifNumber(double s, const DifIndepPar *indeppar)
friend DifNumber pow(const DifNumber &a, int i)
friend DifNumber operator-(const double &a, const DifNumber &b)
double derivative(int i) const
friend DifNumber sin(const DifNumber &a)
friend DifNumber operator/(const DifNumber &a, const DifNumber &b)
friend DifNumber log(const DifNumber &a)
DifNumber(double s, int i, double di, int npar)
void fetchNumber(double &n) const
DifNumber & operator/=(const double &a)
const DifIndepPar * indepPar() const
friend DifNumber atan2(const DifNumber &y, const DifNumber &x)
DifNumber(double s, int i, const DifIndepPar *indepar)
friend bool operator<=(const DifNumber &a, const double &b)
friend DifNumber acos(const DifNumber &a)
DifNumber & operator*=(const DifNumber &a)
friend bool operator>=(const DifNumber &a, const double &b)
DifNumber & operator+=(const double &a)
friend bool operator!=(const DifNumber &a, const DifNumber &b)
void cosAndSin(DifNumber &c, DifNumber &s) const
friend DifNumber sec(const DifNumber &a)
DifNumber & operator-=(const double &a)
DifNumber & operator-=(const DifNumber &a)
friend bool operator<=(const DifNumber &a, const DifNumber &b)
friend DifNumber cosh(const DifNumber &a)
DifNumber & operator*=(const double &a)
void sumMatrix(HepMatrix &m) const
void setDerivative(int i, double value)
DifNumber & operator+=(const DifNumber &a)
friend double correlation(const DifNumber &a, const DifNumber &b, const HepSymMatrix &e)
friend DifNumber operator+(const DifNumber &a, const DifNumber &b)
double error(const HepSymMatrix &e) const
friend DifNumber operator-(const DifNumber &a, const DifNumber &b)
friend DifNumber cos(const DifNumber &a)
void setDerivatives(const HepVector &d)
friend DifNumber operator*(const DifNumber &a, const DifNumber &b)
friend bool operator!=(const double &a, const DifNumber &b)
DifNumber & arcTangent(const DifNumber &x)
friend DifNumber operator/(const double &a, const DifNumber &b)
friend DifNumber atan2(const double &y, const DifNumber &x)
DifNumber & power(const DifNumber &p)
friend bool operator==(const DifNumber &a, const double &b)
friend bool operator<=(const double &a, const DifNumber &b)