BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
EvtValError Class Reference

#include <EvtValError.hh>

Public Member Functions

 EvtValError ()
 EvtValError (double val)
 EvtValError (double val, double err)
 EvtValError (const EvtValError &other)
 ~EvtValError ()
int valueKnown () const
double value () const
int errorKnown () const
double error () const
double prec () const
void operator= (const EvtValError &other)
void operator*= (const EvtValError &other)
void operator/= (const EvtValError &other)
void operator+= (const EvtValError &other)
void operator*= (double c)
void print (std::ostream &) const

Detailed Description

Definition at line 20 of file EvtValError.hh.

Constructor & Destructor Documentation

◆ EvtValError() [1/4]

EvtValError::EvtValError ( )

Definition at line 18 of file EvtValError.cc.

18: _valKnown( 0 ), _val( 0. ), _errKnown( 0 ), _err( 0. ) {}

Referenced by EvtValError(), operator*=(), operator+=(), operator/=(), and operator=().

◆ EvtValError() [2/4]

EvtValError::EvtValError ( double val)

Definition at line 20 of file EvtValError.cc.

21 : _valKnown( 1 ), _val( val ), _errKnown( 0 ), _err( 0. ) {}

◆ EvtValError() [3/4]

EvtValError::EvtValError ( double val,
double err )

Definition at line 23 of file EvtValError.cc.

24 : _valKnown( 1 ), _val( val ), _errKnown( 1 ), _err( err ) {}

◆ EvtValError() [4/4]

EvtValError::EvtValError ( const EvtValError & other)

Definition at line 26 of file EvtValError.cc.

27 : _valKnown( other._valKnown )
28 , _val( other._val )
29 , _errKnown( other._errKnown )
30 , _err( other._err ) {}
Index other(Index i, Index j)

◆ ~EvtValError()

EvtValError::~EvtValError ( )

Definition at line 32 of file EvtValError.cc.

32{}

Member Function Documentation

◆ error()

double EvtValError::error ( ) const
inline

Definition at line 35 of file EvtValError.hh.

35 {
36 assert( _errKnown );
37 return _err;
38 }

◆ errorKnown()

int EvtValError::errorKnown ( ) const
inline

Definition at line 34 of file EvtValError.hh.

34{ return _errKnown; }

◆ operator*=() [1/2]

void EvtValError::operator*= ( const EvtValError & other)

Definition at line 46 of file EvtValError.cc.

46 {
47 assert( _valKnown && other._valKnown );
48
49 // Relative errors add in quadrature
50 if ( _errKnown && other._errKnown )
51 _err = _val * other._val * sqrt( prec() * prec() + other.prec() * other.prec() );
52 else _errKnown = 0;
53
54 // Modify the value
55 _val *= other._val;
56}
double prec() const

◆ operator*=() [2/2]

void EvtValError::operator*= ( double c)

Definition at line 90 of file EvtValError.cc.

90 {
91
92 assert( _valKnown );
93 _val *= c;
94 if ( _errKnown ) _err *= c;
95}

◆ operator+=()

void EvtValError::operator+= ( const EvtValError & other)

Definition at line 79 of file EvtValError.cc.

79 {
80 assert( _valKnown );
81 assert( other._valKnown );
82 _val += other._val;
83
84 // add errors in quadrature
85
86 if ( _errKnown && other._errKnown ) { _err = sqrt( _err * _err + other._err * other._err ); }
87 else { _errKnown = 0; }
88}

◆ operator/=()

void EvtValError::operator/= ( const EvtValError & other)

Definition at line 58 of file EvtValError.cc.

58 {
59 assert( _valKnown && other._valKnown && other._val != 0. );
60
61 // Relative errors add in quadrature
62 if ( _errKnown && other._errKnown )
63 _err = _val / other._val * sqrt( prec() * prec() + other.prec() * other.prec() );
64 else _errKnown = 0;
65
66 // Modify the value
67 _val /= other._val;
68}

◆ operator=()

void EvtValError::operator= ( const EvtValError & other)

Definition at line 39 of file EvtValError.cc.

39 {
40 _valKnown = other._valKnown;
41 _val = other._val;
42 _errKnown = other._errKnown;
43 _err = other._err;
44}

◆ prec()

double EvtValError::prec ( ) const

Definition at line 34 of file EvtValError.cc.

34 {
35 assert( _valKnown && _errKnown );
36 return ( _val != 0 ) ? _err / _val : 0;
37}

Referenced by operator*=(), and operator/=().

◆ print()

void EvtValError::print ( std::ostream & ) const

Definition at line 70 of file EvtValError.cc.

70 {
71 if ( _valKnown ) os << _val;
72 else os << "Undef";
73 os << " +/- ";
74 if ( _errKnown ) os << _err;
75 else os << "Undef";
76 os << endl;
77}

◆ value()

double EvtValError::value ( ) const
inline

Definition at line 30 of file EvtValError.hh.

30 {
31 assert( _valKnown );
32 return _val;
33 }

◆ valueKnown()

int EvtValError::valueKnown ( ) const
inline

Definition at line 29 of file EvtValError.hh.

29{ return _valKnown; }

The documentation for this class was generated from the following files: