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

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

introduction element solenoid

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    }
17
18  void elementInitialBeam::setDefaultValues()
19  {
20    defaultPhaseStep_ = 1.0;
21    defaultNmacrop_ = 0;
22    defaultSigma_t_ = 0.0;
23    defaultSigma_r_ = 0.0;
24    defaultE_cin_ = 0.0;
25    defaultSigma_E_ = 0.0;
26    defaultNb_true_particles_ = 1.0;
27  }
28
29  void elementInitialBeam::setDefaults()
30  {
31    phaseStep_ = defaultPhaseStep_;
32    nmacrop_ = defaultNmacrop_;
33    sigma_t_ = defaultSigma_t_;
34    sigma_r_ = defaultSigma_r_ ;
35    E_cin_ = defaultE_cin_;
36    sigma_E_ = defaultSigma_E_;
37    nb_true_particles_ = defaultNb_true_particles_ ;
38  }
39
40 string* elementInitialBeam::getParametersString() const 
41  {
42    parametersString_[0] = mixedTools::intToString(nbParam_);
43    parametersString_[1] = mixedTools::intToString(nmacrop_);
44    parametersString_[2] = mixedTools::doubleToString(sigma_t_);
45    parametersString_[3] = mixedTools::doubleToString(sigma_r_);
46    parametersString_[4] = mixedTools::doubleToString(E_cin_);
47    parametersString_[5] = mixedTools::doubleToString(sigma_E_);
48    parametersString_[6] = mixedTools::doubleToString(nb_true_particles_);
49    return parametersString_;
50  }
51
52  void elementInitialBeam::setParametersString(string* param)
53  {
54    if ( param == NULL )
55      {
56        cerr << "  elementInitialBeam::setParametersString parameters empty parameter set";
57        return;
58      }
59    int nbparam = atoi(param[0].c_str());
60    if ( nbparam != nbParam_ ) 
61      {
62        cerr << "  elementInitialBeam::setParametersString parameters do not match for a DRIFT";
63        return;
64      }
65
66    nmacrop_ = atoi(param[1].c_str());
67    sigma_t_ = atof(param[2].c_str());
68    sigma_r_ = atof(param[3].c_str());
69    E_cin_ = atof(param[4].c_str());
70    sigma_E_ = atof(param[5].c_str());
71    nb_true_particles_ = atof(param[6].c_str());
72
73  }
74
75string elementInitialBeam::parmelaOutputFlow() const
76  {
77    ostringstream sortie;
78    // on prend les troncatures tmax et rmax à 3 sigmas
79    sortie << "INPUT 10 /np=" << nmacrop_ << "  /sigt=" << sigma_t_ << endl;
80    sortie << "  /tmax=" << 3.3*sigma_t_ << " /sigr=" << sigma_r_ << endl;
81    sortie << " /rmax=" << 3.0*sigma_r_ << " /W0=" << E_cin_ << " /dw0=" << sigma_E_ << endl;
82    sortie << " /dwt=" << phaseStep_ << " /ran=2" << endl;
83
84    sortie << "SCHEFF /beami=" << -nb_true_particles_ << " /nprog=2 /point=-1.7";
85 
86    return sortie.str();
87  }
88
89string elementInitialBeam::FileOutputFlow() const
90  {
91    ostringstream sortie;
92    // on prend les troncatures tmax et rmax à 3 sigmas
93    sortie << elementName_ << endl;
94    sortie <<  nmacrop_ << "  " << sigma_t_ << "  " << sigma_r_ << endl;
95    sortie << E_cin_ << " " << sigma_E_ << endl;
96    sortie << phaseStep_ << "  "  << nb_true_particles_ << endl; 
97    return sortie.str();
98  }
99
100void elementInitialBeam::FileInput(ifstream& ifs)
101{
102  ifs >> nmacrop_ >> sigma_t_ >> sigma_r_;
103  ifs >> E_cin_ >> sigma_E_;
104  ifs >> phaseStep_ >> nb_true_particles_;
105}
Note: See TracBrowser for help on using the repository browser.