Jpp  19.1.0-rc.1
the software that should make you happy
Public Member Functions | Static Public Member Functions | Public Attributes | Private Attributes | List of all members
JCALIBRATE::JK40Parameters Struct Reference

Fit parameters for two-fold coincidence rate due to K40. More...

#include <JFitK40.hh>

Inheritance diagram for JCALIBRATE::JK40Parameters:
JCALIBRATE::JK40Parameters_t JCALIBRATE::JModel

Public Member Functions

 JK40Parameters ()
 Default constructor. More...
 
const JK40ParametersgetK40Parameters () const
 Get K40 parameters. More...
 
void setK40Parameters (const JK40Parameters_t &parameters)
 Set K40 parameters. More...
 
size_t getN () const
 Get number of fit parameters. More...
 
int getIndex (JParameter_t JK40Parameters::*p) const
 Get index of parameter. More...
 
double getValue (const double ct) const
 Get K40 coincidence rate as a function of cosine angle between PMT axes. More...
 
const JK40Parameters_tgetGradient (const double ct) const
 Get gradient. More...
 
void reset ()
 Reset. More...
 

Static Public Member Functions

static const JK40ParametersgetInstance ()
 Get default values. More...
 

Public Attributes

JParameter_t R
 maximal coincidence rate [Hz] More...
 
JParameter_t p1
 1st order angle dependence coincidence rate More...
 
JParameter_t p2
 2nd order angle dependence coincidence rate More...
 
JParameter_t p3
 3rd order angle dependence coincidence rate More...
 
JParameter_t p4
 4th order angle dependence coincidence rate More...
 
JParameter_t cc
 fraction of signal correlated background More...
 

Private Attributes

JK40Parameters_t gradient
 

Detailed Description

Fit parameters for two-fold coincidence rate due to K40.

Definition at line 608 of file JFitK40.hh.

Constructor & Destructor Documentation

◆ JK40Parameters()

JCALIBRATE::JK40Parameters::JK40Parameters ( )
inline

Default constructor.

Definition at line 614 of file JFitK40.hh.

615  {}

Member Function Documentation

◆ getInstance()

static const JK40Parameters& JCALIBRATE::JK40Parameters::getInstance ( )
inlinestatic

Get default values.

