#include #include #include "nomdElements.h" typedElement nomdElements::fromString(std::string s) { if( strstr(s.c_str(),"beam") ) return beam; else if( strstr(s.c_str(),"rfgun") ) return RFgun; else if( strstr(s.c_str(),"drift") ) return drift; else if( strstr(s.c_str(),"cell") ) return cell; else if( strstr(s.c_str(),"bend") ) return bend; else if( strstr(s.c_str(),"soleno") ) return soleno; else if( strstr(s.c_str(),"fit") ) return fit; else if( strstr(s.c_str(),"snapshot") ) return snapshot; return inconnu; } typedElement nomdElements::fromLabel(std::string s) { if( s == "beam" ) return beam; else if( s == "rfgun" ) return RFgun; else if( s == "drift" ) return drift; else if( s == "cell" ) return cell; else if( s == "bend" ) return bend; else if( s == "solnd" ) return soleno; else if( s == "fit" ) return fit; else if( s == "snapshot" ) return snapshot; return inconnu; } std::string nomdElements::toName(typedElement eType) { switch(eType) { case beam : return "BEAM"; break; case RFgun : return "RF GUN"; break; case drift : return "DRIFT"; break; case cell : return "CELL"; break; case bend : return "BENDING MAGNET"; break; case soleno : return "SOLENOID"; break; case fit : return "FIT"; break; case snapshot : return "SNAPSHOT"; break; default : return "UNKNOWN"; } } std::string nomdElements::toLabel(typedElement eType) { switch(eType) { case beam : return "beam"; case RFgun : return "rfgun"; case drift : return "drift"; case cell : return "cell"; case bend : return "bend"; case soleno : return "solnd"; case fit : return "fit"; case snapshot : return "snapshot"; default : return string(""); } } unsigned nomdElements::toNbParam(typedElement eType) { switch(eType) { case beam : return 8; case RFgun : return 9; case drift : return 3; case cell : return 10; case bend : return 7; case soleno : return 5; case fit : return 4; case snapshot : return 2; default : return 0; } } nomdElements::nomdElements() { e_= fromString(""); eName_ = toName(e_); eLabel_ = toLabel(e_); nbParam_ = toNbParam(e_); } nomdElements::nomdElements(nomdElements& ne) { e_= ne.e_; eName_ = ne.eName_; eLabel_ = ne.eLabel_; nbParam_ = ne.nbParam_; } nomdElements::nomdElements(const nomdElements& ne) { e_= ne.e_; eName_ = ne.eName_; eLabel_ = ne.eLabel_; nbParam_ = ne.nbParam_; } nomdElements::nomdElements(const std::string& s) { e_= fromString(s); eName_ = toName(e_); eLabel_ = toLabel(e_); nbParam_ = toNbParam(e_); } nomdElements::nomdElements(typedElement& eType) { e_= eType; eName_ = toName(e_); eLabel_ = toLabel(e_); nbParam_ = toNbParam(e_); } int nomdElements::getNumberOfElements() { return inconnu; } std::string nomdElements::getLabelFromType(typedElement tp) { return toLabel(tp); } typedElement nomdElements::getTypeFromLabel(std::string lb) { return fromLabel(lb); } typedElement nomdElements::getElementType() const { return e_; } std::string nomdElements::getElementName() const { return eName_; } std::string nomdElements::getElementLabel() const { return eLabel_; } unsigned nomdElements::getElementNbParameters() const { return nbParam_; } // operators nomdElements& nomdElements::operator= (const nomdElements& ne) { e_= ne.e_; eName_ = ne.eName_; eLabel_ = ne.eLabel_; nbParam_ = ne.nbParam_; return *this; }