1 #ifndef __JACOUSTICS__JGEOMETRY__
2 #define __JACOUSTICS__JGEOMETRY__
37 namespace JACOUSTICS {}
38 namespace JPP {
using namespace JACOUSTICS; }
40 namespace JACOUSTICS {
180 for (
T i = __begin; i != __end; ++i) {
197 return this->
has(floor);
215 }
else if (this->
has(floor)) {
232 const double height)
const
234 const double tx = parameters.
tx;
235 const double ty = parameters.
ty;
236 const double tz = sqrt(1.0 - tx*tx - ty*ty);
240 this->
getY() + ty * dz,
241 this->
getZ() + tz * height);
253 const int floor)
const
261 }
else if (this->
has(floor)) {
304 const int floor)
const
320 const int floor)
const
326 }
else if (this->
has(floor)) {
328 const double height = this->
get(floor).
getHeight();
332 const double tx = parameters.
tx;
333 const double ty = parameters.
ty;
334 const double tz = sqrt(1.0 - tx*tx - ty*ty);
336 const double dx = pos.
getX() - position.
getX();
337 const double dy = pos.
getY() - position.
getY();
338 const double dz = pos.
getZ() - position.
getZ();
340 const double D = sqrt(dx*dx + dy*dy + dz*dz);
343 hiswa * dy / D - height * (ty / tz) * dz / D);
364 out << setw(2) << i->first <<
' '
365 <<
FIXED(7,3) << i->second <<
" | "
366 <<
string.getPosition(i->first) <<
' '
367 <<
string.mechanics << endl;
422 for (JDETECTOR::JDetector::const_iterator module = detector.begin(); module != detector.end(); ++module) {
423 buffer[module->getString()].push_back(
module_type(module->getLocation(), module->getPosition()));
428 sort(i->second.begin(), i->second.end(),
make_comparator(&module_type::getFloor));
430 if (i->second[0].getFloor() == 0) {
444 (*this)[i->first].has_hydrophone =
true;
446 catch(
const exception&) {
447 (*this)[i->first].has_hydrophone =
false;
452 THROW(
JNoValue,
"No floor 0 in string " << i->first <<
"; use e.g. JDetectorDB -W.");
466 return this->
has(
string);
494 out << setw(4) << i->first << endl << i->second;
Mechanical modelling of string.
do echo Generating $dir eval D
JPredicate< JResult_t T::*, JComparison::eq > make_predicate(JResult_t T::*member, const JResult_t value)
Helper method to create predicate for data member.
JComparator< JResult_t T::*, JComparison::lt > make_comparator(JResult_t T::*member)
Helper method to create comparator between values of data member.
int getFloor() const
Get floor number.
static JDetectorMechanics getMechanics
Function object to get string mechanics.
friend std::ostream & operator<<(std::ostream &out, const JFloor &floor)
Write floor parameters to output stream.
General purpose class for hash map of unique elements.
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.
JString(const JVector3D &position, T __begin, T __end, const JMechanics &mechanics)
Constructor.
*fatal Wrong number of arguments esac JCookie sh typeset Z DETECTOR typeset Z SOURCE_RUN typeset Z TARGET_RUN set_variable PARAMETERS_FILE $WORKDIR parameters
JString()
Default constructor.
Auxiliary data structure for floating point format specification.
double getDistance(const JVector3D &pos) const
Get distance to point.
double getHeight(const int floor) const
Get height of given floor.
JFloor()
Default constructor.
JString(const JVector3D &position)
Constructor.
Data structure for detector geometry and calibration.
Auxiliary data structure for module location and position.
then echo The file $DIR KM3NeT_00000001_00000000 root already please rename or remove it first
Data structure for hydrophone.
JFloor(const double height)
Constructor.
JPosition3D getPosition(const JMODEL::JString ¶meters, const double height) const
Get position at given height according to given string model parameters.
friend std::ostream & operator<<(std::ostream &out, const JString &string)
Write string parameters to output stream.
bool hasString(int string) const
Check if this detector has given string.
JGEOMETRY::JDetector JGeometry
Type definition of detector geometry.
JMODEL::JString getGradient(const JMODEL::JString ¶meters, const JVector3D &position, const int floor) const
Get model gradient of distance between given position and floor according to given string model param...
Exception for missing value.
module_type(const JLocation &location, const JPosition3D &position)
Constructor.
Data structure for vector in three dimensions.
Logical location of module.
double getDistance(const JMODEL::JString ¶meters, const JVector3D &position, const int floor) const
Get distance between given position and floor according to given string model parameters.
do set_variable OUTPUT_DIRECTORY $WORKDIR T
double getHeight(const double height) const
Get effective height for given actual height.
double getY() const
Get y position.
const JPosition3D & getPosition() const
Get position.
Logical location of module.
JDetector(const JDETECTOR::JDetector &detector, const std::vector< JDETECTOR::JHydrophone > &hydrophones=std::vector< JDETECTOR::JHydrophone >())
Constructor.
JPosition3D getPosition(const double height) const
Get position at given height according to default string model parameters.
int getString() const
Get string number.
friend std::ostream & operator<<(std::ostream &out, const JDetector &detector)
Write detector parameters to output stream.
JPosition3D hydrophone
Hydrophone.
JMechanics mechanics
Mechanical data.
JPosition3D getPiezoPosition()
Get relative position of piezo in optical module.
JPosition3D()
Default constructor.
friend bool operator<(const module_type &first, const module_type &second)
Less-than operator.
JDetector()
Default constructor.
double getX() const
Get x position.
JPosition3D getPosition(const int floor) const
Get position of given floor according to default string model parameters.
bool hasLocation(const JLocation &location) const
Check if this detector has given location.
Data structure for position in three dimensions.
double getHeight() const
Get height of this floor.
Exception for accessing a value in a collection that is outside of its range.
Model for fit to acoutsics data.
double getZ() const
Get z position.
bool hasFloor(int floor) const
Check if this string has given floor.
JPosition3D getPosition(const JMODEL::JString ¶meters, const int floor) const
Get position of given floor according to given string model parameters.
Auxiliary data structure for parameters of mechanical model.