The default parameter values are set to those obtained from a designated simulation of K40 decays (see http://wiki.km3net.de/index.php/OMGsim_simulations_for_K40_fit).
If you change these values, you may also want to change the corresponding values in JK40DefaultSimulator.hh.

Returns
parameters

Definition at line 627 of file JFitK40.hh.

628  {
629  static JK40Parameters parameters;
630 
631  parameters.R .set(18.460546);
632  parameters.p1.set( 3.0767);
633  parameters.p2.set(-1.2078);
634  parameters.p3.set( 0.9905);
635  parameters.p4.set( 0.9379);
636  parameters.cc.set( 0.0);
637 
638  return parameters;
639  }
void set()
Set current value.
Definition: JFitK40.hh:271
JParameter_t R
maximal coincidence rate [Hz]
Definition: JFitK40.hh:596
JParameter_t p1
1st order angle dependence coincidence rate
Definition: JFitK40.hh:597
JParameter_t p2
2nd order angle dependence coincidence rate
Definition: JFitK40.hh:598
JParameter_t p3
3rd order angle dependence coincidence rate
Definition: JFitK40.hh:599
JParameter_t p4
4th order angle dependence coincidence rate
Definition: JFitK40.hh:600
JParameter_t cc
fraction of signal correlated background
Definition: JFitK40.hh:601
Fit parameters for two-fold coincidence rate due to K40.
Definition: JFitK40.hh:610

◆ getK40Parameters()

const JK40Parameters& JCALIBRATE::JK40Parameters::getK40Parameters ( ) const
inline

Get K40 parameters.

Returns
K40 parameters

Definition at line 647 of file JFitK40.hh.

648  {
649  return static_cast<const JK40Parameters&>(*this);
650  }

◆ setK40Parameters()

void JCALIBRATE::JK40Parameters::setK40Parameters ( const JK40Parameters_t parameters)
inline

Set K40 parameters.

Parameters
parametersK40 parameters

Definition at line 658 of file JFitK40.hh.

659  {
660  static_cast<JK40Parameters_t&>(*this) = parameters;
661  }
Fit parameters for two-fold coincidence rate due to K40.
Definition: JFitK40.hh:572

◆ getN()

size_t JCALIBRATE::JK40Parameters::getN ( ) const
inline

Get number of fit parameters.

Returns
number of parameters

Definition at line 669 of file JFitK40.hh.

670  {
671  return ((R .isFree() ? 1 : 0) +
672  (p1.isFree() ? 1 : 0) +
673  (p2.isFree() ? 1 : 0) +
674  (p3.isFree() ? 1 : 0) +
675  (p4.isFree() ? 1 : 0) +
676  (cc.isFree() ? 1 : 0));
677  }
bool isFree() const
Check if parameter is free.
Definition: JFitK40.hh:240

◆ getIndex()

int JCALIBRATE::JK40Parameters::getIndex ( JParameter_t JK40Parameters::*  p) const
inline

Get index of parameter.

Parameters
ppointer to data member
Returns
index

Definition at line 686 of file JFitK40.hh.

687  {
688  if (!(this->*p).isFree()) {
689  return INVALID_INDEX;
690  }
691 
692  int N = 0;
693 
694  if (p == &JK40Parameters::R) { return N; } if (R .isFree()) { ++N; }
695  if (p == &JK40Parameters::p1) { return N; } if (p1.isFree()) { ++N; }
696  if (p == &JK40Parameters::p2) { return N; } if (p2.isFree()) { ++N; }
697  if (p == &JK40Parameters::p3) { return N; } if (p3.isFree()) { ++N; }
698  if (p == &JK40Parameters::p4) { return N; } if (p4.isFree()) { ++N; }
699  if (p == &JK40Parameters::cc) { return N; } if (cc.isFree()) { ++N; }
700 
701  return INVALID_INDEX;
702  }
static const int INVALID_INDEX
invalid index
Definition: JFitK40.hh:60

◆ getValue()

double JCALIBRATE::JK40Parameters::getValue ( const double  ct) const
inline

Get K40 coincidence rate as a function of cosine angle between PMT axes.

Parameters
ctcosine angle between PMT axes
Returns
rate [Hz]

Definition at line 711 of file JFitK40.hh.

712  {
713  return R * exp(ct*(p1+ct*(p2+ct*(p3+ct*p4))) - (p1+p2+p3+p4));
714  }

◆ getGradient()

const JK40Parameters_t& JCALIBRATE::JK40Parameters::getGradient ( const double  ct) const
inline

Get gradient.

Parameters
ctcosine angle between PMT axes
Returns
gradient

Definition at line 723 of file JFitK40.hh.

724  {
725  gradient.reset();
726 
727  const double rate = getValue(ct);
728  const double ct2 = ct * ct;
729 
730  if (R .isFree()) { gradient.R = rate / R; }
731  if (p1.isFree()) { gradient.p1 = rate * ct - rate; }
732  if (p2.isFree()) { gradient.p2 = rate * ct2 - rate; }
733  if (p3.isFree()) { gradient.p3 = rate * ct2 * ct - rate; }
734  if (p4.isFree()) { gradient.p4 = rate * ct2 * ct2 - rate; }
735  if (cc.isFree()) { gradient.cc = rate; }
736 
737  return gradient;
738  }
JK40Parameters_t gradient
Definition: JFitK40.hh:741
double getValue(const double ct) const
Get K40 coincidence rate as a function of cosine angle between PMT axes.
Definition: JFitK40.hh:711

◆ reset()

void JCALIBRATE::JK40Parameters_t::reset ( )
inlineinherited

Reset.

Definition at line 585 of file JFitK40.hh.

586  {
587  R .set(0.0);
588  p1.set(0.0);
589  p2.set(0.0);
590  p3.set(0.0);
591  p4.set(0.0);
592  cc.set(0.0);
593  }

Member Data Documentation

◆ gradient

JK40Parameters_t JCALIBRATE::JK40Parameters::gradient
mutableprivate

Definition at line 741 of file JFitK40.hh.

◆ R

JParameter_t JCALIBRATE::JK40Parameters_t::R
inherited

maximal coincidence rate [Hz]

Definition at line 596 of file JFitK40.hh.

◆ p1

JParameter_t JCALIBRATE::JK40Parameters_t::p1
inherited

1st order angle dependence coincidence rate

Definition at line 597 of file JFitK40.hh.

◆ p2

JParameter_t JCALIBRATE::JK40Parameters_t::p2
inherited

2nd order angle dependence coincidence rate

Definition at line 598 of file JFitK40.hh.

◆ p3

JParameter_t JCALIBRATE::JK40Parameters_t::p3
inherited

3rd order angle dependence coincidence rate

Definition at line 599 of file JFitK40.hh.

◆ p4

JParameter_t JCALIBRATE::JK40Parameters_t::p4
inherited

4th order angle dependence coincidence rate

Definition at line 600 of file JFitK40.hh.

◆ cc

JParameter_t JCALIBRATE::JK40Parameters_t::cc
inherited

fraction of signal correlated background

Definition at line 601 of file JFitK40.hh.


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