OPAL (Object Oriented Parallel Accelerator Library)  2.2.0
OPAL
BendBase.cpp
Go to the documentation of this file.
1 #include "AbsBeamline/BendBase.h"
2 
4  BendBase("")
5 {}
6 
8  Component(right),
9  length_m(right.length_m),
10  chordLength_m(right.chordLength_m),
11  angle_m(right.angle_m),
12  entranceAngle_m(right.entranceAngle_m),
13  gap_m(right.gap_m),
14  designEnergy_m(right.designEnergy_m),
15  designEnergyChangeable_m(true),
16  refTrajMap_m(right.refTrajMap_m),
17  bX_m(right.bX_m),
18  bY_m(right.bY_m),
19  fieldAmplitude_m(right.fieldAmplitude_m),
20  fileName_m(right.fileName_m)
21 {
23 }
24 
25 BendBase::BendBase(const std::string &name):
26  Component(name),
27  length_m(0.0),
28  chordLength_m(0.0),
29  angle_m(0.0),
30  entranceAngle_m(0.0),
31  gap_m(0.0),
32  designEnergy_m(0.0),
33  designEnergyChangeable_m(true),
34  bX_m(0.0),
35  bY_m(0.0),
36  fieldAmplitude_m(0.0),
37  fileName_m("")
38 {
40 }
41 
42 
43 std::vector<Vector_t> BendBase::getDesignPath() const {
44  unsigned int size = refTrajMap_m.size();
45  std::vector<Vector_t> designPath(size);
46  // double angleZ = getRotationAboutZ();
47  // Quaternion rotationAboutZ(cos(angleZ / 2), sin(angleZ / 2) * Vector_t(0, 0, 1));
48  for (unsigned int i = 0; i < size; ++ i) {
49  Vector_t currentPosition = refTrajMap_m[i];
50  designPath[i] = currentPosition;//rotationAboutZ.rotate(currentPosition);
51  }
52 
53  return designPath;
54 }
BendBase()
Definition: BendBase.cpp:3
std::vector< Vector_t > getDesignPath() const
Definition: BendBase.cpp:43
void setElType(ElemType elt)
set the element type as enumeration needed in the envelope tracker
Definition: ElementBase.h:591
const std::string name
Interface for a single beam element.
Definition: Component.h:51
std::vector< Vector_t > refTrajMap_m
Map of reference particle trajectory.
Definition: BendBase.h:50