LSST Applications 24.1.5,g02d81e74bb+fa3a7a026e,g180d380827+a53a32eff8,g2079a07aa2+86d27d4dc4,g2305ad1205+c0501b3732,g295015adf3+7d3e92f0ec,g2bbee38e9b+0e5473021a,g337abbeb29+0e5473021a,g33d1c0ed96+0e5473021a,g3a166c0a6a+0e5473021a,g3ddfee87b4+5dd1654d75,g48712c4677+3bf1020dcb,g487adcacf7+065c13d9cf,g50ff169b8f+96c6868917,g52b1c1532d+585e252eca,g591dd9f2cf+d7ac436cfb,g5a732f18d5+53520f316c,g64a986408d+fa3a7a026e,g858d7b2824+fa3a7a026e,g8a8a8dda67+585e252eca,g99cad8db69+a5a909b84f,g9ddcbc5298+9a081db1e4,ga1e77700b3+15fc3df1f7,ga8c6da7877+4cf350ccb2,gb0e22166c9+60f28cb32d,gba4ed39666+c2a2e4ac27,gbb8dafda3b+f991a0b59f,gc120e1dc64+9ccbfdb8be,gc28159a63d+0e5473021a,gcf0d15dbbd+5dd1654d75,gd96a1ce819+42fd0ee607,gdaeeff99f8+f9a426f77a,ge6526c86ff+0d71447b4b,ge79ae78c31+0e5473021a,gee10cc3b42+585e252eca,gff1a9f87cc+fa3a7a026e
LSST Data Management Base Package
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Public Attributes | List of all members
lsst::jointcal::StarList< Star > Class Template Reference

std::lists of Stars. More...

#include <StarList.h>

Inheritance diagram for lsst::jointcal::StarList< Star >:
std::list< std::shared_ptr< Star > >

Public Types

using Element = std::shared_ptr<Star>
 
using StarCIterator = typename std::list<Element>::const_iterator
 
using StarIterator = typename std::list<Element>::iterator
 

Public Member Functions

 StarList ()=default
 : default constructor (empty std::list).
 
virtual ~StarList ()=default
 
void print (std::ostream &out) const
 invokes print(stream) for all Stars in the std::list.
 
void fluxSort ()
 a model routine to sort the std::list
 
void cutTail (int nKeep)
 cuts the end of the std::list
 
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
 
void copyTo (StarList< Star > &copy) const
 clears copy and makes a copy of the std::list to copy
 
void clearList ()
 Clears the std::list.
 
template<class Operator >
void applyTransform (const Operator &op)
 enables to apply a geometrical transform if Star is Basestar or derives from it.
 
std::shared_ptr< Star > pop_front (std::shared_ptr< Star > ... args)
 
std::shared_ptr< Star > push_back (std::shared_ptr< Star > ... args)
 
std::shared_ptr< Star > splice (std::shared_ptr< Star > ... args)
 
std::shared_ptr< Star > crbegin (std::shared_ptr< Star > ... args)
 
std::shared_ptr< Star > erase (std::shared_ptr< Star > ... args)
 
std::shared_ptr< Star > emplace_front (std::shared_ptr< Star > ... args)
 
std::shared_ptr< Star > insert (std::shared_ptr< Star > ... args)
 
std::shared_ptr< Star > reverse (std::shared_ptr< Star > ... args)
 
std::shared_ptr< Star > back (std::shared_ptr< Star > ... args)
 
std::shared_ptr< Star > end (std::shared_ptr< Star > ... args)
 
std::shared_ptr< Star > remove (std::shared_ptr< Star > ... args)
 
std::shared_ptr< Star > emplace_back (std::shared_ptr< Star > ... args)
 
std::shared_ptr< Star > pop_back (std::shared_ptr< Star > ... args)
 
std::shared_ptr< Star > cbegin (std::shared_ptr< Star > ... args)
 
std::shared_ptr< Star > front (std::shared_ptr< Star > ... args)
 
std::shared_ptr< Star > unique (std::shared_ptr< Star > ... args)
 
std::shared_ptr< Star > size (std::shared_ptr< Star > ... args)
 
std::shared_ptr< Star > resize (std::shared_ptr< Star > ... args)
 
std::shared_ptr< Star > push_front (std::shared_ptr< Star > ... args)
 
std::shared_ptr< Star > rbegin (std::shared_ptr< Star > ... args)
 
std::shared_ptr< Star > crend (std::shared_ptr< Star > ... args)
 
std::shared_ptr< Star > assign (std::shared_ptr< Star > ... args)
 
std::shared_ptr< Star > sort (std::shared_ptr< Star > ... args)
 
std::shared_ptr< Star > merge (std::shared_ptr< Star > ... args)
 
std::shared_ptr< Star > empty (std::shared_ptr< Star > ... args)
 
std::shared_ptr< Star > remove_if (std::shared_ptr< Star > ... args)
 
std::shared_ptr< Star > cend (std::shared_ptr< Star > ... args)
 
std::shared_ptr< Star > swap (std::shared_ptr< Star > ... args)
 
