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

Last change on this file since 495 was 492, checked in by garnier, 10 years ago

ajout d un include pour compiler sur le serveur PSPA

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