Jpp  18.2.0
the software that should make you happy
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | List of all members
JDYNAMICS::JDynamics::JOrientation Struct Reference

Dynamic orientation calibration. More...

#include <JDynamics.hh>

Inheritance diagram for JDYNAMICS::JDynamics::JOrientation:
JDYNAMICS::JDynamics::JUTCTracker JUTC::JUTCTimeRange JTOOLS::JRange< T, JComparator_t > JTOOLS::JPair< T, T > JLANG::JEquals< JFirst_t, JSecond_t > JMATH::JMath< JFirst_t, JSecond_t >

Public Types

enum  { NUMBER_OF_POINTS = 20, NUMBER_OF_DEGREES = 1 }
 
typedef JTOOLS::JElement2D
< double,
JGEOMETRY3D::JQuaternion3D
element_type
 
typedef
JTOOLS::JPolfitFunction1D
< NUMBER_OF_POINTS,
NUMBER_OF_DEGREES,
element_type,
JTOOLS::JCollection
function_type
 
typedef
function_type::collection_type::container_type 
container_type
 
typedef JTOOLS::JHashMap< int,
JGEOMETRY3D::JQuaternion3D
buffer_type
 
typedef JTOOLS::JHashMap< int,
function_type
data_type
 
typedef data_type::const_iterator const_iterator
 
typedef
data_type::const_reverse_iterator 
const_reverse_iterator
 
typedef std::pair< T, Tpair_type
 
typedef JRange< T, JComparator_t > range_type
 
typedef JLANG::JClass< T >
::argument_type 
argument_type
 
typedef T key_type
 
typedef T mapped_type
 

Public Member Functions

 JOrientation (const JDetector &detector, const double Tmax_s)
 Constructor. More...
 
void load (JObjectIterator< JCOMPASS::JOrientation > &input)
 Load calibration data. More...
 
bool empty () const
 empty More...
 
size_t size () const
 size More...
 
const_iterator begin () const
 begin of calibration data More...
 
const_iterator end () const
 end of calibration data More...
 
const_reverse_iterator rbegin () const
 begin of reverse of calibration data More...
 
const_reverse_iterator rend () const
 begin of reverse of calibration data More...
 
double getCoverage (const JDetector &detector, const double t1_s) const
 Get coverage. More...
 
bool update (JDetector &detector, const double t1_s)
 Calibrate given detector at given UTC time. More...
 
void reset ()
 Reset. More...
 
void set (const double t0_s)
 Set. More...
 
const JUTCTimeRangegetUTCTimeRange () const
 Get UTC time range. More...
 
JUTCTimeRangegetUTCTimeRange ()
 Get UTC time range. More...
 
void setUTCTimeRange (const JRange< double > &timerange)
 Set UTC time range. More...
 
 operator pair_type () const
 Type conversion operator. More...
 
const range_typegetRange () const
 Get range. More...
 
void setRange (const range_type &range)
 Set range. More...
 
void setRange (argument_type x, argument_type y)
 Set lower and upper limit. More...
 
template<class R >
void setRange (R first, R second)
 Set range. More...
 
template<class JElement_t , class JAllocator_t >
void setRange (const array_type< JElement_t, JAllocator_t > &buffer)
 Set lower and upper limit according to input data. More...
 
T getLowerLimit () const
 Get lower limit. More...
 
T getUpperLimit () const
 Get upper limit. More...
 
void setLowerLimit (argument_type x)
 Set lower limit. More...
 
void setUpperLimit (argument_type y)
 Set upper limit. More...
 
void fixLowerLimit (argument_type x)
 Fix lower limit. More...
 
void fixUpperLimit (argument_type y)
 Fix upper limit. More...
 
bool equals (const range_type &range) const
 Equal method. More...
 
T getLength () const
 Get length (difference between upper and lower limit). More...
 
void setLength (argument_type length)
 Set length (difference between upper and lower limit). More...
 
bool is_valid () const
 Check validity of range. More...
 
bool in_range (argument_type x) const
 Test whether value is inside range. More...
 
bool operator() (argument_type x) const
 Test whether value is inside range. More...
 
T constrain (argument_type x) const
 Constrain value to range. More...
 
T mod (argument_type x) const
 Modulo value with respect to range. More...
 
bool overlap (const range_type &range) const
 Test overlap with given range. More...
 
range_typeinclude (argument_type x)
 Include given value to range. More...
 
range_typejoin (const range_type &range)
 Join ranges. More...
 
range_typecombine (const range_type &range)
 Combine ranges. More...
 
range_typeadd (argument_type x)
 Add offset. More...
 
range_typeadd (const range_type &range)
 Add offsets. More...
 
range_typesub (argument_type x)
 Subtract offset. More...
 
range_typesub (const range_type &range)
 Subtract offsets. More...
 
range_typemul (const double factor)
 Multiply range. More...
 
JFirst_t & mul (const JSecond_t &object)
 Multiply with object. More...
 
range_typediv (const double factor)
 Divide range. More...
 
const key_typegetKey () const
 
const mapped_typegetValue () const
 
