Ignore:
Timestamp:
Nov 26, 2013, 5:36:11 PM (11 years ago)
Author:
touze
Message:

ajout de secteurs

File:
1 edited

Legend:

Unmodified
Added
Removed
  • Interface_Web/trunk/pspaWT/sources/controler/src/softwareMadx.cc

    r431 r436  
    3232    return false;
    3333  }
    34  
    35   outfile << endl; // saut de ligne
    36   ostringstream os;
    37   os << "L: " << "line=(";
     34
     35  cout << " softwareMadx::createInputFile(...) lecture des elts de " << numeroDeb_ << " à " << numeroFin_ << endl;
     36 
     37  // element label //////////////////////////
     38
     39  outfile << endl; // saut de ligne
    3840
    3941  abstractElement* elPtr;
     
    4143    {
    4244      elPtr = dataManager_->getElementPointerFromNumero(k);
    43       cout << "debug:: element [" << k << "] " << elPtr->getNomdElement().getExpandedName() << endl;
     45      //cout << " debug:: element [" << k << "] " << elPtr->getNomdElement().getExpandedName() << endl;
    4446      vector<statements> v= elPtr->parametersToSoftware();
    45       string label= v.at(0).second.at(1);
    46       outfile << inputFormat(v); //<< endl;
    47       os << label <<",";
    48     }//k;
    49 
    50   os << ");" << endl;
    51   int nCells= sectParamPtr_->getNumberOfCells();
    52   os << "all: line=(" << nCells << "*L);" << endl;
    53   outfile << endl; // saut de ligne
    54   outfile << os.str() << endl; // beam line definition p34
     47      outfile << inputFormat(v);
     48    }
     49
     50  // sublines ///////////////////////////////
     51
     52  outfile << endl; // saut de ligne
     53
     54  vector<statements> u = sectParamPtr_->getSectors();
     55  for(unsigned int i = 0; i < u.size(); i++) {
     56    ostringstream os;
     57    os << u.at(i).first << ": line=(";
     58    unsigned ai = dataManager_->getNumeroFromElementLabel(u.at(i).second.at(0));
     59    unsigned bi = dataManager_->getNumeroFromElementLabel(u.at(i).second.at(1));
     60
     61    for(unsigned k = numeroDeb_; k <= numeroFin_; k++) {
     62      elPtr = dataManager_->getElementPointerFromNumero(k);
     63     
     64      if(k >= ai && k <= bi) {
     65        if(k == bi)
     66          os << elPtr->getLabel() <<");";
     67        else
     68          os << elPtr->getLabel() <<",";
     69      }
     70    }// k
     71
     72    outfile << os.str() << endl;
     73  }// i
     74
     75  // relection and repetition ///////////////
     76
     77  outfile << endl; // saut de ligne
     78
     79  string *str= NULL;
     80  if(u.size() > 0) {
     81    str = new string[u.size()];
     82    for(unsigned int i = 0; i < u.size(); i++) str[i]= "false";
     83  }
     84
     85  ostringstream os;
     86  os << "all: " << "line=(";
     87  for(unsigned k = numeroDeb_; k <= numeroFin_; k++) {
     88    elPtr = dataManager_->getElementPointerFromNumero(k);
     89    bool isMember = false;
     90
     91    for(unsigned int i = 0; i < u.size(); i++) {
     92      unsigned ai = dataManager_->getNumeroFromElementLabel(u.at(i).second.at(0));
     93      unsigned bi = dataManager_->getNumeroFromElementLabel(u.at(i).second.at(1));
     94      if(k >= ai && k <= bi) {
     95        isMember = true;
     96
     97        if(str[i] == "false") {
     98          //int reflection = atoi(u.at(i).second.at(2).c_str());
     99          int reflection = ( (u.at(i).second.at(2) == "Unchecked") ? 0:1 );
     100          int repeat = atoi(u.at(i).second.at(3).c_str());
     101          if(reflection > 0)
     102            os << "-" << repeat << "*" << u.at(i).first;
     103          else
     104            os << repeat << "*" << u.at(i).first;
     105
     106          if(i < u.size()-1) os << ", ";
     107        }
     108
     109        str[i] = "true";
     110        break;
     111      }
     112    }// i
     113   
     114    if(isMember && k == numeroFin_) os << ");";
     115   
     116    if(!isMember) {
     117      if(k == numeroFin_) os << elPtr->getLabel() << ");";
     118      else os << elPtr->getLabel() << ",";
     119    }
     120  }// k
     121
     122  outfile << os.str() << endl;
     123  ///////////////////////////////////////////
     124     
     125  outfile << endl; // saut de ligne
    55126
    56127  outfile << "beam;" << endl; // beam data p46
     
    58129 
    59130  outfile << "select,flag = twiss,column = name,s,betx,bety;" << endl; //p48
    60   outfile << "twiss,save,centre,file = twiss.out;" << endl; //p51
     131  outfile << "twiss,save,centre,file = "+workingDir+"twiss.out;" << endl; //p51
    61132  outfile << "stop;" << endl;
    62133
Note: See TracChangeset for help on using the changeset viewer.