Jpp
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
JLine3EZ.hh
Go to the documentation of this file.
1 #ifndef __JLINE3EZ__
2 #define __JLINE3EZ__
3 
4 #include <istream>
5 #include <ostream>
6 
7 #include "JMath/JMath.hh"
8 #include "JFit/JLine3Z.hh"
9 #include "JFit/JEnergy.hh"
10 
11 
12 /**
13  * \author mdejong
14  */
15 
16 namespace JFIT {}
17 namespace JPP { using namespace JFIT; }
18 
19 namespace JFIT {
20 
21  /**
22  * Data structure for fit of straight line in positive z-direction with energy.
23  * Note that the position coordinates are defined with respect to the given direction.
24  */
25  class JLine3EZ :
26  public JLine3Z,
27  public JEnergy,
28  public JMATH::JMath<JLine3EZ>
29  {
30  public:
31 
32  /**
33  * Default constructor.
34  */
36  JLine3Z(),
37  JEnergy()
38  {}
39 
40 
41  /**
42  * Constructor.
43  *
44  * \param line line
45  * \param x energy
46  */
47  JLine3EZ(const JLine3Z& line, const JEnergy& x) :
48  JLine3Z(line),
49  JEnergy(x)
50  {}
51 
52 
53  /**
54  * Prefix unary minus.
55  *
56  * \return line
57  */
59  {
62 
63  return *this;
64  }
65 
66 
67  /**
68  * Addition operator.
69  *
70  * \param value line
71  * \return line
72  */
73  JLine3EZ& add(const JLine3EZ& value)
74  {
75  JLine3Z::add(value);
76  JEnergy::add(value);
77 
78  return *this;
79  }
80 
81 
82  /**
83  * Subtraction operator.
84  *
85  * \param value line
86  * \return line
87  */
88  JLine3EZ& sub(const JLine3EZ& value)
89  {
90  JLine3Z::sub(value);
91  JEnergy::sub(value);
92 
93  return *this;
94  }
95 
96 
97  /**
98  * Multiplication operator.
99  *
100  * \param value multiplication factor
101  * \return line
102  */
103  JLine3EZ& mul(const double value)
104  {
105  JLine3Z::mul(value);
106  JEnergy::mul(value);
107 
108  return *this;
109  }
110 
111 
112  /**
113  * Division operator.
114  *
115  * \param value multiplication factor
116  * \return line
117  */
118  JLine3EZ& div(const double value)
119  {
120  JLine3Z::div(value);
121  JEnergy::div(value);
122 
123  return *this;
124  }
125 
126 
127  /**
128  * Read object from input.
129  *
130  * \param in input stream
131  * \param object object
132  * \return input stream
133  */
134  friend inline std::istream& operator>>(std::istream& in, JLine3EZ& object)
135  {
136  in >> static_cast<JLine3Z&>(object);
137  in >> static_cast<JEnergy&>(object);
138 
139  return in;
140  }
141 
142 
143  /**
144  * Write object to output.
145  *
146  * \param out output stream
147  * \param object object
148  * \return output stream
149  */
150  friend inline std::ostream& operator<<(std::ostream& out, const JLine3EZ& object)
151  {
152  out << static_cast<const JLine3Z&>(object);
153  out << static_cast<const JEnergy&>(object);
154 
155  return out;
156  }
157  };
158 }
159 
160 #endif
Auxiliary base class for aritmetic operations of derived class types.
Definition: JMath.hh:26
friend std::istream & operator>>(std::istream &in, JLine3EZ &object)
Read object from input.
Definition: JLine3EZ.hh:134
Data structure for fit of straight line in positive z-direction.
Definition: JLine3Z.hh:35
JEnergy & sub(const JEnergy &value)
Subtraction operator.
Definition: JEnergy.hh:92
JLine3EZ(const JLine3Z &line, const JEnergy &x)
Constructor.
Definition: JLine3EZ.hh:47
JLine3Z & div(const double value)
Division operator.
Definition: JLine3Z.hh:175
JEnergy & div(const double value)
Division operator.
Definition: JEnergy.hh:120
JLine3EZ()
Default constructor.
Definition: JLine3EZ.hh:35
JLine3EZ & negate()
Prefix unary minus.
Definition: JLine3EZ.hh:58
Data structure for fit of straight line in positive z-direction with energy.
Definition: JLine3EZ.hh:25
JEnergy & negate()
Prefix unary minus.
Definition: JEnergy.hh:64
JLine3Z & add(const JLine3Z &value)
Addition operator.
Definition: JLine3Z.hh:130
JLine3EZ & div(const double value)
Division operator.
Definition: JLine3EZ.hh:118
JLine3Z & mul(const double value)
Multiplication operator.
Definition: JLine3Z.hh:160
friend std::ostream & operator<<(std::ostream &out, const JLine3EZ &object)
Write object to output.
Definition: JLine3EZ.hh:150
JLine3EZ & sub(const JLine3EZ &value)
Subtraction operator.
Definition: JLine3EZ.hh:88
Base class for data structures with artithmetic capabilities.
Data structure for fit of energy.
Definition: JEnergy.hh:24
JLine3Z & sub(const JLine3Z &value)
Subtraction operator.
Definition: JLine3Z.hh:145
JLine3EZ & mul(const double value)
Multiplication operator.
Definition: JLine3EZ.hh:103
JLine3EZ & add(const JLine3EZ &value)
Addition operator.
Definition: JLine3EZ.hh:73
JEnergy & mul(const double value)
Multiplication operator.
Definition: JEnergy.hh:106
JEnergy & add(const JEnergy &value)
Addition operator.
Definition: JEnergy.hh:78
JLine3Z & negate()
Prefix unary minus.
Definition: JLine3Z.hh:115