37 #ifndef __THREEPOINT__
38 #define __THREEPOINT__
89 inline std::vector<std::string>
ThreePTypeNames () {
return {
"angular_connected",
"angular_reduced",
"comoving_connected",
"comoving_reduced"}; }
113 inline std::vector<ThreePType>
ThreePTypeCast (
const std::vector<int> threePTypeIndeces) {
return castFromValues<ThreePType>(threePTypeIndeces);}
121 inline std::vector<ThreePType>
ThreePTypeCast (
const std::vector<std::string> threePTypeNames) {
return castFromNames<ThreePType>(threePTypeNames,
ThreePTypeNames());}
152 std::shared_ptr<catalogue::Catalogue>
m_data;
166 std::shared_ptr<triplets::Triplet>
m_ddd;
169 std::shared_ptr<triplets::Triplet>
m_rrr;
172 std::shared_ptr<triplets::Triplet>
m_ddr;
175 std::shared_ptr<triplets::Triplet>
m_drr;
259 void count_allTriplets (
const std::string dir_output_triplets=
par::defaultString,
const std::vector<std::string> dir_input_triplets={},
const bool count_ddd=
true,
const bool count_rrr=
true,
const bool count_ddr=
true,
const bool count_drr=
true,
const bool tcount=
false,
const double fact=0.1);
329 void count_allTriplets_region (
const std::vector<std::vector<double>> weight,
const std::string dir_output_triplets=
par::defaultString,
const std::vector<std::string> dir_input_triplets={},
const bool count_ddd=
true,
const bool count_rrr=
true,
const bool count_ddr=
true,
const bool count_drr=
true,
const bool tcount=
false,
const double fact=0.1);
343 void write_triplets (
const std::shared_ptr<triplets::Triplet> TT,
const std::string dir,
const std::string file)
const;
352 void read_triplets (std::shared_ptr<triplets::Triplet> TT,
const std::vector<std::string> dir,
const std::string file);
378 :
m_data(std::make_shared<catalogue::Catalogue>(catalogue::Catalogue(std::move(
data)))),
m_random(std::make_shared<catalogue::Catalogue>(catalogue::Catalogue(std::move(
random)))) {}
499 std::shared_ptr<catalogue::Catalogue>
data ()
const {
return m_data; }
511 std::shared_ptr<triplets::Triplet>
ddd ()
const {
return m_ddd; }
517 std::shared_ptr<triplets::Triplet>
rrr ()
const {
return m_rrr; }
523 std::shared_ptr<triplets::Triplet>
ddr ()
const {
return m_ddr; }
529 std::shared_ptr<triplets::Triplet>
drr ()
const {
return m_drr; }
535 virtual std::vector<double>
scale ()
const
536 {
cbl::ErrorCBL(
"",
"scale",
"ThreePointCorrelation.h"); std::vector<double> vv;
return vv; }
543 virtual std::vector<double>
zeta ()
const
544 {
cbl::ErrorCBL(
"",
"zeta",
"ThreePointCorrelation.h"); std::vector<double> vv;
return vv; }
550 virtual std::vector<double>
QQ ()
const
551 {
cbl::ErrorCBL(
"",
"QQ",
"ThreePointCorrelation.h"); std::vector<double> vv;
return vv; }
559 virtual std::vector<double>
error ()
const
560 {
cbl::ErrorCBL(
"",
"error",
"ThreePointCorrelation.h"); std::vector<double> vv;
return vv; }
625 virtual void measure (
const std::string dir_output_triplets,
const std::vector<std::string> dir_input_triplets={},
const bool count_ddd=
true,
const bool count_rrr=
true,
const bool count_ddr=
true,
const bool count_drr=
true,
const bool tcount=
false,
const double fact=0.1,
const int seed=3213)
626 { (void)dir_output_triplets; (void)dir_input_triplets; (void)count_ddd; (void)count_rrr; (void)count_ddr; (void)count_drr; (void)tcount; (void)fact; (void)seed;
cbl::ErrorCBL(
"",
"measure",
"ThreePointCorrelation.h"); }
668 virtual void measure (
const std::vector<std::vector<double>> weight,
const bool doJK,
const std::string dir_output_triplets=
par::defaultString,
const std::vector<std::string> dir_input_triplets={},
const bool count_ddd=
true,
const bool count_rrr=
true,
const bool count_ddr=
true,
const bool count_drr=
true,
const bool tcount=
false,
const double fact=0.1,
const int seed=3213)
669 { (void)weight; (void)doJK; (void)dir_output_triplets; (void)dir_input_triplets; (void)count_ddd; (void)count_rrr; (void)count_ddr; (void)count_drr; (void)tcount; (void)fact; (void)seed;
cbl::ErrorCBL(
"",
"measure",
"ThreePointCorrelation.h"); }
710 virtual void measure (
const ErrorType errorType,
const std::string dir_output_triplets,
const std::vector<std::string> dir_input_triplets={},
const int nResamplings=100,
const bool count_ddd=
true,
const bool count_rrr=
true,
const bool count_ddr=
true,
const bool count_drr=
true,
const bool tcount=
false,
const double fact=0.1,
const int seed=3213)
711 { (void)errorType; (void)dir_output_triplets; (void)dir_input_triplets; (void)nResamplings; (void)count_ddd; (void)count_rrr; (void)count_ddr; (void)count_drr; (void)tcount; (void)fact; (void)seed;
cbl::ErrorCBL(
"",
"measure",
"ThreePointCorrelation.h"); }
751 virtual void measure (
const std::string dir_output_triplets,
const std::string dir_output_2pt,
const std::vector<std::string> dir_input_triplets={},
const bool count_ddd=
true,
const bool count_rrr=
true,
const bool count_ddr=
true,
const bool count_drr=
true,
const bool tcount=
false,
const double fact=0.1,
const int seed=3213)
752 { (void)dir_output_triplets; (void)dir_output_2pt; (void)dir_input_triplets; (void)count_ddd; (void)count_rrr; (void)count_ddr; (void)count_drr; (void)tcount; (void)fact; (void)seed;
cbl::ErrorCBL(
"",
"measure",
"ThreePointCorrelation.h!"); }
797 virtual void measure (
const std::vector<std::vector<double>> weight,
const bool doJK,
const std::string dir_output_triplets,
const std::string dir_output_2pt,
const std::vector<std::string> dir_input_triplets={},
const bool count_ddd=
true,
const bool count_rrr=
true,
const bool count_ddr=
true,
const bool count_drr=
true,
const bool tcount=
false,
const double fact=0.1,
const int seed=3213)
798 { (void)weight; (void)doJK; (void)dir_output_triplets; (void)dir_output_2pt; (void)dir_input_triplets; (void)count_ddd; (void)count_rrr; (void)count_ddr; (void)count_drr; (void)tcount; (void)fact; (void)seed;
cbl::ErrorCBL(
"",
"measure",
"ThreePointCorrelation.h"); }
842 virtual void measure (
const ErrorType errorType,
const std::string dir_output_triplets,
const std::string dir_output_2pt,
const std::vector<std::string> dir_input_triplets={},
const int nResamplings=100,
const bool count_ddd=
true,
const bool count_rrr=
true,
const bool count_ddr=
true,
const bool count_drr=
true,
const bool tcount=
false,
const double fact=0.1,
const int seed=3213)
843 { (void)errorType; (void)dir_output_triplets; (void)dir_output_2pt; (void)dir_input_triplets; (void)nResamplings; (void)count_ddd; (void)count_rrr; (void)count_ddr; (void)count_drr; (void)tcount; (void)fact; (void)seed;
cbl::ErrorCBL(
"",
"measure",
"ThreePointCorrelation.h"); }
876 virtual void measure (
const ErrorType errorType,
const std::string dir_output_triplets,
const std::vector<std::string> dir_input_triplets,
const int nResamplings,
const bool count_triplets,
const bool tcount,
const double fact,
const int seed=3213)
877 { (void)errorType; (void)dir_output_triplets; (void)dir_input_triplets; (void)nResamplings; (void)
count_triplets; (void)tcount; (void)fact; (void)seed;
cbl::ErrorCBL(
"",
"measure",
"ThreePointCorrelation.h"); }
894 virtual void write (
const std::string dir,
const std::string file)
const = 0;
904 virtual void write (
const std::string dir,
const std::string file,
const bool connected)
const
905 { (void)dir; (void)file; (void)connected;
cbl::ErrorCBL(
"",
"write",
"ThreePointCorrelation.h"); }
913 { (void)dir; (void)file;
cbl::ErrorCBL(
"",
"write_covariance",
"ThreePointCorrelation.h"); }
Implementation of the chain-mesh data structure.
The class ChainMesh_Catalogue.
The class ThreePointCorrelation.
std::shared_ptr< catalogue::Catalogue > m_random
output data catalogue
std::shared_ptr< catalogue::Catalogue > m_data
input data catalogue
virtual std::vector< double > QQ() const
get the protected member m_QQ
virtual void measure(const std::string dir_output_triplets, const std::vector< std::string > dir_input_triplets={}, const bool count_ddd=true, const bool count_rrr=true, const bool count_ddr=true, const bool count_drr=true, const bool tcount=false, const double fact=0.1, const int seed=3213)
method to measure the three-point correlation function
std::shared_ptr< catalogue::Catalogue > random() const
get the protected member m_random
virtual void write(const std::string dir, const std::string file, const bool connected) const
write the measured three-point correlation
virtual std::vector< double > error() const
get the protected member ThreePointCorrelation_comoving_connected::m_error
ThreePType m_threePType
three-point correlation function type
void count_allTriplets_region(const std::vector< std::vector< double >> weight, const std::string dir_output_triplets=par::defaultString, const std::vector< std::string > dir_input_triplets={}, const bool count_ddd=true, const bool count_rrr=true, const bool count_ddr=true, const bool count_drr=true, const bool tcount=false, const double fact=0.1)
count the data-data-data, random-random-random, data-data-random and data-random-random triplets,...
std::shared_ptr< triplets::Triplet > ddd() const
get the protected member m_ddd
void count_triplets_region(const std::shared_ptr< catalogue::Catalogue > cat1, const chainmesh::ChainMesh_Catalogue &ChainMesh_rMAX1, const chainmesh::ChainMesh_Catalogue &ChainMesh_rMAX2, std::shared_ptr< triplets::Triplet > tt, std::vector< std::shared_ptr< triplets::Triplet >> tt_regions, const std::vector< std::vector< double >> weight, const bool tcount=false)
method to count the number of triplets
std::shared_ptr< triplets::Triplet > drr() const
get the protected member m_drr
virtual void measure(const ErrorType errorType, const std::string dir_output_triplets, const std::vector< std::string > dir_input_triplets, const int nResamplings, const bool count_triplets, const bool tcount, const double fact, const int seed=3213)
measure the three-point correlation function multipoles
std::vector< std::shared_ptr< triplets::Triplet > > m_rrr_regions
number of random-random-random triplets
static std::shared_ptr< ThreePointCorrelation > Create(const ThreePType type, const catalogue::Catalogue data, const catalogue::Catalogue random, const triplets::TripletType tripletType, const double side_s, const double side_u, const double perc_increase, const int nbins)
static factory used to construct three-point correlation functions of any type
std::shared_ptr< triplets::Triplet > m_rrr
number of random-random-random triplets
std::shared_ptr< triplets::Triplet > ddr() const
get the protected member m_ddr
std::shared_ptr< triplets::Triplet > m_ddd
number of data-data-data triplets
std::vector< std::shared_ptr< triplets::Triplet > > m_ddr_regions
number of data-data-random triplets
virtual void measure(const std::vector< std::vector< double >> weight, const bool doJK, const std::string dir_output_triplets=par::defaultString, const std::vector< std::string > dir_input_triplets={}, const bool count_ddd=true, const bool count_rrr=true, const bool count_ddr=true, const bool count_drr=true, const bool tcount=false, const double fact=0.1, const int seed=3213)
method to measure the three-point correlation function
std::shared_ptr< triplets::Triplet > m_drr
number of data-random-random triplets
virtual void write(const std::string dir, const std::string file) const =0
write the measured three-point correlation
std::vector< std::shared_ptr< triplets::Triplet > > m_drr_regions
number of data-random-random triplets
virtual void measure(const ErrorType errorType, const std::string dir_output_triplets, const std::string dir_output_2pt, const std::vector< std::string > dir_input_triplets={}, const int nResamplings=100, const bool count_ddd=true, const bool count_rrr=true, const bool count_ddr=true, const bool count_drr=true, const bool tcount=false, const double fact=0.1, const int seed=3213)
method to measure the three-point correlation function
void set_random(const catalogue::Catalogue random)
add a random catalogue
std::shared_ptr< catalogue::Catalogue > data() const
get the protected member m_data
void count_triplets(const std::shared_ptr< catalogue::Catalogue > cat1, const chainmesh::ChainMesh_Catalogue &ChainMesh_rMAX1, const chainmesh::ChainMesh_Catalogue &ChainMesh_rMAX2, std::shared_ptr< triplets::Triplet > tt, const bool tcount=false)
method to count the number of triplets
void set_data(const catalogue::Catalogue data)
add a data catalogue
virtual void write_covariance(const std::string dir, const std::string file) const
write the measured three-point correlation covariance
virtual std::vector< double > zeta() const
get the protected member m_zeta
virtual std::vector< double > scale() const
get the protected member m_scale
std::shared_ptr< triplets::Triplet > m_ddr
number of data-data-random triplets
ThreePointCorrelation(const catalogue::Catalogue data, const catalogue::Catalogue random)
constructor
virtual void measure(const std::string dir_output_triplets, const std::string dir_output_2pt, const std::vector< std::string > dir_input_triplets={}, const bool count_ddd=true, const bool count_rrr=true, const bool count_ddr=true, const bool count_drr=true, const bool tcount=false, const double fact=0.1, const int seed=3213)
method to measure the three-point correlation function
virtual void measure(const ErrorType errorType, const std::string dir_output_triplets, const std::vector< std::string > dir_input_triplets={}, const int nResamplings=100, const bool count_ddd=true, const bool count_rrr=true, const bool count_ddr=true, const bool count_drr=true, const bool tcount=false, const double fact=0.1, const int seed=3213)
method to measure the three-point correlation function
virtual ~ThreePointCorrelation()=default
default destructor
ThreePType threePType() const
get the protected member m_threePType
void write_triplets(const std::shared_ptr< triplets::Triplet > TT, const std::string dir, const std::string file) const
write the number of triplets
void read_triplets(std::shared_ptr< triplets::Triplet > TT, const std::vector< std::string > dir, const std::string file)
read the number of triplets
virtual void measure(const std::vector< std::vector< double >> weight, const bool doJK, const std::string dir_output_triplets, const std::string dir_output_2pt, const std::vector< std::string > dir_input_triplets={}, const bool count_ddd=true, const bool count_rrr=true, const bool count_ddr=true, const bool count_drr=true, const bool tcount=false, const double fact=0.1, const int seed=3213)
method to measure the three-point correlation function
std::vector< std::shared_ptr< triplets::Triplet > > m_ddd_regions
number of data-data-data triplets
std::shared_ptr< triplets::Triplet > rrr() const
get the protected member m_rrr
ThreePointCorrelation()=default
default constructor
void count_allTriplets(const std::string dir_output_triplets=par::defaultString, const std::vector< std::string > dir_input_triplets={}, const bool count_ddd=true, const bool count_rrr=true, const bool count_ddr=true, const bool count_drr=true, const bool tcount=false, const double fact=0.1)
count the data-data-data, random-random-random, data-data-random and data-random-random triplets,...
static const std::string defaultString
default std::string value
ThreePType
the three-point correlation function type
@ _comoving_connected_
the connected three-point correlation function in comoving coordinates
@ _angular_reduced_
the reduced three-point correlation function in angular coordinates
@ _angular_connected_
the connected three-point correlation function in angular coordinates
@ _comoving_reduced_
the reduced three-point correlation function in comoving coordinates
std::vector< std::string > ThreePTypeNames()
return a vector containing the ThreePType names
ThreePType ThreePTypeCast(const int threePTypeIndex)
cast an enum of type ThreePType from its index
ErrorType
the two-point correlation function error type
TripletType
the triplet type
The global namespace of the CosmoBolognaLib
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