MARLEY (Model of Argon Reaction Low Energy Yields) v2.0.0
A Monte Carlo event generator for tens-of-MeV neutrino interactions
Loading...
Searching...
No Matches
marley::NuclearResponses Class Reference

Public Member Functions

 NuclearResponses (double rCC, double rLL, double rCL, double rTvv, double rTaa, double rTprime)
 
bool operator!= (const NuclearResponses &other) const
 
NuclearResponses operator* (const NuclearResponses &other) const
 
NuclearResponses operator* (double d) const
 
NuclearResponses operator+ (const NuclearResponses &other) const
 
NuclearResponses operator- (const NuclearResponses &other) const
 
NuclearResponses operator/ (const NuclearResponses &other) const
 
NuclearResponses operator/ (double d) const
 
bool operator== (const NuclearResponses &other) const
 
void print (std::ostream &out) const
 
double RCC () const
 
double RCL () const
 
double RLL () const
 
double RT () const
 
double RTaa () const
 
double RTprime () const
 
double RTvv () const
 
void set_RCC (double val)
 
void set_RCL (double val)
 
void set_RLL (double val)
 
void set_RTaa (double val)
 
void set_RTprime (double val)
 
void set_RTvv (double val)
 

Protected Member Functions

NuclearResponses apply_to_members (const NuclearResponses &other, const std::function< double(double, double)> &my_function) const
 
NuclearResponses apply_to_members (double d, const std::function< double(double, double)> &my_function) const
 

Protected Attributes

double rCC_
 
double rCL_
 
double rLL_
 
double rTaa_
 
double rTprime_
 
double rTvv_
 

Detailed Description

Definition at line 25 of file NuclearResponses.hh.

Constructor & Destructor Documentation

◆ NuclearResponses() [1/2]

marley::NuclearResponses::NuclearResponses ( )
inline

Definition at line 29 of file NuclearResponses.hh.

29 : rCC_( 0. ), rLL_( 0. ), rCL_( 0. ), rTvv_( 0. ),
30 rTaa_( 0. ), rTprime_( 0. ) {}

◆ NuclearResponses() [2/2]

marley::NuclearResponses::NuclearResponses ( double rCC,
double rLL,
double rCL,
double rTvv,
double rTaa,
double rTprime )
inline

Definition at line 32 of file NuclearResponses.hh.

33 : rCC_( rCC ), rLL_( rLL ),
34 rCL_( rCL ), rTvv_( rTvv ), rTaa_( rTaa ), rTprime_( rTprime ) {}

Member Function Documentation

◆ apply_to_members() [1/2]

NuclearResponses marley::NuclearResponses::apply_to_members ( const NuclearResponses & other,
const std::function< double(double, double)> & my_function ) const
inlineprotected

Definition at line 115 of file NuclearResponses.hh.

117 {
118 // Create a new NuclearResponses object by applying the function to
119 // each pair of elements
120 NuclearResponses result;
121
122 result.rCC_ = my_function( this->rCC_, other.rCC_ );
123 result.rLL_ = my_function( this->rLL_, other.rLL_ );
124 result.rCL_ = my_function( this->rCL_, other.rCL_ );
125 result.rTvv_ = my_function( this->rTvv_, other.rTvv_ );
126 result.rTaa_ = my_function( this->rTaa_, other.rTaa_ );
127 result.rTprime_ = my_function( this->rTprime_, other.rTprime_ );
128
129 return result;
130 }

◆ apply_to_members() [2/2]

NuclearResponses marley::NuclearResponses::apply_to_members ( double d,
const std::function< double(double, double)> & my_function ) const
inlineprotected

Definition at line 98 of file NuclearResponses.hh.

100 {
101 // Create a new NuclearResponses object by applying the function to
102 // each pair of elements
103 NuclearResponses result;
104
105 result.rCC_ = my_function( this->rCC_, d );
106 result.rLL_ = my_function( this->rLL_, d );
107 result.rCL_ = my_function( this->rCL_, d );
108 result.rTvv_ = my_function( this->rTvv_, d );
109 result.rTaa_ = my_function( this->rTaa_, d );
110 result.rTprime_ = my_function( this->rTprime_, d );
111
112 return result;
113 }

◆ operator!=()

bool marley::NuclearResponses::operator!= ( const NuclearResponses & other) const
inline

Definition at line 87 of file NuclearResponses.hh.

87 {
88 return !operator==( other );
89 }

◆ operator*() [1/2]

NuclearResponses marley::NuclearResponses::operator* ( const NuclearResponses & other) const
inline

Definition at line 69 of file NuclearResponses.hh.

70 { return apply_to_members(other, [](double a, double b)
71 -> double { return a * b; }); }

◆ operator*() [2/2]

NuclearResponses marley::NuclearResponses::operator* ( double d) const
inline

Definition at line 52 of file NuclearResponses.hh.

53 { return apply_to_members(d, [](double a, double b)
54 -> double { return a * b; }); }

◆ operator+()

NuclearResponses marley::NuclearResponses::operator+ ( const NuclearResponses & other) const
inline

