Jpp master_rocky-44-g75b7c4f75
the software that should make you happy
Loading...
Searching...
No Matches
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.
 

Public Member Functions

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

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.
 
std::ostream & operator<< (std::ostream &out, const JParameter_t &object)
 Write parameter to output stream.
 

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 Symbol 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 }
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: