Jpp
 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 45 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 52 of file JCalibrateK40.hh.

53  :
54  __module (module),
55  __epsilon(epsilon)
56  {}

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 66 of file JCalibrateK40.hh.

67  {
68  using namespace std;
69 
70  if (fabs(this->getDot(first) - this->getDot(second)) > __epsilon)
71  return this->getDot(first) < this->getDot(second);
72  else if (max(first.first, first.second) == max(second.first, second.second))
73  return min(first.first, first.second) < min(second.first, second.second);
74  else
75  return max(first.first, first.second) < max(second.first, second.second);
76  }
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 85 of file JCalibrateK40.hh.

86  {
87  return JMATH::getDot(__module.getPMT(pair.first),
88  __module.getPMT(pair.second));
89  }
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:174

Member Data Documentation

const JModule& JCALIBRATE::JPairwiseComparator::__module
protected

Definition at line 92 of file JCalibrateK40.hh.

const double JCALIBRATE::JPairwiseComparator::__epsilon
protected

Definition at line 93 of file JCalibrateK40.hh.


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