Jpp  master_rocky-40-g5f0272dcd
the software that should make you happy
Public Types | Public Member Functions | Public Attributes | Friends | List of all members
JCALIBRATE::JParameter_t Class Reference

Auxiliary class for fit parameter with optional limits. More...

#include <JFitK40.hh>

Inheritance diagram for JCALIBRATE::JParameter_t:
JMATH::JMath< JFirst_t, JSecond_t >

Public Types

enum  FIT_t { FREE_t = 0 , FIXED_t }
 Fit options. More...
 
typedef JTOOLS::JRange< double > range_type
 Type definition for range of parameter values. More...
 

Public Member Functions

 JParameter_t ()
 Default constructor. More...
 
 JParameter_t (const double value, const range_type &range=range_type::DEFAULT_RANGE())
 Constructor. More...
 
JParameter_tnegate ()
 Negate parameter. More...
 
JParameter_tadd (const JParameter_t &parameter)
 Add parameter. More...
 
JParameter_tsub (const JParameter_t &parameter)
 Subtract parameter. More...
 
JParameter_tmul (const double factor)
 Scale parameter. More...
 
JParameter_tdiv (const double factor)
 Scale parameter. More...
 
JParameter_tmul (const JParameter_t &first, const JParameter_t &second)
 Scale parameter. More...
 
bool isFree () const
 Check if parameter is free. More...
 
bool isFixed () const
 Check if parameter is fixed. More...
 
bool isBound () const
 Check if parameter is bound. More...
 
void set ()
 Set current value. More...
 
void fix ()
 Fix current value. More...
 
double get () const
 Get value. More...
 
void set (const double value)
 Set value. More...
 
void fix (const double value)
 Fix value. More...
 
double getDerivative () const
 Get derivative of value. More...
 
double operator() () const
 Type conversion operator. More...
 
 operator double () const
 Type conversion operator. More...
 
JParameter_toperator= (double value)
 Assignment operator. More...
 
JFirst_t & mul (const JSecond_t &object)
 Multiply with object. More...
 

Public Attributes

double value = 0.0
 
FIT_t option = FREE_t
 
range_type range = range_type::DEFAULT_RANGE()
 

Friends

std::istream & operator>> (std::istream &in, JParameter_t &object)
 Read parameter from input stream. More...
 
std::ostream & operator<< (std::ostream &out, const JParameter_t &object)
 Write parameter to output stream. More...
 

Detailed Description

Auxiliary class for fit parameter with optional limits.

Definition at line 109 of file JFitK40.hh.

Member Typedef Documentation

◆ range_type

Type definition for range of parameter values.

Definition at line 125 of file JFitK40.hh.

Member Enumeration Documentation

◆ FIT_t

Fit options.

Enumerator
FREE_t 

free

FIXED_t 

fixed

Definition at line 116 of file JFitK40.hh.

116  {
117  FREE_t = 0, //!< free
118  FIXED_t //!< fixed
119  };

Constructor & Destructor Documentation

◆ JParameter_t() [1/2]

JCALIBRATE::JParameter_t::JParameter_t ( )
inline

Default constructor.

Definition at line 131 of file JFitK40.hh.

132  {
133  set(0.0);
134  }
void set()
Set current value.
Definition: JFitK40.hh:271

◆ JParameter_t() [2/2]

JCALIBRATE::JParameter_t::JParameter_t ( const double  value,
const range_type range = range_type::DEFAULT_RANGE() 
)
inline

Constructor.

Parameters
valuevalue
rangerange

Definition at line 143 of file JFitK40.hh.

144  :
145  range(range)
146  {
147  set(value);
148  }

Member Function Documentation

◆ negate()

JParameter_t& JCALIBRATE::JParameter_t::negate ( )
inline

Negate parameter.

Returns
this parameter

Definition at line 156 of file JFitK40.hh.

157  {
158  set(-get());
159 
160  return *this;
161  }
double get() const
Get value.
Definition: JFitK40.hh:291

◆ add()

JParameter_t& JCALIBRATE::JParameter_t::add ( const JParameter_t parameter)
inline

Add parameter.

Parameters
parameterparameter
Returns
this parameter

Definition at line 170 of file JFitK40.hh.

171  {
172  set(get() + parameter.get());
173 
174  return *this;
175  }

◆ sub()

JParameter_t& JCALIBRATE::JParameter_t::sub ( const JParameter_t parameter)
inline

Subtract parameter.

Parameters
parameterparameter
Returns
this parameter

Definition at line 184 of file JFitK40.hh.

185  {
186  set(get() - parameter.get());
187 
188  return *this;
189  }

◆ mul() [1/3]

JParameter_t& JCALIBRATE::JParameter_t::mul ( const double  factor)
inline

Scale parameter.

Parameters
factormultiplication factor
Returns
this parameter

Definition at line 198 of file JFitK40.hh.

199  {
200  set(get() * factor);
201 
202  return *this;
203  }

◆ div()

JParameter_t& JCALIBRATE::JParameter_t::div ( const double  factor)
inline

Scale parameter.

Parameters
factordivision factor
Returns
this parameter

Definition at line 212 of file JFitK40.hh.

213  {
214  set(get() / factor);
215 
216  return *this;
217  }

◆ mul() [2/3]

JParameter_t& JCALIBRATE::JParameter_t::mul ( const JParameter_t first,
const JParameter_t second 
)
inline

Scale parameter.

Parameters
firstfirst parameter
secondsecond parameter
Returns
this parameter

Definition at line 227 of file JFitK40.hh.

228  {
229  set(first.get() * second.get());
230 
231  return *this;
232  }

◆ isFree()

bool JCALIBRATE::JParameter_t::isFree ( ) const
inline

