Jpp
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Types | Public Member Functions | Protected Attributes | Private Attributes | Friends | List of all members
JDYNAMICS::JDynamics::JPosition Struct Reference

Dynamic position calibration. More...

#include <JDynamics.hh>

Public Types

enum  { NUMBER_OF_POINTS = 7, NUMBER_OF_DEGREES = 2 }
 
typedef JACOUSTICS::JGeometry JGeometry
 
typedef JTOOLS::JElement2D
< double,
JACOUSTICS::JMODEL::JString
element_type
 
typedef
JTOOLS::JPolfitFunction1D
< NUMBER_OF_POINTS,
NUMBER_OF_DEGREES,
element_type,
JTOOLS::JCollection
function_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
 

Public Member Functions

 JPosition (const JDetector &detector, const double Tmax_s)
 Constructor. More...
 
void load (JObjectIterator< JACOUSTICS::JEvt > &input)
 Load calibration data. More...
 
bool empty () const
 empty 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 getTmax () const
 Get applicability period. More...
 
void setTmax (const double Tmax_s)
 Set applicability period. More...
 
const JGeometrygetGeometry () const
 Get detector geometry. More...
 
void update (JDetector &detector, const double t1_s)
 Calibrate given detector at given time. More...
 
double getXmin () const
 Get minimal abscissa. More...
 
double getXmax () const
 Get maximal abscissa. More...
 

Protected Attributes

JGeometry geometry
 
data_type calibration
 
double Tmax_s
 

Private Attributes

double t0_s
 

Friends

std::ostream & operator<< (std::ostream &out, const JPosition &calibration)
 Write calibration to output stream. More...
 

Detailed Description

Dynamic position calibration.

Definition at line 301 of file JDynamics.hh.

Member Typedef Documentation

Definition at line 308 of file JDynamics.hh.

Definition at line 310 of file JDynamics.hh.

Definition at line 313 of file JDynamics.hh.

Definition at line 315 of file JDynamics.hh.

Definition at line 317 of file JDynamics.hh.

Definition at line 318 of file JDynamics.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 303 of file JDynamics.hh.

303  {
304  NUMBER_OF_POINTS = 7, //!< number of points for interpolation
305  NUMBER_OF_DEGREES = 2 //!< number of degrees for interpolation
306  };
number of degrees for interpolation
Definition: JDynamics.hh:305
number of points for interpolation
Definition: JDynamics.hh:304

Constructor & Destructor Documentation

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

Constructor.

Parameters
detectordetector
Tmax_sapplicability period of calibration [s]

Definition at line 327 of file JDynamics.hh.

328  :
329  geometry(detector),
330  Tmax_s(Tmax_s),
331  t0_s(std::numeric_limits<double>::lowest())
332  {}

Member Function Documentation

void JDYNAMICS::JDynamics::JPosition::load ( JObjectIterator< JACOUSTICS::JEvt > &  input)
inline

Load calibration data.

Parameters
inputcalibration data

Definition at line 340 of file JDynamics.hh.

341  {
342  using namespace JPP;
343 
344  t0_s = std::numeric_limits<double>::lowest();
345 
346  while (input.hasNext()) {
347 
348  const JACOUSTICS::JEvt* evt = input.next();
349  const double t1_s = 0.5 * (evt->UNIXTimeStart + evt->UNIXTimeStop);
350 
351  for (JACOUSTICS::JEvt::const_iterator i = evt->begin(); i != evt->end(); ++i) {
352  calibration[i->id][t1_s] = JMODEL::JString(i->tx, i->ty);
353  }
354  }
355 
356  for (data_type::iterator i = calibration.begin(); i != calibration.end(); ++i) {
357  i->second.compile();
358  }
359  }
double UNIXTimeStop
stop time
virtual const pointer_type & next()=0
Get next element.
Acoustic event fit.
virtual bool hasNext()=0
Check availability of next element.
double UNIXTimeStart
start time
container_type::iterator iterator
Definition: JHashMap.hh:87
bool JDYNAMICS::JDynamics::JPosition::empty ( ) const
inline

empty

Definition at line 362 of file JDynamics.hh.

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

begin of calibration data

Definition at line 363 of file JDynamics.hh.

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

end of calibration data

