Changeset 487 in PSPA


Ignore:
Timestamp:
Feb 5, 2014, 11:45:11 AM (10 years ago)
Author:
touze
Message:

ajout de quadrupole et sextupole

Location:
Interface_Web/trunk/pspaWT/sources
Files:
8 added
8 edited

Legend:

Unmodified
Added
Removed
  • Interface_Web/trunk/pspaWT/sources/controler/include/nomdElements.h

    r485 r487  
    22#define NOMDELEMENTS_SEEN
    33
    4 
    5 #include <string>
    6 
     4#include <string>
    75using namespace std;
    86
    97// enum typedElement {beam, RFgun, drift, cell, bend, soleno, fit, snapshot, inconnu};
    10 
    11 
    128
    139class nomdElements
     
    1612 public :
    1713
    18   enum typedElement {beam, RFgun, drift, cell, bend, soleno, fit, snapshot, mpole, inconnu};
     14  enum typedElement {beam, RFgun, drift, cell, bend, soleno, fit, snapshot, mpole, qpole, spole, inconnu};
    1915
    2016 private :
  • Interface_Web/trunk/pspaWT/sources/controler/src/nomDeLogiciel.cc

    r485 r487  
    22
    33nomDeLogiciel::Logiciel nomDeLogiciel::fromString( std::string s)
    4   {
    5     if (s == "parmela" ) return parmela;
    6     else if ( s == "transport" ) return transport;
    7     else if ( s == "generator" ) return generator;
    8     else if ( s == "test" ) return test;
    9     else if ( s == "madx" ) return madx;
    10     else if ( s == "usersprogram" ) return usersprogram;
    11     return unknownSoftware;
    12   }
     4{
     5  if (s == "parmela" ) return parmela;
     6  else if ( s == "transport" ) return transport;
     7  else if ( s == "generator" ) return generator;
     8  else if ( s == "test" ) return test;
     9  else if ( s == "madx" ) return madx;
     10  else if ( s == "usersprogram" ) return usersprogram;
     11  return unknownSoftware;
     12}
    1313
    1414std::string nomDeLogiciel::toString(nomDeLogiciel::Logiciel lg)
     
    4444}
    4545
    46  nomDeLogiciel::nomDeLogiciel() 
    47  {
    48    program_ = unknownSoftware;
    49    progString_ = toString(program_);
    50    setCompatiblesElements();
    51  }
     46nomDeLogiciel::nomDeLogiciel() 
     47{
     48  program_ = unknownSoftware;
     49  progString_ = toString(program_);
     50  setCompatiblesElements();
     51}
    5252
    5353nomDeLogiciel::nomDeLogiciel(const string& s)
     
    7070}
    7171
    72 
    7372void nomDeLogiciel::registerElement(nomdElements::typedElement nomdel,trivaluedBool b)
    7473{
     
    7978  }
    8079}
    81 
    82 
    8380
    8481void nomDeLogiciel::setCompatiblesElements()
     
    9895        break;
    9996      }
    100      case transport :
     97    case transport :
    10198       { 
    10299         registerElement(nomdElements::beam,TBoolOk);
     
    108105         break;
    109106       }
    110      case generator :
    111        {
    112          registerElement(nomdElements::RFgun,TBoolOk);
    113          break;
    114        }
     107    case generator :
     108      {
     109        registerElement(nomdElements::RFgun,TBoolOk);
     110        break;
     111      }
    115112    case test :
    116113      {
     
    122119        registerElement(nomdElements::drift,TBoolOk);
    123120        registerElement(nomdElements::mpole,TBoolOk);
     121        registerElement(nomdElements::qpole,TBoolOk);
     122        registerElement(nomdElements::spole,TBoolOk);
    124123        break;
    125124      }
     
    135134}
    136135
    137 
    138 
    139136trivaluedBool nomDeLogiciel::doAcceptElement(nomdElements::typedElement typdel)
    140137{
     
    146143    return TBoolError;
    147144  }
    148 
     145 
    149146  if (std::find(acceptedElements_.begin(),acceptedElements_.end(),typdel) != acceptedElements_.end()) {
    150147    return TBoolOk;
    151148  }
    152 
     149 
    153150  if (ignoredElements_.size() == 0) {
    154151    return TBoolError;
    155152  }
    156 
     153 
    157154  if (std::find(ignoredElements_.begin(),ignoredElements_.end(),typdel) != ignoredElements_.end()) {
    158155    return TBoolIgnore;
    159156  }
    160 
     157 
    161158  return TBoolOk;
    162159}
    163 
    164 
    165 
    166160
    167161// operators
  • Interface_Web/trunk/pspaWT/sources/controler/src/nomdElements.cc

    r442 r487  
    11
    22#include <iostream>
    3 #include <cstring>
    43#include "nomdElements.h"
    54
     
    1514  else if( strstr(s.c_str(),"snapshot") ) return snapshot;
    1615  else if( strstr(s.c_str(),"mpole") ) return mpole;
     16  else if( strstr(s.c_str(),"qpole") ) return qpole;
     17  else if( strstr(s.c_str(),"spole") ) return spole;
    1718  return inconnu;
    1819}
     
    2930  else if( s == "snapshot" ) return snapshot;
    3031  else if( s == "mpole" ) return mpole;
     32  else if( s == "qpole" ) return qpole;
     33  else if( s == "spole" ) return spole;
    3134  return inconnu;
    3235}
     
    4447  case snapshot : return "SNAPSHOT"; break;
    4548  case mpole : return "MPOLE"; break;
     49  case qpole : return "QUADRUPOLE"; break;
     50  case spole : return "SEXTUPOLE"; break;
    4651  default : return "UNKNOWN";
    4752  }
     
    6065  case snapshot : return "snapshot";
    6166  case mpole :   return "mpole";
    62   default : return string("");
     67  case qpole :   return "qpole";
     68  case spole :   return "spole";
     69  default : return std::string("");
    6370  }
    6471}
     
    7683  case snapshot : return 4;
    7784  case mpole :   return 3;
     85  case qpole :   return 3;
     86  case spole :   return 3;
    7887  default : return 0;
    7988  }
  • Interface_Web/trunk/pspaWT/sources/controler/src/sector.cc

    r483 r487  
    2020#include "elementSnapshot.h"
    2121#include "elementMultipole.h"
     22#include "elementQuadrupole.h"
     23#include "elementSextupole.h"
    2224
    2325sector::sector(dataManager* data, std::string name):
     
    3638}
    3739
    38 abstractElement* sector::addElementAfter(nomdElements::typedElement eType ,abstractElement* previousElement){
     40abstractElement* sector::addElementAfter(nomdElements::typedElement eType ,abstractElement* previousElement)
     41{
    3942
    4043  // create a new abstractElement
    4144  // FIXME : To be move in an abstractFactory in the controler !!
    4245  abstractElement* currentElement = NULL;
    43   switch (  eType ) {
     46  switch (  eType )
     47    {
    4448    case nomdElements::RFgun :
    4549      currentElement = new elementRfgun();
     
    6670      currentElement = new elementMultipole();
    6771      break;
     72    case nomdElements::qpole  :
     73      currentElement = new elementQuadrupole();
     74      break;
     75    case nomdElements::spole  :
     76      currentElement = new elementSextupole();
     77      break;
    6878    case nomdElements::snapshot :
    69     {
    70       // FIXME : Snapshot a gérér
    71       /*        int incr = dataManager_->getPspaApplication()->getExtensionFile();
    72        incr++;
    73        dataManager_->getPspaApplication()->setExtensionFile(incr);
    74        */
    75       currentElement = new elementSnapshot();
    76       break;
     79      {
     80        // FIXME : Snapshot a gérér
     81        /*        int incr = dataManager_->getPspaApplication()->getExtensionFile();
     82                  incr++;
     83                  dataManager_->getPspaApplication()->setExtensionFile(incr);
     84        */
     85        currentElement = new elementSnapshot();
     86        break;
     87      }
    7788    }
    78   }
     89
    7990  if (!currentElement) {
    8091    return NULL;
    8192  }
    8293  addElementAfter(currentElement,previousElement);
    83   return currentElement;
    84  
     94  return currentElement;
    8595}
    8696
  • Interface_Web/trunk/pspaWT/sources/controler/src/softwareMadx.cc

    r485 r487  
    1616{
    1717  nameOfSoftware_ = new nomDeLogiciel("madx");
    18 
    19  // registerElement(nomdElements::RFgun,TBoolOk);
    20  //  registerElement(nomdElements::drift,TBoolOk);
    21  //  registerElement(nomdElements::mpole,TBoolOk);
    2218}
    2319
     
    241237  if(keyword == "drift") {
    242238    double length = atof(v.at(1).second.at(0).c_str());
    243     os << label << ":" << " drift, l=" << 0.01*length<< ";" << endl;
     239    os << label << ":" << " drift, l=" << 0.01*length << ";" << endl;
    244240
    245241  } else if(keyword == "mpole") {
     
    253249    os <<"};" << endl;
    254250   
     251  } else if(keyword == "qpole") {
     252    double ln = atof(v.at(1).second.at(0).c_str());
     253    double k1 = atof(v.at(1).second.at(1).c_str());
     254    os << label << ":" << " quadrupole, l=" << ln << ", k1= " << k1 << ";" << endl;
     255
     256  } else if(keyword == "spole") {
     257    double ln = atof(v.at(1).second.at(0).c_str());
     258    double k2 = atof(v.at(1).second.at(1).c_str());
     259    os << label << ":" << " sextupole, l=" << ln << ", k2= " << k2 << ";" << endl;
     260
    255261  } else {
    256262    cout << "softwareMadx::inputFormat ERROR : element type= " << keyword << " not defined" << endl;
  • Interface_Web/trunk/pspaWT/sources/userInterface/include/GWt_abstractElementFactory.h

    r437 r487  
    1919#include "GWt_elementSnapshot.h"
    2020#include "GWt_elementMpole.h"
     21#include "GWt_elementQpole.h"
     22#include "GWt_elementSpole.h"
    2123
    2224using namespace Wt;
     
    6769  inline void setMPoleEnable(bool a) { isMPoleElementEnable = a;};
    6870 
     71  /* Enable the qpole element creation
     72   */
     73  inline void setQPoleEnable(bool a) { isMPoleElementEnable = a;};
     74 
     75 /* Enable the spole element creation
     76   */
     77  inline void setSPoleEnable(bool a) { isMPoleElementEnable = a;};
     78 
    6979  GWt_elementDrift* createDriftElement();
    7080  GWt_elementRfgun* createRFGunElement();
     
    7686  GWt_elementSnapshot* createSnapshotElement();
    7787  GWt_elementMpole* createMPoleElement();
     88  GWt_elementQpole* createQPoleElement();
     89  GWt_elementSpole* createSPoleElement();
    7890  vector <GWt_abstractElement*> getAllElements();
    7991 
     
    89101  bool isSnapshotElementEnable;
    90102  bool isMPoleElementEnable;
     103  bool isQPoleElementEnable;
     104  bool isSPoleElementEnable;
    91105};
    92106#endif
  • Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_abstractElementFactory.cc

    r437 r487  
    1818  isFitElementEnable(false),
    1919  isSnapshotElementEnable(false),
    20   isMPoleElementEnable(false)
     20  isMPoleElementEnable(false),
     21  isQPoleElementEnable(false),
     22  isSPoleElementEnable(false)
    2123{}
    2224
     
    3234  isSnapshotElementEnable = false;
    3335  isMPoleElementEnable = false;
     36  isQPoleElementEnable = false;
     37  isSPoleElementEnable = false;
    3438}
    3539
     
    106110}
    107111
     112GWt_elementQpole* GWt_abstractElementFactory::createQPoleElement()
     113{
     114  if (isQPoleElementEnable) {
     115    return new GWt_elementQpole();
     116  }
     117  return NULL;
     118}
     119
     120GWt_elementSpole* GWt_abstractElementFactory::createSPoleElement()
     121{
     122  if (isSPoleElementEnable) {
     123    return new GWt_elementSpole();
     124  }
     125  return NULL;
     126}
     127
    108128vector <GWt_abstractElement*> GWt_abstractElementFactory::getAllElements()
    109129{
     
    136156    elems.push_back(new GWt_elementMpole());
    137157  }
     158  if (isQPoleElementEnable) {
     159    elems.push_back(new GWt_elementQpole());
     160  }
     161  if (isSPoleElementEnable) {
     162    elems.push_back(new GWt_elementSpole());
     163  }
    138164
    139165  return elems;
  • Interface_Web/trunk/pspaWT/sources/userInterface/src/GWt_elementLigneFaisceau.cc

    r483 r487  
    6969  gridLayout->addWidget (dropZoneRight_,0,2);
    7070 
    71   // add the image if present
    72  
     71  // add the image if present 
    7372  nomdElements::typedElement eType = abstractElem->getNomdElement().getElementType();
    74 
     73 
    7574  switch (  eType ) {
     75   
    7676  case nomdElements::RFgun :
    7777    GWt_abstractElement_deprecated_ = new GWt_elementRfgun(this,abstractElem);
     
    9797  case nomdElements::mpole  :
    9898    GWt_abstractElement_deprecated_ = new GWt_elementMpole(this,abstractElem);
     99    break;
     100  case nomdElements::qpole  :
     101    GWt_abstractElement_deprecated_ = new GWt_elementQpole(this,abstractElem);
     102    break;
     103  case nomdElements::spole  :
     104    GWt_abstractElement_deprecated_ = new GWt_elementSpole(this,abstractElem);
    99105    break;
    100106  case nomdElements::snapshot :
Note: See TracChangeset for help on using the changeset viewer.