Jpp  17.1.0
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Protected Attributes | List of all members
JCALIBRATE::JPairwiseComparator Struct Reference

Auxiliary class to sort pairs of PMT addresses within optical module. More...

#include <JCalibrateK40.hh>

Public Member Functions

 JPairwiseComparator (const JModule &module, const double epsilon=1.0e-5)
 Constructor. More...
 
bool operator() (const pair_type &first, const pair_type &second) const
 Comparison of two pairs of PMT addresses. More...
 
double getDot (const pair_type &pair) const
 Get cosine of space angle between PMT axes. More...
 

Protected Attributes

const JModule__module
 
const double __epsilon
 

Detailed Description

Auxiliary class to sort pairs of PMT addresses within optical module.

Definition at line 47 of file JCalibrateK40.hh.

Constructor & Destructor Documentation

JCALIBRATE::JPairwiseComparator::JPairwiseComparator ( const JModule module,
const double  epsilon = 1.0e-5 
)
inline

Constructor.

Parameters
moduledetector module
epsilonprecision

Definition at line 54 of file JCalibrateK40.hh.

55  :
56  __module (module),
58  {}
const double epsilon
Definition: JQuadrature.cc:21

Member Function Documentation

bool JCALIBRATE::JPairwiseComparator::operator() ( const pair_type first,
const pair_type second 
) const
inline

Comparison of two pairs of PMT addresses.

Parameters
firstfirst pair of PMT addresses
secondsecond pair of PMT addresses
Returns
true if first pair has larger space angle; else false

Definition at line 68 of file JCalibrateK40.hh.

69  {
70  using namespace std;
71 
72  if (fabs(this->getDot(first) - this->getDot(second)) > __epsilon)
73  return this->getDot(first) < this->getDot(second);
74  else if (max(first.first, first.second) == max(second.first, second.second))
75  return min(first.first, first.second) < min(second.first, second.second);
76  else
77  return max(first.first, first.second) < max(second.first, second.second);
78  }
double getDot(const pair_type &pair) const
Get cosine of space angle between PMT axes.
double JCALIBRATE::JPairwiseComparator::getDot ( const pair_type pair) const
inline

Get cosine of space angle between PMT axes.

Parameters
pairpair of PMT addresses
Returns
cosine

Definition at line 87 of file JCalibrateK40.hh.

88  {
89  return JMATH::getDot(__module.getPMT(pair.first),
90  __module.getPMT(pair.second));
91  }
double getDot(const JFirst_t &first, const JSecond_t &second)
Get dot product of objects.
const JPMT & getPMT(const int index) const
Get PMT.
Definition: JModule.hh:173

Member Data Documentation

const JModule& JCALIBRATE::JPairwiseComparator::__module
protected

Definition at line 94 of file JCalibrateK40.hh.

const double JCALIBRATE::JPairwiseComparator::__epsilon
protected

Definition at line 95 of file JCalibrateK40.hh.


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