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

Uses the GenericSelectorTool and the OfflineSelectionTool and working points defined there for track selection (how working points if we have to specify all the parameters?). More...

#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
TrackFilter * m_selector

Detailed Description

Uses the GenericSelectorTool and the OfflineSelectionTool and working points defined there for track selection (how working points if we have to specify all the parameters?).

Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration

Definition at line 24 of file TrigAnalysis/TrigInDetAnalysis/TrigInDetAnalysis/TrackSelector.h.

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(* f )(const TIDA::Track *) = 0 )
inlinevirtual

Definition at line 34 of file 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(* f )(const TIDA::Track *) = 0 )
inlinevirtual

Definition at line 47 of file 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 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

Definition at line 62 of file TrigAnalysis/TrigInDetAnalysis/TrigInDetAnalysis/TrackSelector.h.

62{ return m_tracks.size(); }

◆ 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 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: