LSST Applications  21.0.0-172-gfb10e10a+18fedfabac,22.0.0+297cba6710,22.0.0+80564b0ff1,22.0.0+8d77f4f51a,22.0.0+a28f4c53b1,22.0.0+dcf3732eb2,22.0.1-1-g7d6de66+2a20fdde0d,22.0.1-1-g8e32f31+297cba6710,22.0.1-1-geca5380+7fa3b7d9b6,22.0.1-12-g44dc1dc+2a20fdde0d,22.0.1-15-g6a90155+515f58c32b,22.0.1-16-g9282f48+790f5f2caa,22.0.1-2-g92698f7+dcf3732eb2,22.0.1-2-ga9b0f51+7fa3b7d9b6,22.0.1-2-gd1925c9+bf4f0e694f,22.0.1-24-g1ad7a390+a9625a72a8,22.0.1-25-g5bf6245+3ad8ecd50b,22.0.1-25-gb120d7b+8b5510f75f,22.0.1-27-g97737f7+2a20fdde0d,22.0.1-32-gf62ce7b1+aa4237961e,22.0.1-4-g0b3f228+2a20fdde0d,22.0.1-4-g243d05b+871c1b8305,22.0.1-4-g3a563be+32dcf1063f,22.0.1-4-g44f2e3d+9e4ab0f4fa,22.0.1-42-gca6935d93+ba5e5ca3eb,22.0.1-5-g15c806e+85460ae5f3,22.0.1-5-g58711c4+611d128589,22.0.1-5-g75bb458+99c117b92f,22.0.1-6-g1c63a23+7fa3b7d9b6,22.0.1-6-g50866e6+84ff5a128b,22.0.1-6-g8d3140d+720564cf76,22.0.1-6-gd805d02+cc5644f571,22.0.1-8-ge5750ce+85460ae5f3,master-g6e05de7fdc+babf819c66,master-g99da0e417a+8d77f4f51a,w.2021.48
LSST Data Management Base Package
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

typedef std::shared_ptr< Star > Element
 
typedef std::list< Element >::const_iterator StarCIterator
 
typedef std::list< Element >::iterator StarIterator
 

Public Member Functions

 StarList ()
 : default constructor (empty std::list). More...
 
virtual ~StarList ()
 
void print (std::ostream &out) const
 invokes print(stream) for all Stars in the std::list. More...
 
void fluxSort ()
 a model routine to sort the std::list More...
 
void cutTail (const int nKeep)
 cuts the end of the std::list More...
 
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 More...
 
void copyTo (StarList< Star > &copy) const
 clears copy and makes a copy of the std::list to copy More...
 
void clearList ()
 Clears the std::list. More...
 
template<class Operator >
void applyTransform (const Operator &op)
 enables to apply a geometrical transform if Star is Basestar or derives from it. More...
 
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. More...
 

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 >
typedef std::shared_ptr<Star> lsst::jointcal::StarList< Star >::Element

Definition at line 60 of file StarList.h.

◆ StarCIterator

template<class Star >
typedef std::list<Element>::const_iterator lsst::jointcal::StarList< Star >::StarCIterator

Definition at line 61 of file StarList.h.

◆ StarIterator

template<class Star >
typedef std::list<Element>::iterator lsst::jointcal::StarList< Star >::StarIterator

Definition at line 62 of file StarList.h.

Constructor & Destructor Documentation

◆ StarList()

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

: default constructor (empty std::list).

Definition at line 66 of file StarList.h.

66 {};

◆ ~StarList()

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

Definition at line 69 of file StarList.h.

69 {};

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(const 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 copy(T... args)

◆ cutTail()

template<class Star >
void lsst::jointcal::StarList< Star >::cutTail ( const 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 }
std::shared_ptr< Star > begin(std::shared_ptr< Star > ... args)
T count(T... args)
std::shared_ptr< Star > end(std::shared_ptr< Star > ... 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  {
43  typedef StarList<Star>::Element E;
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  }

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: