lsst.jointcal
g29ae962dfc+4cfc7946bc
Toggle main menu visibility
Loading...
Searching...
No Matches
include
lsst
jointcal
ChipVisitAstrometryMapping.h
Go to the documentation of this file.
1
// -*- LSST-C++ -*-
2
/*
3
* This file is part of jointcal.
4
*
5
* Developed for the LSST Data Management System.
6
* This product includes software developed by the LSST Project
7
* (https://www.lsst.org).
8
* See the COPYRIGHT file at the top-level directory of this distribution
9
* for details of code ownership.
10
*
11
* This program is free software: you can redistribute it and/or modify
12
* it under the terms of the GNU General Public License as published by
13
* the Free Software Foundation, either version 3 of the License, or
14
* (at your option) any later version.
15
*
16
* This program is distributed in the hope that it will be useful,
17
* but WITHOUT ANY WARRANTY; without even the implied warranty of
18
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19
* GNU General Public License for more details.
20
*
21
* You should have received a copy of the GNU General Public License
22
* along with this program. If not, see <https://www.gnu.org/licenses/>.
23
*/
24
25
#ifndef LSST_JOINTCAL_CHIP_VISIT_ASTROMETRY_MAPPING_H
26
#define LSST_JOINTCAL_CHIP_VISIT_ASTROMETRY_MAPPING_H
27
28
#include "memory"
29
30
#include "
lsst/jointcal/AstrometryMapping.h
"
31
#include "
lsst/jointcal/Eigenstuff.h
"
32
#include "
lsst/jointcal/SimpleAstrometryMapping.h
"
33
34
namespace
lsst
{
35
namespace
jointcal
{
36
38
class
ChipVisitAstrometryMapping
:
public
AstrometryMapping
{
39
public
:
41
ChipVisitAstrometryMapping
(
std::shared_ptr<SimpleAstrometryMapping>
chipMapping,
42
std::shared_ptr<SimpleAstrometryMapping>
visitMapping);
43
45
ChipVisitAstrometryMapping
(
ChipVisitAstrometryMapping
const
&) =
delete
;
46
ChipVisitAstrometryMapping
(
ChipVisitAstrometryMapping
&&) =
delete
;
47
ChipVisitAstrometryMapping
&
operator=
(
ChipVisitAstrometryMapping
const
&) =
delete
;
48
ChipVisitAstrometryMapping
&
operator=
(
ChipVisitAstrometryMapping
&&) =
delete
;
49
50
std::size_t
getNpar
()
const override
;
51
52
void
getMappingIndices
(
IndexVector
&indices)
const override
;
53
55
void
computeTransformAndDerivatives
(
FatPoint
const
&where,
FatPoint
&outPoint,
56
Eigen::MatrixX2d &H)
const override
;
58
void
transformPosAndErrors
(
FatPoint
const
&where,
FatPoint
&outPoint)
const override
;
59
66
void
offsetParams
(Eigen::VectorXd
const
&delta)
override
{
67
_m1->offsetParams(delta.segment(_m1->getIndex(), _m1->getNpar()));
68
_m2->offsetParams(delta.segment(_m2->getIndex() + _m1->getNpar(), _m2->getNpar()));
69
}
70
72
AstrometryTransform
const
&
getTransform1
()
const
{
return
_m1->getTransform(); }
73
75
AstrometryTransform
const
&
getTransform2
()
const
{
return
_m2->getTransform(); }
76
77
void
positionDerivative
(
Point
const
&where, Eigen::Matrix2d &derivative,
double
epsilon)
const override
;
78
80
void
freezeErrorTransform
();
81
82
void
print
(
std::ostream
&out)
const override
;
83
84
private
:
85
friend
class
ConstrainedAstrometryModel
;
87
void
setWhatToFit(
bool
fittingT1,
bool
fittingT2);
88
89
std::shared_ptr<SimpleAstrometryMapping>
_m1, _m2;
90
Eigen::Index _nPar1{}, _nPar2{};
91
struct
tmpVars
// just there to get around constness issues
92
{
93
Eigen::MatrixX2d h1, h2;
94
Eigen::Matrix2d dt2dx;
95
};
96
97
std::unique_ptr<tmpVars>
tmp;
98
};
99
}
// namespace jointcal
100
}
// namespace lsst
101
102
#endif
// LSST_JOINTCAL_CHIP_VISIT_ASTROMETRY_MAPPING_H
AstrometryMapping.h
Eigenstuff.h
IndexVector
std::vector< std::ptrdiff_t > IndexVector
Definition
Eigenstuff.h:38
SimpleAstrometryMapping.h
std::ostream
lsst::jointcal::AstrometryMapping
virtual class needed in the abstraction of the distortion model
Definition
AstrometryMapping.h:39
lsst::jointcal::AstrometryTransform
a virtual (interface) class for geometric transformations.
Definition
AstrometryTransform.h:65
lsst::jointcal::ChipVisitAstrometryMapping::operator=
ChipVisitAstrometryMapping & operator=(ChipVisitAstrometryMapping const &)=delete
lsst::jointcal::ChipVisitAstrometryMapping::operator=
ChipVisitAstrometryMapping & operator=(ChipVisitAstrometryMapping &&)=delete
lsst::jointcal::ChipVisitAstrometryMapping::getNpar
std::size_t getNpar() const override
Number of parameters in total.
Definition
ChipVisitAstrometryMapping.cc:46
lsst::jointcal::ChipVisitAstrometryMapping::getMappingIndices
void getMappingIndices(IndexVector &indices) const override
Sets how this set of parameters (of length Npar()) map into the "grand" fit Expects that indices has ...
Definition
ChipVisitAstrometryMapping.cc:48
lsst::jointcal::ChipVisitAstrometryMapping::freezeErrorTransform
void freezeErrorTransform()
Currently not implemented.
Definition
ChipVisitAstrometryMapping.cc:122
lsst::jointcal::ChipVisitAstrometryMapping::offsetParams
void offsetParams(Eigen::VectorXd const &delta) override
Remember the error scale and freeze it.
Definition
ChipVisitAstrometryMapping.h:66
lsst::jointcal::ChipVisitAstrometryMapping::computeTransformAndDerivatives
void computeTransformAndDerivatives(FatPoint const &where, FatPoint &outPoint, Eigen::MatrixX2d &H) const override
Actually applies the AstrometryMapping and evaluates the derivatives w.r.t the fitted parameters.
Definition
ChipVisitAstrometryMapping.cc:65
lsst::jointcal::ChipVisitAstrometryMapping::getTransform1
AstrometryTransform const & getTransform1() const
access to transforms
Definition
ChipVisitAstrometryMapping.h:72
lsst::jointcal::ChipVisitAstrometryMapping::ChipVisitAstrometryMapping
ChipVisitAstrometryMapping(ChipVisitAstrometryMapping &&)=delete
lsst::jointcal::ChipVisitAstrometryMapping::getTransform2
AstrometryTransform const & getTransform2() const
access to transforms
Definition
ChipVisitAstrometryMapping.h:75
lsst::jointcal::ChipVisitAstrometryMapping::positionDerivative
void positionDerivative(Point const &where, Eigen::Matrix2d &derivative, double epsilon) const override
The derivative w.r.t. position.
Definition
ChipVisitAstrometryMapping.cc:110
lsst::jointcal::ChipVisitAstrometryMapping::print
void print(std::ostream &out) const override
Print a string representation of the contents of this mapping, for debugging.
Definition
ChipVisitAstrometryMapping.cc:128
lsst::jointcal::ChipVisitAstrometryMapping::ChipVisitAstrometryMapping
ChipVisitAstrometryMapping(ChipVisitAstrometryMapping const &)=delete
No copy or move: there is only ever one instance of a given model (i.e.. per ccd+visit).
lsst::jointcal::ChipVisitAstrometryMapping::ChipVisitAstrometryMapping
ChipVisitAstrometryMapping(std::shared_ptr< SimpleAstrometryMapping > chipMapping, std::shared_ptr< SimpleAstrometryMapping > visitMapping)
Definition
ChipVisitAstrometryMapping.cc:36
lsst::jointcal::ChipVisitAstrometryMapping::transformPosAndErrors
void transformPosAndErrors(FatPoint const &where, FatPoint &outPoint) const override
The same as above but without the parameter derivatives (used to evaluate chi^2).
Definition
ChipVisitAstrometryMapping.cc:104
lsst::jointcal::ChipVisitAstrometryMapping::ConstrainedAstrometryModel
friend class ConstrainedAstrometryModel
Definition
ChipVisitAstrometryMapping.h:85
lsst::jointcal::FatPoint
A Point with uncertainties.
Definition
FatPoint.h:34
lsst::jointcal::Point
A point in a plane.
Definition
Point.h:37
lsst::jointcal
Definition
Associations.h:50
lsst
std::shared_ptr
std::size_t
std::unique_ptr
Generated on
for lsst.jointcal by
1.17.0