std::shared_ptr< Star > max_size (std::shared_ptr< Star > ... args)
 
std::shared_ptr< Star > rend (std::shared_ptr< Star > ... args)
 
std::shared_ptr< Star > get_allocator (std::shared_ptr< Star > ... args)
 
std::shared_ptr< Star > clear (std::shared_ptr< Star > ... args)
 
std::shared_ptr< Star > emplace (std::shared_ptr< Star > ... args)
 
std::shared_ptr< Star > begin (std::shared_ptr< Star > ... args)
 

Public Attributes

std::shared_ptr< Star > elements
 STL member.
 

Detailed Description

template<class Star>
class lsst::jointcal::StarList< Star >

std::lists of Stars.

It is a template class, which means that the Star type remains undefined until a user defines it. The std::list related operations (insertion, sort, traversal) are to be carried out using STL list operations. Most of the Star operations rely on routines to be provided in the Star class, usually user defined. The instanciation of this class for BaseStar (i.e. the replacement of the formal parameter 'Star' by 'BaseStar') is called BaseStarList. Take care: what is stored is pointers on Star's and NOT Star's. This implies that Stars being inserted in the std::list have to be obtained using 'new'.

Definition at line 58 of file StarList.h.

Member Typedef Documentation

◆ Element

template<class Star >
using lsst::jointcal::StarList< Star >::Element = std::shared_ptr<Star>

Definition at line 60 of file StarList.h.

◆ StarCIterator

template<class Star >
using lsst::jointcal::StarList< Star >::StarCIterator = typename std::list<Element>::const_iterator

Definition at line 61 of file StarList.h.

◆ StarIterator

template<class Star >
using lsst::jointcal::StarList< Star >::StarIterator = typename std::list<Element>::iterator

Definition at line 62 of file StarList.h.

Constructor & Destructor Documentation

◆ StarList()

template<class Star >
lsst::jointcal::StarList< Star >::StarList ( )
default

: default constructor (empty std::list).

◆ ~StarList()

template<class Star >
virtual lsst::jointcal::StarList< Star >::~StarList ( )
virtualdefault

Member Function Documentation

◆ applyTransform()

template<class Star >
template<class Operator >
void lsst::jointcal::StarList< Star >::applyTransform ( const Operator & op)
inline

enables to apply a geometrical transform if Star is Basestar or derives from it.

could be extended to other type of transformations.

Definition at line 98 of file StarList.h.

98 {
99 for (auto &p : *this) op.transformStar(*(p));
100 }

◆ clearList()

template<class Star >
void lsst::jointcal::StarList< Star >::clearList ( )
inline

Clears the std::list.

Definition at line 92 of file StarList.h.

92{ cutTail(0); };
void cutTail(int nKeep)
cuts the end of the std::list
Definition StarList.cc:48

◆ copyTo()

template<class Star >
void lsst::jointcal::StarList< Star >::copyTo ( StarList< Star > & copy) const

clears copy and makes a copy of the std::list to copy

Definition at line 68 of file StarList.cc.

68 {
69 copy.clearList();
70 for (auto const &si : *this) copy.push_back(std::make_shared<Star>(*si));
71}
T make_shared(T... args)
STL namespace.
std::shared_ptr< Star > push_back(std::shared_ptr< Star > ... args)

◆ cutTail()

template<class Star >
void lsst::jointcal::StarList< Star >::cutTail ( int nKeep)

cuts the end of the std::list

Definition at line 48 of file StarList.cc.

48 {
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}
int end
std::shared_ptr< Star > begin(std::shared_ptr< Star > ... args)
T count(T... args)
std::shared_ptr< Star > erase(std::shared_ptr< Star > ... args)

◆ extractInFrame()

template<class Star >
void lsst::jointcal::StarList< Star >::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 at line 59 of file StarList.cc.

59 {
60 for (auto const &star : *this) {
61 if (frame.inFrame(*star)) {
62 out.push_back(std::make_shared<Star>(*star));
63 }
64 }
65}

◆ fluxSort()

template<class Star >
void lsst::jointcal::StarList< Star >::fluxSort ( )

a model routine to sort the std::list

see decreasingFlux() to see what it is, if you want another sorting criterion)

Definition at line 42 of file StarList.cc.

42 {
44 this->sort([](const E &e1, const E &e2) { return (e1->getFlux() > e2->getFlux()); });
45}
std::shared_ptr< Star > Element
Definition StarList.h:60
std::shared_ptr< Star > sort(std::shared_ptr< Star > ... args)

◆ print()

template<class Star >
void lsst::jointcal::StarList< Star >::print ( std::ostream & out) const
inline

invokes print(stream) for all Stars in the std::list.

Definition at line 72 of file StarList.h.

72 {
73 for (auto &p : *this) p->print(out);
74 }
void print(std::ostream &out) const
invokes print(stream) for all Stars in the std::list.
Definition StarList.h:72

Member Data Documentation

◆ elements

std::shared_ptr< Star > std::list< std::shared_ptr< Star > >::elements
inherited

STL member.


The documentation for this class was generated from the following files: