lsst.jointcal
g043fd6e71d+4d6ecfaaae
Loading...
Searching...
No Matches
src
StarList.cc
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 STARLIST__CC
26
#define STARLIST__CC
27
28
#include "
lsst/pex/exceptions.h
"
29
30
#include "
lsst/jointcal/Frame.h
"
31
#include "
lsst/jointcal/StarList.h
"
32
#include "
lsst/jointcal/BaseStar.h
"
33
#include "
lsst/jointcal/FittedStar.h
"
34
#include "
lsst/jointcal/MeasuredStar.h
"
35
36
namespace
pexExcept
=
lsst::pex::exceptions
;
37
38
namespace
lsst
{
39
namespace
jointcal
{
40
41
template
<
class
Star>
42
void
StarList<Star>::fluxSort
() {
43
using
E
=
StarList<Star>::Element
;
44
this->
sort
([](
const
E
&
e1
,
const
E
&
e2
) {
return
(
e1
->getFlux() >
e2
->getFlux()); });
45
}
46
47
template
<
class
Star>
48
void
StarList<Star>::cutTail
(
const
int
nKeep
) {
49
int
count
= 0;
50
auto
si
= this->
begin
();
51
for
(;
si
!= this->
end
() &&
count
<
nKeep
; ++
count
, ++
si
)
52
;
53
while
(
si
!= this->
end
()) {
54
si
= this->erase(
si
);
55
}
56
}
57
58
template
<
class
Star>
59
void
StarList<Star>::extractInFrame
(
StarList<Star>
&out,
const
Frame
&frame)
const
{
60
for
(
auto
const
&star : *
this
) {
61
if
(frame.
inFrame
(*star)) {
62
out.push_back(
std::make_shared<Star>
(*star));
63
}
64
}
65
}
66
67
template
<
class
Star>
68
void
StarList<Star>::copyTo
(
StarList<Star>
&
copy
)
const
{
69
copy
.
clearList
();
70
for
(
auto
const
&
si
: *
this
)
copy
.push_back(
std::make_shared<Star>
(*
si
));
71
}
72
73
// Explicit instantiations
74
template
class
StarList<BaseStar>
;
75
template
class
StarList<FittedStar>
;
76
template
class
StarList<MeasuredStar>
;
77
}
// namespace jointcal
78
}
// namespace lsst
79
80
#endif
/* STARLIST__CC */
BaseStar.h
end
int end
FittedStar.h
Frame.h
MeasuredStar.h
StarList.h
std::begin
T begin(T... args)
lsst::jointcal::Frame
rectangle with sides parallel to axes.
Definition
Frame.h:38
lsst::jointcal::Frame::inFrame
bool inFrame(double x, double y) const
inside?
Definition
Frame.cc:120
lsst::jointcal::StarList
std::lists of Stars.
Definition
StarList.h:58
lsst::jointcal::StarList::fluxSort
void fluxSort()
a model routine to sort the std::list
Definition
StarList.cc:42
lsst::jointcal::StarList::clearList
void clearList()
Clears the std::list.
Definition
StarList.h:92
std::copy
T copy(T... args)
std::count
T count(T... args)
exceptions.h
lsst::jointcal
Definition
Associations.h:50
lsst::pex::exceptions
lsst
std::shared_ptr< Star >
std::sort
T sort(T... args)
std::unique_ptr
Generated on Wed Jan 3 2024 13:15:41 for lsst.jointcal by
1.10.0