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

Last change on this file since 316 was 316, checked in by lemeur, 11 years ago

introduction softwareTest

File size: 2.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}
16
17  void elementDrift::setDefaultValues()
18  {
19    defaultLabel_ = "drift";
20  }
21  void elementDrift::setDefaults()
22  {
23    label_ = defaultLabel_;
24  }
25
26
27trivaluedBool elementDrift::is_accepted_by_software(nomDeLogiciel soft) const {
28  if ( soft == nomDeLogiciel::transport  ) return ok;
29  else if ( soft == nomDeLogiciel::parmela ) return ok;
30  else if ( soft == nomDeLogiciel::test ) return ok;
31  else return error;
32}
33
34
35 string* elementDrift::getParametersString() const 
36 {
37   int compteur = -1;
38   parametersString_[++compteur] = mixedTools::intToString(nbParam_);
39  parametersString_[++compteur] = label_;
40   parametersString_[++compteur] = mixedTools::doubleToString(lenghtElem_);
41   parametersString_[++compteur] = mixedTools::doubleToString(aperture_);
42   if ( compteur != nbParam_ ) {
43     cerr << " elementDrift::getParametersString() : ERROR nr pf parameters dosnt match " << endl;
44     return NULL;
45   }
46   return parametersString_;
47 }
48
49 void  elementDrift::setParametersString(string* param)
50 {
51   if ( param == NULL )
52     {
53       cerr << "  elementDrift::setParametersString parameters empty parameter set";
54       return;
55     }
56   int compteur = -1;
57   int nbparam = atoi(param[++compteur].c_str());
58   if ( nbparam != nbParam_ ) 
59     {
60       cerr << "  elementDrift::setParametersString parameters do not match for a DRIFT";
61       return;
62     }
63  label_ = param[++compteur];
64   lenghtElem_ = atof(param[++compteur].c_str());
65   aperture_  = atof(param[++compteur].c_str());
66 }
67
68string elementDrift::parmelaOutputFlow() const
69{
70  ostringstream sortie;
71  sortie << "DRIFT /l=" << lenghtElem_ << "  /aper=" << aperture_ << "  /iout=1";
72  return sortie.str();
73}
74
75
76string elementDrift::transportOutputFlow() const
77  {
78    ostringstream sortie;
79    // longueur en m
80    sortie << label_ << ":" << "  DRIFT, L=" << 0.01*lenghtElem_ << ";";
81    return sortie.str();
82  }
83
84
85string elementDrift::FileOutputFlow() const
86{
87  ostringstream sortie;
88  //  sortie << elementName_.getElementType()  << endl;
89  sortie << elementName_.getElementLabel() << endl;
90  sortie  << label_ << endl;
91  sortie << lenghtElem_ << "  " << aperture_ <<endl;
92  return sortie.str();
93}
94
95void elementDrift::FileInput(ifstream& ifs)
96{
97  ifs >> label_;
98  ifs >> lenghtElem_ >>  aperture_;
99}
100
101
102string elementDrift::print() {
103    string txt = "";
104
105    txt += label_;
106    txt += "\nlength (cm) : ";
107    txt += mixedTools::doubleToString(lenghtElem_);
108    txt += "\naperture (cm) : ";
109    txt += mixedTools::doubleToString(aperture_);
110   
111    return txt;
112}
Note: See TracBrowser for help on using the repository browser.