ATLAS Offline Software
Loading...
Searching...
No Matches
TrackSelector Class Reference

#include <TrackSelector.h>

Inheritance diagram for TrackSelector:
Collaboration diagram for TrackSelector:

Public Member Functions

 TrackSelector (TrackFilter *selector=0)
virtual ~TrackSelector ()
virtual bool addTrack (TIDA::Track *t, bool(*f)(const TIDA::Track *)=0)
virtual void addTracks (std::vector< TIDA::Track * > &t, bool(*f)(const TIDA::Track *)=0)
const std::vector< TIDA::Track * > & tracks () const
std::vector< TIDA::Track * > tracks (TrackFilter *selector) const
unsigned size () const
virtual void clear ()
void delete_track (TIDA::Track *t)

Protected Member Functions

virtual void cleanup (TIDA::Track *)

Protected Attributes

std::vector< TIDA::Track * > m_tracks
TrackFilterm_selector

Detailed Description

Constructor & Destructor Documentation

◆ TrackSelector()

TrackSelector::TrackSelector ( TrackFilter * selector = 0)
inline

◆ ~TrackSelector()

virtual TrackSelector::~TrackSelector ( )
inlinevirtual

Member Function Documentation

◆ addTrack()

virtual bool TrackSelector::addTrack ( TIDA::Track * t,
bool(* )(const TIDA::Track *) = 0 )
inlinevirtual

Definition at line 34 of file Trigger/TrigAnalysis/TrigInDetAnalysis/TrigInDetAnalysis/TrackSelector.h.

34 {
35 //std::cout << "addtrack() before f: t " << *t << " " << size() << "\t f " << f << std::endl;
36 if ( f==0 ) {
37 if ( m_selector && m_selector->select(t) ) { m_tracks.push_back(t); return true; }
38 else { cleanup(t); }
39 }
40 else {
41 if ( f(t) ) { m_tracks.push_back(t); return true; }
42 else { cleanup(t); }
43 }
44 return false;
45 }

◆ addTracks()

virtual void TrackSelector::addTracks ( std::vector< TIDA::Track * > & t,
bool(* )(const TIDA::Track *) = 0 )
inlinevirtual

Definition at line 47 of file Trigger/TrigAnalysis/TrigInDetAnalysis/TrigInDetAnalysis/TrackSelector.h.

47 {
48 for ( size_t i=0 ; i<t.size() ; i++ ) addTrack( t[i], f );
49 }
virtual bool addTrack(TIDA::Track *t, bool(*f)(const TIDA::Track *)=0)

◆ cleanup()

virtual void TrackSelector::cleanup ( TIDA::Track * )
inlineprotectedvirtual

◆ clear()

virtual void TrackSelector::clear ( )
inlinevirtual

◆ delete_track()

void TrackSelector::delete_track ( TIDA::Track * t)
inline

Definition at line 68 of file Trigger/TrigAnalysis/TrigInDetAnalysis/TrigInDetAnalysis/TrackSelector.h.

68 {
69 m_tracks.erase( std::remove( m_tracks.begin(), m_tracks.end(), t ), m_tracks.end() );
70 }
DataModel_detail::iterator< DVL > remove(typename DataModel_detail::iterator< DVL > beg, typename DataModel_detail::iterator< DVL > end, const T &value)
Specialization of remove for DataVector/List.

◆ size()

unsigned TrackSelector::size ( ) const
inline

◆ tracks() [1/2]

const std::vector< TIDA::Track * > & TrackSelector::tracks ( ) const
inline

◆ tracks() [2/2]

std::vector< TIDA::Track * > TrackSelector::tracks ( TrackFilter * selector) const
inline

Definition at line 54 of file Trigger/TrigAnalysis/TrigInDetAnalysis/TrigInDetAnalysis/TrackSelector.h.

54 {
55 if ( selector==0 ) return m_tracks;
56 std::vector<TIDA::Track*> t;
57 for ( int i=m_tracks.size() ; i-- ; ) if ( selector->select(m_tracks[i]) ) t.push_back(m_tracks[i]);
58 return t;
59 }

Member Data Documentation

◆ m_selector

TrackFilter* TrackSelector::m_selector
protected

◆ m_tracks

std::vector<TIDA::Track*> TrackSelector::m_tracks
protected

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