~mbogomilov/maus/devel3

« back to all changes in this revision

Viewing changes to src/common_cpp/Optics/PhaseSpaceVector.cc

  • Committer: Durga Rajaram
  • Date: 2014-01-14 07:07:02 UTC
  • mfrom: (659.1.80 relcand)
  • Revision ID: durga@fnal.gov-20140114070702-2l1fuj1w6rraw7xe
Tags: MAUS-v0.7.6
MAUS-v0.7.6

Show diffs side-by-side

added added

removed removed

Lines of Context:
23
23
#include <iostream>
24
24
#include "CLHEP/Units/PhysicalConstants.h"
25
25
 
26
 
#include "Interface/Squeal.hh"
 
26
#include "Utils/Exception.hh"
27
27
#include "Maths/Vector.hh"
28
28
 
29
29
namespace MAUS {
35
35
PhaseSpaceVector::PhaseSpaceVector(const Vector<double>& original_instance)
36
36
    : Vector<double>() {
37
37
  if (original_instance.size() < 6) {
38
 
    throw(Squeal(Squeal::recoverable,
 
38
    throw(Exception(Exception::recoverable,
39
39
                 "Attempted to construct with a Vector<double> containing "
40
40
                 "fewer than six elements",
41
41
                 "PhaseSpaceVector::PhaseSpaceVector(Vector<double>)"));
66
66
 
67
67
PhaseSpaceVector::~PhaseSpaceVector() { }
68
68
 
 
69
// *************************
 
70
//  Assignment Operators
 
71
// *************************
 
72
 
69
73
PhaseSpaceVector & PhaseSpaceVector::operator=(const PhaseSpaceVector & rhs) {
70
74
  (*this).Vector<double>::operator=(rhs);
71
75
 
72
76
  return *this;
73
77
}
74
78
 
 
79
PhaseSpaceVector & PhaseSpaceVector::operator+=(const PhaseSpaceVector& rhs) {
 
80
  Vector<double>::operator+=(rhs);
 
81
 
 
82
  return *this;
 
83
}
 
84
 
 
85
PhaseSpaceVector & PhaseSpaceVector::operator-=(const PhaseSpaceVector& rhs) {
 
86
  Vector<double>::operator-=(rhs);
 
87
 
 
88
  return *this;
 
89
}
 
90
 
 
91
PhaseSpaceVector & PhaseSpaceVector::operator*=(const PhaseSpaceVector& rhs) {
 
92
  Vector<double>::operator*=(rhs);
 
93
 
 
94
  return *this;
 
95
}
 
96
 
 
97
PhaseSpaceVector & PhaseSpaceVector::operator/=(const PhaseSpaceVector& rhs) {
 
98
  Vector<double>::operator/=(rhs);
 
99
 
 
100
  return *this;
 
101
}
 
102
 
 
103
PhaseSpaceVector & PhaseSpaceVector::operator+=(const double& rhs) {
 
104
  Vector<double>::operator+=(rhs);
 
105
 
 
106
  return *this;
 
107
}
 
108
 
 
109
PhaseSpaceVector & PhaseSpaceVector::operator-=(const double& rhs) {
 
110
  Vector<double>::operator-=(rhs);
 
111
 
 
112
  return *this;
 
113
}
 
114
 
 
115
PhaseSpaceVector & PhaseSpaceVector::operator*=(const double& rhs) {
 
116
  Vector<double>::operator*=(rhs);
 
117
 
 
118
  return *this;
 
119
}
 
120
 
 
121
PhaseSpaceVector & PhaseSpaceVector::operator/=(const double& rhs) {
 
122
  Vector<double>::operator/=(rhs);
 
123
 
 
124
  return *this;
 
125
}
 
126
 
 
127
// *************************
 
128
//  Algebraic Operators
 
129
// *************************
 
130
 
 
131
const PhaseSpaceVector PhaseSpaceVector::operator+(const PhaseSpaceVector& rhs)
 
132
    const {
 
133
  return PhaseSpaceVector(*this) += rhs;
 
134
}
 
135
 
 
136
const PhaseSpaceVector PhaseSpaceVector::operator-(const PhaseSpaceVector& rhs)
 
137
    const {
 
138
  return PhaseSpaceVector(*this) -= rhs;
 
139
}
 
140
 
 
141
const PhaseSpaceVector PhaseSpaceVector::operator*(const PhaseSpaceVector& rhs)
 
142
    const {
 
143
  return PhaseSpaceVector(*this) *= rhs;
 
144
}
 
145
 
 
146
const PhaseSpaceVector PhaseSpaceVector::operator/(const PhaseSpaceVector& rhs)
 
147
    const {
 
148
  return PhaseSpaceVector(*this) /= rhs;
 
149
}
 
150
 
 
151
const PhaseSpaceVector PhaseSpaceVector::operator+(const double& rhs) const {
 
152
  return PhaseSpaceVector(*this) += rhs;
 
153
}
 
154
 
 
155
const PhaseSpaceVector PhaseSpaceVector::operator-(const double& rhs) const {
 
156
  return PhaseSpaceVector(*this) -= rhs;
 
157
}
 
158
 
 
159
const PhaseSpaceVector PhaseSpaceVector::operator*(const double& rhs) const {
 
160
  return PhaseSpaceVector(*this) *= rhs;
 
161
}
 
162
 
 
163
const PhaseSpaceVector PhaseSpaceVector::operator/(const double& rhs) const {
 
164
  return PhaseSpaceVector(*this) /= rhs;
 
165
}
 
166
 
75
167
std::ostream& operator<<(std::ostream& out, const PhaseSpaceVector& vector) {
76
168
  out << "t: " << vector[0] << " E: "   << vector[1]
77
169
      << " x: " << vector[2] << " Px: "  << vector[3]