1 #ifndef __JDETECTOR__JMODULE__ 
    2 #define __JDETECTOR__JMODULE__ 
   31 namespace JDETECTOR {}
 
   32 namespace JPP { 
using namespace JDETECTOR; }
 
  107       if (module.empty()) {
 
  187                                const double   precision = 1.0e-3)
 
  189       if (first.size() == second.size()) {
 
  191         for (
size_t i = 0; i != first.size(); ++i) {
 
  237       if (index >= (
int) size()) {
 
  241       (*this)[index] = pmt;
 
  257       if (this->size() > 1
u) {
 
  265         for (const_iterator pmt = this->begin(); pmt != this->end(); ++pmt) {
 
  267           const double xx = 1.0  -  pmt->getDX() * pmt->getDX();
 
  268           const double yy = 1.0  -  pmt->getDY() * pmt->getDY();
 
  269           const double zz = 1.0  -  pmt->getDZ() * pmt->getDZ();
 
  271           const double xy = -pmt->getDX() * pmt->getDY();
 
  272           const double xz = -pmt->getDX() * pmt->getDZ();
 
  273           const double yz = -pmt->getDY() * pmt->getDZ();
 
  284           x  +=  xx * pmt->
getX()  + xy * pmt->getY()  +  xz * pmt->getZ();
 
  285           y  +=  xy * pmt->getX()  + yy * pmt->getY()  +  yz * pmt->getZ();
 
  286           z  +=  xz * pmt->getX()  + yz * pmt->getY()  +  zz * pmt->getZ();
 
  295         return JVector3D(V.a00 * x  +  V.a01 * y  +  V.a02 * z,
 
  296                          V.a10 * x  +  V.a11 * y  +  V.a12 * z,
 
  297                          V.a20 * x  +  V.a21 * y  +  V.a22 * z);
 
  318       if (!this->empty()) {
 
  325         catch(
const exception&) {
 
  329           for (
iterator i = this->begin(); i != this->end(); ++i) {
 
  330             pos.
add(i->getPosition());
 
  355       for (
iterator i = this->begin(); i != this->end(); ++i) {
 
  370       for (
iterator i = this->begin(); i != this->end(); ++i) {
 
  387       for (
iterator i = this->begin(); i != this->end(); ++i) {
 
  388         i->transform(R, pos);
 
  402       for (
iterator i = this->begin(); i != this->end(); ++i) {
 
  417       for (
iterator i = this->begin(); i != this->end(); ++i) {
 
  432       for (
iterator i = this->begin(); i != this->end(); ++i) {
 
  446       return add(pos - static_cast<JPosition3D&>(*
this));
 
  458       for (
iterator i = begin(); i != end(); ++i) {
 
  476       for (
iterator i = begin(); i != end(); ++i) {
 
  494       for (
iterator i = begin(); i != end(); ++i) {
 
  510       for (
iterator i = begin(); i != end(); ++i) {
 
  526       for (
iterator i = begin(); i != end(); ++i) {
 
  542       return this->
add(pos);
 
  554       return this->
sub(pos);
 
  582       for (
JPMT pmt; n != 0 && in >> pmt; --
n) {
 
  583         module.push_back(pmt);
 
  606       out << static_cast<const JModuleIdentifier&>(module);
 
  608       out << static_cast<const JLocation&>        (module);
 
  612         out << static_cast<const JPosition3D&>  (module);
 
  614         out << static_cast<const JQuaternion3D&>(module);
 
  616         out << static_cast<const JCalibration&> (module);
 
  619       out << 
' ' << module.size() << endl;
 
  621       for (const_iterator i = module.begin(); i != module.end(); ++i) {
 
  622         out << 
' ' << *i << endl;;
 
  653       for (
JPMT pmt; n != 0; --
n) {
 
  657         module.push_back(pmt);
 
  677       out << static_cast<const JModuleIdentifier&>(module);
 
  678       out << static_cast<const JLocation&>        (module);
 
  681         out << static_cast<const JPosition3D&>  (module);
 
  682         out << static_cast<const JQuaternion3D&>(module);
 
  683         out << static_cast<const JCalibration&> (module);
 
  686       int n = module.size();
 
  690       for (const_iterator i = module.begin(); i != module.end(); ++i) {
 
friend JReader & operator>>(JReader &in, JModule &module)
Read module from input. 
 
Interface for binary output. 
 
Q(UTCMax_s-UTCMin_s)-livetime_s
 
static void setVersion(const JVersion &version)
Set detector version. 
 
int getFloor() const 
Get floor number. 
 
Data structure for a composite optical module. 
 
static const double HYDROPHONE_DELAYTIME_US
Hydrophone delay time [us]. 
 
JPosition3D & rotate_back(const JRotation3D &R)
Rotate back. 
 
JModule & operator-=(const JVector3D &pos)
Subtract position. 
 
JModule & add(const double t0)
Add time offset. 
 
std::iterator_traits< T >::value_type getAverage(T __begin, T __end)
Get average. 
 
void subT0(const double t0)
Subtract time offset. 
 
Data structure for time calibration. 
 
double getDot(const JAngle3D &angle) const 
Get dot product. 
 
void transform(const JRotation3D &R, const JVector3D &pos)
Transform position. 
 
friend JWriter & operator<<(JWriter &out, const JModule &module)
Write module to output. 
 
void rotate(const JQuaternion3D &Q)
Rotate module. 
 
JModule()
Default constructor. 
 
then echo The file $DIR KM3NeT_00000001_00000000 root already please rename or remove it first
 
JModule & sub(const JVector3D &pos)
Subtract position. 
 
JVector3D & sub(const JVector3D &vector)
Subtract vector. 
 
void transform(const JTransformation3D &T)
Transformation of geometry. 
 
JDirection3D getDirection(const Vec &dir)
Get direction. 
 
static const double PIEZO_DELAYTIME_US
Piezo delay time [us]. 
 
Data structure for vector in three dimensions. 
 
Version with quaternion and time offset per module. 
 
JModule & sub(const double t0)
Subtract time offset. 
 
Logical location of module. 
 
const array_type< JValue_t > & make_array(const JValue_t(&array)[N])
Method to create array of values. 
 
do set_variable OUTPUT_DIRECTORY $WORKDIR T
 
Data structure for PMT geometry and calibration. 
 
void compile()
Compile module data. 
 
void rotate_back(const JQuaternion3D &Q)
Rotate back module. 
 
JModule(const int id, const JLocation &location)
Constructor. 
 
void setPMT(const int index, const JPMT &pmt)
Set PMT. 
 
void rotate_back(const JRotation3D &R)
Rotate back module. 
 
JVector3D getCenter() const 
Get center of module based on crossing point of PMT axes. 
 
Interface for binary input. 
 
const JPosition3D & getPosition() const 
Get position. 
 
static const JModule & getInstance()
Get reference to unique instance of this class object. 
 
const JPMT & getPMT(const int index) const 
Get PMT. 
 
void rotate(const JRotation3D &R)
Rotate module. 
 
JModule & operator+=(const JVector3D &pos)
Add position. 
 
Logical location of module. 
 
static const JGetDetectorVersion getDetectorVersion
Function object to map detector variant to detector version. 
 
const JRotation3D & getRotation() const 
Get rotation. 
 
Data structure for unit quaternion in three dimensions. 
 
static JDetectorVersion & getVersion()
Get detector version. 
 
then echo Variable JPP_DIR undefined exit fi source $JPP_DIR setenv sh $JPP_DIR set_variable NORTH set_variable EAST set_variable SOUTH set_variable WEST set_variable WORKDIR tmp set_variable R set_variable CT set_variable YMAX set_variable YMIN if do_usage *then usage $script[distance] fi case set_variable R
 
friend std::ostream & operator<<(std::ostream &out, const JModule &module)
Write module to output. 
 
friend std::istream & operator>>(std::istream &in, JModule &module)
Read module from input. 
 
void setT0(const double t0)
Set time offset. 
 
Data structure for PMT geometry and calibration. 
 
Auxiliary class for object identification. 
 
JPosition3D()
Default constructor. 
 
void setCalibration(const JCalibration &cal)
Set calibration. 
 
void transform(const JRotation3D &R, const JVector3D &pos)
Transformation of geometry (see method JGEOMETRY3D::JPosition3D::transform(const JRotation3D&, const JVector3D&)). 
 
alias put_queue eval echo n
 
JModule & set(const double t0)
Set time offset. 
 
JPMT & getPMT(const int index)
Get PMT. 
 
double getX() const 
Get x position. 
 
Base class for data structures with artithmetic capabilities. 
 
void addT0(const double t0)
Add time offset. 
 
Data structure for position in three dimensions. 
 
Exception for accessing a value in a collection that is outside of its range. 
 
JVector3D & div(const double factor)
Scale vector. 
 
Data structure for normalised vector in three dimensions. 
 
Auxiliary class for version identifier. 
 
then fatal Wrong number of arguments fi set_variable DETECTOR $argv[1] set_variable INPUT_FILE $argv[2] eval JPrintDetector a $DETECTOR O IDENTIFIER eval JPrintDetector a $DETECTOR O SUMMARY source JAcoustics sh $DETECTOR_ID CHECK_EXIT_CODE typeset A TRIPODS get_tripods $WORKDIR tripod txt TRIPODS for EMITTER in
 
JPosition3D & rotate(const JRotation3D &R)
Rotate. 
 
JModule & set(const JVector3D &pos)
Set position. 
 
static bool compare(const JModule &first, const JModule &second, const double precision=1.0e-3)
Compare modules. 
 
JVector3D & add(const JVector3D &vector)
Add vector. 
 
JModule & add(const JVector3D &pos)
Add position. 
 
JVector3D()
Default constructor. 
 
double getT0() const 
Get time offset.