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

#include <NtupleTrackSelector.h>

Inheritance diagram for NtupleTrackSelector:
Collaboration diagram for NtupleTrackSelector:

Public Member Functions

 NtupleTrackSelector (TrackFilter *selector=0)
virtual TrackSelectorclone () override
void selectTrack (TIDA::Track *track)
 add single Track
void selectTrack (const TIDA::Track &track)
 add a Track
void selectTracks (const std::vector< TIDA::Track > &tracks)
 extract all the tracks from a vector of Tracks
void selectTracks (const std::vector< TIDA::Track * > &tracks)
 extract all the tracks from a vector of Tracks pointers
virtual void clear () override
 the ntple selector manages the tracks itself, so we have to do an explicit delete for each one to prevent memory leaking
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
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

Definition at line 20 of file NtupleTrackSelector.h.

Constructor & Destructor Documentation

◆ NtupleTrackSelector()

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

Definition at line 24 of file NtupleTrackSelector.h.

Member Function Documentation

◆ addTrack()

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

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

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

◆ addTracks()

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

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

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

◆ cleanup()

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

◆ clear()

virtual void NtupleTrackSelector::clear ( )
inlineoverridevirtual

the ntple selector manages the tracks itself, so we have to do an explicit delete for each one to prevent memory leaking

Reimplemented from TrackSelector.

Definition at line 71 of file NtupleTrackSelector.h.

71 {
72 for ( int i=m_tracks.size() ; i-- ; ) delete m_tracks[i];
73 m_tracks.clear();
74 }

◆ clone()

virtual TrackSelector * NtupleTrackSelector::clone ( )
inlineoverridevirtual

Implements TrackSelector.

Definition at line 26 of file NtupleTrackSelector.h.

26{ return new NtupleTrackSelector(*this); }
NtupleTrackSelector(TrackFilter *selector=0)

◆ delete_track()

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

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

69 {
70 m_tracks.erase( std::remove( m_tracks.begin(), m_tracks.end(), t ), m_tracks.end() );
71 }
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.

◆ selectTrack() [1/2]

void NtupleTrackSelector::selectTrack ( const TIDA::Track & track)
inline

add a Track

Definition at line 40 of file NtupleTrackSelector.h.

40 {
41 // do the track extraction stuff here....
42 TIDA::Track* t = new TIDA::Track( track );
43 if ( !addTrack( t ) ) delete t;
44 // addTrack( &track );
45 }

◆ selectTrack() [2/2]

void NtupleTrackSelector::selectTrack ( TIDA::Track * track)
inline

add single Track

Definition at line 29 of file NtupleTrackSelector.h.

29 {
30 // do the track extraction stuff here....
31 if ( track ) {
32 TIDA::Track* t = new TIDA::Track( *track );
33 if ( !addTrack( t ) ) delete t;
34 // addTrack( track );
35 }
36 }

◆ selectTracks() [1/2]

void NtupleTrackSelector::selectTracks ( const std::vector< TIDA::Track * > & tracks)
inline

extract all the tracks from a vector of Tracks pointers

Definition at line 59 of file NtupleTrackSelector.h.

59 {
60 // do the track extraction stuff here....
61 std::vector<TIDA::Track*>::const_iterator trackitr = tracks.begin();
62 std::vector<TIDA::Track*>::const_iterator trackend = tracks.end();
63 while ( trackitr!=trackend ) {
64 selectTrack( *trackitr );
65 ++trackitr;
66 }
67 }
void selectTrack(TIDA::Track *track)
add single Track

◆ selectTracks() [2/2]

void NtupleTrackSelector::selectTracks ( const std::vector< TIDA::Track > & tracks)
inline

extract all the tracks from a vector of Tracks

Definition at line 48 of file NtupleTrackSelector.h.

48 {
49 // do the track extraction stuff here....
50 std::vector<TIDA::Track>::const_iterator trackitr = tracks.begin();
51 std::vector<TIDA::Track>::const_iterator trackend = tracks.end();
52 while ( trackitr!=trackend ) {
53 selectTrack( *trackitr );
54 ++trackitr;
55 }
56 }

◆ size()

unsigned TrackSelector::size ( ) const
inlineinherited

◆ tracks() [1/2]

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

◆ tracks() [2/2]

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

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

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

Member Data Documentation

◆ m_selector

TrackFilter* TrackSelector::m_selector
protectedinherited

◆ m_tracks

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

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