source: PSPA/Interface_Web/trunk/pspaWT/src/elementInitialBeam.cc @ 102

Last change on this file since 102 was 102, checked in by lemeur, 12 years ago

creation d'un diagnostic de coherence

File size: 3.1 KB
Line 
1#include "elementInitialBeam.h"
2
3
4#include "mathematicalTools.h"
5#include "mixedTools.h"
6
7
8
9elementInitialBeam::elementInitialBeam() : abstractElement() 
10    {
11      setDefaultValues();
12      setDefaults();
13      elementName_ = initialBeam;
14      nbParam_ = 6;
15      parametersString_ = new string[nbParam_+1];
16      parmelaOk_ = true;
17    }
18
19  void elementInitialBeam::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 elementInitialBeam::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
41 string* elementInitialBeam::getParametersString() const 
42  {
43    parametersString_[0] = mixedTools::intToString(nbParam_);
44    parametersString_[1] = mixedTools::intToString(nmacrop_);
45    parametersString_[2] = mixedTools::doubleToString(sigma_t_);
46    parametersString_[3] = mixedTools::doubleToString(sigma_r_);
47    parametersString_[4] = mixedTools::doubleToString(E_cin_);
48    parametersString_[5] = mixedTools::doubleToString(sigma_E_);
49    parametersString_[6] = mixedTools::doubleToString(nb_true_particles_);
50    return parametersString_;
51  }
52
53  void elementInitialBeam::setParametersString(string* param)
54  {
55    if ( param == NULL )
56      {
57        cerr << "  elementInitialBeam::setParametersString parameters empty parameter set";
58        return;
59      }
60    int nbparam = atoi(param[0].c_str());
61    if ( nbparam != nbParam_ ) 
62      {
63        cerr << "  elementInitialBeam::setParametersString parameters do not match for a DRIFT";
64        return;
65      }
66
67    nmacrop_ = atoi(param[1].c_str());
68    sigma_t_ = atof(param[2].c_str());
69    sigma_r_ = atof(param[3].c_str());
70    E_cin_ = atof(param[4].c_str());
71    sigma_E_ = atof(param[5].c_str());
72    nb_true_particles_ = atof(param[6].c_str());
73
74  }
75
76string elementInitialBeam::parmelaOutputFlow() const
77  {
78    ostringstream sortie;
79    // on prend les troncatures tmax et rmax à 3 sigmas
80    sortie << "INPUT 10 /np=" << nmacrop_ << "  /sigt=" << sigma_t_ << endl;
81    sortie << "  /tmax=" << 3.3*sigma_t_ << " /sigr=" << sigma_r_ << endl;
82    sortie << " /rmax=" << 3.0*sigma_r_ << " /W0=" << E_cin_ << " /dw0=" << sigma_E_ << endl;
83    sortie << " /dwt=" << phaseStep_ << " /ran=2" << endl;
84
85    sortie << "SCHEFF /beami=" << -nb_true_particles_ << " /nprog=2 /point=-1.7";
86 
87    return sortie.str();
88  }
89
90string elementInitialBeam::FileOutputFlow() const
91  {
92    ostringstream sortie;
93    // on prend les troncatures tmax et rmax à 3 sigmas
94    sortie << elementName_ << endl;
95    sortie <<  nmacrop_ << "  " << sigma_t_ << "  " << sigma_r_ << endl;
96    sortie << E_cin_ << " " << sigma_E_ << endl;
97    sortie << phaseStep_ << "  "  << nb_true_particles_ << endl; 
98    return sortie.str();
99  }
100
101void elementInitialBeam::FileInput(ifstream& ifs)
102{
103  ifs >> nmacrop_ >> sigma_t_ >> sigma_r_;
104  ifs >> E_cin_ >> sigma_E_;
105  ifs >> phaseStep_ >> nb_true_particles_;
106}
Note: See TracBrowser for help on using the repository browser.