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

Last change on this file since 488 was 488, checked in by lemeur, 10 years ago

lecture fichier sauvegarde AML

File size: 4.2 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}
16
17void elementDrift::setDefaultValues() {
18  defaultSpecificName_ = "drift";
19}
20
21void elementDrift::setDefaults() {
22  specificName_ = defaultSpecificName_;
23}
24
25string* elementDrift::getParametersString() const 
26{
27  int compteur = -1;
28  parametersString_[++compteur]= mixedTools::intToString(nbParam_);
29  parametersString_[++compteur]= specificName_;
30  parametersString_[++compteur]= mixedTools::doubleToString(lenghtElem_);
31  parametersString_[++compteur]= mixedTools::doubleToString(aperture_);
32  if ( compteur != nbParam_ ) {
33    cerr << " elementDrift::getParametersString() : ERROR nr pf parameters dosnt match " << endl;
34    return NULL;
35  }
36  return parametersString_;
37}
38
39void  elementDrift::setParametersString(string* param)
40{
41  if ( param == NULL ) {
42    cerr << "  elementDrift::setParametersString parameters empty parameter set";
43    return;
44  }
45  int compteur = -1;
46  int nbparam = atoi(param[++compteur].c_str());
47  if ( nbparam != nbParam_ ) {
48    cerr << "  elementDrift::setParametersString parameters do not match for a DRIFT";
49    return;
50  }
51  specificName_ = param[++compteur];
52  lenghtElem_ = atof(param[++compteur].c_str());
53  aperture_  = atof(param[++compteur].c_str());
54}
55
56// string elementDrift::parmelaOutputFlow() const
57// {
58//   ostringstream sortie;
59//   sortie << "DRIFT /l=" << lenghtElem_ << "  /aper=" << aperture_ << "  /iout=1" << endl;
60//   return sortie.str();
61// }
62
63// string elementDrift::transportOutputFlow() const
64//   {
65//     ostringstream sortie;
66//     // longueur en m
67//     sortie << specificName_ << ":" << "  DRIFT, L=" << 0.01*lenghtElem_ << ";" << endl;
68//     return sortie.str();
69//   }
70
71
72// string elementDrift::FileOutputFlow() const
73// {
74//   ostringstream sortie;
75//   //  sortie << elementName_.getElementType()  << endl;
76//   sortie << elementName_.getGenericLabel() << endl;
77//   sortie  << specificName_ << endl;
78//   sortie << lenghtElem_ << "  " << aperture_ <<endl;
79//   return sortie.str();
80// }
81
82vector< pair<string, vector<string> > > elementDrift::parametersToSoftware () const 
83{
84  vector< pair<string, vector<string> > >  sortie;
85  sortie.push_back( pair<string, vector<string> >("labelsGenericSpecific",  vector<string>() ) );
86  sortie.back().second.push_back(elementName_.getGenericLabel());
87  sortie.back().second.push_back(specificName_);
88  sortie.push_back( pair<string, vector<string> >("lenghtAperture",  vector<string>() ) );
89  sortie.back().second.push_back(mixedTools::doubleToString(lenghtElem_));
90  sortie.back().second.push_back(mixedTools::doubleToString(aperture_));
91  return sortie;
92}
93
94// void elementDrift::FileInput(ifstream& ifs)
95// {
96//   ifs >> specificName_;
97//   ifs >> lenghtElem_ >>  aperture_;
98// }
99
100string elementDrift::print() 
101{
102  string txt = "";
103  txt += specificName_;
104  txt += "\nlength (cm) : ";
105  txt += mixedTools::doubleToString(lenghtElem_);
106  txt += "\naperture (cm) : ";
107  txt += mixedTools::doubleToString(aperture_); 
108  return txt;
109}
110
111void elementDrift::InputRep(UAPNode* root)
112{
113  // UAPNode* ele = root->addChild("element");
114  // ele->addAttribute("name",specificName_);
115  UAPNode* ele = setAMLelementHeader(root);
116
117  string txt = "";
118  txt = mixedTools::doubleToString(lenghtElem_);
119  ele->addChild("length")->addAttribute("design",txt);
120
121  UAPNode* node = ele->addChild("aperture");
122  node->addAttribute("at","EXIT");
123  node->addAttribute("shape","CIRCLE");
124  txt = mixedTools::doubleToString(aperture_);
125  node->addChild("xy_limit")->addAttribute("design",txt);
126}
127
128void elementDrift::FileAMLInput(UAPNode* entree) 
129{
130  if ( !checkAMLelementGenericName(entree) ) return;
131  AMLtools::readAMLParameterAttribut(entree, "length", "design", lenghtElem_);
132
133  UAPNode* ouverture = entree->getChildByName("aperture");
134  if ( !ouverture ) {
135    cout << "  elementDrift::FileAMLInput ERREUR pas de noeud AML <aperture>  " << endl;
136    return;
137  }
138  AMLtools::readAMLParameterAttribut(ouverture, "xy_limit", "design", aperture_);
139
140
141}
Note: See TracBrowser for help on using the repository browser.