mapped_typegetValue ()
 

Static Public Member Functions

static T getMinimum ()
 Get minimum possible value. More...
 
static T getMaximum ()
 Get maximum possible value. More...
 
static JRange< T, JComparator_t > DEFAULT_RANGE ()
 Default range. More...
 

Public Attributes

JComparator_t compare
 Function object for comparisons. More...
 
T first
 
T second
 

Protected Member Functions

template<class R >
void setRange (R first, R second, const JLANG::JBool< false > &option)
 Set range. More...
 
template<class R >
void setRange (R first, R second, const JLANG::JBool< true > &option)
 Set range. More...
 

Protected Attributes

buffer_type buffer
 
data_type calibration
 

Detailed Description

Dynamic orientation calibration.

Definition at line 127 of file JDynamics.hh.

Member Typedef Documentation

Definition at line 135 of file JDynamics.hh.

Definition at line 138 of file JDynamics.hh.

typedef function_type::collection_type::container_type JDYNAMICS::JDynamics::JOrientation::container_type

Definition at line 139 of file JDynamics.hh.

Definition at line 141 of file JDynamics.hh.

Definition at line 142 of file JDynamics.hh.

Definition at line 144 of file JDynamics.hh.

Definition at line 145 of file JDynamics.hh.

template<class T, class JComparator_t = std::less<T>>
typedef std::pair<T,T> JTOOLS::JRange< T, JComparator_t >::pair_type
inherited

Definition at line 45 of file JRange.hh.

template<class T, class JComparator_t = std::less<T>>
typedef JRange<T, JComparator_t> JTOOLS::JRange< T, JComparator_t >::range_type
inherited

Definition at line 46 of file JRange.hh.

template<class T, class JComparator_t = std::less<T>>
typedef JLANG::JClass<T>::argument_type JTOOLS::JRange< T, JComparator_t >::argument_type
inherited

Definition at line 47 of file JRange.hh.

typedef T JTOOLS::JPair< T , T >::key_type
inherited

Definition at line 32 of file JPair.hh.

typedef T JTOOLS::JPair< T , T >::mapped_type
inherited

Definition at line 33 of file JPair.hh.

Member Enumeration Documentation

anonymous enum
Enumerator
NUMBER_OF_POINTS 

number of points for interpolation

NUMBER_OF_DEGREES 

number of degrees for interpolation

Definition at line 130 of file JDynamics.hh.

130  {
131  NUMBER_OF_POINTS = 20, //!< number of points for interpolation
132  NUMBER_OF_DEGREES = 1 //!< number of degrees for interpolation
133  };
number of points for interpolation
Definition: JDynamics.hh:131
number of degrees for interpolation
Definition: JDynamics.hh:132

Constructor & Destructor Documentation

JDYNAMICS::JDynamics::JOrientation::JOrientation ( const JDetector detector,
const double  Tmax_s 
)
inline

Constructor.

Parameters
detectordetector
Tmax_sapplicability period of calibration [s]

Definition at line 154 of file JDynamics.hh.

155  :
156  JUTCTracker(Tmax_s)
157  {
158  using namespace JPP;
159 
160  if (getDetectorVersion(detector.getVersion()) < JDetectorVersion::V4) {
161  THROW(JValueOutOfRange, "Detector version " << detector.getVersion() << " < " << JDetectorVersion::V4);
162  }
163 
164  if (hasDetectorAddressMap(detector.getID())) {
165 
166  const JDetectorAddressMap& demo = getDetectorAddressMap(detector.getID());
167 
168  for (JDetector::const_iterator module = detector.begin(); module != detector.end(); ++module) {
169  if (module->getFloor() != 0) {
170  buffer[module->getID()] = getRotation(JDETECTOR::getModule(demo.get(module->getID())), *module);
171  }
172  }
173 
174  } else {
175 
176  THROW(JValueOutOfRange, "No detector address map for detector identier " << detector.getID());
177  }
178  }
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
Definition: JException.hh:712
bool hasDetectorAddressMap(const int id)
Check if detector address map is available.
static JRotation getRotation
Function object to get rotation matrix to go from first to second module.
Lookup table for PMT addresses in detector.
const std::string & getVersion() const
Get version.
const JModuleAddressMap & get(const int id) const
Get module address map.
JUTCTracker(const double Tmax_s)
Constructor.
Definition: JDynamics.hh:96
int getID() const
Get identifier.
Definition: JObjectID.hh:50
JDetectorAddressMap & getDetectorAddressMap()
Get detector address map.
static const JGetDetectorVersion getDetectorVersion
Function object to map detector version to numerical value.
Exception for accessing a value in a collection that is outside of its range.
Definition: JException.hh:178
const JModule & getModule(const JModuleAddressMap &memo, const int id=-1, const JLocation &location=JLocation())
Get module according module address map.

Member Function Documentation

void JDYNAMICS::JDynamics::JOrientation::load ( JObjectIterator< JCOMPASS::JOrientation > &  input)
inline

Load calibration data.

Parameters
inputcalibration data

