1 #ifndef __JACOUSTICS__JGEOMETRY__
2 #define __JACOUSTICS__JGEOMETRY__
37 namespace JACOUSTICS {}
38 namespace JPP {
using namespace JACOUSTICS; }
40 namespace JACOUSTICS {
181 for (
T i = __begin; i != __end; ++i) {
198 return this->
has(floor);
216 }
else if (this->
has(floor)) {
233 const double height)
const
235 const double tx = parameters.
tx;
236 const double ty = parameters.
ty;
237 const double tz = sqrt(1.0 - tx*tx - ty*ty);
241 this->
getY() + ty * dz,
242 this->
getZ() + tz * height);
254 const int floor)
const
262 }
else if (this->
has(floor)) {
305 const int floor)
const
321 const int floor)
const
327 }
else if (this->
has(floor)) {
329 const double height = this->
get(floor).
getHeight();
333 const double tx = parameters.
tx;
334 const double ty = parameters.
ty;
335 const double tz = sqrt(1.0 - tx*tx - ty*ty);
337 const double dx = pos.
getX() - position.
getX();
338 const double dy = pos.
getY() - position.
getY();
339 const double dz = pos.
getZ() - position.
getZ();
341 const double D = sqrt(dx*dx + dy*dy + dz*dz);
344 hiswa * dy / D - height * (ty / tz) * dz / D);
365 out << setw(2) << i->first <<
' '
366 <<
FIXED(7,3) << i->second <<
" | "
367 <<
string.getPosition(i->first) <<
' '
368 <<
string.mechanics << endl;
426 for (JDETECTOR::JDetector::const_iterator module = detector.begin(); module != detector.end(); ++module) {
427 buffer[module->getString()].push_back(
module_type(module->getLocation(), module->getPosition()));
432 sort(i->second.begin(), i->second.end(),
make_comparator(&module_type::getFloor));
434 if (i->second[0].getFloor() == 0) {
448 (*this)[i->first].has_hydrophone =
true;
450 catch(
const exception&) {
451 (*this)[i->first].has_hydrophone =
false;
456 THROW(
JNoValue,
"No floor 0 in string " << i->first <<
"; use e.g. JDetectorDB -W.");
470 return this->
has(
string);
498 out << setw(4) << i->first << endl << i->second;
Mechanical modelling of string.
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.
do echo Generating $dir eval D
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.