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.
PartBins(int bins, int sbins)
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)