Main Page
Related Pages
Classes
Files
File List
File Members
src
particlestatistics.hpp
Go to the documentation of this file.
1
5
/* Copyright (c) 2010-2011 Taneli Kalvas. All rights reserved.
6
*
7
* You can redistribute this software and/or modify it under the terms
8
* of the GNU General Public License as published by the Free Software
9
* Foundation; either version 2 of the License, or (at your option)
10
* any later version.
11
*
12
* This library is distributed in the hope that it will be useful, but
13
* WITHOUT ANY WARRANTY; without even the implied warranty of
14
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
* General Public License for more details.
16
*
17
* You should have received a copy of the GNU General Public License
18
* along with this library (file "COPYING" included in the package);
19
* if not, write to the Free Software Foundation, Inc., 51 Franklin
20
* Street, Fifth Floor, Boston, MA 02110-1301 USA
21
*
22
* If you have questions about your rights to use or distribute this
23
* software, please contact Berkeley Lab's Technology Transfer
24
* Department at TTD@lbl.gov. Other questions, comments and bug
25
* reports should be sent directly to the author via email at
26
* taneli.kalvas@jyu.fi.
27
*
28
* NOTICE. This software was developed under partial funding from the
29
* U.S. Department of Energy. As such, the U.S. Government has been
30
* granted for itself and others acting on its behalf a paid-up,
31
* nonexclusive, irrevocable, worldwide license in the Software to
32
* reproduce, prepare derivative works, and perform publicly and
33
* display publicly. Beginning five (5) years after the date
34
* permission to assert copyright is obtained from the U.S. Department
35
* of Energy, and subject to any subsequent five (5) year renewals,
36
* the U.S. Government is granted for itself and others acting on its
37
* behalf a paid-up, nonexclusive, irrevocable, worldwide license in
38
* the Software to reproduce, prepare derivative works, distribute
39
* copies to the public, perform publicly and display publicly, and to
40
* permit others to do so.
41
*/
42
43
#ifndef PARTICLESTATISTICS_HPP
44
#define PARTICLESTATISTICS_HPP 1
45
46
47
#include <stdint.h>
48
#include <ostream>
49
#include <vector>
50
51
57
class
ParticleStatistics
{
58
59
uint32_t _end_time;
60
uint32_t _end_step;
61
uint32_t _end_baddef;
62
uint32_t _sum_steps;
64
std::vector<uint32_t> _bound_collisions;
65
std::vector<double> _bound_current;
67
public
:
68
69
ParticleStatistics
();
70
ParticleStatistics
(
const
ParticleStatistics
&stat );
71
ParticleStatistics
( uint32_t nboundaries );
72
75
ParticleStatistics
( std::istream &s );
76
77
~ParticleStatistics
();
78
79
const
ParticleStatistics
&
operator=
(
const
ParticleStatistics
&stat );
80
const
ParticleStatistics
&
operator+=
(
const
ParticleStatistics
&stat );
81
82
void
clear
(
void
);
83
void
reset
( uint32_t nboundaries );
84
85
uint32_t
end_time
(
void
)
const
;
86
uint32_t
end_step
(
void
)
const
;
87
uint32_t
end_baddef
(
void
)
const
;
88
uint32_t
sum_steps
(
void
)
const
;
89
90
uint32_t
number_of_boundaries
(
void
)
const
;
91
uint32_t
bound_collisions
( uint32_t bound )
const
;
92
uint32_t
bound_collisions
(
void
)
const
;
93
double
bound_current
( uint32_t bound )
const
;
94
double
bound_current
(
void
)
const
;
95
96
void
inc_end_time
(
void
) { _end_time++; }
97
void
inc_end_step
(
void
) { _end_step++; }
98
void
inc_end_baddef
(
void
) { _end_baddef++; }
99
void
inc_sum_steps
(
void
) { _sum_steps++; }
100
void
inc_sum_steps
( uint32_t i ) { _sum_steps += i; }
101
102
void
add_bound_collision
( uint32_t bound,
double
IQ );
103
106
void
save
( std::ostream &s )
const
;
107
};
108
109
110
#endif
111
Reference manual for Ion Beam Simulator 1.0.5b
Generated on by
Doxygen
1.8.2 on Fri Sep 21 2012 16:46:40.