Definition at line 186 of file JDynamics.hh.

187  {
188  this->reset();
189 
190  while (input.hasNext()) {
191 
192  const JCOMPASS::JOrientation* orientation = input.next();
193 
194  if (buffer.has(orientation->id)) {
195  static_cast<container_type&>(calibration[orientation->id]).push_back(element_type(orientation->t, getQuaternion(*orientation)));
196  }
197  }
198 
199  for (data_type::iterator i = calibration.begin(); i != calibration.end(); ++i) {
200  i->second.sort();
201  i->second.compile();
202  }
203  }
int id
module identifier
JQuaternion3D getQuaternion(const JQuaternion &Q)
Get quaternion.
function_type::collection_type::container_type container_type
Definition: JDynamics.hh:139
Calibration.
Definition: JHead.hh:328
virtual const pointer_type & next()=0
Get next element.
virtual bool hasNext()=0
Check availability of next element.
JTOOLS::JElement2D< double, JGEOMETRY3D::JQuaternion3D > element_type
Definition: JDynamics.hh:135
Orientation of module.
bool has(const T &value) const
Test whether given value is present.
container_type::iterator iterator
Definition: JHashMap.hh:88
bool JDYNAMICS::JDynamics::JOrientation::empty ( ) const
inline

empty

Definition at line 206 of file JDynamics.hh.

size_t JDYNAMICS::JDynamics::JOrientation::size ( ) const
inline

size

Definition at line 207 of file JDynamics.hh.

const_iterator JDYNAMICS::JDynamics::JOrientation::begin ( ) const
inline

begin of calibration data

Definition at line 208 of file JDynamics.hh.

const_iterator JDYNAMICS::JDynamics::JOrientation::end ( ) const
inline

end of calibration data

Definition at line 209 of file JDynamics.hh.

const_reverse_iterator JDYNAMICS::JDynamics::JOrientation::rbegin ( ) const
inline

begin of reverse of calibration data

Definition at line 210 of file JDynamics.hh.

const_reverse_iterator JDYNAMICS::JDynamics::JOrientation::rend ( ) const
inline

begin of reverse of calibration data

Definition at line 211 of file JDynamics.hh.

double JDYNAMICS::JDynamics::JOrientation::getCoverage ( const JDetector detector,
const double  t1_s 
) const
inline

Get coverage.

Parameters
detectordetector
t1_sUTC time [s]
Returns
coverage [0,1]

Definition at line 221 of file JDynamics.hh.

222  {
223  int n0 = 0;
224  int n1 = 0;
225 
226  for (JDetector::const_iterator module = detector.begin(); module != detector.end(); ++module) {
227 
228  if (module->getFloor() != 0 && !module->has(COMPASS_DISABLE)) {
229 
230  ++n0;
231 
232  if (calibration.has(module->getID()) && !calibration.get(module->getID()).empty()) {
233  if (calibration[module->getID()].getXmin() <= t1_s &&
234  calibration[module->getID()].getXmax() >= t1_s) {
235  ++n1;
236  }
237  }
238  }
239  }
240 
241  if (n0 != 0)
242  return (double) n1 / (double) n0;
243  else
244  return 0.0;
245  }
Calibration.
Definition: JHead.hh:328
static const int COMPASS_DISABLE
Enable (disable) use of compass if this status bit is 0 (1);.
bool JDYNAMICS::JDynamics::JOrientation::update ( JDetector detector,
const double  t1_s 
)
inline

Calibrate given detector at given UTC time.

Parameters
detectordetector (I/O)
t1_sUTC time [s]
Returns
true if updated; else false

Definition at line 255 of file JDynamics.hh.

256  {
257  using namespace std;
258  using namespace JPP;
259 
260  if (!calibration.empty()) {
261 
262  if (!in_range(t1_s)) {
263 
264  for (JDetector::iterator module = detector.begin(); module != detector.end(); ++module) {
265 
266  if (module->getFloor() != 0 && !module->has(COMPASS_DISABLE) && calibration.has(module->getID()) && buffer.has(module->getID())) {
267 
268  const function_type& f1 = calibration.get(module->getID());
269 
270  if (!f1.empty()) {
271 
272  if (t1_s >= f1.getXmin() && t1_s <= f1.getXmax()) {
273 
274  JQuaternion3D Q0 = buffer[module->getID()];
275  JQuaternion3D Q1 = module->getQuaternion() * f1(t1_s);
276 
277  const JPosition3D center = module->getPosition();
278 
279  module->sub(center);
280 
281  module->rotate(Q1 * Q0.conjugate());
282 
283  module->add(center);
284 
285  buffer[module->getID()] = Q1;
286  }
287  }
288  }
289  }
290 
291  set(t1_s);
292 
293  return true;
294  }
295  }
296 
297  return false;
298  }
void set(const double t0_s)
Set.
Definition: JDynamics.hh:115
JTOOLS::JPolfitFunction1D< NUMBER_OF_POINTS, NUMBER_OF_DEGREES, element_type, JTOOLS::JCollection > function_type
Definition: JDynamics.hh:138
Calibration.
Definition: JHead.hh:328
const JQuaternion3D & getQuaternion() const
Get quaternion.
static const int COMPASS_DISABLE
Enable (disable) use of compass if this status bit is 0 (1);.
const JPolynome f1(1.0, 2.0, 3.0)
Function.
JVector3D & sub(const JVector3D &vector)
Subtract vector.
Definition: JVector3D.hh:158
const JPosition3D & getPosition() const
Get position.
Definition: JPosition3D.hh:130
bool in_range(argument_type x) const
Test whether value is inside range.
Definition: JRange.hh:323
Data structure for unit quaternion in three dimensions.
Data structure for position in three dimensions.
Definition: JPosition3D.hh:36
bool has(const T &value) const
Test whether given value is present.
JVector3D & add(const JVector3D &vector)
Add vector.
Definition: JVector3D.hh:142
JQuaternion3D & conjugate()
Conjugate quaternion.
void JDYNAMICS::JDynamics::JUTCTracker::reset ( )
inlineinherited

