CosmoBolognaLib
Free Software C++/Python libraries for cosmological calculations
Pair1D.h
Go to the documentation of this file.
1 /*******************************************************************
2  * Copyright (C) 2015 by Federico Marulli *
3  * federico.marulli3@unibo.it *
4  * *
5  * This program is free software; you can redistribute it and/or *
6  * modify it under the terms of the GNU General Public License as *
7  * published by the Free Software Foundation; either version 2 of *
8  * the License, or (at your option) any later version. *
9  * *
10  * This program is distributed in the hope that it will be useful,*
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
13  * GNU General Public License for more details. *
14  * *
15  * You should have received a copy of the GNU General Public *
16  * License along with this program; if not, write to the Free *
17  * Software Foundation, Inc., *
18  * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
19  *******************************************************************/
20 
34 #ifndef __PAIR1D__
35 #define __PAIR1D__
36 
37 
38 #include "Pair.h"
39 
40 
41 // ===================================================================================================
42 
43 
44 namespace cbl {
45 
46  namespace pairs {
47 
56  class Pair1D : public virtual Pair {
57 
58  protected:
59 
64 
68  virtual void m_set_parameters_nbins () = 0;
69 
73  virtual void m_set_parameters_binSize () = 0;
74 
76 
77 
78  protected:
79 
81  std::vector<double> m_scale;
82 
84  std::vector<double> m_PP1D;
85 
87  std::vector<double> m_PP1D_weighted;
88 
93 
95  double m_binSize_inv;
96 
98  int m_nbins;
99 
101  double m_shift;
102 
104 
105 
106  public:
107 
112 
116  Pair1D () : m_binSize_inv(1.), m_nbins(50), m_shift(0.5)
118 
127  Pair1D (const double binSize, const int nbins, const double shift, const CoordinateUnits angularUnits, std::function<double(double)> angularWeight=nullptr)
128  : m_binSize_inv(1./binSize), m_nbins(nbins), m_shift(shift)
129  {
131  m_PP1D.resize(m_nbins+1, 0.);
132  m_PP1D_weighted.resize(m_nbins+1, 0.);
135  }
136 
141  virtual ~Pair1D () = default;
142 
144 
145 
150 
156  double scale (const int i) const override { return m_scale[i]; }
157 
162  std::vector<double> scale () const override { return m_scale; }
163 
169  double PP1D (const int i) const override { return m_PP1D[i]; }
170 
175  std::vector<double> PP1D () const override { return m_PP1D; }
176 
182  double PP1D_weighted (const int i) const override { return m_PP1D_weighted[i]; }
183 
189  std::vector<double> PP1D_weighted () const override { return m_PP1D_weighted; }
190 
195  double binSize_inv () const override { return m_binSize_inv; }
196 
201  int nbins () const override { return m_nbins; }
202 
207  double shift () const override { return m_shift; }
208 
210 
211 
216 
225  void reset () override;
226 
233  void set_scale (const int i, const double ss) { checkDim(m_scale, i, "m_scale", false); m_scale[i] = ss; }
234 
241  void set_PP1D (const int i, const double pp) { checkDim(m_PP1D, i, "m_PP1D", false); m_PP1D[i] = pp; }
242 
249  void set_PP1D_weighted (const int i, const double pp) { checkDim(m_PP1D_weighted, i, "m_PP1D_weighted", false); m_PP1D_weighted[i] = pp; }
250 
257  void add_data1D (const int i, const std::vector<double> data) override;
258 
266  void add_data1D (const int i, const std::shared_ptr<pairs::Pair> pair, const double ww=1.) override;
267 
269 
270 
275 
281  virtual void Sum (const std::shared_ptr<Pair> pair, const double ww=1) override;
282 
284 
285  };
286 
287 
288  // ============================================================================================
289  // ============================================================================================
290 
291 
300  class Pair1D_angular : public virtual Pair1D {
301 
302  protected:
303 
308 
312  virtual void m_set_parameters_nbins () = 0;
313 
317  virtual void m_set_parameters_binSize () = 0;
318 
320 
321 
322  protected:
323 
328 
330  double m_thetaMin;
331 
333  double m_thetaMax;
334 
336 
337 
338  public:
339 
344 
349 
362  Pair1D_angular (const double thetaMin, const double thetaMax, const int nbins, const double shift, const CoordinateUnits angularUnits=CoordinateUnits::_radians_, std::function<double(double)> angularWeight=nullptr)
363  : Pair1D(1., nbins, shift, angularUnits, angularWeight), m_thetaMin(thetaMin), m_thetaMax(thetaMax) {}
364 
380  Pair1D_angular (const double thetaMin, const double thetaMax, const double binSize, const double shift, const CoordinateUnits angularUnits=CoordinateUnits::_radians_, std::function<double(double)> angularWeight=nullptr)
381  : Pair1D(binSize, 50, shift, angularUnits, angularWeight), m_thetaMin(thetaMin), m_thetaMax(thetaMax) {}
382 
387  virtual ~Pair1D_angular () = default;
388 
390 
391 
396 
402  double sMin () const override { return m_thetaMin; }
403 
409  double sMax () const override { return m_thetaMax; }
410 
412 
413  };
414 
415 
416  // ============================================================================================
417  // ============================================================================================
418 
427  class Pair1D_angular_lin : public virtual Pair1D_angular {
428 
429  protected:
430 
435 
440  void m_set_parameters_nbins () override;
441 
446  void m_set_parameters_binSize () override;
447 
449 
450  public:
451 
456 
461  {
464  }
465 
478  Pair1D_angular_lin (const double thetaMin, const double thetaMax, const int nbins, const double shift, const CoordinateUnits angularUnits=CoordinateUnits::_radians_, std::function<double(double)> angularWeight=nullptr)
480  {
484  m_PP1D.resize(m_nbins+1, 0.);
485  m_PP1D_weighted.resize(m_nbins+1, 0.);
486  }
487 
500  Pair1D_angular_lin (const double thetaMin, const double thetaMax, const double binSize, const double shift, const CoordinateUnits angularUnits=CoordinateUnits::_radians_, std::function<double(double)> angularWeight=nullptr)
501  : Pair1D(binSize, 50, shift, angularUnits, angularWeight), Pair1D_angular(thetaMin, thetaMax, binSize, shift, angularUnits, angularWeight)
502  {
506  m_PP1D.resize(m_nbins+1, 0.);
507  m_PP1D_weighted.resize(m_nbins+1, 0.);
508  }
509 
514  ~Pair1D_angular_lin () = default;
515 
517 
518 
523 
532  void get (const std::shared_ptr<catalogue::Object> obj1, const std::shared_ptr<catalogue::Object> obj2, int &kk, double &wkk) override;
533 
541  void set (const int kk, const double wkk, const double weight=1) override;
542 
551  void put (const std::shared_ptr<catalogue::Object> obj1, const std::shared_ptr<catalogue::Object> obj2) override;
552 
554 
555  };
556 
557 
558  // ============================================================================================
559  // ============================================================================================
560 
561 
570  class Pair1D_angular_log : public virtual Pair1D_angular {
571 
572  protected:
573 
578 
583  void m_set_parameters_nbins () override;
584 
589  void m_set_parameters_binSize () override;
590 
592 
593  public:
594 
599 
604  {
607  }
608 
621  Pair1D_angular_log (const double thetaMin, const double thetaMax, const int nbins, const double shift, const CoordinateUnits angularUnits=CoordinateUnits::_radians_, std::function<double(double)> angularWeight=nullptr)
623  {
627  m_PP1D.resize(m_nbins+1, 0.);
628  m_PP1D_weighted.resize(m_nbins+1, 0.);
629  }
630 
643  Pair1D_angular_log (const double thetaMin, const double thetaMax, const double binSize, const double shift, const CoordinateUnits angularUnits=CoordinateUnits::_radians_, std::function<double(double)> angularWeight=nullptr)
644  : Pair1D(binSize, 50, shift, angularUnits, angularWeight), Pair1D_angular(thetaMin, thetaMax, binSize, shift, angularUnits, angularWeight)
645  {
649  m_PP1D.resize(m_nbins+1, 0.);
650  m_PP1D_weighted.resize(m_nbins+1, 0.);
651  }
652 
657  ~Pair1D_angular_log () = default;
658 
660 
661 
666 
675  void get (const std::shared_ptr<catalogue::Object> obj1, const std::shared_ptr<catalogue::Object> obj2, int &kk, double &wkk) override;
676 
684  void set (const int kk, const double wkk, const double weight=1) override;
685 
694  void put (const std::shared_ptr<catalogue::Object> obj1, const std::shared_ptr<catalogue::Object> obj2) override;
695 
697 
698  };
699 
700 
701  // ============================================================================================
702  // ============================================================================================
703 
704 
713  class Pair1D_comoving : public virtual Pair1D {
714 
715  protected:
716 
721 
725  virtual void m_set_parameters_nbins () = 0;
726 
730  virtual void m_set_parameters_binSize () = 0;
731 
733 
734 
735  protected:
736 
741 
743  double m_rMin;
744 
746  double m_rMax;
747 
749 
750 
751  public:
752 
757 
761  Pair1D_comoving () : m_rMin(0.1), m_rMax(50.) {}
762 
773  Pair1D_comoving (const double rMin, const double rMax, const int nbins, const double shift, const CoordinateUnits angularUnits=CoordinateUnits::_radians_, std::function<double(double)> angularWeight=nullptr)
774  : Pair1D(1., nbins, shift, angularUnits, angularWeight), m_rMin(rMin), m_rMax(rMax) {}
775 
786  Pair1D_comoving (const double rMin, const double rMax, const double binSize, const double shift, const CoordinateUnits angularUnits=CoordinateUnits::_radians_, std::function<double(double)> angularWeight=nullptr)
787  : Pair1D(binSize, 50, shift, angularUnits, angularWeight), m_rMin(rMin), m_rMax(rMax) {}
788 
793  virtual ~Pair1D_comoving () = default;
794 
796 
797 
802 
807  double sMin () const override { return m_rMin; }
808 
813  double sMax () const override { return m_rMax; }
814 
816 
817  };
818 
819 
820  // ============================================================================================
821  // ============================================================================================
822 
823 
832  class Pair1D_comoving_lin : public virtual Pair1D_comoving {
833 
834  protected:
835 
840 
845  void m_set_parameters_nbins () override;
846 
851  void m_set_parameters_binSize () override;
852 
854 
855  public:
856 
861 
866  {
869  }
870 
881  Pair1D_comoving_lin (const double rMin, const double rMax, const int nbins, const double shift, const CoordinateUnits angularUnits=CoordinateUnits::_radians_, std::function<double(double)> angularWeight=nullptr)
883  {
887  m_PP1D.resize(m_nbins+1, 0.);
888  m_PP1D_weighted.resize(m_nbins+1, 0.);
889  }
890 
901  Pair1D_comoving_lin (const double rMin, const double rMax, const double binSize, const double shift, const CoordinateUnits angularUnits=CoordinateUnits::_radians_, std::function<double(double)> angularWeight=nullptr)
902  : Pair1D(binSize, 50, shift, angularUnits, angularWeight), Pair1D_comoving(rMin, rMax, binSize, shift, angularUnits, angularWeight)
903  {
907  m_PP1D.resize(m_nbins+1, 0.);
908  m_PP1D_weighted.resize(m_nbins+1, 0.);
909  }
910 
915  ~Pair1D_comoving_lin () = default;
916 
918 
919 
924 
933  void get (const std::shared_ptr<catalogue::Object> obj1, const std::shared_ptr<catalogue::Object> obj2, int &kk, double &wkk) override;
934 
942  void set (const int kk, const double wkk, const double weight=1) override;
943 
952  void put (const std::shared_ptr<catalogue::Object> obj1, const std::shared_ptr<catalogue::Object> obj2) override;
953 
955 
956  };
957 
958 
959  // ============================================================================================
960  // ============================================================================================
961 
962 
971  class Pair1D_comoving_log : public virtual Pair1D_comoving {
972 
973  protected:
974 
979 
984  void m_set_parameters_nbins () override;
985 
990  void m_set_parameters_binSize () override;
991 
993 
994  public:
995 
1000 
1005  {
1008  }
1009 
1020  Pair1D_comoving_log (const double rMin, const double rMax, const int nbins, const double shift, const CoordinateUnits angularUnits=CoordinateUnits::_radians_, std::function<double(double)> angularWeight=nullptr)
1022  {
1026  m_PP1D.resize(m_nbins+1, 0.);
1027  m_PP1D_weighted.resize(m_nbins+1, 0.);
1028  }
1029 
1040  Pair1D_comoving_log (const double rMin, const double rMax, const double binSize, const double shift, const CoordinateUnits angularUnits=CoordinateUnits::_radians_, std::function<double(double)> angularWeight=nullptr)
1041  : Pair1D(binSize, 50, shift, angularUnits, angularWeight), Pair1D_comoving(rMin, rMax, binSize, shift, angularUnits, angularWeight)
1042  {
1046  m_PP1D.resize(m_nbins+1, 0.);
1047  m_PP1D_weighted.resize(m_nbins+1, 0.);
1048  }
1049 
1054  ~Pair1D_comoving_log () = default;
1055 
1057 
1058 
1063 
1072  void get (const std::shared_ptr<catalogue::Object> obj1, const std::shared_ptr<catalogue::Object> obj2, int &kk, double &wkk) override;
1073 
1081  void set (const int kk, const double wkk, const double weight=1) override;
1082 
1091  void put (const std::shared_ptr<catalogue::Object> obj1, const std::shared_ptr<catalogue::Object> obj2) override;
1092 
1094 
1095  };
1096 
1097 
1098  // ============================================================================================
1099  // ============================================================================================
1100 
1109  class Pair1D_comoving_multipoles : public virtual Pair1D {
1110 
1111  protected:
1112 
1117 
1121  virtual void m_set_parameters_nbins () = 0;
1122 
1126  virtual void m_set_parameters_binSize () = 0;
1127 
1129 
1130 
1131  protected:
1132 
1137 
1139  double m_rMin;
1140 
1142  double m_rMax;
1143 
1145 
1146 
1147  public:
1148 
1153 
1158 
1169  Pair1D_comoving_multipoles (const double rMin, const double rMax, const int nbins, const double shift, const CoordinateUnits angularUnits=CoordinateUnits::_radians_, std::function<double(double)> angularWeight=nullptr)
1170  : Pair1D(1., nbins, shift, angularUnits, angularWeight), m_rMin(rMin), m_rMax(rMax)
1171  {
1172  m_PP1D.resize(3*(m_nbins+1), 0.);
1173  m_PP1D_weighted.resize(3*(m_nbins+1), 0.);
1174  }
1175 
1186  Pair1D_comoving_multipoles (const double rMin, const double rMax, const double binSize, const double shift, const CoordinateUnits angularUnits=CoordinateUnits::_radians_, std::function<double(double)> angularWeight=nullptr)
1187  : Pair1D(binSize, 50, shift, angularUnits, angularWeight), m_rMin(rMin), m_rMax(rMax)
1188  {
1189  m_PP1D.resize(3*(m_nbins+1), 0.);
1190  m_PP1D_weighted.resize(3*(m_nbins+1), 0.);
1191  }
1192 
1197  virtual ~Pair1D_comoving_multipoles () = default;
1198 
1200 
1201 
1206 
1211  double sMin () const override { return m_rMin; }
1212 
1217  double sMax () const override { return m_rMax; }
1218 
1220 
1221  };
1222 
1223 
1224  // ============================================================================================
1225  // ============================================================================================
1226 
1236 
1237  protected:
1238 
1243 
1248  void m_set_parameters_nbins () override;
1249 
1254  void m_set_parameters_binSize () override;
1255 
1257 
1258  public:
1259 
1264 
1269  {
1272  }
1273 
1284  Pair1D_comoving_multipoles_lin (const double rMin, const double rMax, const int nbins, const double shift, const CoordinateUnits angularUnits=CoordinateUnits::_radians_, std::function<double(double)> angularWeight=nullptr)
1286  {
1290  m_PP1D.resize(3*(m_nbins+1), 0.);
1291  m_PP1D_weighted.resize(3*(m_nbins+1), 0.);
1292  }
1293 
1304  Pair1D_comoving_multipoles_lin (const double rMin, const double rMax, const double binSize, const double shift, const CoordinateUnits angularUnits=CoordinateUnits::_radians_, std::function<double(double)> angularWeight=nullptr)
1306  {
1310  m_PP1D.resize(3*(m_nbins+1), 0.);
1311  m_PP1D_weighted.resize(3*(m_nbins+1), 0.);
1312  }
1313 
1319 
1321 
1322 
1327 
1337  void get (const std::shared_ptr<catalogue::Object> obj1, const std::shared_ptr<catalogue::Object> obj2, int &kk, double &cosmu, double &wkk) override;
1338 
1347  void set (const double cosmu, const int kk, const double wkk, const double weight=1) override;
1348 
1357  void put (const std::shared_ptr<catalogue::Object> obj1, const std::shared_ptr<catalogue::Object> obj2) override;
1358 
1360 
1365 
1371  virtual void Sum (const std::shared_ptr<Pair> pair, const double ww=1) override;
1372 
1374  };
1375 
1376 
1377  // ============================================================================================
1378  // ============================================================================================
1379 
1380 
1390 
1391  protected:
1392 
1397 
1402  void m_set_parameters_nbins () override;
1403 
1408  void m_set_parameters_binSize () override;
1409 
1411 
1412  public:
1413 
1418 
1423  {
1426  }
1427 
1428 
1439  Pair1D_comoving_multipoles_log (const double rMin, const double rMax, const int nbins, const double shift, const CoordinateUnits angularUnits=CoordinateUnits::_radians_, std::function<double(double)> angularWeight=nullptr)
1441  {
1445  m_PP1D.resize(3*(m_nbins+1), 0.);
1446  m_PP1D_weighted.resize(3*(m_nbins+1), 0.);
1447  }
1448 
1459  Pair1D_comoving_multipoles_log (const double rMin, const double rMax, const double binSize, const double shift, const CoordinateUnits angularUnits=CoordinateUnits::_radians_, std::function<double(double)> angularWeight=nullptr)
1461  {
1465  m_PP1D.resize(3*(m_nbins+1), 0.);
1466  m_PP1D_weighted.resize(3*(m_nbins+1), 0.);
1467  }
1468 
1474 
1476 
1477 
1483 
1493  void get (const std::shared_ptr<catalogue::Object> obj1, const std::shared_ptr<catalogue::Object> obj2, int &kk, double &cosmu, double &wkk) override;
1494 
1503  void set (const double cosmu, const int kk, const double wkk, const double weight=1) override;
1504 
1513  void put (const std::shared_ptr<catalogue::Object> obj1, const std::shared_ptr<catalogue::Object> obj2) override;
1514 
1516 
1521 
1527  virtual void Sum (const std::shared_ptr<Pair> pair, const double ww=1) override;
1528 
1530 
1531  };
1532 
1533  }
1534 }
1535 
1536 #endif
The class Pair.
The class Pair1D_angular_lin.
Definition: Pair1D.h:427
void m_set_parameters_nbins() override
set the binning parameters given the number of bins
Definition: Pair1D.cpp:58
void put(const std::shared_ptr< catalogue::Object > obj1, const std::shared_ptr< catalogue::Object > obj2) override
estimate the distance between two objects and update the pair vector accordingly
Definition: Pair1D.cpp:456
void set(const int kk, const double wkk, const double weight=1) override
set the pair vector
Definition: Pair1D.cpp:367
void m_set_parameters_binSize() override
set the binning parameters given the bin size
Definition: Pair1D.cpp:72
Pair1D_angular_lin()
default constructor
Definition: Pair1D.h:460
void get(const std::shared_ptr< catalogue::Object > obj1, const std::shared_ptr< catalogue::Object > obj2, int &kk, double &wkk) override
get the pair index and weight
Definition: Pair1D.cpp:242
Pair1D_angular_lin(const double thetaMin, const double thetaMax, const double binSize, const double shift, const CoordinateUnits angularUnits=CoordinateUnits::_radians_, std::function< double(double)> angularWeight=nullptr)
constructor
Definition: Pair1D.h:500
Pair1D_angular_lin(const double thetaMin, const double thetaMax, const int nbins, const double shift, const CoordinateUnits angularUnits=CoordinateUnits::_radians_, std::function< double(double)> angularWeight=nullptr)
constructor
Definition: Pair1D.h:478
~Pair1D_angular_lin()=default
default destructor
The class Pair1D_angular_log.
Definition: Pair1D.h:570
void set(const int kk, const double wkk, const double weight=1) override
set the pair vector
Definition: Pair1D.cpp:379
void put(const std::shared_ptr< catalogue::Object > obj1, const std::shared_ptr< catalogue::Object > obj2) override
estimate the distance between two objects and update the pair vector accordingly
Definition: Pair1D.cpp:475
void get(const std::shared_ptr< catalogue::Object > obj1, const std::shared_ptr< catalogue::Object > obj2, int &kk, double &wkk) override
get the pair index and weight
Definition: Pair1D.cpp:261
~Pair1D_angular_log()=default
default destructor
void m_set_parameters_nbins() override
set the binning parameters given the number of bins
Definition: Pair1D.cpp:86
Pair1D_angular_log(const double thetaMin, const double thetaMax, const int nbins, const double shift, const CoordinateUnits angularUnits=CoordinateUnits::_radians_, std::function< double(double)> angularWeight=nullptr)
constructor
Definition: Pair1D.h:621
void m_set_parameters_binSize() override
set the binning parameters given the bin size
Definition: Pair1D.cpp:102
Pair1D_angular_log()
default constructor
Definition: Pair1D.h:603
Pair1D_angular_log(const double thetaMin, const double thetaMax, const double binSize, const double shift, const CoordinateUnits angularUnits=CoordinateUnits::_radians_, std::function< double(double)> angularWeight=nullptr)
constructor
Definition: Pair1D.h:643
The class Pair1D_angular.
Definition: Pair1D.h:300
double sMax() const override
get the protected member Pair1D_angular::m_thetaMax
Definition: Pair1D.h:409
double m_thetaMax
the maximum value of the angle θ used to count the number of pairs
Definition: Pair1D.h:333
virtual ~Pair1D_angular()=default
default destructor
double m_thetaMin
the minimum value of the angle θ used to count the number of pairs
Definition: Pair1D.h:330
Pair1D_angular(const double thetaMin, const double thetaMax, const int nbins, const double shift, const CoordinateUnits angularUnits=CoordinateUnits::_radians_, std::function< double(double)> angularWeight=nullptr)
constructor
Definition: Pair1D.h:362
virtual void m_set_parameters_binSize()=0
set the binning parameters given the bin size
Pair1D_angular()
default constructor
Definition: Pair1D.h:348
virtual void m_set_parameters_nbins()=0
set the binning parameters given the number of bins
Pair1D_angular(const double thetaMin, const double thetaMax, const double binSize, const double shift, const CoordinateUnits angularUnits=CoordinateUnits::_radians_, std::function< double(double)> angularWeight=nullptr)
constructor
Definition: Pair1D.h:380
double sMin() const override
get the protected member Pair1D_angular::m_thetaMin
Definition: Pair1D.h:402
The class Pair1D_comoving_lin.
Definition: Pair1D.h:832
Pair1D_comoving_lin(const double rMin, const double rMax, const int nbins, const double shift, const CoordinateUnits angularUnits=CoordinateUnits::_radians_, std::function< double(double)> angularWeight=nullptr)
constructor
Definition: Pair1D.h:881
void set(const int kk, const double wkk, const double weight=1) override
set the pair vector
Definition: Pair1D.cpp:391
Pair1D_comoving_lin(const double rMin, const double rMax, const double binSize, const double shift, const CoordinateUnits angularUnits=CoordinateUnits::_radians_, std::function< double(double)> angularWeight=nullptr)
constructor
Definition: Pair1D.h:901
void get(const std::shared_ptr< catalogue::Object > obj1, const std::shared_ptr< catalogue::Object > obj2, int &kk, double &wkk) override
get the pair index and weight
Definition: Pair1D.cpp:280
void m_set_parameters_nbins() override
set the binning parameters given the number of bins
Definition: Pair1D.cpp:118
void put(const std::shared_ptr< catalogue::Object > obj1, const std::shared_ptr< catalogue::Object > obj2) override
estimate the distance between two objects and update the pair vector accordingly
Definition: Pair1D.cpp:494
void m_set_parameters_binSize() override
set the binning parameters given the bin size
Definition: Pair1D.cpp:132
Pair1D_comoving_lin()
default constructor
Definition: Pair1D.h:865
~Pair1D_comoving_lin()=default
default destructor
The class Pair1D_comoving_log.
Definition: Pair1D.h:971
Pair1D_comoving_log(const double rMin, const double rMax, const int nbins, const double shift, const CoordinateUnits angularUnits=CoordinateUnits::_radians_, std::function< double(double)> angularWeight=nullptr)
constructor
Definition: Pair1D.h:1020
void get(const std::shared_ptr< catalogue::Object > obj1, const std::shared_ptr< catalogue::Object > obj2, int &kk, double &wkk) override
get the pair index and weight
Definition: Pair1D.cpp:301
void m_set_parameters_nbins() override
set the binning parameters given the number of bins
Definition: Pair1D.cpp:146
Pair1D_comoving_log()
default constructor
Definition: Pair1D.h:1004
Pair1D_comoving_log(const double rMin, const double rMax, const double binSize, const double shift, const CoordinateUnits angularUnits=CoordinateUnits::_radians_, std::function< double(double)> angularWeight=nullptr)
constructor
Definition: Pair1D.h:1040
~Pair1D_comoving_log()=default
default destructor
void set(const int kk, const double wkk, const double weight=1) override
set the pair vector
Definition: Pair1D.cpp:403
void m_set_parameters_binSize() override
set the binning parameters given the bin size
Definition: Pair1D.cpp:162
void put(const std::shared_ptr< catalogue::Object > obj1, const std::shared_ptr< catalogue::Object > obj2) override
estimate the distance between two objects and update the pair vector accordingly
Definition: Pair1D.cpp:515
The class Pair1D_comoving_multipoles_lin.
Definition: Pair1D.h:1235
void m_set_parameters_nbins() override
set the binning parameters given the number of bins
Definition: Pair1D.cpp:178
Pair1D_comoving_multipoles_lin()
default constructor
Definition: Pair1D.h:1268
void set(const double cosmu, const int kk, const double wkk, const double weight=1) override
set the pair vector
Definition: Pair1D.cpp:415
void put(const std::shared_ptr< catalogue::Object > obj1, const std::shared_ptr< catalogue::Object > obj2) override
estimate the distance between two objects and update the pair vector accordingly
Definition: Pair1D.cpp:536
Pair1D_comoving_multipoles_lin(const double rMin, const double rMax, const int nbins, const double shift, const CoordinateUnits angularUnits=CoordinateUnits::_radians_, std::function< double(double)> angularWeight=nullptr)
constructor
Definition: Pair1D.h:1284
void get(const std::shared_ptr< catalogue::Object > obj1, const std::shared_ptr< catalogue::Object > obj2, int &kk, double &cosmu, double &wkk) override
get the pair index and weight
Definition: Pair1D.cpp:322
virtual void Sum(const std::shared_ptr< Pair > pair, const double ww=1) override
sum the number of binned pairs
Definition: Pair1D.cpp:633
void m_set_parameters_binSize() override
set the binning parameters given the bin size
Definition: Pair1D.cpp:193
~Pair1D_comoving_multipoles_lin()=default
default destructor
Pair1D_comoving_multipoles_lin(const double rMin, const double rMax, const double binSize, const double shift, const CoordinateUnits angularUnits=CoordinateUnits::_radians_, std::function< double(double)> angularWeight=nullptr)
constructor
Definition: Pair1D.h:1304
The class Pair1D_comoving_multipoles_log.
Definition: Pair1D.h:1389
void put(const std::shared_ptr< catalogue::Object > obj1, const std::shared_ptr< catalogue::Object > obj2) override
estimate the distance between two objects and update the pair vector accordingly
Definition: Pair1D.cpp:569
void m_set_parameters_binSize() override
set the binning parameters given the bin size
Definition: Pair1D.cpp:225
virtual void Sum(const std::shared_ptr< Pair > pair, const double ww=1) override
sum the number of binned pairs
Definition: Pair1D.cpp:647
~Pair1D_comoving_multipoles_log()=default
default destructor
Pair1D_comoving_multipoles_log(const double rMin, const double rMax, const int nbins, const double shift, const CoordinateUnits angularUnits=CoordinateUnits::_radians_, std::function< double(double)> angularWeight=nullptr)
constructor
Definition: Pair1D.h:1439
Pair1D_comoving_multipoles_log()
default constructor
Definition: Pair1D.h:1422
void set(const double cosmu, const int kk, const double wkk, const double weight=1) override
set the pair vector
Definition: Pair1D.cpp:436
void get(const std::shared_ptr< catalogue::Object > obj1, const std::shared_ptr< catalogue::Object > obj2, int &kk, double &cosmu, double &wkk) override
get the pair index and weight
Definition: Pair1D.cpp:345
void m_set_parameters_nbins() override
set the binning parameters given the number of bins
Definition: Pair1D.cpp:208
Pair1D_comoving_multipoles_log(const double rMin, const double rMax, const double binSize, const double shift, const CoordinateUnits angularUnits=CoordinateUnits::_radians_, std::function< double(double)> angularWeight=nullptr)
constructor
Definition: Pair1D.h:1459
The class Pair1D_comoving_multipoles.
Definition: Pair1D.h:1109
Pair1D_comoving_multipoles(const double rMin, const double rMax, const int nbins, const double shift, const CoordinateUnits angularUnits=CoordinateUnits::_radians_, std::function< double(double)> angularWeight=nullptr)
constructor
Definition: Pair1D.h:1169
double sMin() const override
get the protected member Pair1D::m_rMin
Definition: Pair1D.h:1211
double m_rMin
minimum separation used to count the pairs
Definition: Pair1D.h:1139
Pair1D_comoving_multipoles(const double rMin, const double rMax, const double binSize, const double shift, const CoordinateUnits angularUnits=CoordinateUnits::_radians_, std::function< double(double)> angularWeight=nullptr)
constructor
Definition: Pair1D.h:1186
double m_rMax
maximum separation used to count the pairs
Definition: Pair1D.h:1142
virtual void m_set_parameters_nbins()=0
set the binning parameters given the number of bins
double sMax() const override
get the protected member Pair1D::m_rMax
Definition: Pair1D.h:1217
Pair1D_comoving_multipoles()
default constructor
Definition: Pair1D.h:1157
virtual ~Pair1D_comoving_multipoles()=default
default destructor
virtual void m_set_parameters_binSize()=0
set the binning parameters given the bin size
The class Pair1D_comoving.
Definition: Pair1D.h:713
double sMax() const override
get the protected member Pair1D::m_rMax
Definition: Pair1D.h:813
Pair1D_comoving(const double rMin, const double rMax, const double binSize, const double shift, const CoordinateUnits angularUnits=CoordinateUnits::_radians_, std::function< double(double)> angularWeight=nullptr)
constructor
Definition: Pair1D.h:786
double m_rMin
minimum separation used to count the pairs
Definition: Pair1D.h:743
Pair1D_comoving()
default constructor
Definition: Pair1D.h:761
Pair1D_comoving(const double rMin, const double rMax, const int nbins, const double shift, const CoordinateUnits angularUnits=CoordinateUnits::_radians_, std::function< double(double)> angularWeight=nullptr)
constructor
Definition: Pair1D.h:773
double sMin() const override
get the protected member Pair1D::m_rMin
Definition: Pair1D.h:807
virtual void m_set_parameters_nbins()=0
set the binning parameters given the number of bins
virtual void m_set_parameters_binSize()=0
set the binning parameters given the bin size
double m_rMax
maximum separation used to count the pairs
Definition: Pair1D.h:746
virtual ~Pair1D_comoving()=default
default destructor
The class Pair1D.
Definition: Pair1D.h:56
double m_shift
radial shift used to centre the output bins
Definition: Pair1D.h:101
double scale(const int i) const override
get the protected member Pair1D::m_scale[i]
Definition: Pair1D.h:156
Pair1D()
default constructor
Definition: Pair1D.h:116
std::vector< double > m_PP1D
the number of binned pairs
Definition: Pair1D.h:84
void set_scale(const int i, const double ss)
set the protected member Pair1D::m_scale[i]
Definition: Pair1D.h:233
int nbins() const override
get the protected member Pair1D::m_nbins
Definition: Pair1D.h:201
Pair1D(const double binSize, const int nbins, const double shift, const CoordinateUnits angularUnits, std::function< double(double)> angularWeight=nullptr)
constructor
Definition: Pair1D.h:127
int m_nbins
number of bins
Definition: Pair1D.h:98
double shift() const override
get the protected member Pair1D::m_shift
Definition: Pair1D.h:207
void set_PP1D(const int i, const double pp)
set the protected member Pair1D::m_PP1D[i]
Definition: Pair1D.h:241
virtual void m_set_parameters_nbins()=0
set the binning parameters given the number of bins
std::vector< double > PP1D_weighted() const override
get the protected member Pair1D::m_PP1D
Definition: Pair1D.h:189
double m_binSize_inv
the inverse of the bin size
Definition: Pair1D.h:95
virtual ~Pair1D()=default
default destructor
double PP1D(const int i) const override
get the protected member Pair1D::m_PP1D[i]
Definition: Pair1D.h:169
virtual void m_set_parameters_binSize()=0
set the binning parameters given the bin size
std::vector< double > m_scale
the binned scales
Definition: Pair1D.h:81
virtual void Sum(const std::shared_ptr< Pair > pair, const double ww=1) override
sum the number of binned pairs
Definition: Pair1D.cpp:620
std::vector< double > m_PP1D_weighted
the number of binned weighted pairs
Definition: Pair1D.h:87
void set_PP1D_weighted(const int i, const double pp)
set the protected member Pair1D::m_PP1D_weighted[i]
Definition: Pair1D.h:249
std::vector< double > PP1D() const override
get the protected member Pair1D::m_PP1D
Definition: Pair1D.h:175
double PP1D_weighted(const int i) const override
get the protected member Pair1D::m_PP1D_weighted[i]
Definition: Pair1D.h:182
std::vector< double > scale() const override
get the protected member Pair1D::m_scale
Definition: Pair1D.h:162
void add_data1D(const int i, const std::vector< double > data) override
set the protected member by adding new data
Definition: Pair1D.cpp:601
double binSize_inv() const override
get the protected member Pair1D::m_binSize_inv
Definition: Pair1D.h:195
void reset() override
reset the pair counts
Definition: Pair1D.cpp:46
The class Pair.
Definition: Pair.h:144
FunctionDoubleDouble m_angularWeight
angular weight function
Definition: Pair.h:181
PairInfo m_pairInfo
pair info
Definition: Pair.h:175
FunctionDoubleDouble angularWeight()
get the m_angularWeight function
Definition: Pair.h:354
CoordinateUnits angularUnits()
get the angular units
Definition: Pair.h:348
PairType m_pairType
pair type
Definition: Pair.h:172
CoordinateUnits m_angularUnits
angular units
Definition: Pair.h:178
Dim m_pairDim
pair dimension
Definition: Pair.h:169
@ _angular_lin_
1D pair in angular coordinates in linear bins
@ _angular_log_
1D pair in angular coordinates in logarithmic bins
@ _comoving_multipoles_log_
1D pair in comoving coordinates in logarithmic bins, multipoles
@ _comoving_multipoles_lin_
1D pair in comoving coordinates in linear bins, multipoles
@ _comoving_log_
1D pair in comoving coordinates in logarithmic bins
@ _comoving_lin_
1D pair in comoving coordinates in linear bins
@ _standard_
standard: the object contains only the number of pairs
The global namespace of the CosmoBolognaLib
Definition: CAMB.h:38
void checkDim(const std::vector< T > vect, const int val, const std::string vector, bool equal=true)
check if the dimension of a std::vector is equal/lower than an input value
Definition: Kernel.h:1532
CoordinateUnits
the coordinate units
Definition: Kernel.h:562
@ _radians_
angle in radians
@ _1D_
1D, used e.g. for 1D pairs, in angular or comoving separations