103 inline std::vector<std::string>
TwoPTypeNames () {
return {
"monopole",
"projected",
"deprojected",
"multipoles_integrated",
"multipoles_direct",
"wedges",
"filtered",
"angular",
"2D_Cartesian",
"2D_polar"}; }
120 {
return castFromName<TwoPType>(twoPTypeName,
TwoPTypeNames()); }
128 inline std::vector<TwoPType>
TwoPTypeCast (
const std::vector<int> twoPTypeIndeces)
129 {
return castFromValues<TwoPType>(twoPTypeIndeces); }
137 inline std::vector<TwoPType>
TwoPTypeCast (
const std::vector<std::string> twoPTypeNames)
138 {
return castFromNames<TwoPType>(twoPTypeNames,
TwoPTypeNames()); }
162 inline std::vector<std::string>
EstimatorNames () {
return {
"natural",
"LandySzalay",
"SzapudiSzalay"}; }
186 inline std::vector<Estimator>
EstimatorCast (
const std::vector<int> estimatorIndeces) {
return castFromValues<Estimator>(estimatorIndeces);}
194 inline std::vector<Estimator>
EstimatorCast (
const std::vector<std::string> estimatorNames) {
return castFromNames<Estimator>(estimatorNames,
EstimatorNames());}
227 std::shared_ptr<catalogue::Catalogue>
m_data;
241 std::shared_ptr<pairs::Pair>
m_dd;
244 std::shared_ptr<pairs::Pair>
m_rr;
247 std::shared_ptr<pairs::Pair>
m_dr;
257 std::vector<std::shared_ptr<pairs::Pair>>
m_dd_res;
260 std::vector<std::shared_ptr<pairs::Pair>>
m_rr_res;
263 std::vector<std::shared_ptr<pairs::Pair>>
m_dr_res;
292 virtual void write_pairs (
const std::shared_ptr<pairs::Pair> PP,
const std::string dir,
const std::string file)
const = 0;
300 virtual void read_pairs (std::shared_ptr<pairs::Pair> PP,
const std::vector<std::string> dir,
const std::string file)
const = 0;
308 virtual void write_pairs (
const std::vector<std::shared_ptr<pairs::Pair> > PP,
const std::string dir,
const std::string file)
const = 0;
316 virtual void read_pairs (std::vector<std::shared_ptr<pairs::Pair> > PP,
const std::vector<std::string> dir,
const std::string file)
const = 0;
386 void count_pairs_region (
const std::shared_ptr<catalogue::Catalogue> cat1,
const chainmesh::ChainMesh_Catalogue &ChM, std::shared_ptr<pairs::Pair> pp, std::vector< std::shared_ptr<pairs::Pair> > pp_regions,
const bool cross=
true,
const bool tcount=
false);
413 void count_pairs_region_test (
const std::shared_ptr<catalogue::Catalogue> cat1,
const chainmesh::ChainMesh_Catalogue &ChM, std::shared_ptr<pairs::Pair> pp, std::vector< std::shared_ptr<pairs::Pair> > pp_res,
const std::vector<double> weight,
const bool cross=
true,
const bool tcount=
false);
440 void count_pairs_region_test_1D (
const std::shared_ptr<catalogue::Catalogue> cat1,
const chainmesh::ChainMesh_Catalogue &ChM, std::shared_ptr<pairs::Pair> pp, std::vector< std::shared_ptr<pairs::Pair> > pp_res,
const std::vector<double> weight,
const bool cross=
true,
const bool tcount=
false);
467 void count_pairs_region_test_2D (
const std::shared_ptr<catalogue::Catalogue> cat1,
const chainmesh::ChainMesh_Catalogue &ChM, std::shared_ptr<pairs::Pair> pp, std::vector< std::shared_ptr<pairs::Pair> > pp_res,
const std::vector<double> weight,
const bool cross=
true,
const bool tcount=
false);
555 void count_allPairs_region (std::vector<std::shared_ptr<pairs::Pair> > &dd_regions, std::vector<std::shared_ptr<pairs::Pair> > &rr_regions, std::vector<std::shared_ptr<pairs::Pair> > &dr_regions,
const TwoPType type,
const std::string dir_output_pairs=
par::defaultString,
const std::vector<std::string> dir_input_pairs={},
const bool count_dd=
true,
const bool count_rr=
true,
const bool count_dr=
true,
const bool tcount=
true,
const Estimator estimator=
Estimator::_LandySzalay_,
const double fact=0.1);
632 virtual std::shared_ptr<data::Data>
correlation_NaturalEstimator (
const std::shared_ptr<pairs::Pair>
dd,
const std::shared_ptr<pairs::Pair>
rr,
const int nData=0,
const double nData_weighted=0.,
const int nRandom=0,
const double nRandom_weighted=0.) = 0;
660 virtual std::shared_ptr<data::Data>
correlation_LandySzalayEstimator (
const std::shared_ptr<pairs::Pair>
dd,
const std::shared_ptr<pairs::Pair>
rr,
const std::shared_ptr<pairs::Pair>
dr,
const int nData,
const double nData_weighted,
const int nRandom,
const double nRandom_weighted) = 0;
672 virtual std::shared_ptr<data::Data>
Filtered (
const std::shared_ptr<data::Data>
data)
673 { (void)
data;
ErrorCBL(
"",
"Filtered",
"TwoPointCorrelation.h"); std::shared_ptr<data::Data>
dd;
return dd; }
689 virtual std::shared_ptr<data::Data>
Projected (
const std::vector<double> rp,
const std::vector<double>
pi,
const std::vector<std::vector<double> > xi,
const std::vector<std::vector<double> > error_xi)
690 { (void)rp; (void)
pi; (void)xi; (void)error_xi;
ErrorCBL(
"",
"Projected",
"TwoPointCorrelation.h"); std::shared_ptr<data::Data>
data;
return data; }
705 virtual std::shared_ptr<data::Data>
Deprojected (
const std::vector<double> rp,
const std::vector<double> ww,
const std::vector<double> error_ww)
706 { (void)rp; (void)ww; (void)error_ww;
ErrorCBL(
"",
"Deprojected",
"TwoPointCorrelation.h"); std::shared_ptr<data::Data>
data;
return data; }
723 virtual std::shared_ptr<data::Data>
Multipoles (
const std::vector<double>
rr,
const std::vector<double> mu,
const std::vector<std::vector<double>> xi,
const std::vector<std::vector<double>> error_xi)
724 { (void)
rr; (void)mu; (void)xi; (void)error_xi;
ErrorCBL(
"",
"Multipoles",
"TwoPointCorrelation.h"); std::shared_ptr<data::Data>
data;
return data; }
741 virtual std::shared_ptr<data::Data>
Wedges (
const std::vector<double>
rr,
const std::vector<double> mu,
const std::vector<std::vector<double>> xi,
const std::vector<std::vector<double> > error_xi)
742 { (void)
rr; (void)mu; (void)xi; (void)error_xi;
ErrorCBL(
"",
"Wedges",
"TwoPointCorrelation.h"); std::shared_ptr<data::Data>
data;
return data; }
778 { (void)dir_output_pairs; (void)dir_input_pairs; (void)count_dd; (void)count_rr; (void)count_dr; (void)tcount; (void)estimator; (void)fact;
cbl::ErrorCBL(
"",
"measurePoisson",
"TwoPointCorrelation.h"); }
818 { (void)dir_output_pairs; (void)dir_input_pairs; (void)dir_output_resample; (void)count_dd; (void)count_rr; (void)count_dr; (void)tcount; (void)estimator; (void)fact;
cbl::ErrorCBL(
"",
"measureJackknife",
"TwoPointCorrelation.h"); }
858 { (void)dir_output_pairs; (void)dir_input_pairs; (void)dir_output_resample; (void)count_dd; (void)count_rr; (void)count_dr; (void)tcount; (void)estimator; (void)fact;
cbl::ErrorCBL(
"",
"measureJackknifeTest",
"TwoPointCorrelation.h"); }
902 virtual void measureBootstrap (
const int nMocks,
const std::string dir_output_pairs=
par::defaultString,
const std::vector<std::string> dir_input_pairs={},
const std::string dir_output_resample=
par::defaultString,
const bool count_dd=
true,
const bool count_rr=
true,
const bool count_dr=
true,
const bool tcount=
true,
const Estimator estimator=
Estimator::_LandySzalay_,
const double fact=0.1,
const int seed=3213)
903 { (void)nMocks; (void)dir_output_pairs; (void)dir_input_pairs; (void)dir_output_resample; (void)count_dd; (void)count_rr; (void)count_dr; (void)tcount; (void)estimator; (void)fact; (void)seed;
cbl::ErrorCBL(
"",
"measureBootstrap",
"TwoPointCorrelation.h"); }
915 virtual std::vector<std::shared_ptr<data::Data> >
XiJackknife (
const std::vector<std::shared_ptr<pairs::Pair> >
dd,
const std::vector<std::shared_ptr<pairs::Pair> >
rr)
916 { (void)
dd; (void)
rr;
cbl::ErrorCBL(
"",
"XiJackknife",
"TwoPointCorrelation.h"); std::vector<std::shared_ptr<data::Data> >
data;
return data; }
932 virtual std::vector<std::shared_ptr<data::Data> >
XiJackknife (
const std::vector<std::shared_ptr<pairs::Pair> >
dd,
const std::vector<std::shared_ptr<pairs::Pair> >
rr,
const std::vector<std::shared_ptr<pairs::Pair> >
dr)
933 { (void)
dd; (void)
rr; (void)
dr;
cbl::ErrorCBL(
"",
"XiJackknife",
"TwoPointCorrelation.h"); std::vector<std::shared_ptr<data::Data> >
data;
return data; }
945 virtual std::vector<std::shared_ptr<data::Data> >
XiJackknifeTest (
const std::vector<std::shared_ptr<pairs::Pair> >
dd,
const std::vector<std::shared_ptr<pairs::Pair> >
rr)
946 { (void)
dd; (void)
rr;
cbl::ErrorCBL(
"",
"XiJackknifeTest",
"TwoPointCorrelation.h"); std::vector<std::shared_ptr<data::Data> >
data;
return data; }
961 virtual std::vector<std::shared_ptr<data::Data> >
XiJackknifeTest (
const std::vector<std::shared_ptr<pairs::Pair> >
dd,
const std::vector<std::shared_ptr<pairs::Pair> >
rr,
const std::vector<std::shared_ptr<pairs::Pair> >
dr)
962 { (void)
dd; (void)
rr; (void)
dr;
cbl::ErrorCBL(
"",
"XiJackknifeTest",
"TwoPointCorrelation.h"); std::vector<std::shared_ptr<data::Data> >
data;
return data; }
981 virtual std::vector<std::shared_ptr<data::Data> >
XiBootstrap (
const int nMocks,
const std::vector<std::shared_ptr<pairs::Pair> >
dd,
const std::vector<std::shared_ptr<pairs::Pair> >
rr,
const int seed=3213)
982 { (void)nMocks; (void)
dd; (void)
rr; (void)seed;
cbl::ErrorCBL(
"",
"XiBootstrap",
"TwoPointCorrelation.h"); std::vector<std::shared_ptr<data::Data> >
data;
return data; }
1001 virtual std::vector<std::shared_ptr<data::Data> >
XiBootstrap (
const int nMocks,
const std::vector<std::shared_ptr<pairs::Pair> >
dd,
const std::vector<std::shared_ptr<pairs::Pair> >
rr,
const std::vector<std::shared_ptr<pairs::Pair> >
dr,
const int seed=3213)
1002 { (void)nMocks; (void)
dd; (void)
rr; (void)
dr; (void)seed;
cbl::ErrorCBL(
"",
"XiBootstrap",
"TwoPointCorrelation.h"); std::vector<std::shared_ptr<data::Data> >
data;
return data; }
1088 static std::shared_ptr<TwoPointCorrelation>
Create (
const TwoPType type,
const catalogue::Catalogue data,
const catalogue::Catalogue random,
const BinType binType,
const double Min,
const double Max,
const int nbins,
const double shift,
const CoordinateUnits angularUnits=
CoordinateUnits::_radians_, std::function<
double(
double)> angularWeight=
nullptr,
const bool compute_extra_info=
false,
const double random_dilution_fraction=1.);
1130 static std::shared_ptr<TwoPointCorrelation>
Create (
const TwoPType type,
const catalogue::Catalogue data,
const catalogue::Catalogue random,
const BinType binType,
const double Min,
const double Max,
const double binSize,
const double shift,
const CoordinateUnits angularUnits=
CoordinateUnits::_radians_, std::function<
double(
double)> angularWeight=
nullptr,
const bool compute_extra_info=
false,
const double random_dilution_fraction=1.);
1187 static std::shared_ptr<TwoPointCorrelation>
Create (
const TwoPType type,
const catalogue::Catalogue data,
const catalogue::Catalogue random,
const BinType binType_D1,
const double Min_D1,
const double Max_D1,
const int nbins_D1,
const double shift_D1,
const BinType binType_D2,
const double Min_D2,
const double Max_D2,
const int nbins_D2,
const double shift_D2,
const CoordinateUnits angularUnits=
CoordinateUnits::_radians_, std::function<
double(
double)> angularWeight=
nullptr,
const bool compute_extra_info=
false,
const double random_dilution_fraction=1.);
1244 static std::shared_ptr<TwoPointCorrelation>
Create (
const TwoPType type,
const catalogue::Catalogue data,
const catalogue::Catalogue random,
const BinType binType_D1,
const double Min_D1,
const double Max_D1,
const double binSize_D1,
const double shift_D1,
const BinType binType_D2,
const double Min_D2,
const double Max_D2,
const double binSize_D2,
const double shift_D2,
const CoordinateUnits angularUnits=
CoordinateUnits::_radians_, std::function<
double(
double)> angularWeight=
nullptr,
const bool compute_extra_info=
false,
const double random_dilution_fraction=1.);
1298 static std::shared_ptr<TwoPointCorrelation>
Create (
const TwoPType type,
const catalogue::Catalogue data,
const catalogue::Catalogue random,
const BinType binType_D1,
const double Min_D1,
const double Max_D1,
const int nbins_D1,
const double shift_D1,
const double Min_D2,
const double Max_D2,
const int nbins_D2,
const double shift_D2,
const CoordinateUnits angularUnits=
CoordinateUnits::_radians_, std::function<
double(
double)> angularWeight=
nullptr,
const bool compute_extra_info=
false,
const double random_dilution_fraction=1.);
1352 static std::shared_ptr<TwoPointCorrelation>
Create (
const TwoPType type,
const catalogue::Catalogue data,
const catalogue::Catalogue random,
const BinType binType_D1,
const double Min_D1,
const double Max_D1,
const double binSize_D1,
const double shift_D1,
const double Min_D2,
const double Max_D2,
const double binSize_D2,
const double shift_D2,
const CoordinateUnits angularUnits=
CoordinateUnits::_radians_, std::function<
double(
double)> angularWeight=
nullptr,
const bool compute_extra_info=
false,
const double random_dilution_fraction=1.);
1408 static std::shared_ptr<TwoPointCorrelation>
Create (
const TwoPType type,
const catalogue::Catalogue data,
const catalogue::Catalogue random,
const BinType binType_D1,
const double Min_D1,
const double Max_D1,
const int nbins_D1,
const double shift_D1,
const double Min_D2,
const double Max_D2,
const int nbins_D2,
const double shift_D2,
const double piMax_integral,
const CoordinateUnits angularUnits=
CoordinateUnits::_radians_, std::function<
double(
double)> angularWeight=
nullptr,
const bool compute_extra_info=
false,
const double random_dilution_fraction=1.);
1464 static std::shared_ptr<TwoPointCorrelation>
Create (
const TwoPType type,
const catalogue::Catalogue data,
const catalogue::Catalogue random,
const BinType binType_D1,
const double Min_D1,
const double Max_D1,
const double binSize_D1,
const double shift_D1,
const double Min_D2,
const double Max_D2,
const double binSize_D2,
const double shift_D2,
const double piMax_integral,
const CoordinateUnits angularUnits=
CoordinateUnits::_radians_, std::function<
double(
double)> angularWeight=
nullptr,
const bool compute_extra_info=
false,
const double random_dilution_fraction=1.);
1520 static std::shared_ptr<TwoPointCorrelation>
Create (
const TwoPType type,
const catalogue::Catalogue data,
const catalogue::Catalogue random,
const BinType binType_D1,
const double Min_D1,
const double Max_D1,
const int nbins_D1,
const double shift_D1,
const int nWedges,
const int nbins_D2,
const double shift_D2,
const std::vector<std::vector<double>> mu_integral_limits={{0., 0.5}, {0.5, 1}},
const CoordinateUnits angularUnits=
CoordinateUnits::_radians_, std::function<double(
double)> angularWeight=
nullptr,
const bool compute_extra_info=
false,
const double random_dilution_fraction=1.);
1577 static std::shared_ptr<TwoPointCorrelation>
Create (
const TwoPType type,
const catalogue::Catalogue data,
const catalogue::Catalogue random,
const BinType binType_D1,
const double Min_D1,
const double Max_D1,
const double binSize_D1,
const double shift_D1,
const int nWedges,
const double binSize_D2,
const double shift_D2,
const std::vector<std::vector<double>> mu_integral_limits={{0., 0.5}, {0.5, 1}},
const CoordinateUnits angularUnits=
CoordinateUnits::_radians_, std::function<double(
double)> angularWeight=
nullptr,
const bool compute_extra_info=
false,
const double random_dilution_fraction=1.);
1597 std::shared_ptr<catalogue::Catalogue>
data ()
const {
return m_data; }
1609 std::shared_ptr<pairs::Pair>
dd ()
const {
return m_dd; }
1615 std::shared_ptr<pairs::Pair>
rr ()
const {
return m_rr; }
1621 std::shared_ptr<pairs::Pair>
dr ()
const {
return m_dr; }
1642 virtual std::vector<double>
xx ()
const = 0;
1648 virtual std::vector<double>
yy ()
const {
cbl::ErrorCBL(
"",
"yy",
"TwoPointCorrelation.h"); std::vector<double> vv;
return vv; }
1654 virtual std::vector<double>
xi1D ()
const {
cbl::ErrorCBL(
"",
"xi1D",
"TwoPointCorrelation.h"); std::vector<double> vv;
return vv; }
1662 virtual std::vector<double>
error1D ()
const {
cbl::ErrorCBL(
"",
"error1D",
"TwoPointCorrelation.h"); std::vector<double> vv;
return vv; }
1668 virtual std::vector<std::vector<double> >
xi2D ()
const {
cbl::ErrorCBL(
"",
"xi2D",
"TwoPointCorrelation.h"); std::vector<std::vector<double> > vv;
return vv; }
1674 virtual std::vector<std::vector<double> >
error2D ()
const {
cbl::ErrorCBL(
"",
"error2D",
"TwoPointCorrelation.h"); std::vector<std::vector<double> > vv;
return vv; }
1681 {
cbl::ErrorCBL(
"",
"xiMonopole",
"TwoPointCorrelation.h"); std::vector<double> vv;
return vv; }
1688 {
cbl::ErrorCBL(
"",
"errorMonopole",
"TwoPointCorrelation.h"); std::vector<double> vv;
return vv; }
1695 {
cbl::ErrorCBL(
"",
"xiQuadrupole",
"TwoPointCorrelation.h"); std::vector<double> vv;
return vv; }
1702 {
cbl::ErrorCBL(
"",
"errorQuadrupole",
"TwoPointCorrelation.h"); std::vector<double> vv;
return vv; }
1709 {
cbl::ErrorCBL(
"",
"xiHexadecapole",
"TwoPointCorrelation.h"); std::vector<double> vv;
return vv; }
1716 {
cbl::ErrorCBL(
"",
"errorHexadecapole",
"TwoPointCorrelation.h"); std::vector<double> vv;
return vv; }
1723 {
cbl::ErrorCBL(
"",
"xiPerpendicular",
"TwoPointCorrelation.h"); std::vector<double> vv;
return vv; }
1730 {
cbl::ErrorCBL(
"",
"errorPerpendicular",
"TwoPointCorrelation.h"); std::vector<double> vv;
return vv; }
1737 {
cbl::ErrorCBL(
"",
"xiParallel",
"TwoPointCorrelation.h"); std::vector<double> vv;
return vv; }
1744 {
cbl::ErrorCBL(
"",
"errorParallel",
"TwoPointCorrelation.h"); std::vector<double> vv;
return vv; }
1816 virtual void measure (
const ErrorType errorType=
ErrorType::_Poisson_,
const std::string dir_output_pairs=
par::defaultString,
const std::vector<std::string> dir_input_pairs={},
const std::string dir_output_resample=
par::defaultString,
const int nMocks=0,
const bool count_dd=
true,
const bool count_rr=
true,
const bool count_dr=
true,
const bool tcount=
true,
const Estimator estimator=
Estimator::_LandySzalay_,
const double fact=0.1,
const int seed=3213) = 0;
1831 virtual void read (
const std::string dir,
const std::string file) = 0;
1850 virtual void write (
const std::string dir,
const std::string file,
const bool full,
const int rank=0)
const
1851 { (void)dir; (void)file; (void)full; (void)rank;
cbl::ErrorCBL(
"",
"write",
"TwoPointCorrelation.h"); }
1938 double PoissonError (
const Estimator estimator,
const double dd,
const double rr,
const double dr,
const int nData,
const int nRandom)
const;
Implementation of the chain-mesh data structure.
The class ChainMesh_Catalogue.
The class TwoPointCorrelation.
virtual std::vector< double > xiParallel() const
get the parallel wedge of the polar xi
virtual void measureJackknife(const std::string dir_output_pairs=par::defaultString, const std::vector< std::string > dir_input_pairs={}, const std::string dir_output_resample=par::defaultString, const bool count_dd=true, const bool count_rr=true, const bool count_dr=true, const bool tcount=true, const Estimator estimator=Estimator::_LandySzalay_, const double fact=0.1)
measure the two-point correlation function estimating the covariance with Jackknife resampling
virtual std::shared_ptr< data::Data > correlation_LandySzalayEstimator(const std::shared_ptr< pairs::Pair > dd, const std::shared_ptr< pairs::Pair > rr, const std::shared_ptr< pairs::Pair > dr, const int nData, const double nData_weighted, const int nRandom, const double nRandom_weighted)=0
get a dataset containing the two-point correlation function measured with the Landy-Szalay estimator,...
std::shared_ptr< pairs::Pair > dr() const
get the protected member m_dr
void count_allPairs(const TwoPType type, const std::string dir_output_pairs=par::defaultString, const std::vector< std::string > dir_input_pairs={}, const bool count_dd=true, const bool count_rr=true, const bool count_dr=true, const bool tcount=true, const Estimator estimator=Estimator::_LandySzalay_, const double fact=0.1)
count the data-data, random-random and data-random pairs, used to construct the estimator of the two-...
std::shared_ptr< catalogue::Catalogue > random() const
get the protected member m_random
virtual void read_covariance(const std::string dir, const std::string file)=0
read the measured covariance matrix
TwoPointCorrelation(const catalogue::Catalogue data, const catalogue::Catalogue random, const bool compute_extra_info=false, const double random_dilution_fraction=1.)
constructor
virtual std::vector< std::vector< double > > error2D() const
get the error on the binned correlation function
virtual void measureJackknifeTest(const std::string dir_output_pairs=par::defaultString, const std::vector< std::string > dir_input_pairs={}, const std::string dir_output_resample=par::defaultString, const bool count_dd=true, const bool count_rr=true, const bool count_dr=true, const bool tcount=true, const Estimator estimator=Estimator::_LandySzalay_, const double fact=0.1)
measure the two-point correlation function estimating the covariance with Jackknife resampling,...
virtual void write_covariance(const std::string dir, const std::string file) const =0
write the measured two-point correlation
virtual std::shared_ptr< data::Data > Wedges(const std::vector< double > rr, const std::vector< double > mu, const std::vector< std::vector< double >> xi, const std::vector< std::vector< double > > error_xi)
measure the wedges of the two-poinr correlation function
std::shared_ptr< catalogue::Catalogue > m_data
input data catalogue
virtual void write_pairs(const std::shared_ptr< pairs::Pair > PP, const std::string dir, const std::string file) const =0
write the number of pairs
std::vector< std::shared_ptr< pairs::Pair > > m_rr_res
number of random-random pairs
std::shared_ptr< pairs::Pair > m_dr
number of data-random pairs
void count_allPairs_region_test(const TwoPType type, const std::vector< double > weight, const std::string dir_output_pairs=par::defaultString, const std::vector< std::string > dir_input_pairs={}, const bool count_dd=true, const bool count_rr=true, const bool count_dr=true, const bool tcount=true, const Estimator estimator=Estimator::_LandySzalay_, const double fact=0.1)
count the data-data, random-random and data-random pairs, used to construct the estimator of the two-...
virtual void measure(const ErrorType errorType=ErrorType::_Poisson_, const std::string dir_output_pairs=par::defaultString, const std::vector< std::string > dir_input_pairs={}, const std::string dir_output_resample=par::defaultString, const int nMocks=0, const bool count_dd=true, const bool count_rr=true, const bool count_dr=true, const bool tcount=true, const Estimator estimator=Estimator::_LandySzalay_, const double fact=0.1, const int seed=3213)=0
measure the two-point correlation function
virtual std::vector< double > error1D() const
get the error on the binned correlation function function
virtual void compute_covariance(const std::vector< std::string > file, const bool JK)=0
compute the covariance matrix
virtual std::shared_ptr< data::Data > Deprojected(const std::vector< double > rp, const std::vector< double > ww, const std::vector< double > error_ww)
measure the deprojected two-point correlation function
virtual std::vector< double > xx() const =0
get the x coordinates
virtual std::vector< std::shared_ptr< data::Data > > XiBootstrap(const int nMocks, const std::vector< std::shared_ptr< pairs::Pair > > dd, const std::vector< std::shared_ptr< pairs::Pair > > rr, const int seed=3213)
measure the Bootstrap resampling of the two-point correlation function, ξ(r)
virtual std::vector< double > errorQuadrupole() const
get the error on the quadrupole of the polar xi
void count_pairs_region(const std::shared_ptr< catalogue::Catalogue > cat1, const chainmesh::ChainMesh_Catalogue &ChM, std::shared_ptr< pairs::Pair > pp, std::vector< std::shared_ptr< pairs::Pair > > pp_regions, const bool cross=true, const bool tcount=false)
count the number of pairs, used for Jackknife/Bootstrap methods
virtual std::vector< double > xiMonopole() const
get the monopole of the polar xi
void set_random(const catalogue::Catalogue random)
add a random catalogue
virtual void compute_covariance(const std::vector< std::shared_ptr< data::Data >> xi, const bool JK)=0
compute the covariance matrix
TwoPType twoPType() const
get the protected member m_twoPType
virtual std::shared_ptr< data::Data > Filtered(const std::shared_ptr< data::Data > data)
measure the filtered two-point correlation function, , where
virtual std::vector< double > xiHexadecapole() const
get the hexadecapole of the polar xi
double PoissonError(const Estimator estimator, const double dd, const double rr, const double dr, const int nData, const int nRandom) const
the Poisson errors
void set_data(const catalogue::Catalogue data)
add a data catalogue
bool compute_extra_info() const
get the protected member m_compute_extra_info
std::vector< std::shared_ptr< pairs::Pair > > m_dd_res
number of data-data pairs
std::shared_ptr< pairs::Pair > m_rr
number of random-random pairs
std::shared_ptr< catalogue::Catalogue > m_random
output data catalogue
bool random_dilution_fraction() const
get the protected member m_random_dilution_fraction
std::shared_ptr< pairs::Pair > rr() const
get the protected member m_rr
virtual std::vector< double > xi1D() const
get the the binned correlation function
virtual std::shared_ptr< data::Data > Multipoles(const std::vector< double > rr, const std::vector< double > mu, const std::vector< std::vector< double >> xi, const std::vector< std::vector< double >> error_xi)
measure the multipoles of the two-point correlation function
void count_pairs_region_test_2D(const std::shared_ptr< catalogue::Catalogue > cat1, const chainmesh::ChainMesh_Catalogue &ChM, std::shared_ptr< pairs::Pair > pp, std::vector< std::shared_ptr< pairs::Pair > > pp_res, const std::vector< double > weight, const bool cross=true, const bool tcount=false)
count the number of pairs, used for Jackknife/Bootstrap methods, 2D pairs
virtual std::vector< double > xiPerpendicular() const
get the perpendicular wedge of the polar xi
virtual void read(const std::string dir, const std::string file)=0
read the measured two-point correlation
virtual std::vector< std::shared_ptr< data::Data > > XiJackknife(const std::vector< std::shared_ptr< pairs::Pair > > dd, const std::vector< std::shared_ptr< pairs::Pair > > rr)
measure the Jackknife resampling of the two-point correlation function, ξ(r)
virtual std::vector< double > errorMonopole() const
get the error on the monopole of the polar xi
virtual std::vector< std::vector< double > > xi2D() const
get the the binned correlation function
void resets()
reset the pair counts
std::shared_ptr< pairs::Pair > dd() const
get the protected member m_dd
std::shared_ptr< catalogue::Catalogue > data() const
get the protected member m_data
virtual std::shared_ptr< data::Data > correlation_NaturalEstimator(const std::shared_ptr< pairs::Pair > dd, const std::shared_ptr< pairs::Pair > rr, const int nData=0, const double nData_weighted=0., const int nRandom=0, const double nRandom_weighted=0.)=0
get a dataset containing the two-point correlation function measured with the natural estimator,...
virtual std::vector< std::shared_ptr< data::Data > > XiBootstrap(const int nMocks, const std::vector< std::shared_ptr< pairs::Pair > > dd, const std::vector< std::shared_ptr< pairs::Pair > > rr, const std::vector< std::shared_ptr< pairs::Pair > > dr, const int seed=3213)
measure the Bootstrap resampling of the two-point correlation function, ξ(r)
virtual std::vector< std::shared_ptr< data::Data > > XiJackknifeTest(const std::vector< std::shared_ptr< pairs::Pair > > dd, const std::vector< std::shared_ptr< pairs::Pair > > rr)
measure the Jackknife resampling of the two-point correlation function, ξ(r)
virtual void measureBootstrap(const int nMocks, const std::string dir_output_pairs=par::defaultString, const std::vector< std::string > dir_input_pairs={}, const std::string dir_output_resample=par::defaultString, const bool count_dd=true, const bool count_rr=true, const bool count_dr=true, const bool tcount=true, const Estimator estimator=Estimator::_LandySzalay_, const double fact=0.1, const int seed=3213)
measure the two-point correlation function estimating the covariance with Bootstrap resampling
virtual std::vector< double > yy() const
get the y coordinates
void count_pairs(const std::shared_ptr< catalogue::Catalogue > cat1, const chainmesh::ChainMesh_Catalogue &ChM, std::shared_ptr< pairs::Pair > pp, const bool cross=true, const bool tcount=false)
count the number of pairs
std::vector< std::shared_ptr< pairs::Pair > > m_dr_res
number of data-random pairs
virtual std::vector< std::shared_ptr< data::Data > > XiJackknifeTest(const std::vector< std::shared_ptr< pairs::Pair > > dd, const std::vector< std::shared_ptr< pairs::Pair > > rr, const std::vector< std::shared_ptr< pairs::Pair > > dr)
measure the Jackknife resampling of the two-point correlation function, ξ(r)
virtual void write(const std::string dir=par::defaultString, const std::string file=par::defaultString, const int rank=0) const =0
write the measured two-point correlation
virtual void write(const std::string dir, const std::string file, const bool full, const int rank=0) const
write the measured two-point correlation
virtual void read_pairs(std::shared_ptr< pairs::Pair > PP, const std::vector< std::string > dir, const std::string file) const =0
read the number of pairs
void count_pairs_region_test(const std::shared_ptr< catalogue::Catalogue > cat1, const chainmesh::ChainMesh_Catalogue &ChM, std::shared_ptr< pairs::Pair > pp, std::vector< std::shared_ptr< pairs::Pair > > pp_res, const std::vector< double > weight, const bool cross=true, const bool tcount=false)
count the number of pairs, used for Jackknife/Bootstrap methods
virtual std::vector< std::shared_ptr< data::Data > > XiJackknife(const std::vector< std::shared_ptr< pairs::Pair > > dd, const std::vector< std::shared_ptr< pairs::Pair > > rr, const std::vector< std::shared_ptr< pairs::Pair > > dr)
measure the Jackknife resampling of the two-point correlation function, ξ(r)
TwoPType m_twoPType
two-point correlation function type
static std::shared_ptr< TwoPointCorrelation > Create(const TwoPType type, const catalogue::Catalogue data, const catalogue::Catalogue random, const BinType binType, const double Min, const double Max, const int nbins, const double shift, const CoordinateUnits angularUnits=CoordinateUnits::_radians_, std::function< double(double)> angularWeight=nullptr, const bool compute_extra_info=false, const double random_dilution_fraction=1.)
static factory used to construct two-point correlation functions of any type
TwoPointCorrelation()=default
default constructor
virtual std::vector< double > errorHexadecapole() const
get the error on the hexadecapole of the polar xi
std::shared_ptr< pairs::Pair > m_dd
number of data-data pairs
virtual void write_pairs(const std::vector< std::shared_ptr< pairs::Pair > > PP, const std::string dir, const std::string file) const =0
write the number of pairs
virtual std::shared_ptr< data::Data > Projected(const std::vector< double > rp, const std::vector< double > pi, const std::vector< std::vector< double > > xi, const std::vector< std::vector< double > > error_xi)
measure the projected two-point correlation function
virtual std::vector< double > xiQuadrupole() const
get the quadrupole of the polar xi
double m_random_dilution_fraction
fraction between the number of random objects in the diluted and original samples,...
virtual void read_pairs(std::vector< std::shared_ptr< pairs::Pair > > PP, const std::vector< std::string > dir, const std::string file) const =0
read the number of pairs
void count_allPairs_region(std::vector< std::shared_ptr< pairs::Pair > > &dd_regions, std::vector< std::shared_ptr< pairs::Pair > > &rr_regions, std::vector< std::shared_ptr< pairs::Pair > > &dr_regions, const TwoPType type, const std::string dir_output_pairs=par::defaultString, const std::vector< std::string > dir_input_pairs={}, const bool count_dd=true, const bool count_rr=true, const bool count_dr=true, const bool tcount=true, const Estimator estimator=Estimator::_LandySzalay_, const double fact=0.1)
count the data-data, random-random and data-random pairs, used to construct the estimator of the two-...
virtual ~TwoPointCorrelation()=default
default destructor
virtual std::vector< double > errorParallel() const
get the error on the parallel wedge of the polar xi
bool m_compute_extra_info
true → compute extra information related to the pairs, such as the mean pair separation and redshift
virtual std::vector< double > errorPerpendicular() const
get the perpendicular wedge of the polar xi
virtual void measurePoisson(const std::string dir_output_pairs=par::defaultString, const std::vector< std::string > dir_input_pairs={}, const bool count_dd=true, const bool count_rr=true, const bool count_dr=true, const bool tcount=true, const Estimator estimator=Estimator::_LandySzalay_, const double fact=0.1)
measure the two-point correlation function with Poisson errors
void count_pairs_region_test_1D(const std::shared_ptr< catalogue::Catalogue > cat1, const chainmesh::ChainMesh_Catalogue &ChM, std::shared_ptr< pairs::Pair > pp, std::vector< std::shared_ptr< pairs::Pair > > pp_res, const std::vector< double > weight, const bool cross=true, const bool tcount=false)
count the number of pairs, used for Jackknife/Bootstrap methods, 1D pairs
static const std::string defaultString
default std::string value
static const double pi
: the ratio of a circle's circumference to its diameter
std::vector< std::string > EstimatorNames()
return a vector containing the Estimator names
TwoPType TwoPTypeCast(const int twoPTypeIndex)
cast an enum of type TwoPType from its index
Estimator
the two-point correlation estimator
@ _SzapudiSzalay_
Szapudi&Szalay estimator.
@ _LandySzalay_
Landy&Szalay estimator.
@ _natural_
natural estimator
Estimator EstimatorCast(const int estimatorIndex)
cast an enum of type Estimator from its index
std::vector< std::string > TwoPTypeNames()
return a vector containing the TwoPType names
TwoPType
the two-point correlation function type
@ _projected_
the projected two-point correlation function, w(rp)
@ _2D_Cartesian_
2D two-point correlation function in Cartesian coordinates, ξ(rp,π)
@ _multipoles_integrated_
the multipoles of the two-point correlation function, ξi(r), computed with the integrated estimator
@ _wedges_
the wedges of the two-point correlation function, ξi(r)
@ _deprojected_
the deprojected two-point correlation function, ξ(r)
@ _monopole_
the angle-averaged two-point correlation function, i.e. the monopole, ξ(r)
@ _filtered_
filtered two-point correlation function
@ _angular_
angular two-point correlation function
@ _2D_polar_
2D two-point correlation function in polar coordinates, ξ(r,μ)
@ _multipoles_direct_
the multipoles of the two-point correlation function, ξi(r), computed with the direct estimator
ErrorType
the two-point correlation function error type
@ _Poisson_
Poissonian error.
The global namespace of the CosmoBolognaLib
T Min(const std::vector< T > vect)
minimum element of a std::vector
int ErrorCBL(const std::string msg, const std::string functionCBL, const std::string fileCBL, const cbl::glob::ExitCode exitCode=cbl::glob::ExitCode::_error_)
throw an exception: it is used for handling exceptions inside the CosmoBolognaLib
T Max(const std::vector< T > vect)
maximum element of a std::vector
CoordinateUnits
the coordinate units
@ _radians_
angle in radians