#include #include #include "nomdElements.h" nomdElements::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; else if( strstr(s.c_str(),"mpole") ) return mpole; return inconnu; } nomdElements::typedElement nomdElements::fromGenericLabel(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; else if( s == "mpole" ) return mpole; return inconnu; } std::string nomdElements::toExpandedName(nomdElements::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; case mpole : return "MPOLE"; break; default : return "UNKNOWN"; } } std::string nomdElements::toGenericLabel(nomdElements::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"; case mpole : return "mpole"; default : return string(""); } } unsigned nomdElements::toNbParam(nomdElements::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; case mpole : return 3; default : return 0; } } nomdElements::nomdElements() { e_= fromString(""); expandedName_ = toExpandedName(e_); genericLabel_ = toGenericLabel(e_); nbParam_ = toNbParam(e_); } nomdElements::nomdElements(nomdElements& ne) { e_= ne.e_; expandedName_ = ne.expandedName_; genericLabel_ = ne.genericLabel_; nbParam_ = ne.nbParam_; } nomdElements::nomdElements(const nomdElements& ne) { e_= ne.e_; expandedName_ = ne.expandedName_; genericLabel_ = ne.genericLabel_; nbParam_ = ne.nbParam_; } nomdElements::nomdElements(const std::string& s) { e_= fromString(s); expandedName_ = toExpandedName(e_); genericLabel_ = toGenericLabel(e_); nbParam_ = toNbParam(e_); } nomdElements::nomdElements(nomdElements::typedElement& eType) { e_= eType; expandedName_ = toExpandedName(e_); genericLabel_ = toGenericLabel(e_); nbParam_ = toNbParam(e_); } int nomdElements::getNumberOfElements() { return inconnu; } std::string nomdElements::getLabelFromType(nomdElements::typedElement tp) { return toGenericLabel(tp); } nomdElements::typedElement nomdElements::getTypeFromLabel(std::string lb) { return fromGenericLabel(lb); } nomdElements::typedElement nomdElements::getElementType() const { return e_; } std::string nomdElements::getExpandedName() const { return expandedName_; } std::string nomdElements::getGenericLabel() const { return genericLabel_; } unsigned nomdElements::getElementNbParameters() const { return nbParam_; } // operators nomdElements& nomdElements::operator= (const nomdElements& ne) { e_= ne.e_; expandedName_ = ne.expandedName_; genericLabel_ = ne.genericLabel_; nbParam_ = ne.nbParam_; return *this; }