Changeset 436 in PSPA for Interface_Web/trunk/pspaWT/sources/controler/src/softwareMadx.cc
- Timestamp:
- Nov 26, 2013, 5:36:11 PM (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
Interface_Web/trunk/pspaWT/sources/controler/src/softwareMadx.cc
r431 r436 32 32 return false; 33 33 } 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 38 40 39 41 abstractElement* elPtr; … … 41 43 { 42 44 elPtr = dataManager_->getElementPointerFromNumero(k); 43 cout << "debug:: element [" << k << "] " << elPtr->getNomdElement().getExpandedName() << endl;45 //cout << " debug:: element [" << k << "] " << elPtr->getNomdElement().getExpandedName() << endl; 44 46 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 55 126 56 127 outfile << "beam;" << endl; // beam data p46 … … 58 129 59 130 outfile << "select,flag = twiss,column = name,s,betx,bety;" << endl; //p48 60 outfile << "twiss,save,centre,file = twiss.out;" << endl; //p51131 outfile << "twiss,save,centre,file = "+workingDir+"twiss.out;" << endl; //p51 61 132 outfile << "stop;" << endl; 62 133
Note: See TracChangeset
for help on using the changeset viewer.