lsst.jointcal
g29ae962dfc+04632301ee
Toggle main menu visibility
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
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::extractInFrame
void extractInFrame(StarList< Star > &out, const Frame &frame) const
copy the part of the std::list which is included in the frame at the end of another std::list
Definition
StarList.cc:59
lsst::jointcal::StarList::cutTail
void cutTail(int nKeep)
cuts the end of the std::list
Definition
StarList.cc:48
lsst::jointcal::StarList::StarList
StarList()=default
: default constructor (empty std::list).
lsst::jointcal::StarList::Element
std::shared_ptr< Star > Element
Definition
StarList.h:60
lsst::jointcal::StarList::copyTo
void copyTo(StarList< Star > ©) const
clears copy and makes a copy of the std::list to copy
Definition
StarList.cc:68
lsst::jointcal::StarList::fluxSort
void fluxSort()
a model routine to sort the std::list
Definition
StarList.cc:42
std::copy
T copy(T... args)
std::count
T count(T... args)
std::end
T end(T... args)
std::list< std::shared_ptr< Star > >::erase
std::shared_ptr< Star > erase(std::shared_ptr< Star >... args)
exceptions.h
std::make_shared
T make_shared(T... args)
lsst::jointcal
Definition
Associations.h:50
lsst::pex::exceptions
lsst
std::list::push_back
T push_back(T... args)
std::sort
T sort(T... args)
Generated on
for lsst.jointcal by
1.17.0