lsst.jointcal  master-ga8493ae4fe+2
ListMatch.h
Go to the documentation of this file.
1 // -*- LSST-C++ -*-
2 #ifndef LSST_JOINTCAL_LIST_MATCH_H
3 #define LSST_JOINTCAL_LIST_MATCH_H
4 
5 #include <string>
6 
9 
10 namespace lsst {
11 namespace jointcal {
12 
13 class Gtransfo;
14 class GtransfoLin;
15 
20  double nSigmas;
24  int algorithm;
25 
27  : nStarsList1(70),
28  nStarsList2(70),
29  maxTrialCount(4),
30  nSigmas(3.),
31  maxShiftX(50),
32  maxShiftY(50),
33  sizeRatio(1),
34  deltaSizeRatio(0.1 * sizeRatio),
35  minMatchRatio(1. / 3.),
36  printLevel(0),
37  algorithm(2) {}
38 
39  double minSizeRatio() const { return sizeRatio - deltaSizeRatio; }
40  double maxSizeRatio() const { return sizeRatio + deltaSizeRatio; }
41 };
42 
55 
61 std::unique_ptr<StarMatchList> matchSearchRotShift(BaseStarList &list1, BaseStarList &list2,
62  const MatchConditions &conditions);
63 
65 
66 std::unique_ptr<StarMatchList> matchSearchRotShiftFlip(BaseStarList &list1, BaseStarList &list2,
67  const MatchConditions &conditions);
68 
70 
73 std::unique_ptr<StarMatchList> listMatchCollect(const BaseStarList &list1, const BaseStarList &list2,
74  const Gtransfo *guess, const double maxDist);
75 
77 
78 std::unique_ptr<StarMatchList> listMatchCollect(const BaseStarList &list1, const BaseStarList &list2,
79  const double maxDist);
80 
82 
83 std::unique_ptr<GtransfoLin> listMatchupShift(const BaseStarList &list1, const BaseStarList &list2,
84  const Gtransfo &gtransfo, double maxShift, double binSize = 0);
85 
86 std::unique_ptr<Gtransfo> listMatchCombinatorial(const BaseStarList &list1, const BaseStarList &list2,
87  const MatchConditions &conditions = MatchConditions());
88 std::unique_ptr<Gtransfo> listMatchRefine(const BaseStarList &list1, const BaseStarList &list2,
89  std::unique_ptr<Gtransfo> transfo, const int maxOrder = 3);
90 
91 #ifdef DO_WE_NEED_THAT
92 inline Gtransfo *ListMatch(const BaseStarList &list1, const BaseStarList &list2, const int maxOrder = 3) {
93  Gtransfo *transfo = listMatchCombinatorial(list1, list2);
94  transfo = listMatchRefine(list1, list2, transfo, maxOrder);
95  return transfo;
96 }
97 #endif /* DO_WE_NEED_THAT */
98 } // namespace jointcal
99 } // namespace lsst
100 
101 #endif // LSST_JOINTCAL_LIST_MATCH_H
std::unique_ptr< Gtransfo > listMatchCombinatorial(const BaseStarList &list1, const BaseStarList &list2, const MatchConditions &conditions=MatchConditions())
Definition: ListMatch.cc:649
std::unique_ptr< StarMatchList > matchSearchRotShift(BaseStarList &list1, BaseStarList &list2, const MatchConditions &conditions)
searches a geometrical transformation that goes from list1 to list2.
Definition: ListMatch.cc:402
pairs of points
std::unique_ptr< StarMatchList > matchSearchRotShiftFlip(BaseStarList &list1, BaseStarList &list2, const MatchConditions &conditions)
same as above but searches also a flipped solution.
Definition: ListMatch.cc:410
std::lists of Stars.
Definition: StarList.h:35
Class for a simple mapping implementing a generic Gtransfo.
Definition: Associations.h:24
std::unique_ptr< Gtransfo > listMatchRefine(const BaseStarList &list1, const BaseStarList &list2, std::unique_ptr< Gtransfo > transfo, const int maxOrder=3)
Definition: ListMatch.cc:688
std::unique_ptr< StarMatchList > listMatchCollect(const BaseStarList &list1, const BaseStarList &list2, const Gtransfo *guess, const double maxDist)
assembles star matches.
Definition: ListMatch.cc:540
a virtual (interface) class for geometric transformations.
Definition: Gtransfo.h:37
Parameters to be provided to combinatorial searches.
Definition: ListMatch.h:17
std::unique_ptr< GtransfoLin > listMatchupShift(const BaseStarList &list1, const BaseStarList &list2, const Gtransfo &gtransfo, double maxShift, double binSize=0)
searches for a 2 dimensional shift using a very crude histogram method.
Definition: ListMatch.cc:466