1 #ifndef __JDETECTOR__JMODULE__
2 #define __JDETECTOR__JMODULE__
23 namespace JDETECTOR {}
24 namespace JPP {
using namespace JDETECTOR; }
168 for (iterator i = begin(); i != end(); ++i) {
169 pos.
add(i->getPosition());
186 for (iterator i = this->begin(); i != this->end(); ++i) {
201 for (iterator i = this->begin(); i != this->end(); ++i) {
218 for (iterator i = this->begin(); i != this->end(); ++i) {
219 i->transform(R, pos);
233 for (iterator i = this->begin(); i != this->end(); ++i) {
247 return add(pos - static_cast<JPosition3D&>(*
this));
259 for (iterator i = begin(); i != end(); ++i) {
277 for (iterator i = begin(); i != end(); ++i) {
295 for (iterator i = begin(); i != end(); ++i) {
311 for (iterator i = begin(); i != end(); ++i) {
327 for (iterator i = begin(); i != end(); ++i) {
343 return this->
add(pos);
355 return this->
sub(pos);
377 for (
JPMT pmt; n != 0 && in >> pmt; --n) {
378 module.push_back(pmt);
398 out << static_cast<const JModuleIdentifier&>(module);
400 out << static_cast<const JModuleLocation&> (module);
402 out <<
' ' << module.size() << endl;
404 for (const_iterator i = module.begin(); i != module.end(); ++i) {
405 out <<
' ' << *i << endl;;
430 for (
JPMT pmt; n != 0; --n) {
434 module.push_back(pmt);
452 out << static_cast<const JModuleIdentifier&>(module);
453 out << static_cast<const JModuleLocation&> (module);
455 int n = module.size();
459 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.
Logical location of module.
JPosition3D & rotate_back(const JRotation3D &R)
Rotate back.
JModule & operator-=(const JVector3D &pos)
Subtract position.
JModule & add(const double t0)
Add time offset.
void transform(const JRotation3D &R, const JVector3D &pos)
Transform position.
friend JWriter & operator<<(JWriter &out, const JModule &module)
Write module to output.
JModule()
Default constructor.
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.
Data structure for PMT geometry and calibration.
void compile()
Compile position of module from the positions of the PMTs.
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.
JModule & operator+=(const JVector3D &pos)
Add position.
const JRotation3D & getRotation() const
Get rotation.
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.
void transform(const JRotation3D &R, const JVector3D &pos)
Transformation of geometry (see method JGEOMETRY3D::JPosition3D::transform(const JRotation3D&, const JVector3D&)).
JModule & set(const double t0)
Set time offset.
JPMT & getPMT(const int index)
Get PMT.
Data structure for position in three dimensions.
JVector3D & div(const double factor)
Scale vector.
JModule(const int id, const JModuleLocation &location)
Constructor.
Data structure for normalised vector in three dimensions.
JPosition3D & rotate(const JRotation3D &R)
Rotate.
JModule & set(const JVector3D &pos)
Set position.
JVector3D & add(const JVector3D &vector)
Add vector.
Logical location of module.
JModule & add(const JVector3D &pos)
Add position.
JVector3D()
Default constructor.