Reset.

Definition at line 104 of file JDynamics.hh.

105  {
106  set(0.0);
107  }
void set(const double t0_s)
Set.
Definition: JDynamics.hh:115
void JDYNAMICS::JDynamics::JUTCTracker::set ( const double  t0_s)
inlineinherited

Set.

Parameters
t0_sUTC time [s]

Definition at line 115 of file JDynamics.hh.

116  {
117  const double Tmax_s = 0.5 * (getUpperLimit() - getLowerLimit());
118 
119  setRange(t0_s - Tmax_s, t0_s + Tmax_s);
120  }
T getLowerLimit() const
Get lower limit.
Definition: JRange.hh:202
void setRange(const range_type &range)
Set range.
Definition: JRange.hh:146
T getUpperLimit() const
Get upper limit.
Definition: JRange.hh:213
const JUTCTimeRange& JUTC::JUTCTimeRange::getUTCTimeRange ( ) const
inlineinherited

Get UTC time range.

Returns
UTC time range

Definition at line 63 of file JUTCTimeRange.hh.

64  {
65  return static_cast<const JUTCTimeRange&>(*this);
66  }
UTC time range [s].
JUTCTimeRange& JUTC::JUTCTimeRange::getUTCTimeRange ( )
inlineinherited

Get UTC time range.

Returns
UTC time range

Definition at line 74 of file JUTCTimeRange.hh.

75  {
76  return static_cast<JUTCTimeRange&>(*this);
77  }
UTC time range [s].
void JUTC::JUTCTimeRange::setUTCTimeRange ( const JRange< double > &  timerange)
inlineinherited

Set UTC time range.

Parameters
timerangeUTC time range

Definition at line 85 of file JUTCTimeRange.hh.

86  {
87  static_cast<JUTCTimeRange&>(*this) = timerange;
88  }
UTC time range [s].
template<class T, class JComparator_t = std::less<T>>
JTOOLS::JRange< T, JComparator_t >::operator pair_type ( ) const
inlineinherited

Type conversion operator.

Returns
piar

Definition at line 124 of file JRange.hh.

125  {
127  }
T getLowerLimit() const
Get lower limit.
Definition: JRange.hh:202
std::pair< T, T > pair_type
Definition: JRange.hh:45
T getUpperLimit() const
Get upper limit.
Definition: JRange.hh:213
template<class T, class JComparator_t = std::less<T>>
const range_type& JTOOLS::JRange< T, JComparator_t >::getRange ( ) const
inlineinherited

Get range.

Returns
range

Definition at line 135 of file JRange.hh.

136  {
137  return static_cast<const range_type&>(*this);
138  }
JRange< T, JComparator_t > range_type
Definition: JRange.hh:46
template<class T, class JComparator_t = std::less<T>>
void JTOOLS::JRange< T, JComparator_t >::setRange ( const range_type range)
inlineinherited

Set range.

Parameters
rangerange

Definition at line 146 of file JRange.hh.

147  {
148  static_cast<range_type&>(*this) = range;
149  }
z range($ZMAX-$ZMIN)< $MINIMAL_DZ." fi fi typeset -Z 4 STRING typeset -Z 2 FLOOR JPlot1D -f $
JRange< T, JComparator_t > range_type
Definition: JRange.hh:46
template<class T, class JComparator_t = std::less<T>>
void JTOOLS::JRange< T, JComparator_t >::setRange ( argument_type  x,
argument_type  y 
)
inlineinherited

Set lower and upper limit.

Parameters
xlower limit
yupper limit

Definition at line 158 of file JRange.hh.

159  {
160  this->first = x;
161  this->second = y;
162  }
template<class T, class JComparator_t = std::less<T>>
template<class R >
void JTOOLS::JRange< T, JComparator_t >::setRange ( R  first,
R  second 
)
inlineinherited

Set range.


The arguments could be values or iterators.

Parameters
firstfirst
secondsecond

Definition at line 173 of file JRange.hh.

