Jpp
Public Types | Public Member Functions | Public Attributes | Friends | List of all members
JMATH::JGauss Class Reference

Data structure for Gaussian function on top of a flat background. More...

#include <JGauss.hh>

Inheritance diagram for JMATH::JGauss:
JMATH::JMath< JGauss >

Public Types

typedef double JGauss::* parameter_type
 Type definition of fit parameter. More...
 

Public Member Functions

 JGauss ()
 Default constructor. More...
 
 JGauss (const double mean, const double sigma, const double signal, const double background)
 Constructor. More...
 
JGaussadd (const JGauss &gauss)
 Add gauss. More...
 
JGausssub (const JGauss &gauss)
 Subtract gauss. More...
 
JGaussmul (const double factor)
 Scale gauss. More...
 
bool equals (const JGauss &gauss, const double eps=std::numeric_limits< double >::min()) const
 Equality. More...
 
JGaussmul (const JSecond_t &object)
 Multiply with object. More...
 

Public Attributes

double mean
 
double sigma
 
double signal
 
double background
 

Friends

std::istream & operator>> (std::istream &in, JGauss &gauss)
 Write Gauss to input stream. More...
 
std::ostream & operator<< (std::ostream &out, const JGauss &gauss)
 Write Gauss to output stream. More...
 

Detailed Description

Data structure for Gaussian function on top of a flat background.

This class implements the JMATH::JMath interface.

Definition at line 30 of file JGauss.hh.

Member Typedef Documentation

◆ parameter_type

typedef double JGauss::* JMATH::JGauss::parameter_type

Type definition of fit parameter.

Definition at line 38 of file JGauss.hh.

Constructor & Destructor Documentation

◆ JGauss() [1/2]

JMATH::JGauss::JGauss ( )
inline

Default constructor.

Definition at line 44 of file JGauss.hh.

44  :
45  mean (0.0),
46  sigma (0.0),
47  signal (0.0),
48  background(0.0)
49  {}

◆ JGauss() [2/2]

JMATH::JGauss::JGauss ( const double  mean,
const double  sigma,
const double  signal,
const double  background 
)
inline

Constructor.

Parameters
meanmean
sigmasigma
signalsignal
backgroundbackground

Definition at line 60 of file JGauss.hh.

63  :
64  mean (mean),
65  sigma (sigma),
66  signal (signal),
68  {}

Member Function Documentation

◆ add()

JGauss& JMATH::JGauss::add ( const JGauss gauss)
inline

Add gauss.

Parameters
gaussgauss
Returns
this gauss

Definition at line 77 of file JGauss.hh.

78  {
79  mean += gauss.mean;
80  sigma += gauss.sigma;
81  signal += gauss.signal;
82  background += gauss.background;
83 
84  return *this;
85  }

◆ sub()

JGauss& JMATH::JGauss::sub ( const JGauss gauss)
inline

Subtract gauss.

Parameters
gaussgauss
Returns
this gauss

Definition at line 94 of file JGauss.hh.

95  {
96  mean -= gauss.mean;
97  sigma -= gauss.sigma;
98  signal -= gauss.signal;
99  background -= gauss.background;
100 
101  return *this;
102  }

◆ mul() [1/2]

JGauss& JMATH::JGauss::mul ( const double  factor)
inline

Scale gauss.

Parameters
factormultiplication factor
Returns
this gauss

Definition at line 111 of file JGauss.hh.

112  {
113  mean *= factor;
114  sigma *= factor;
115  signal *= factor;
116  background *= factor;
117 
118  return *this;
119  }

◆ equals()

bool JMATH::JGauss::equals ( const JGauss gauss,
const double  eps = std::numeric_limits<double>::min() 
) const
inline

Equality.

Parameters
gaussgauss
epsnumerical precision
Returns
true if gauss's identical; else false

Definition at line 129 of file JGauss.hh.

131  {
132  return (fabs(mean - gauss.mean) <= eps &&
133  fabs(sigma - gauss.sigma) <= eps &&
134  fabs(signal - gauss.signal) <= eps &&
135  fabs(background - gauss.background) <= eps);
136  }

◆ mul() [2/2]

JGauss & JMATH::JMath< JGauss , JSecond_t >::mul ( const JSecond_t &  object)
inlineinherited

Multiply with object.

Parameters
objectobject
Returns
result object

Definition at line 273 of file JMath.hh.

274  {
275  return static_cast<JFirst_t&>(*this) = JCalculator<JFirst_t>::calculator.mul(static_cast<const JFirst_t&>(*this), object);
276  }

Friends And Related Function Documentation

◆ operator>>

std::istream& operator>> ( std::istream &  in,
JGauss gauss 
)
friend

Write Gauss to input stream.

Parameters
ininput stream
gaussgauss
Returns
input stream

Definition at line 146 of file JGauss.hh.

147  {
148  return in >> gauss.mean >> gauss.sigma >> gauss.signal >> gauss.background;
149  }

◆ operator<<

std::ostream& operator<< ( std::ostream &  out,
const JGauss gauss 
)
friend

Write Gauss to output stream.

Parameters
outoutput stream
gaussgauss
Returns
output stream

Definition at line 159 of file JGauss.hh.

160  {
161  using namespace std;
162 
163  return out << FIXED(7,3) << gauss.mean << ' '
164  << FIXED(7,3) << gauss.sigma << ' '
165  << FIXED(9,3) << gauss.signal << ' '
166  << FIXED(9,3) << gauss.background;
167  }

Member Data Documentation

◆ mean

double JMATH::JGauss::mean

Definition at line 169 of file JGauss.hh.

◆ sigma

double JMATH::JGauss::sigma

Definition at line 170 of file JGauss.hh.

◆ signal

double JMATH::JGauss::signal

Definition at line 171 of file JGauss.hh.

◆ background

double JMATH::JGauss::background

Definition at line 172 of file JGauss.hh.


The documentation for this class was generated from the following file:
FIXED
Auxiliary data structure for floating point format specification.
Definition: JPrint.hh:481
JMATH::JGauss::sigma
double sigma
Definition: JGauss.hh:170
JMATH::JGauss::background
double background
Definition: JGauss.hh:172
JMATH::JGauss::signal
double signal
Definition: JGauss.hh:171
std
Definition: jaanetDictionary.h:36
JMATH::JGauss::mean
double mean
Definition: JGauss.hh:169
JMATH::JCalculator
Auxiliary class for arithmetic operations on objects.
Definition: JCalculator.hh:18