Definition at line 61 of file NuclearResponses.hh.

62 { return apply_to_members(other, [](double a, double b)
63 -> double { return a + b; }); }

◆ operator-()

NuclearResponses marley::NuclearResponses::operator- ( const NuclearResponses & other) const
inline

Definition at line 65 of file NuclearResponses.hh.

66 { return apply_to_members(other, [](double a, double b)
67 -> double { return a - b; }); }

◆ operator/() [1/2]

NuclearResponses marley::NuclearResponses::operator/ ( const NuclearResponses & other) const
inline

Definition at line 73 of file NuclearResponses.hh.

74 { return apply_to_members(other, [](double a, double b)
75 -> double { return a / b; }); }

◆ operator/() [2/2]

NuclearResponses marley::NuclearResponses::operator/ ( double d) const
inline

Definition at line 56 of file NuclearResponses.hh.

57 { return apply_to_members(d, [](double a, double b)
58 -> double { return a / b; }); }

◆ operator==()

bool marley::NuclearResponses::operator== ( const NuclearResponses & other) const
inline

Definition at line 77 of file NuclearResponses.hh.

77 {
78 bool are_equal = this->rCC_ == other.rCC_;
79 if ( are_equal ) are_equal = this->rLL_ == other.rLL_;
80 if ( are_equal ) are_equal = this->rCL_ == other.rCL_;
81 if ( are_equal ) are_equal = this->rTvv_ == other.rTvv_;
82 if ( are_equal ) are_equal = this->rTaa_ == other.rTaa_;
83 if ( are_equal ) are_equal = this->rTprime_ == other.rTprime_;
84 return are_equal;
85 }

◆ print()

void marley::NuclearResponses::print ( std::ostream & out) const
inline

Definition at line 91 of file NuclearResponses.hh.

91 {
92 out << rCC_ << ' ' << rLL_ << ' ' << rCL_ << ' '
93 << rTvv_ << ' ' << rTaa_ << ' ' << rTprime_;
94 }

◆ RCC()

double marley::NuclearResponses::RCC ( ) const
inline

Definition at line 36 of file NuclearResponses.hh.

36{ return rCC_; }

◆ RCL()

double marley::NuclearResponses::RCL ( ) const
inline

Definition at line 38 of file NuclearResponses.hh.

38{ return rCL_; }

◆ RLL()

double marley::NuclearResponses::RLL ( ) const
inline

Definition at line 37 of file NuclearResponses.hh.

37{ return rLL_; }

◆ RT()

double marley::NuclearResponses::RT ( ) const
inline

Definition at line 39 of file NuclearResponses.hh.

39{ return rTvv_ + rTaa_; }

◆ RTaa()

double marley::NuclearResponses::RTaa ( ) const
inline

Definition at line 41 of file NuclearResponses.hh.

41{ return rTaa_; }

◆ RTprime()

double marley::NuclearResponses::RTprime ( ) const
inline

Definition at line 42 of file NuclearResponses.hh.

42{ return rTprime_; }

◆ RTvv()

double marley::NuclearResponses::RTvv ( ) const
inline

Definition at line 40 of file NuclearResponses.hh.

40{ return rTvv_; }

◆ set_RCC()

void marley::NuclearResponses::set_RCC ( double val)
inline

Definition at line 44 of file NuclearResponses.hh.

44{ rCC_ = val; }

◆ set_RCL()

void marley::NuclearResponses::set_RCL ( double val)
inline

Definition at line 46 of file NuclearResponses.hh.

46{ rCL_ = val; }

◆ set_RLL()

void marley::NuclearResponses::set_RLL ( double val)
inline

Definition at line 45 of file NuclearResponses.hh.

45{ rLL_ = val; }

◆ set_RTaa()

void marley::NuclearResponses::set_RTaa ( double val)
inline

Definition at line 48 of file NuclearResponses.hh.

48{ rTaa_ = val; }

◆ set_RTprime()

void marley::NuclearResponses::set_RTprime ( double val)
inline

Definition at line 49 of file NuclearResponses.hh.

49{ rTprime_ = val; }

◆ set_RTvv()

void marley::NuclearResponses::set_RTvv ( double val)
inline

Definition at line 47 of file NuclearResponses.hh.

47{ rTvv_ = val; }

Member Data Documentation

◆ rCC_

double marley::NuclearResponses::rCC_
protected

Definition at line 132 of file NuclearResponses.hh.

◆ rCL_

double marley::NuclearResponses::rCL_
protected

Definition at line 134 of file NuclearResponses.hh.

◆ rLL_

double marley::NuclearResponses::rLL_
protected

Definition at line 133 of file NuclearResponses.hh.

◆ rTaa_

double marley::NuclearResponses::rTaa_
protected

Definition at line 136 of file NuclearResponses.hh.

◆ rTprime_

double marley::NuclearResponses::rTprime_
protected

Definition at line 137 of file NuclearResponses.hh.

◆ rTvv_

double marley::NuclearResponses::rTvv_
protected

Definition at line 135 of file NuclearResponses.hh.


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