source: PSPA/Interface_Web/trunk/pspaWT/sources/controler/src/nomdElements.cc @ 431

Last change on this file since 431 was 431, checked in by touze, 11 years ago

systeme periodique (mailles) + multipoles + madx

File size: 3.9 KB
Line 
1
2#include <iostream>
3#include <cstring>
4#include "nomdElements.h"
5
6nomdElements::typedElement nomdElements::fromString(std::string s)
7{
8  if( strstr(s.c_str(),"beam") ) return beam;
9  else if( strstr(s.c_str(),"rfgun") ) return RFgun;
10  else if( strstr(s.c_str(),"drift") ) return drift;
11  else if( strstr(s.c_str(),"cell") )  return cell;
12  else if( strstr(s.c_str(),"bend") ) return bend;
13  else if( strstr(s.c_str(),"soleno") ) return soleno;
14  else if( strstr(s.c_str(),"fit") ) return fit;
15  else if( strstr(s.c_str(),"snapshot") ) return snapshot;
16  else if( strstr(s.c_str(),"mpole") ) return mpole;
17  return inconnu;
18}
19
20nomdElements::typedElement nomdElements::fromGenericLabel(std::string s)
21{
22  if( s == "beam" ) return beam;
23  else if( s == "rfgun" ) return RFgun;
24  else if( s == "drift" ) return drift;
25  else if( s == "cell" )  return cell;
26  else if( s == "bend" ) return bend;
27  else if( s == "solnd" ) return soleno; 
28  else if( s == "fit" ) return fit;
29  else if( s == "snapshot" ) return snapshot;
30  else if( s == "mpole" ) return mpole;
31  return inconnu;
32}
33
34std::string nomdElements::toExpandedName(nomdElements::typedElement eType)
35{
36  switch(eType) {
37  case beam : return "BEAM"; break;
38  case RFgun : return "RF GUN"; break;
39  case drift : return "DRIFT"; break;
40  case cell : return "CELL"; break;
41  case bend : return "BENDING MAGNET"; break;
42  case soleno : return "SOLENOID"; break;
43  case fit : return "FIT"; break;
44  case snapshot : return "SNAPSHOT"; break;
45  case mpole : return "MPOLE"; break;
46  default : return "UNKNOWN";
47  }
48}
49
50std::string nomdElements::toGenericLabel(nomdElements::typedElement eType)
51{
52  switch(eType) {
53  case beam : return "beam";
54  case RFgun : return "rfgun";
55  case drift :  return "drift";
56  case cell :  return "cell";
57  case bend :  return "bend";
58  case soleno :   return "solnd";
59  case fit :   return "fit";
60  case snapshot : return "snapshot";
61  case mpole :   return "mpole";
62  default : return string("");
63  }
64}
65
66unsigned nomdElements::toNbParam(nomdElements::typedElement eType)
67{
68  switch(eType) {
69  case beam : return 8;
70  case RFgun : return 9;
71  case drift :  return 3;
72  case cell :  return 10;
73  case bend :  return 7;
74  case soleno :   return 5;
75  case fit :   return 4;
76  case snapshot : return 2;
77  case mpole :   return 3;
78  default : return 0;
79  }
80}
81
82
83nomdElements::nomdElements() 
84{
85  e_= fromString("");
86  expandedName_ = toExpandedName(e_);
87  genericLabel_ = toGenericLabel(e_);
88  nbParam_ = toNbParam(e_);
89}
90
91nomdElements::nomdElements(nomdElements& ne)
92{
93  e_= ne.e_;
94  expandedName_ = ne.expandedName_;
95  genericLabel_ = ne.genericLabel_;
96  nbParam_ = ne.nbParam_;
97}
98
99nomdElements::nomdElements(const nomdElements& ne)
100{
101  e_= ne.e_;
102  expandedName_ = ne.expandedName_;
103  genericLabel_ = ne.genericLabel_;
104  nbParam_ = ne.nbParam_;
105}
106 
107
108nomdElements::nomdElements(const std::string& s) 
109{
110  e_= fromString(s);
111  expandedName_ = toExpandedName(e_);
112  genericLabel_ = toGenericLabel(e_);
113  nbParam_ = toNbParam(e_);
114}
115
116nomdElements::nomdElements(nomdElements::typedElement& eType) 
117{
118  e_= eType;
119  expandedName_ = toExpandedName(e_);
120  genericLabel_ = toGenericLabel(e_);
121  nbParam_ = toNbParam(e_);
122}
123
124int nomdElements::getNumberOfElements() {
125  return inconnu;
126}
127
128std::string nomdElements::getLabelFromType(nomdElements::typedElement tp)
129{
130  return toGenericLabel(tp);
131}
132
133nomdElements::typedElement nomdElements::getTypeFromLabel(std::string lb)
134{
135  return fromGenericLabel(lb);
136}
137
138
139nomdElements::typedElement nomdElements::getElementType() const {
140  return e_;
141}
142
143std::string nomdElements::getExpandedName() const {
144  return expandedName_;
145}
146
147std::string nomdElements::getGenericLabel() const {
148  return genericLabel_;
149}
150
151unsigned nomdElements::getElementNbParameters() const
152{
153  return nbParam_;
154}
155
156
157
158// operators
159 
160nomdElements& nomdElements::operator= (const nomdElements& ne)
161{
162  e_= ne.e_;
163  expandedName_ = ne.expandedName_;
164  genericLabel_ = ne.genericLabel_;
165  nbParam_ = ne.nbParam_;
166  return *this;
167}
Note: See TracBrowser for help on using the repository browser.