source: PSPA/Interface_Web/trunk/pspaWT/sources/controler/src/elementRfgun.cc @ 257

Last change on this file since 257 was 257, checked in by garnier, 11 years ago

refactoring

File size: 3.7 KB
Line 
1#include "elementRfgun.h"
2
3
4#include "mathematicalTools.h"
5#include "mixedTools.h"
6
7
8
9elementRfgun::elementRfgun() : abstractElement() 
10    {
11      setDefaultValues();
12      setDefaults();
13      elementName_ = nomdElements("rfgun");
14      nbParam_ = elementName_.getElementNbParameters();
15      parametersString_ = new string[nbParam_+1];
16      //      parmelaOk_ = true;
17    }
18
19  void elementRfgun::setDefaultValues()
20  {
21    defaultPhaseStep_ = 1.0;
22    defaultNmacrop_ = 0;
23    defaultSigma_t_ = 0.0;
24    defaultSigma_r_ = 0.0;
25    defaultE_cin_ = 0.0;
26    defaultSigma_E_ = 0.0;
27    defaultNb_true_particles_ = 1.0;
28  }
29
30  void elementRfgun::setDefaults()
31  {
32    phaseStep_ = defaultPhaseStep_;
33    nmacrop_ = defaultNmacrop_;
34    sigma_t_ = defaultSigma_t_;
35    sigma_r_ = defaultSigma_r_ ;
36    E_cin_ = defaultE_cin_;
37    sigma_E_ = defaultSigma_E_;
38    nb_true_particles_ = defaultNb_true_particles_ ;
39  }
40
41trivaluedBool elementRfgun::is_accepted_by_software(nomDeLogiciel soft) const {
42  cout << " elementRfgun : c'est le bon is_accepted_by_software " << endl;
43  if ( soft == nomDeLogiciel::parmela ) return ok;
44  else return error;
45}
46
47 string* elementRfgun::getParametersString() const 
48  {
49   int compteur = -1;
50    parametersString_[++compteur] = mixedTools::intToString(nbParam_);
51  parametersString_[++compteur] = label_;
52    parametersString_[++compteur] = mixedTools::intToString(nmacrop_);
53    parametersString_[++compteur] = mixedTools::doubleToString(sigma_t_);
54    parametersString_[++compteur] = mixedTools::doubleToString(sigma_r_);
55    parametersString_[++compteur] = mixedTools::doubleToString(E_cin_);
56    parametersString_[++compteur] = mixedTools::doubleToString(sigma_E_);
57    parametersString_[++compteur] = mixedTools::doubleToString(nb_true_particles_);
58    return parametersString_;
59  }
60
61  void elementRfgun::setParametersString(string* param)
62  {
63    if ( param == NULL )
64      {
65        cerr << "  elementRfgun::setParametersString parameters empty parameter set";
66        return;
67      }
68   int compteur = -1;
69    int nbparam = atoi(param[++compteur].c_str());
70    if ( nbparam != nbParam_ ) 
71      {
72        cerr << "  elementRfgun::setParametersString parameters do not match for a DRIFT";
73        return;
74      }
75
76    label_ = param[++compteur];
77    nmacrop_ = atoi(param[++compteur].c_str());
78    sigma_t_ = atof(param[++compteur].c_str());
79    sigma_r_ = atof(param[++compteur].c_str());
80    E_cin_ = atof(param[++compteur].c_str());
81    sigma_E_ = atof(param[++compteur].c_str());
82    nb_true_particles_ = atof(param[++compteur].c_str());
83
84  }
85
86string elementRfgun::parmelaOutputFlow() const
87  {
88    ostringstream sortie;
89    // on prend les troncatures tmax et rmax à 3 sigmas
90    sortie << "INPUT 10 /np=" << nmacrop_ << "  /sigt=" << sigma_t_ << endl;
91    sortie << "  /tmax=" << 3.3*sigma_t_ << " /sigr=" << sigma_r_ << endl;
92    sortie << " /rmax=" << 3.0*sigma_r_ << " /W0=" << E_cin_ << " /dw0=" << sigma_E_ << endl;
93    sortie << " /dwt=" << phaseStep_ << " /ran=2" << endl;
94
95    sortie << "SCHEFF /beami=" << -nb_true_particles_ << " /nprog=2 /point=-1.7";
96 
97    return sortie.str();
98  }
99
100string elementRfgun::FileOutputFlow() const
101  {
102    ostringstream sortie;
103    // on prend les troncatures tmax et rmax à 3 sigmas
104    //    sortie << elementName_.getElementType() << endl;
105    sortie << elementName_.getElementLabel() << endl;
106    sortie  << label_ << endl;
107    sortie <<  nmacrop_ << "  " << sigma_t_ << "  " << sigma_r_ << endl;
108    sortie << E_cin_ << " " << sigma_E_ << endl;
109    sortie << phaseStep_ << "  "  << nb_true_particles_ << endl; 
110    return sortie.str();
111  }
112
113void elementRfgun::FileInput(ifstream& ifs)
114{
115  ifs >> label_;
116  ifs >> nmacrop_ >> sigma_t_ >> sigma_r_;
117  ifs >> E_cin_ >> sigma_E_;
118  ifs >> phaseStep_ >> nb_true_particles_;
119}
Note: See TracBrowser for help on using the repository browser.