Jpp 20.0.0-195-g190c9e876
the software that should make you happy
Loading...
Searching...
No Matches
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_t JCALIBRATE::JModel

Public Member Functions

 JK40Parameters ()
 Default constructor.
 
size_t getN () const
 Get number of fit parameters.
 
int getIndex (JParameter_t JK40Parameters::*p) const
 Get index of parameter.
 
double getValue (const double ct) const
 Get K40 coincidence rate as a function of cosine angle between PMT axes.
 
const JK40Parameters_tgetGradient (const double ct) const
 Get gradient.
 
const JK40Parameters_tgetK40Parameters () const
 Get K40 parameters.
 
void setK40Parameters (const JK40Parameters_t &parameters)
 Set K40 parameters.
 
void reset ()
 Reset.
 
void print (std::ostream &out) const
 Print model parameters to output stream conform include files.
 

Static Public Member Functions

static const JK40ParametersgetInstance ()
 Get default values.
 

Public Attributes

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

Private Attributes

JK40Parameters_t gradient
 

Detailed Description

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

Definition at line 727 of file JFitK40.hh.

Constructor & Destructor Documentation

◆ JK40Parameters()

JCALIBRATE::JK40Parameters::JK40Parameters ( )
inline

Default constructor.

Definition at line 733 of file JFitK40.hh.

734 {}

Member Function Documentation

◆ getInstance()

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

Get default values.

Values obtained with $JPP_DIR/examples/JCalibrate/JOMGsim.sh type B (see $JPP_DIR/examples/JCalibrate/README.md). If you change these values, you may also want to change the corresponding values in JK40DefaultSimulator.hh.

Returns
parameters

Definition at line 745 of file JFitK40.hh.

746 {
747 static JK40Parameters parameters;
748
749 parameters.R .set(18.473257);
750 parameters.p1.set( 3.030307);
751 parameters.p2.set(-0.965429);
752 parameters.p3.set( 1.290367);
753 parameters.p4.set( 0.405618);
754 parameters.cc.set( 0.0);
755 parameters.bc.set( 0.0);
756
757 return parameters;
758 }
JK40Parameters()
Default constructor.
Definition JFitK40.hh:733

◆ getN()

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

Get number of fit parameters.

Returns
number of parameters

Definition at line 766 of file JFitK40.hh.

767 {
768 return ((R .isFree() ? 1 : 0) +
769 (p1.isFree() ? 1 : 0) +
770 (p2.isFree() ? 1 : 0) +
771 (p3.isFree() ? 1 : 0) +
772 (p4.isFree() ? 1 : 0) +
773 (cc.isFree() ? 1 : 0) +
774 (bc.isFree() ? 1 : 0));
775 }
bool isFree() const
Check if parameter is free.
Definition JFitK40.hh:240
JParameter_t bc
constant background
Definition JFitK40.hh:720
JParameter_t R
maximal coincidence rate [Hz]
Definition JFitK40.hh:714
JParameter_t p1
1st order angle dependence coincidence rate
Definition JFitK40.hh:715
JParameter_t p2
2nd order angle dependence coincidence rate
Definition JFitK40.hh:716
JParameter_t p3
3rd order angle dependence coincidence rate
Definition JFitK40.hh:717
JParameter_t p4
4th order angle dependence coincidence rate
Definition JFitK40.hh:718
JParameter_t cc
fraction of signal correlated background
Definition JFitK40.hh:719

◆ 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 784 of file JFitK40.hh.

785 {
786 if (!(this->*p).isFree()) {
787 return INVALID_INDEX;
788 }
789
790 int N = 0;
791
792 if (p == &JK40Parameters::R) { return N; } if (R .isFree()) { ++N; }
793 if (p == &JK40Parameters::p1) { return N; } if (p1.isFree()) { ++N; }
794 if (p == &JK40Parameters::p2) { return N; } if (p2.isFree()) { ++N; }
795 if (p == &JK40Parameters::p3) { return N; } if (p3.isFree()) { ++N; }
796 if (p == &JK40Parameters::p4) { return N; } if (p4.isFree()) { ++N; }
797 if (p == &JK40Parameters::cc) { return N; } if (cc.isFree()) { ++N; }
798 if (p == &JK40Parameters::bc) { return N; } if (bc.isFree()) { ++N; }
799
800 return INVALID_INDEX;
801 }
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 810 of file JFitK40.hh.

811 {
812 return R * exp(ct*(p1+ct*(p2+ct*(p3+ct*p4))) - (p1+p2+p3+p4));
813 }

◆ 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 822 of file JFitK40.hh.

