1 #ifndef __JDETECTOR__JMODULE__
2 #define __JDETECTOR__JMODULE__
25 namespace JDETECTOR {}
26 namespace JPP {
using namespace JDETECTOR; }
150 const double precision = 1.0e-3)
152 if (first.size() == second.size()) {
154 for (
size_t i = 0; i != first.size(); ++i) {
200 if (index >= (
int) size()) {
204 (*this)[index] =
pmt;
221 pos = JEstimator<JPoint3D>(this->begin(), this->end());
223 catch(
const exception&) {
227 for (
iterator i = begin(); i != end(); ++i) {
228 pos.
add(i->getPosition());
246 for (
iterator i = this->begin(); i != this->end(); ++i) {
261 for (
iterator i = this->begin(); i != this->end(); ++i) {
278 for (
iterator i = this->begin(); i != this->end(); ++i) {
279 i->transform(R, pos);
293 for (
iterator i = this->begin(); i != this->end(); ++i) {
308 for (
iterator i = this->begin(); i != this->end(); ++i) {
323 for (
iterator i = this->begin(); i != this->end(); ++i) {
337 return add(pos - static_cast<JPosition3D&>(*
this));
349 for (
iterator i = begin(); i != end(); ++i) {
367 for (
iterator i = begin(); i != end(); ++i) {
385 for (
iterator i = begin(); i != end(); ++i) {
401 for (
iterator i = begin(); i != end(); ++i) {
417 for (
iterator i = begin(); i != end(); ++i) {
433 return this->
add(pos);
445 return this->
sub(pos);
468 module.push_back(pmt);
488 out << static_cast<const JModuleIdentifier&>(module);
490 out << static_cast<const JLocation&> (module);
492 out <<
' ' << module.size() << endl;
494 for (const_iterator i = module.begin(); i != module.end(); ++i) {
495 out <<
' ' << *i << endl;;
524 module.push_back(pmt);
542 out << static_cast<const JModuleIdentifier&>(module);
543 out << static_cast<const JLocation&> (module);
545 int n = module.size();
549 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.
Data structure for a composite optical module.
JPosition3D & rotate_back(const JRotation3D &R)
Rotate back.
JModule & operator-=(const JVector3D &pos)
Subtract position.
JModule & add(const double t0)
Add time offset.
esac print_variable DETECTOR INPUT_FILE OUTPUT_FILE CDF for TYPE in
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
esac $JPP_DIR examples JDetector JTransitTime o $OUTPUT_FILE n N $NPE T $TTS_NS d $DEBUG for HISTOGRAM in tts tt2 pmt
JModule & sub(const JVector3D &pos)
Subtract position.
JVector3D & sub(const JVector3D &vector)
Subtract vector.
void transform(const JTransformation3D &T)
Transformation of geometry.
Data structure for vector in three dimensions.
JModule & sub(const double t0)
Subtract time offset.
Logical location of module.
do set_variable OUTPUT_DIRECTORY $WORKDIR T
Data structure for PMT geometry and calibration.
void compile()
Compile position of module from the positions and directions of the PMTs.
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.
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.
then usage $script[distance] fi case set_variable R
JModule & operator+=(const JVector3D &pos)
Add position.
Logical location of module.
const JRotation3D & getRotation() const
Get rotation.
Data structure for quaternion in three dimensions.
Linear fit of JFIT::JPoint3D.
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.
Data structure for PMT geometry and calibration.
Auxiliary class for object identification.
JPosition3D()
Default constructor.
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.
JDirection3D getDirection(const Vec &v)
Get direction.
Data structure for position in three dimensions.
JVector3D & div(const double factor)
Scale vector.
Data structure for normalised vector in three dimensions.
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.