174  {
175  using namespace JLANG;
176 
178  }
Auxiliary template class for type bool.
Definition: JBool.hh:20
Data structure to check whether given data type is an iterator.
Definition: JClass.hh:62
void setRange(const range_type &range)
Set range.
Definition: JRange.hh:146
template<class T, class JComparator_t = std::less<T>>
template<class JElement_t , class JAllocator_t >
void JTOOLS::JRange< T, JComparator_t >::setRange ( const array_type< JElement_t, JAllocator_t > &  buffer)
inlineinherited

Set lower and upper limit according to input data.

Parameters
bufferinput data

Definition at line 187 of file JRange.hh.

188  {
190 
191  for (typename array_type<JElement_t, JAllocator_t>::const_iterator i = buffer.begin(); i != buffer.end(); ++i) {
192  include(*i);
193  }
194  }
range_type & include(argument_type x)
Include given value to range.
Definition: JRange.hh:397
static T getMinimum()
Get minimum possible value.
Definition: JRange.hh:534
void setRange(const range_type &range)
Set range.
Definition: JRange.hh:146
static T getMaximum()
Get maximum possible value.
Definition: JRange.hh:545
Auxiliary data structure for return type of make methods.
Definition: JVectorize.hh:26
template<class T, class JComparator_t = std::less<T>>
template<class R >
void JTOOLS::JRange< T, JComparator_t >::setRange ( R  first,
R  second,
const JLANG::JBool< false > &  option 
)
inlineprotectedinherited

Set range.

Parameters
firstfirst
secondsecond
optionfalse

Definition at line 576 of file JRange.hh.

577  {
579  }
void setRange(const range_type &range)
Set range.
Definition: JRange.hh:146
JLANG::JClass< T >::argument_type argument_type
Definition: JRange.hh:47
template<class T, class JComparator_t = std::less<T>>
template<class R >
void JTOOLS::JRange< T, JComparator_t >::setRange ( R  first,
R  second,
const JLANG::JBool< true > &  option 
)
inlineprotectedinherited

Set range.

Parameters
firstfirst
secondsecond
optiontrue

Definition at line 590 of file JRange.hh.

591  {
593 
594  for (R i = first; i != second; ++i) {
595  include(*i);
596  }
597  }
range_type & include(argument_type x)
Include given value to range.
Definition: JRange.hh:397
static T getMinimum()
Get minimum possible value.
Definition: JRange.hh:534
void setRange(const range_type &range)
Set range.
Definition: JRange.hh:146
static T getMaximum()
Get maximum possible value.
Definition: JRange.hh:545
then JCookie sh JDataQuality D $DETECTOR_ID R
Definition: JDataQuality.sh:41
template<class T, class JComparator_t = std::less<T>>
T JTOOLS::JRange< T, JComparator_t >::getLowerLimit ( ) const
inlineinherited

Get lower limit.

Returns
lower limit

Definition at line 202 of file JRange.hh.

203  {
204  return this->first;
205  }
template<class T, class JComparator_t = std::less<T>>
T JTOOLS::JRange< T, JComparator_t >::getUpperLimit ( ) const
inlineinherited

Get upper limit.

Returns
upper limit

Definition at line 213 of file JRange.hh.

214  {
215  return this->second;
216  }
template<class T, class JComparator_t = std::less<T>>
void JTOOLS::JRange< T, JComparator_t >::setLowerLimit ( argument_type  x)
inlineinherited

Set lower limit.

Parameters
xlower limit

Definition at line 224 of file JRange.hh.

225  {
226  this->first = x;
227  }
template<class T, class JComparator_t = std::less<T>>
void JTOOLS::JRange< T, JComparator_t >::setUpperLimit ( argument_type  y)
inlineinherited

Set upper limit.

Parameters
yupper limit

Definition at line 235 of file JRange.hh.

236  {
237  this->second = y;
238  }
template<class T, class JComparator_t = std::less<T>>
void JTOOLS::JRange< T, JComparator_t >::fixLowerLimit ( argument_type  x)
inlineinherited

Fix lower limit.

The range is shifted to the given lower limit.

Parameters
xlower limit

Definition at line 248 of file JRange.hh.

249  {
250  this->second += x - this->first;
251  this->first = x;
252  }
template<class T, class JComparator_t = std::less<T>>
void JTOOLS::JRange< T, JComparator_t >::fixUpperLimit ( argument_type  y)
inlineinherited

Fix upper limit.

The range is shifted to the given upper limit.

Parameters
yupper limit

Definition at line 262 of file JRange.hh.

263  {
264  this->first += y - this->second;
265  this->second = y;
266  }
template<class T, class JComparator_t = std::less<T>>
bool JTOOLS::JRange< T, JComparator_t >::equals ( const range_type range) const
inlineinherited

Equal method.

Parameters
rangerange
Returns
true if this range is equal to given range; else false

Definition at line 275 of file JRange.hh.

