source: PSPA/Interface_Web/trunk/pspaWT/sources/controler/src/elementDrift.cc @ 424

Last change on this file since 424 was 424, checked in by touze, 11 years ago

sauvgarde de la configuration sur fichier format AML

File size: 3.8 KB
Line 
1
2#include <iostream>
3
4#include "elementDrift.h"
5#include "mathematicalTools.h"
6#include "mixedTools.h"
7
8elementDrift::elementDrift() : abstractElement() 
9{
10  setDefaultValues();
11  setDefaults();
12  elementName_ = nomdElements("drift");
13  nbParam_ = elementName_.getElementNbParameters();
14  parametersString_ = new string[nbParam_+1];
15  // registerAcceptableSoftware(nomDeLogiciel::transport, TBoolOk);
16  // registerAcceptableSoftware(nomDeLogiciel::parmela, TBoolOk);
17  // registerAcceptableSoftware(nomDeLogiciel::test, TBoolOk);
18}
19
20void elementDrift::setDefaultValues() {
21  defaultSpecificName_ = "drift";
22}
23
24void elementDrift::setDefaults() {
25  specificName_ = defaultSpecificName_;
26}
27
28string* elementDrift::getParametersString() const 
29{
30  int compteur = -1;
31  parametersString_[++compteur] = mixedTools::intToString(nbParam_);
32  parametersString_[++compteur] = specificName_;
33  parametersString_[++compteur] = mixedTools::doubleToString(lenghtElem_);
34  parametersString_[++compteur] = mixedTools::doubleToString(aperture_);
35  if ( compteur != nbParam_ ) {
36    cerr << " elementDrift::getParametersString() : ERROR nr pf parameters dosnt match " << endl;
37    return NULL;
38  }
39  return parametersString_;
40}
41
42void  elementDrift::setParametersString(string* param)
43{
44  if ( param == NULL ) {
45    cerr << "  elementDrift::setParametersString parameters empty parameter set";
46    return;
47  }
48  int compteur = -1;
49  int nbparam = atoi(param[++compteur].c_str());
50  if ( nbparam != nbParam_ ) {
51    cerr << "  elementDrift::setParametersString parameters do not match for a DRIFT";
52    return;
53  }
54  specificName_ = param[++compteur];
55  lenghtElem_ = atof(param[++compteur].c_str());
56  aperture_  = atof(param[++compteur].c_str());
57}
58
59// string elementDrift::parmelaOutputFlow() const
60// {
61//   ostringstream sortie;
62//   sortie << "DRIFT /l=" << lenghtElem_ << "  /aper=" << aperture_ << "  /iout=1" << endl;
63//   return sortie.str();
64// }
65
66// string elementDrift::transportOutputFlow() const
67//   {
68//     ostringstream sortie;
69//     // longueur en m
70//     sortie << specificName_ << ":" << "  DRIFT, L=" << 0.01*lenghtElem_ << ";" << endl;
71//     return sortie.str();
72//   }
73
74
75string elementDrift::FileOutputFlow() const
76{
77  ostringstream sortie;
78  //  sortie << elementName_.getElementType()  << endl;
79  sortie << elementName_.getGenericLabel() << endl;
80  sortie  << specificName_ << endl;
81  sortie << lenghtElem_ << "  " << aperture_ <<endl;
82  return sortie.str();
83}
84
85vector< pair<string, vector<string> > > elementDrift::parametersToSoftware () const 
86{
87  vector< pair<string, vector<string> > >  sortie;
88  sortie.push_back( pair<string, vector<string> >("labelsGenericSpecific",  vector<string>() ) );
89  sortie.back().second.push_back(elementName_.getGenericLabel());
90  sortie.back().second.push_back(specificName_);
91  sortie.push_back( pair<string, vector<string> >("lenghtAperture",  vector<string>() ) );
92  sortie.back().second.push_back(mixedTools::doubleToString(lenghtElem_));
93  sortie.back().second.push_back(mixedTools::doubleToString(aperture_));
94  return sortie;
95}
96
97void elementDrift::FileInput(ifstream& ifs)
98{
99  ifs >> specificName_;
100  ifs >> lenghtElem_ >>  aperture_;
101}
102
103string elementDrift::print() 
104{
105  string txt = "";
106  txt += specificName_;
107  txt += "\nlength (cm) : ";
108  txt += mixedTools::doubleToString(lenghtElem_);
109  txt += "\naperture (cm) : ";
110  txt += mixedTools::doubleToString(aperture_); 
111  return txt;
112}
113
114void elementDrift::InputRep(UAPNode* root)
115{
116  UAPNode* ele = root->addChild("element");
117  ele->addAttribute("name",specificName_);
118
119  string txt = "";
120  txt = mixedTools::doubleToString(lenghtElem_);
121  ele->addChild("length")->addAttribute("design",txt);
122
123  UAPNode* node = ele->addChild("aperture");
124  node->addAttribute("at","EXIT");
125  node->addAttribute("shape","CIRCLE");
126  txt = mixedTools::doubleToString(aperture_);
127  node->addChild("xy_limit")->addAttribute("design",txt);
128}
Note: See TracBrowser for help on using the repository browser.