Particle Identification and Tracking
Public Member Functions | Protected Member Functions | Static Protected Member Functions | Protected Attributes | List of all members
tracking::track_list Class Reference

List wrapper class for us in the track linking portion of the code. More...

#include <track_list.h>

+ Collaboration diagram for tracking::track_list:

Public Member Functions

void link_next (std::list< particle_track * > *new_next)
 finds the links between the list of particles held by the pointer in this object and the list being handed in. More...
 
 track_list (std::list< particle_track * > *first_list, float i_max_disp, Track_shelf *in_tracks)
 Sets up the object to start linking tracks. More...
 
 ~track_list ()
 

Protected Member Functions

void link_sub_ntwrk ()
 Does the perumtation on the subnetwork lists and sets all the particles. More...
 
void trivial_bonds ()
 finds and removes trivial bonds More...
 
void set_up_sub_ntwrk ()
 sets up the first subnetwork that is found in the particle lists More...
 
void clean_lists ()
 
std::list< particle_track * >
::iterator 
erase (std::list< particle_track * > *in, std::list< particle_track * >::iterator it)
 for removing stuff from lists and cleaning up the possible link lists More...
 
void recur_fnc_np (std::vector< std::pair< particle_track *, particle_track * > > *min, std::vector< std::pair< particle_track *, particle_track * > > *cur, float disp, float &min_disp, std::set< particle_track * >::iterator it, const std::set< particle_track * >::iterator &itend)
 Function that does the actual work. More...
 
void recur_fnc_pn (std::vector< std::pair< particle_track *, particle_track * > > *min, std::vector< std::pair< particle_track *, particle_track * > > *cur, float disp, float &min_disp, std::set< particle_track * >::iterator it, const std::set< particle_track * >::iterator &itend)
 Function that does the actual work, works in alternate direction. More...
 
void link_pairs (std::vector< std::pair< particle_track *, particle_track * > > &in)
 Links two particles together and cleans up stuff. More...
 

Static Protected Member Functions

static bool part_lt (particle_track *a, particle_track *b)
 for sorting lists of particles More...
 

Protected Attributes

std::list< particle_track * > * p_list
 Pointer to list of 'previous' particles. More...
 
std::list< particle_track * > * n_list
 Pointer to std::list of 'next' particles. More...
 
std::list< particle_track * > * store_list
 pointer to copy of current 'next' for next iteration More...
 
std::set< particle_track * > p_sub_net
 List for the 'previous' particles in the subnetwork. More...
 
std::set< particle_track * > n_sub_net
 list for the 'next' particles in the subnetworks More...
 
Track_shelftracks
 Track shelf object to put new tracks into. More...
 
float max_disp
 maximum distance a particle may move More...
 
float max_disp_sq
 square of the maximum distance a particle may move More...
 

Detailed Description

List wrapper class for us in the track linking portion of the code.

It is a list of particle_track pointers and functions to do the looping needed in the track locating algorithm

Todo:
need to overhaul to use list objets so that the pointer returning code in Hash_shelf can be removed

Constructor & Destructor Documentation

track_list::track_list ( std::list< particle_track * > *  first_list,
float  i_max_disp,
Track_shelf in_tracks 
)

Sets up the object to start linking tracks.

The object passed in is DESTROYED (eventually), be aware of this!

track_list::~track_list ( )

References erase(), and store_list.

Member Function Documentation

void track_list::clean_lists ( )
protected
list< particle_track * >::iterator track_list::erase ( std::list< particle_track * > *  in,
std::list< particle_track * >::iterator  it 
)
protected

for removing stuff from lists and cleaning up the possible link lists

Referenced by clean_lists(), and ~track_list().

void track_list::link_next ( std::list< particle_track * > *  new_next)

finds the links between the list of particles held by the pointer in this object and the list being handed in.

The list handed in is destroyed! be aware of this .

References clean_lists(), link_sub_ntwrk(), n_list, p_list, set_up_sub_ntwrk(), store_list, and trivial_bonds().

Referenced by tracking::hash_case::link().

void track_list::link_pairs ( std::vector< std::pair< particle_track *, particle_track * > > &  in)
protected
void track_list::link_sub_ntwrk ( )
protected

Does the perumtation on the subnetwork lists and sets all the particles.

References link_pairs(), max_disp_sq, n_sub_net, p_sub_net, and recur_fnc_pn().

Referenced by link_next().

static bool tracking::track_list::part_lt ( particle_track a,
particle_track b 
)
staticprotected

for sorting lists of particles

void track_list::recur_fnc_np ( std::vector< std::pair< particle_track *, particle_track * > > *  min,
std::vector< std::pair< particle_track *, particle_track * > > *  cur,
float  disp,
float &  min_disp,
std::set< particle_track * >::iterator  it,
const std::set< particle_track * >::iterator &  itend 
)
protected

Function that does the actual work.

References max_disp_sq, and tracking::particle_track::p_pos_link.

void track_list::recur_fnc_pn ( std::vector< std::pair< particle_track *, particle_track * > > *  min,
std::vector< std::pair< particle_track *, particle_track * > > *  cur,
float  disp,
float &  min_disp,
std::set< particle_track * >::iterator  it,
const std::set< particle_track * >::iterator &  itend 
)
protected

Function that does the actual work, works in alternate direction.

References max_disp_sq, and tracking::particle_track::n_pos_link.

Referenced by link_sub_ntwrk().

void track_list::set_up_sub_ntwrk ( )
protected

sets up the first subnetwork that is found in the particle lists

References MAX_NET_SIZE, tracking::particle_track::n_pos_link, n_sub_net, p_list, tracking::particle_track::p_pos_link, and p_sub_net.

Referenced by link_next().

void track_list::trivial_bonds ( )
protected

Member Data Documentation

float tracking::track_list::max_disp
protected

maximum distance a particle may move

float tracking::track_list::max_disp_sq
protected

square of the maximum distance a particle may move

Referenced by link_sub_ntwrk(), recur_fnc_np(), and recur_fnc_pn().

std::list<particle_track*>* tracking::track_list::n_list
protected

Pointer to std::list of 'next' particles.

Referenced by clean_lists(), link_next(), and trivial_bonds().

std::set<particle_track*> tracking::track_list::n_sub_net
protected

list for the 'next' particles in the subnetworks

Referenced by link_pairs(), link_sub_ntwrk(), and set_up_sub_ntwrk().

std::list<particle_track*>* tracking::track_list::p_list
protected

Pointer to list of 'previous' particles.

Referenced by clean_lists(), link_next(), and set_up_sub_ntwrk().

std::set<particle_track*> tracking::track_list::p_sub_net
protected

List for the 'previous' particles in the subnetwork.

Referenced by link_pairs(), link_sub_ntwrk(), and set_up_sub_ntwrk().

std::list<particle_track*>* tracking::track_list::store_list
protected

pointer to copy of current 'next' for next iteration

Referenced by link_next(), and ~track_list().

Track_shelf* tracking::track_list::tracks
protected

Track shelf object to put new tracks into.

Referenced by link_pairs(), and trivial_bonds().


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