276  {
277  return (!this->compare(this->getLowerLimit(), range.getLowerLimit()) &&
278  !this->compare(range.getLowerLimit(), this->getLowerLimit()) &&
279  !this->compare(this->getUpperLimit(), range.getUpperLimit()) &&
280  !this->compare(range.getUpperLimit(), this->getUpperLimit()));
281  }
T getLowerLimit() const
Get lower limit.
Definition: JRange.hh:202
JComparator_t compare
Function object for comparisons.
Definition: JRange.hh:565
T getUpperLimit() const
Get upper limit.
Definition: JRange.hh:213
z range($ZMAX-$ZMIN)< $MINIMAL_DZ." fi fi typeset -Z 4 STRING typeset -Z 2 FLOOR JPlot1D -f $
template<class T, class JComparator_t = std::less<T>>
T JTOOLS::JRange< T, JComparator_t >::getLength ( ) const
inlineinherited

Get length (difference between upper and lower limit).

Returns
length

Definition at line 289 of file JRange.hh.

290  {
291  return getUpperLimit() - getLowerLimit();
292  }
T getLowerLimit() const
Get lower limit.
Definition: JRange.hh:202
T getUpperLimit() const
Get upper limit.
Definition: JRange.hh:213
template<class T, class JComparator_t = std::less<T>>
void JTOOLS::JRange< T, JComparator_t >::setLength ( argument_type  length)
inlineinherited

Set length (difference between upper and lower limit).

Parameters
lengthlength

Definition at line 300 of file JRange.hh.

301  {
302  setUpperLimit(getLowerLimit() + length);
303  }
T getLowerLimit() const
Get lower limit.
Definition: JRange.hh:202
void setUpperLimit(argument_type y)
Set upper limit.
Definition: JRange.hh:235
template<class T, class JComparator_t = std::less<T>>
bool JTOOLS::JRange< T, JComparator_t >::is_valid ( ) const
inlineinherited

Check validity of range.

Returns
true if lower limit less than or equal to upper limit; else false

Definition at line 311 of file JRange.hh.

312  {
313  return !compare(getUpperLimit(), getLowerLimit());
314  }
T getLowerLimit() const
Get lower limit.
Definition: JRange.hh:202
JComparator_t compare
Function object for comparisons.
Definition: JRange.hh:565
T getUpperLimit() const
Get upper limit.
Definition: JRange.hh:213
template<class T, class JComparator_t = std::less<T>>
bool JTOOLS::JRange< T, JComparator_t >::in_range ( argument_type  x) const
inlineinherited

Test whether value is inside range.

Parameters
xvalue
Returns
true if lower limit <= value <= upper limit; else false

Definition at line 323 of file JRange.hh.

324  {
325  return (!compare(x, getLowerLimit()) &&
326  !compare(getUpperLimit(), x));
327  }
T getLowerLimit() const
Get lower limit.
Definition: JRange.hh:202
JComparator_t compare
Function object for comparisons.
Definition: JRange.hh:565
T getUpperLimit() const
Get upper limit.
Definition: JRange.hh:213
template<class T, class JComparator_t = std::less<T>>
bool JTOOLS::JRange< T, JComparator_t >::operator() ( argument_type  x) const
inlineinherited

Test whether value is inside range.

Parameters
xvalue
Returns
true if lower limit <= value <= upper limit; else false

Definition at line 336 of file JRange.hh.

337  {
338  return in_range(x);
339  }
bool in_range(argument_type x) const
Test whether value is inside range.
Definition: JRange.hh:323
template<class T, class JComparator_t = std::less<T>>
T JTOOLS::JRange< T, JComparator_t >::constrain ( argument_type  x) const
inlineinherited

Constrain value to range.


This method returns the original value if it is in this range, else lower limit if value < lower limit or upper limit if value > upper limit.

Parameters
xvalue
Returns
lower limit <= x <= upper limit

Definition at line 350 of file JRange.hh.

351  {
352  if (compare(x, getLowerLimit())) { return getLowerLimit(); }
353  if (compare(getUpperLimit(), x)) { return getUpperLimit(); }
354 
355  return x;
356  }
T getLowerLimit() const
Get lower limit.
Definition: JRange.hh:202
JComparator_t compare
Function object for comparisons.
Definition: JRange.hh:565
T getUpperLimit() const
Get upper limit.
Definition: JRange.hh:213
template<class T, class JComparator_t = std::less<T>>
T JTOOLS::JRange< T, JComparator_t >::mod ( argument_type  x) const
inlineinherited

Modulo value with respect to range.


Parameters
xvalue
Returns
lower limit <= x <= upper limit

Definition at line 365 of file JRange.hh.

366  {
367  if (compare(x, getLowerLimit()))
368  return x + getLength() * floor((getUpperLimit() - x) / getLength());
369  else if (compare(getUpperLimit(), x))
370  return x - getLength() * floor((x - getLowerLimit()) / getLength());
371  else
372  return x;
373  }
T getLowerLimit() const
Get lower limit.
Definition: JRange.hh:202
JComparator_t compare
Function object for comparisons.
Definition: JRange.hh:565
T getLength() const
Get length (difference between upper and lower limit).
Definition: JRange.hh:289
T getUpperLimit() const
Get upper limit.
Definition: JRange.hh:213
template<class T, class JComparator_t = std::less<T>>
bool JTOOLS::JRange< T, JComparator_t >::overlap ( const range_type range) const
inlineinherited