Definition at line 364 of file JDynamics.hh.

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

begin of reverse of calibration data

Definition at line 365 of file JDynamics.hh.

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

begin of reverse of calibration data

Definition at line 366 of file JDynamics.hh.

double JDYNAMICS::JDynamics::JPosition::getTmax ( ) const
inline

Get applicability period.

Returns
applicability period [s]

Definition at line 374 of file JDynamics.hh.

375  {
376  return Tmax_s;
377  }
void JDYNAMICS::JDynamics::JPosition::setTmax ( const double  Tmax_s)
inline

Set applicability period.

Parameters
Tmax_sapplicability period [s]

Definition at line 385 of file JDynamics.hh.

386  {
387  this->Tmax_s = Tmax_s;
388  }
const JGeometry& JDYNAMICS::JDynamics::JPosition::getGeometry ( ) const
inline

Get detector geometry.

Returns
detector geometry

Definition at line 396 of file JDynamics.hh.

397  {
398  return geometry;
399  }
void JDYNAMICS::JDynamics::JPosition::update ( JDetector detector,
const double  t1_s 
)
inline

Calibrate given detector at given time.

Parameters
detectordetector (I/O)
t1_stime [s]

Definition at line 408 of file JDynamics.hh.

409  {
410  using namespace std;
411  using namespace JPP;
412 
413  if (!calibration.empty()) {
414 
415  if (fabs(t1_s - t0_s) > Tmax_s) {
416 
418 
419  for (JDetector::iterator module = detector.begin(); module != detector.end(); ++module) {
420 
421  if (module->getFloor() != 0) {
422 
423  if (!buffer.has(module->getString())) {
424  if (calibration.has(module->getString())) {
425  buffer[module->getString()] = calibration[module->getString()](t1_s);
426  }
427  }
428 
429  if (buffer.has(module->getString())) {
430  module->set(geometry[module->getString()].getPosition(buffer[module->getString()], module->getFloor()) - getPiezoPosition());
431  }
432  }
433  }
434 
435  t0_s = t1_s;
436  }
437  }
438  }
General purpose class for hash map of unique keys.
Definition: JHashMap.hh:71
JPosition3D getPiezoPosition()
Get relative position of piezo in optical module.
bool has(const T &value) const
Test whether given value is present.
double JDYNAMICS::JDynamics::JPosition::getXmin ( ) const
inline

Get minimal abscissa.

Returns
minimal abscissa

Definition at line 446 of file JDynamics.hh.

447  {
448  return JDynamics::getXmin(this->calibration);
449  }
static double getXmin(const JTOOLS::JHashMap< JKey_t, JValue_t, JEvaluator_t > &input)
Get minimal abscissa of mapped function objects.
Definition: JDynamics.hh:61
double JDYNAMICS::JDynamics::JPosition::getXmax ( ) const
inline

Get maximal abscissa.

Returns
maximal abscissa

Definition at line 457 of file JDynamics.hh.

458  {
459  return JDynamics::getXmax(this->calibration);
460  }
static double getXmax(const JTOOLS::JHashMap< JKey_t, JValue_t, JEvaluator_t > &input)
Get maximal abscissa of mapped function objects.
Definition: JDynamics.hh:82

Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  out,
const JPosition calibration 
)
friend

Write calibration to output stream.

Parameters
outoutput stream
calibration
Returns
output stream

Definition at line 470 of file JDynamics.hh.

471  {
472  if (!calibration.empty())
473  return out << "[" << FIXED(15,0) << calibration.getXmin()
474  << "," << FIXED(15,0) << calibration.getXmax()
475  << "]";
476  else
477  return out << "[,]";
478  }
Auxiliary data structure for floating point format specification.
Definition: JManip.hh:445

Member Data Documentation

JGeometry JDYNAMICS::JDynamics::JPosition::geometry
protected

Definition at line 481 of file JDynamics.hh.

data_type JDYNAMICS::JDynamics::JPosition::calibration
protected

Definition at line 482 of file JDynamics.hh.

double JDYNAMICS::JDynamics::JPosition::Tmax_s
protected

Definition at line 483 of file JDynamics.hh.

double JDYNAMICS::JDynamics::JPosition::t0_s
private

Definition at line 486 of file JDynamics.hh.


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