22#include <gsl/gsl_histogram.h>
50 void fill(std::vector<double> &p) {
74 bool getPart(
size_t n,
int bin, std::vector<double> &p);
144 return h_m !=
nullptr;
165 std::unique_ptr<gsl_histogram>
h_m;
179 bool operator()(
const std::vector<double>& first_part,
const std::vector<double>& second_part) {
191 bool operator()(
const std::vector<double>& first_part,
const std::vector<double>& second_part) {
Inform & operator<<(Inform &os, PartBins &p)
std::vector< std::vector< double > > tmppart_m
std::unique_ptr< double[]> xbinmax_m
std::unique_ptr< double[]> xbinmin_m
size_t getNp()
get the number of particles in the temporary particle structure used for binning
bool doEmission()
Is true if we still have particles to emit.
std::unique_ptr< size_t[]> nDelBin_m
size_t getTotalNumPerBin(int b)
How many particles are in the bin b.
void setGamma(double gamma)
bool isEmitted(int n, int)
void resetPartInBin_cyc(size_t newPartNum[], int binID)
std::vector< bool > isEmitted_m
void setPartNum(int bin, long long num)
void setBinEmitted(int bin)
void fill(std::vector< double > &p)
Add a particle to the temporary container.
void updatePartInBin_cyc(size_t countLost[])
Inform & print(Inform &os)
std::unique_ptr< bool[]> binsEmitted_m
bool getPart(size_t n, int bin, std::vector< double > &p)
size_t getTotalNum()
How many particles are in all the bins.
virtual bool weHaveBins()
void resetBins()
If the bunch object rebins we need to call resetBins()
std::unique_ptr< size_t[]> nBin_m
std::unique_ptr< gsl_histogram > h_m
bool operator()(const std::vector< double > &first_part, const std::vector< double > &second_part)
AscendingLocationSort(int direction=0)
bool operator()(const std::vector< double > &first_part, const std::vector< double > &second_part)
DescendingLocationSort(int direction=0)