Jpp
Classes | Public Member Functions | Static Public Member Functions | Public Attributes | Friends | List of all members
JDETECTOR::JPMTParameters Class Reference

Data structure for PMT parameters. More...

#include <JPMTParameters.hh>

Inheritance diagram for JDETECTOR::JPMTParameters:
JDETECTOR::JPMTAnalogueSignalProcessor

Classes

class  JPMTParametersHelper
 Auxiliary class for I/O of PMT parameters. More...
 

Public Member Functions

 JPMTParameters ()
 Default constructor. More...
 
 JPMTParameters (const double QE, const double gain, const double gainSpread, const double riseTime_ns, const double TTS_ns, const double threshold, const double slope, const double saturation, const bool slewing=true)
 Constructor. More...
 
const JPMTParametersgetPMTParameters () const
 Get PMT parameters. More...
 
void setPMTParameters (const JPMTParameters &parameters)
 Set PMT parameters. More...
 
bool is_valid () const
 Check validity of PMT parameters. More...
 
JProperties getProperties (const JEquationParameters &equation=JPMTParameters::getEquationParameters())
 Get properties of this class. More...
 
JProperties getProperties (const JEquationParameters &equation=JPMTParameters::getEquationParameters()) const
 Get properties of this class. More...
 

Static Public Member Functions

static JEquationParametersgetEquationParameters ()
 Get equation parameters. More...
 
static void setEquationParameters (const JEquationParameters &equation)
 Set equation parameters. More...
 

Public Attributes

double QE
 relative quantum efficiency More...
 
double gain
 gain [unit] More...
 
double gainSpread
 gain spread [unit] More...
 
double riseTime_ns
 rise time of analogue pulse [ns] More...
 
double TTS_ns
 transition time spread [ns] More...
 
double threshold
 threshold [npe] More...
 
double slope
 slope [ns/npe] More...
 
double saturation
 saturation [ns] More...
 
bool slewing
 time slewing of analogue signal More...
 

Friends

std::istream & operator>> (std::istream &in, JPMTParameters &object)
 Stream input of PMT parameters. More...
 
std::ostream & operator<< (std::ostream &out, const JPMTParameters &object)
 Stream output of PMT parameters. More...
 

Detailed Description

Data structure for PMT parameters.

Definition at line 29 of file JPMTParameters.hh.

Constructor & Destructor Documentation

◆ JPMTParameters() [1/2]

JDETECTOR::JPMTParameters::JPMTParameters ( )
inline

Default constructor.

This constuctor provides for default values of all PMT parameters. Note that only when the value of TTS_ns is positive, it will be used to generate the PMT transition times. In this case, a normal distribution is used with a sigma equal to the specified value. By default, the value is negative. As a consequence, the PMT transition times will be generated according the measured distribution (see JPMTTransitTimeGenerator.hh).

Definition at line 41 of file JPMTParameters.hh.

42  {
43  this->QE = 1.0; // [unit]
44  this->gain = 0.9; // [unit]
45  this->gainSpread = 0.3; // [unit]
46  this->riseTime_ns = 8.5; // [ns]
47  this->TTS_ns = -1.0; // [ns]
48  this->threshold = 0.33; // [npe]
49  this->slope = 7.0; // [ns/npe]
50  this->saturation = 210; // [ns]
51  this->slewing = true; //
52  }

◆ JPMTParameters() [2/2]

JDETECTOR::JPMTParameters::JPMTParameters ( const double  QE,
const double  gain,
const double  gainSpread,
const double  riseTime_ns,
const double  TTS_ns,
const double  threshold,
const double  slope,
const double  saturation,
const bool  slewing = true 
)
inline

Constructor.

Parameters
QErelative quantum efficiency
gaingain [unit]
gainSpreadgain spread [unit]
riseTime_nsrise time of analogue pulse [ns]
TTS_ns;transition time spread [ns]
thresholdthreshold [npe]
slopeslope [ns/npe]
saturationsaturation [ns]
slewingtime slewing of analogue signal

Definition at line 68 of file JPMTParameters.hh.

77  {
78  this->QE = QE;
79  this->gain = gain;
80  this->gainSpread = gainSpread;
81  this->riseTime_ns = riseTime_ns;
82  this->TTS_ns = TTS_ns;
83  this->threshold = threshold;
84  this->slope = slope;
85  this->saturation = saturation;
86  this->slewing = slewing;
87  }

Member Function Documentation

◆ getPMTParameters()

const JPMTParameters& JDETECTOR::JPMTParameters::getPMTParameters ( ) const
inline

Get PMT parameters.

Returns
PMT parameters

Definition at line 95 of file JPMTParameters.hh.

96  {
97  return static_cast<const JPMTParameters&>(*this);
98  }

◆ setPMTParameters()

void JDETECTOR::JPMTParameters::setPMTParameters ( const JPMTParameters parameters)
inline

Set PMT parameters.

Parameters
parametersPMT parameters

Definition at line 106 of file JPMTParameters.hh.

107  {
108  static_cast<JPMTParameters&>(*this) = parameters;
109  }

◆ is_valid()

bool JDETECTOR::JPMTParameters::is_valid ( ) const
inline

Check validity of PMT parameters.

Returns
true if valid; else false

Definition at line 117 of file JPMTParameters.hh.

118  {
119  if (this->QE < 0.0 ||
120  this->gain < 0.0 ||
121  this->gainSpread < 0.0 ||
122  this->threshold < 0.0) {
123  return false;
124  }
125 
126  return true;
127  }

◆ getEquationParameters()

