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

Last change on this file since 304 was 304, checked in by lemeur, 11 years ago

introduction du logiciel 'generator' (debut)

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