823 {
824 gradient.reset();
825
826 const double rate = getValue(ct);
827 const double ct2 = ct * ct;
828
829 if (R .isFree()) { gradient.R = rate / R; }
830 if (p1.isFree()) { gradient.p1 = rate * ct - rate; }
831 if (p2.isFree()) { gradient.p2 = rate * ct2 - rate; }
832 if (p3.isFree()) { gradient.p3 = rate * ct2 * ct - rate; }
833 if (p4.isFree()) { gradient.p4 = rate * ct2 * ct2 - rate; }
834 if (cc.isFree()) { gradient.cc = rate; }
835 if (bc.isFree()) { gradient.bc = 1.0; }
836
837 return gradient;
838 }
JK40Parameters_t gradient
Definition JFitK40.hh:841
double getValue(const double ct) const
Get K40 coincidence rate as a function of cosine angle between PMT axes.
Definition JFitK40.hh:810

◆ getK40Parameters()

const JK40Parameters_t & JCALIBRATE::JK40Parameters_t::getK40Parameters ( ) const
inlineinherited

Get K40 parameters.

Returns
K40 parameters

Definition at line 631 of file JFitK40.hh.

632 {
633 return static_cast<const JK40Parameters_t&>(*this);
634 }
JK40Parameters_t()
Default constructor.
Definition JFitK40.hh:620

◆ setK40Parameters()

void JCALIBRATE::JK40Parameters_t::setK40Parameters ( const JK40Parameters_t & parameters)
inlineinherited

Set K40 parameters.

Parameters
parametersK40 parameters

Definition at line 642 of file JFitK40.hh.

643 {
644 static_cast<JK40Parameters_t&>(*this) = parameters;
645 }

◆ reset()

void JCALIBRATE::JK40Parameters_t::reset ( )
inlineinherited

Reset.

Definition at line 651 of file JFitK40.hh.

652 {
653 R .set(0.0);
654 p1.set(0.0);
655 p2.set(0.0);
656 p3.set(0.0);
657 p4.set(0.0);
658 cc.set(0.0);
659 bc.set(0.0);
660 }
void set()
Set current value.
Definition JFitK40.hh:271

◆ print()

void JCALIBRATE::JK40Parameters_t::print ( std::ostream & out) const
inlineinherited

Print model parameters to output stream conform include files.

Parameters
outoutput stream

Definition at line 668 of file JFitK40.hh.

669 {
670 using namespace std;
671
672 out << "JFitK40.hh" << endl;
673 out << "parameters.R .set(" << FIXED(9,6) << this->R () << ");" << endl;
674 out << "parameters.p1.set(" << FIXED(9,6) << this->p1() << ");" << endl;
675 out << "parameters.p2.set(" << FIXED(9,6) << this->p2() << ");" << endl;
676 out << "parameters.p3.set(" << FIXED(9,6) << this->p3() << ");" << endl;
677 out << "parameters.p4.set(" << FIXED(9,6) << this->p4() << ");" << endl;
678 out << "cc " << FIXED(9,6) << this->cc() << endl;
679 out << "bc " << FIXED(9,6) << this->bc() << endl;
680 out << endl;
681
682 out << "JK40DefaultSimulator.hh" << endl;
683 out << "static constexpr double p1 = " << FIXED(9,6) << this->p1() << ";" << endl;
684 out << "static constexpr double p2 = " << FIXED(9,6) << this->p2() << ";" << endl;
685 out << "static constexpr double p3 = " << FIXED(9,6) << this->p3() << ";" << endl;
686 out << "static constexpr double p4 = " << FIXED(9,6) << this->p4() << ";" << endl;
687 out << endl;
688 }
Auxiliary data structure for floating point format specification.
Definition JManip.hh:448

Member Data Documentation

◆ gradient

JK40Parameters_t JCALIBRATE::JK40Parameters::gradient
mutableprivate

Definition at line 841 of file JFitK40.hh.

◆ R

JParameter_t JCALIBRATE::JK40Parameters_t::R
inherited

maximal coincidence rate [Hz]

Definition at line 714 of file JFitK40.hh.

◆ p1

JParameter_t JCALIBRATE::JK40Parameters_t::p1
inherited

1st order angle dependence coincidence rate

Definition at line 715 of file JFitK40.hh.

◆ p2

JParameter_t JCALIBRATE::JK40Parameters_t::p2
inherited

2nd order angle dependence coincidence rate

Definition at line 716 of file JFitK40.hh.

◆ p3

JParameter_t JCALIBRATE::JK40Parameters_t::p3
inherited

3rd order angle dependence coincidence rate

Definition at line 717 of file JFitK40.hh.

◆ p4

JParameter_t JCALIBRATE::JK40Parameters_t::p4
inherited

4th order angle dependence coincidence rate

Definition at line 718 of file JFitK40.hh.

◆ cc

JParameter_t JCALIBRATE::JK40Parameters_t::cc
inherited

fraction of signal correlated background

Definition at line 719 of file JFitK40.hh.

◆ bc

JParameter_t JCALIBRATE::JK40Parameters_t::bc
inherited

constant background

Definition at line 720 of file JFitK40.hh.


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