source: PSPA/Interface_Web/trunk/pspaWT/src/elementBend.cc @ 118

Last change on this file since 118 was 118, checked in by lemeur, 12 years ago

definition des sections par labels

File size: 2.4 KB
Line 
1#include "elementBend.h"
2#include "mixedTools.h"
3#include "MathematicalConstants.h"
4
5elementBend::elementBend() :  abstractElement() 
6{
7  setDefaultValues();
8  setDefaults();
9  elementName_ = bend;
10  nbParam_ = 5;
11  parametersString_ = new string[nbParam_+1];
12  transportOk_ = true;
13  //  transportElementName_ = "*SBEND*";
14}
15
16  void elementBend::setDefaultValues()
17  {
18    angleDegDef_ = 0.0;
19    radiusDef_ = 1.0;
20    beta1Def_ = 0.0;
21    beta2Def_ = 0.0;
22  }
23
24  void elementBend::setDefaults()
25  {
26    angleDeg_ = angleDegDef_;
27    radius_ = radiusDef_;
28    beta1_ = beta1Def_;
29    beta2_ = beta2Def_;
30  }
31
32 string* elementBend::getParametersString() const 
33 {
34   parametersString_[0] = mixedTools::intToString(nbParam_);
35   parametersString_[1] = mixedTools::doubleToString( angleDeg_);
36   parametersString_[2] = mixedTools::doubleToString(radiusDef_);
37   parametersString_[3] = mixedTools::doubleToString(aperture_);
38   parametersString_[4] = mixedTools::doubleToString(beta1_);
39   parametersString_[5] = mixedTools::doubleToString(beta2_);
40   return parametersString_;
41 }
42
43 double elementBend::getLenghtOfElement() const 
44{
45 return 1.0e2 * radius_ * angleDeg_ * DEG_TO_RADIANS; 
46}
47
48
49
50 void  elementBend::setParametersString(string* param)
51 {
52        if ( param == NULL )
53        {
54          cerr << "  elementBend::setParametersString parameters empty parameter set";
55          return;
56        }
57        int nbparam = atoi(param[0].c_str());
58    if ( nbparam != nbParam_ ) 
59        {
60          cerr << "  elementBend::setParametersString parameters do not match for a BEND";
61          return;
62        }
63    angleDeg_ =  atof(param[1].c_str());
64    radius_ = atof(param[2].c_str());
65    aperture_  = atof(param[3].c_str());
66    beta1_ = atof(param[4].c_str());
67    beta2_ = atof(param[5].c_str());
68    // calcul de la longueur : rayon en m ; longueur en cm
69    lenghtElem_ = getLenghtOfElement();
70 }
71
72string elementBend::transportOutputFlow() const
73  {
74    ostringstream sortie;
75    sortie << "SBEND, RADIUS=" << radius_ << ", ANGLE=" << angleDeg_ << ", E1=" << beta1_ << ", E2=" << beta2_ << ";";
76    return sortie.str();
77  }
78
79string elementBend::FileOutputFlow() const
80  {
81    ostringstream sortie;
82    sortie << elementName_ << endl;
83    sortie  << label_ << endl;
84    sortie << angleDeg_ << "  " << radius_ << " " <<  aperture_  << endl;
85    sortie << beta1_ << "  " << beta2_ << endl;
86    return sortie.str();
87  }
88
89void elementBend::FileInput(ifstream& ifs)
90{
91  ifs >> label_;
92  ifs >> angleDeg_ >> radius_ >>  aperture_;
93  ifs >> beta1_ >> beta2_;
94}
Note: See TracBrowser for help on using the repository browser.