Test overlap with given range.


Parameters
rangerange
Returns
true if there is a non-zero overlap; else false

Definition at line 382 of file JRange.hh.

383  {
384  return (!compare(range.getUpperLimit(), getLowerLimit()) &&
385  !compare(getUpperLimit(), range.getLowerLimit()));
386  }
T getLowerLimit() const
Get lower limit.
Definition: JRange.hh:202
JComparator_t compare
Function object for comparisons.
Definition: JRange.hh:565
T getUpperLimit() const
Get upper limit.
Definition: JRange.hh:213
z range($ZMAX-$ZMIN)< $MINIMAL_DZ." fi fi typeset -Z 4 STRING typeset -Z 2 FLOOR JPlot1D -f $
template<class T, class JComparator_t = std::less<T>>
range_type& JTOOLS::JRange< T, JComparator_t >::include ( argument_type  x)
inlineinherited

Include given value to range.


The new lower limit is the minimim of the original lower limit and given value and
the new upper limit is the maximum of the original upper limit and given value;

Parameters
xvalue
Returns
range

Definition at line 397 of file JRange.hh.

398  {
399  if (compare(x, getLowerLimit())) { setLowerLimit(x); }
400  if (compare(getUpperLimit(), x)) { setUpperLimit(x); }
401 
402  return *this;
403  }
T getLowerLimit() const
Get lower limit.
Definition: JRange.hh:202
JComparator_t compare
Function object for comparisons.
Definition: JRange.hh:565
void setUpperLimit(argument_type y)
Set upper limit.
Definition: JRange.hh:235
T getUpperLimit() const
Get upper limit.
Definition: JRange.hh:213
void setLowerLimit(argument_type x)
Set lower limit.
Definition: JRange.hh:224
template<class T, class JComparator_t = std::less<T>>
range_type& JTOOLS::JRange< T, JComparator_t >::join ( const range_type range)
inlineinherited

Join ranges.


The new lower limit is the maximim of the two lower limits and
the new upper limit is the minimum of the two upper limits.
This operation results in an equal or smaller range and may result in an unphysical range (i.e. lower limit > upper limit).

Parameters
rangerange

Definition at line 415 of file JRange.hh.

416  {
417  if (compare(getLowerLimit(), range.getLowerLimit())) { setLowerLimit(range.getLowerLimit()); }
418  if (compare(range.getUpperLimit(), getUpperLimit())) { setUpperLimit(range.getUpperLimit()); }
419 
420  return *this;
421  }
T getLowerLimit() const
Get lower limit.
Definition: JRange.hh:202
JComparator_t compare
Function object for comparisons.
Definition: JRange.hh:565
void setUpperLimit(argument_type y)
Set upper limit.
Definition: JRange.hh:235
T getUpperLimit() const
Get upper limit.
Definition: JRange.hh:213
z range($ZMAX-$ZMIN)< $MINIMAL_DZ." fi fi typeset -Z 4 STRING typeset -Z 2 FLOOR JPlot1D -f $
void setLowerLimit(argument_type x)
Set lower limit.
Definition: JRange.hh:224
template<class T, class JComparator_t = std::less<T>>
range_type& JTOOLS::JRange< T, JComparator_t >::combine ( const range_type range)
inlineinherited

Combine ranges.


The new lower limit is the minimim of the two lower limits and
the new upper limit is the maximum of the two upper limits.
This operation results in an equal or larger range.

Parameters
rangerange

Definition at line 432 of file JRange.hh.

433  {
434  if (compare(range.getLowerLimit(), getLowerLimit())) { setLowerLimit(range.getLowerLimit()); }
435  if (compare(getUpperLimit(), range.getUpperLimit())) { setUpperLimit(range.getUpperLimit()); }
436 
437  return *this;
438  }
T getLowerLimit() const
Get lower limit.
Definition: JRange.hh:202
JComparator_t compare
Function object for comparisons.
Definition: JRange.hh:565
void setUpperLimit(argument_type y)
Set upper limit.
Definition: JRange.hh:235
T getUpperLimit() const
Get upper limit.
Definition: JRange.hh:213
z range($ZMAX-$ZMIN)< $MINIMAL_DZ." fi fi typeset -Z 4 STRING typeset -Z 2 FLOOR JPlot1D -f $
void setLowerLimit(argument_type x)
Set lower limit.
Definition: JRange.hh:224
template<class T, class JComparator_t = std::less<T>>
range_type& JTOOLS::JRange< T, JComparator_t >::add ( argument_type  x)
inlineinherited

Add offset.

Parameters
xoffset

Definition at line 446 of file JRange.hh.

447  {
448  this->first += x;
449  this->second += x;
450 
451  return *this;
452  }
template<class T, class JComparator_t = std::less<T>>
range_type& JTOOLS::JRange< T, JComparator_t >::add ( const range_type range)
inlineinherited

Add offsets.