Check if parameter is free.

Returns
true if free; else false

Definition at line 240 of file JFitK40.hh.

241  {
242  return option == FREE_t;
243  }

◆ isFixed()

bool JCALIBRATE::JParameter_t::isFixed ( ) const
inline

Check if parameter is fixed.

Returns
true if fixed; else false

Definition at line 251 of file JFitK40.hh.

252  {
253  return option == FIXED_t;
254  }

◆ isBound()

bool JCALIBRATE::JParameter_t::isBound ( ) const
inline

Check if parameter is bound.

Returns
true if bound; else false

Definition at line 262 of file JFitK40.hh.

263  {
264  return range.is_valid();
265  }
bool is_valid() const
Check validity of range.
Definition: JRange.hh:311

◆ set() [1/2]

void JCALIBRATE::JParameter_t::set ( )
inline

Set current value.

Definition at line 271 of file JFitK40.hh.

272  {
273  option = FREE_t;
274  }

◆ fix() [1/2]

void JCALIBRATE::JParameter_t::fix ( )
inline

Fix current value.

Definition at line 280 of file JFitK40.hh.

281  {
282  option = FIXED_t;
283  }

◆ get()

double JCALIBRATE::JParameter_t::get ( ) const
inline

Get value.

Returns
value

Definition at line 291 of file JFitK40.hh.

292  {
293  if (isBound())
294  return range.getLowerLimit() + 0.5 * range.getLength() * (sin(value) + 1.0);
295  else
296  return value;
297  }
bool isBound() const
Check if parameter is bound.
Definition: JFitK40.hh:262
T getLength() const
Get length (difference between upper and lower limit).
Definition: JRange.hh:289
T getLowerLimit() const
Get lower limit.
Definition: JRange.hh:202

◆ set() [2/2]

void JCALIBRATE::JParameter_t::set ( const double  value)
inline

Set value.

Parameters
valuevalue

Definition at line 305 of file JFitK40.hh.

306  {
307  if (isBound())
308  this->value = asin(2.0 * (range.constrain(value) - range.getLowerLimit()) / range.getLength() - 1.0);
309  else
310  this->value = value;
311 
312  set();
313  }
T constrain(argument_type x) const
Constrain value to range.
Definition: JRange.hh:350

◆ fix() [2/2]

void JCALIBRATE::JParameter_t::fix ( const double  value)
inline

Fix value.

Parameters
valuevalue

Definition at line 321 of file JFitK40.hh.

322  {
323  set(value);
324 
325  fix();
326  }
void fix()
Fix current value.
Definition: JFitK40.hh:280

◆ getDerivative()

double JCALIBRATE::JParameter_t::getDerivative ( ) const
inline

Get derivative of value.

Returns
derivative of value

Definition at line 334 of file JFitK40.hh.

335  {
336  if (isBound())
337  return 0.5 * range.getLength() * cos(value);
338  else
339  return 1.0;
340  }

◆ operator()()

double JCALIBRATE::JParameter_t::operator() ( ) const
inline

Type conversion operator.

Returns
value

Definition at line 348 of file JFitK40.hh.

349  {
350  return get();
351  }

◆ operator double()

JCALIBRATE::JParameter_t::operator double ( ) const
inline

Type conversion operator.

Returns
value

Definition at line 359 of file JFitK40.hh.

360  {
361  return get();
362  }

◆ operator=()

JParameter_t& JCALIBRATE::JParameter_t::operator= ( double  value)
inline

Assignment operator.

Parameters
valuevalue
Returns
this parameter

Definition at line 371 of file JFitK40.hh.

372  {
373  set(value);
374 
375  return *this;
376  }

◆ mul() [3/3]

template<class JFirst_t , class JSecond_t >
JFirst_t& JMATH::JMath< JFirst_t, JSecond_t >::mul ( const JSecond_t &  object)
inlineinherited

Multiply with object.

Parameters
objectobject
Returns
result object

Definition at line 354 of file JMath.hh.

355  {
356  return static_cast<JFirst_t&>(*this) = JFirst_t().mul(static_cast<const JFirst_t&>(*this), object);
357  }

Friends And Related Function Documentation

◆ operator>>

std::istream& operator>> ( std::istream &  in,
JParameter_t object 
)
friend

Read parameter from input stream.

Parameters
ininput stream
objectparameter
Returns
input stream

Definition at line 386 of file JFitK40.hh.

387  {
388  return in >> object.value;
389  }

◆ operator<<

std::ostream& operator<< ( std::ostream &  out,
const JParameter_t object 
)
friend

Write parameter to output stream.

Parameters
outoutput stream
objectparameter
Returns
output stream

Definition at line 399 of file JFitK40.hh.

400  {
401  using namespace std;
402 
403  out << FIXED(12,6) << object.get() << ' '
404  << setw(5) << (object.isFixed() ? "fixed" : " ") << ' ';
405 
406  if (object.isBound()) {
407  out << FIXED(12,6) << object.value << ' ';
408  out << FIXED(12,6) << object.range.getLowerLimit() << ' '
409  << FIXED(12,6) << object.range.getUpperLimit();
410  }
411 
412  return out;
413  }
Definition: JSTDTypes.hh:14
Auxiliary data structure for floating point format specification.
Definition: JManip.hh:448

Member Data Documentation

◆ value

double JCALIBRATE::JParameter_t::value = 0.0

Definition at line 416 of file JFitK40.hh.

◆ option

FIT_t JCALIBRATE::JParameter_t::option = FREE_t

Definition at line 417 of file JFitK40.hh.

◆ range

range_type JCALIBRATE::JParameter_t::range = range_type::DEFAULT_RANGE()

Definition at line 418 of file JFitK40.hh.


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