Jpp test-rotations-new
the software that should make you happy
Loading...
Searching...
No Matches
JTransmitter.hh
Go to the documentation of this file.
1#ifndef __JDETECTOR__JTRANSMITTER__
2#define __JDETECTOR__JTRANSMITTER__
3
4#include <istream>
5#include <ostream>
6#include <iomanip>
7
8#include "JLang/JObjectID.hh"
12
13
14/**
15 * \file
16 *
17 * Data structure for transmitter.
18 * \author mdejong
19 */
20namespace JDETECTOR {}
21namespace JPP { using namespace JDETECTOR; }
22
23namespace JDETECTOR {
24
25 using JLANG::JObjectID;
28
29 /**
30 * Type definition of transmitter.
31 *
32 * The position of the transmitter is defined with respect to the position of the top of the T-bar.
33 */
34 struct JTransmitter :
35 public JObjectID,
36 public JLocation,
37 public JPosition3D,
38 public JMultiEquals<JTransmitter, JObjectID>
39 {
40 /**
41 * Default constructor.
42 */
44 JObjectID (),
45 JLocation (),
47 {}
48
49
50 /**
51 * Constructor.
52 *
53 * \param id identifier
54 * \param location location
55 * \param position position
56 */
57 JTransmitter(const int id,
58 const JLocation location,
59 const JPosition3D& position) :
60 JObjectID (id),
61 JLocation (location),
62 JPosition3D(position)
63 {}
64
65
66 /**
67 * Read transmitter from input.
68 *
69 * \param in input stream
70 * \param transmitter transmitter
71 * \return input stream
72 */
73 friend inline std::istream& operator>>(std::istream& in, JTransmitter& transmitter)
74 {
75 in >> static_cast<JObjectID&> (transmitter);
76 in >> static_cast<JLocation&> (transmitter);
77 in >> static_cast<JPosition3D&>(transmitter);
78
79 return in;
80 }
81
82
83 /**
84 * Write transmitter to output.
85 *
86 * \param out output stream
87 * \param transmitter transmitter
88 * \return output stream
89 */
90 friend inline std::ostream& operator<<(std::ostream& out, const JTransmitter& transmitter)
91 {
92 out << static_cast<const JObjectID&> (transmitter);
93 out << ' ';
94 out << static_cast<const JLocation&> (transmitter);
95 out << ' ';
96 out << static_cast<const JPosition3D&>(transmitter);
97
98 return out;
99 }
100 };
101}
102
103#endif
Logical location of module.
Logical location of module.
Definition JLocation.hh:40
Data structure for position in three dimensions.
Auxiliary class for object identification.
Definition JObjectID.hh:25
file Auxiliary data structures and methods for detector calibration.
Definition JAnchor.hh:12
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
Type definition of transmitter.
friend std::ostream & operator<<(std::ostream &out, const JTransmitter &transmitter)
Write transmitter to output.
friend std::istream & operator>>(std::istream &in, JTransmitter &transmitter)
Read transmitter from input.
JTransmitter(const int id, const JLocation location, const JPosition3D &position)
Constructor.
JTransmitter()
Default constructor.
Template definition of auxiliary base class for data structures composed of multiple base classes wit...