The new lower limit is the sum of the two lower limits and
the new upper limit is the sum of the two upper limits.

Parameters
rangeoffset

Definition at line 476 of file JRange.hh.

477  {
478  this->first += range.getLowerLimit();
479  this->second += range.getUpperLimit();
480 
481  return *this;
482  }
z range($ZMAX-$ZMIN)< $MINIMAL_DZ." fi fi typeset -Z 4 STRING typeset -Z 2 FLOOR JPlot1D -f $
template<class T, class JComparator_t = std::less<T>>
range_type& JTOOLS::JRange< T, JComparator_t >::sub ( argument_type  x)
inlineinherited

Subtract offset.

Parameters
xoffset

Definition at line 460 of file JRange.hh.

461  {
462  this->first -= x;
463  this->second -= x;
464 
465  return *this;
466  }
template<class T, class JComparator_t = std::less<T>>
range_type& JTOOLS::JRange< T, JComparator_t >::sub ( const range_type range)
inlineinherited

Subtract offsets.


The new lower limit is the difference of the two lower limits and
the new upper limit is the difference of the two upper limits.

Parameters
rangeoffset

Definition at line 492 of file JRange.hh.

493  {
494  this->first -= range.getLowerLimit();
495  this->second -= range.getUpperLimit();
496 
497  return *this;
498  }
z range($ZMAX-$ZMIN)< $MINIMAL_DZ." fi fi typeset -Z 4 STRING typeset -Z 2 FLOOR JPlot1D -f $
template<class T, class JComparator_t = std::less<T>>
range_type& JTOOLS::JRange< T, JComparator_t >::mul ( const double  factor)
inlineinherited

Multiply range.

Parameters
factorfactor

Definition at line 506 of file JRange.hh.

507  {
508  this->first *= factor;
509  this->second *= factor;
510 
511  return *this;
512  }
template<class JFirst_t, class JSecond_t = JNullType>
JFirst_t& JMATH::JMath< JFirst_t, JSecond_t >::mul ( const JSecond_t &  object)
inlineinherited

Multiply with object.

Parameters
objectobject
Returns
result object

Definition at line 354 of file JMath.hh.

355  {
356  return static_cast<JFirst_t&>(*this) = JFirst_t().mul(static_cast<const JFirst_t&>(*this), object);
357  }
template<class T, class JComparator_t = std::less<T>>
range_type& JTOOLS::JRange< T, JComparator_t >::div ( const double  factor)
inlineinherited

Divide range.

Parameters
factorfactor

Definition at line 520 of file JRange.hh.

521  {
522  this->first /= factor;
523  this->second /= factor;
524 
525  return *this;
526  }
template<class T, class JComparator_t = std::less<T>>
static T JTOOLS::JRange< T, JComparator_t >::getMinimum ( )
inlinestaticinherited

Get minimum possible value.

Returns
minimum possible value

Definition at line 534 of file JRange.hh.

535  {
536  return JMATH::JLimits<T>::min();
537  }
float min()
Definition: JLimits.hh:96
template<class T, class JComparator_t = std::less<T>>
static T JTOOLS::JRange< T, JComparator_t >::getMaximum ( )
inlinestaticinherited

Get maximum possible value.

Returns
maximum possible value

Definition at line 545 of file JRange.hh.

546  {
547  return JMATH::JLimits<T>::max();
548  }
template<class T, class JComparator_t = std::less<T>>
static JRange<T, JComparator_t> JTOOLS::JRange< T, JComparator_t >::DEFAULT_RANGE ( )
inlinestaticinherited

Default range.

This range corresponds to an unphysical range.

Definition at line 555 of file JRange.hh.

556  {
559  }
static T getMinimum()
Get minimum possible value.
Definition: JRange.hh:534
static T getMaximum()
Get maximum possible value.
Definition: JRange.hh:545
Range of values.
Definition: JRange.hh:38
const key_type& JTOOLS::JPair< T , T >::getKey ( ) const
inlineinherited

Definition at line 123 of file JPair.hh.

123 { return this->first; }
const mapped_type& JTOOLS::JPair< T , T >::getValue ( ) const
inlineinherited

Definition at line 124 of file JPair.hh.

124 { return this->second; }
mapped_type& JTOOLS::JPair< T , T >::getValue ( )
inlineinherited

Definition at line 126 of file JPair.hh.

126 { return this->second; }

Member Data Documentation

buffer_type JDYNAMICS::JDynamics::JOrientation::buffer
protected

Definition at line 301 of file JDynamics.hh.

data_type JDYNAMICS::JDynamics::JOrientation::calibration
protected

Definition at line 302 of file JDynamics.hh.

template<class T, class JComparator_t = std::less<T>>
JComparator_t JTOOLS::JRange< T, JComparator_t >::compare
inherited

Function object for comparisons.

Definition at line 565 of file JRange.hh.

T JTOOLS::JPair< T , T >::first
inherited

Definition at line 128 of file JPair.hh.

T JTOOLS::JPair< T , T >::second
inherited

Definition at line 129 of file JPair.hh.


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