source: PSPA/Interface_Web/trunk/pspaWT/sources/controler/include/particleBeam.h @ 341

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

fin dessins esp. phase + noms de fichiers

File size: 1.8 KB
Line 
1#ifndef PARTICLEBEAM_SEEN
2#define  PARTICLEBEAM_SEEN
3#include <iostream>
4#include <sstream>
5#include <stdio.h>
6
7#include<cmath>
8
9#include <vector>
10
11#include "bareParticle.h"
12//#include "mathematicalTools.h"
13#include "nomdElements.h"
14#include "beam2Moments.h"
15
16using namespace std;
17
18
19
20class particleBeam
21{
22
23  bool particleRepresentationOk_;
24  bool momentRepresentationOk_;
25
26  bareParticle referenceParticle_;
27
28  vector<bareParticle> goodPartic_;
29
30  beam2Moments rij_;
31
32
33  vector<double> centroid_;
34  double P0Transport_;
35
36
37  void impressionDesMoments() const;
38  void razDesMoments();
39
40
41 public:
42
43  particleBeam(); 
44
45  virtual ~particleBeam() {;}
46
47  void buildMomentRepresentation();
48
49
50  void clear();
51
52  int getNbParticles() const;
53
54  const beam2Moments&  getTransportMoments() const;
55  double getSigmaTransportij(unsigned i, unsigned j);
56  double getUnnormalizedEmittanceX();
57  double getP0Transport() const;
58  double referenceKineticEnergyMeV() const;
59  bool particleRepresentationOk() const;
60  bool momentRepresentationOk() const;
61
62
63  void  addParticle( bareParticle p);
64
65
66
67  const vector<bareParticle>& getParticleVector() const;
68
69  vector<bareParticle>& getParticleVector(); 
70
71  double getXmaxRms();
72
73  void getVariance(double& varx, double& vary, double& varz) const;
74 
75  void set2Moments(beam2Moments& moments);
76  void setWithParticles(vector<double>& centroid, bareParticle& referencePart, vector<bareParticle>& particles);
77  void printAllXYZ() const;
78
79
80  void Zrange(double& zmin, double& zmax) const;
81
82  void donneesDessinEllipseXxp(vector<double>& xcor, vector<double>& ycor);
83  void donneesDessinEllipse(vector<double>& xcor, vector<double>& ycor, unsigned indexAbs, unsigned indexOrd);
84
85  virtual string FileOutputFlow() const;
86
87
88  virtual bool FileInput(ifstream& ifs);
89
90  void histogramme(vector<double>&xcor,vector<int>& hist,int& cnts,double out[3]);
91};
92
93
94#endif
Note: See TracBrowser for help on using the repository browser.