static JEquationParameters& JDETECTOR::JPMTParameters::getEquationParameters ( )
inlinestatic

Get equation parameters.

Returns
equation parameters

Definition at line 175 of file JPMTParameters.hh.

176  {
177  static JEquationParameters equation("=", ",", "./", "#");
178 
179  return equation;
180  }

◆ setEquationParameters()

static void JDETECTOR::JPMTParameters::setEquationParameters ( const JEquationParameters equation)
inlinestatic

Set equation parameters.

Parameters
equationequation parameters

Definition at line 188 of file JPMTParameters.hh.

189  {
190  getEquationParameters() = equation;
191  }

◆ getProperties() [1/2]

JProperties JDETECTOR::JPMTParameters::getProperties ( const JEquationParameters equation = JPMTParameters::getEquationParameters())
inline

Get properties of this class.

Parameters
equationequation parameters

Definition at line 199 of file JPMTParameters.hh.

200  {
201  return JPMTParametersHelper(*this, equation);
202  }

◆ getProperties() [2/2]

JProperties JDETECTOR::JPMTParameters::getProperties ( const JEquationParameters equation = JPMTParameters::getEquationParameters()) const
inline

Get properties of this class.

Parameters
equationequation parameters

Definition at line 210 of file JPMTParameters.hh.

211  {
212  return JPMTParametersHelper(*this, equation);
213  }

Friends And Related Function Documentation

◆ operator>>

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

Stream input of PMT parameters.

Parameters
ininput stream
objectPMT parameters
Returns
input stream

Definition at line 137 of file JPMTParameters.hh.

138  {
139  return in >> object.QE
140  >> object.gain
141  >> object.gainSpread
142  >> object.riseTime_ns
143  >> object.TTS_ns
144  >> object.threshold;
145  }

◆ operator<<

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

Stream output of PMT parameters.

Parameters
outoutput stream
objectPMT parameters
Returns
output stream

Definition at line 155 of file JPMTParameters.hh.

156  {
157  JFlags flags(out);
158 
159  out << FIXED(5,3) << object.QE << ' '
160  << FIXED(5,3) << object.gain << ' '
161  << FIXED(5,3) << object.gainSpread << ' '
162  << FIXED(5,2) << object.riseTime_ns << ' '
163  << FIXED(5,2) << object.TTS_ns << ' '
164  << FIXED(5,3) << object.threshold;
165 
166  return out;
167  }

Member Data Documentation

◆ QE

double JDETECTOR::JPMTParameters::QE

relative quantum efficiency

Definition at line 216 of file JPMTParameters.hh.

◆ gain

double JDETECTOR::JPMTParameters::gain

gain [unit]

Definition at line 217 of file JPMTParameters.hh.

◆ gainSpread

double JDETECTOR::JPMTParameters::gainSpread

gain spread [unit]

Definition at line 218 of file JPMTParameters.hh.

◆ riseTime_ns

double JDETECTOR::JPMTParameters::riseTime_ns

rise time of analogue pulse [ns]

Definition at line 219 of file JPMTParameters.hh.

◆ TTS_ns

double JDETECTOR::JPMTParameters::TTS_ns

transition time spread [ns]

Definition at line 220 of file JPMTParameters.hh.

◆ threshold

double JDETECTOR::JPMTParameters::threshold

threshold [npe]

Definition at line 221 of file JPMTParameters.hh.

◆ slope

double JDETECTOR::JPMTParameters::slope

slope [ns/npe]

Definition at line 222 of file JPMTParameters.hh.

◆ saturation

double JDETECTOR::JPMTParameters::saturation

saturation [ns]

Definition at line 223 of file JPMTParameters.hh.

◆ slewing

bool JDETECTOR::JPMTParameters::slewing

time slewing of analogue signal

Definition at line 224 of file JPMTParameters.hh.


The documentation for this class was generated from the following file:
JDETECTOR::JPMTParameters::saturation
double saturation
saturation [ns]
Definition: JPMTParameters.hh:223
JDETECTOR::JPMTParameters::threshold
double threshold
threshold [npe]
Definition: JPMTParameters.hh:221
FIXED
Auxiliary data structure for floating point format specification.
Definition: JPrint.hh:481
JDETECTOR::JPMTParameters::TTS_ns
double TTS_ns
transition time spread [ns]
Definition: JPMTParameters.hh:220
JDETECTOR::JPMTParameters::gainSpread
double gainSpread
gain spread [unit]
Definition: JPMTParameters.hh:218
JDETECTOR::JPMTParameters::slewing
bool slewing
time slewing of analogue signal
Definition: JPMTParameters.hh:224
JDETECTOR::JPMTParameters::getEquationParameters
static JEquationParameters & getEquationParameters()
Get equation parameters.
Definition: JPMTParameters.hh:175
JDETECTOR::JPMTParameters::gain
double gain
gain [unit]
Definition: JPMTParameters.hh:217
JFlags
Auxiliary class to temporarily modify format specifications.
Definition: JPrint.hh:617
JLANG::JEquationParameters
Simple data structure to support I/O of equations (see class JLANG::JEquation).
Definition: JEquationParameters.hh:20
JDETECTOR::JPMTParameters::slope
double slope
slope [ns/npe]
Definition: JPMTParameters.hh:222
JDETECTOR::JPMTParameters::QE
double QE
relative quantum efficiency
Definition: JPMTParameters.hh:216
JDETECTOR::JPMTParameters::riseTime_ns
double riseTime_ns
rise time of analogue pulse [ns]
Definition: JPMTParameters.hh:219