ATLAS Offline Software
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
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 More...
 
void selectTrack (const TIDA::Track &track)
 add a Track More...
 
void selectTracks (const std::vector< TIDA::Track > &tracks)
 extract all the tracks from a vector of Tracks More...
 
void selectTracks (const std::vector< TIDA::Track * > &tracks)
 extract all the tracks from a vector of Tracks pointers More...
 
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 More...
 
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.

24 : TrackSelector(selector) { }

Member Function Documentation

◆ addTrack()

virtual bool TrackSelector::addTrack ( TIDA::Track t,
bool(*)(const TIDA::Track *)  f = 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 *)  f = 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  }

◆ 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 72 of file NtupleTrackSelector.h.

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

◆ clone()

virtual TrackSelector* NtupleTrackSelector::clone ( )
inlineoverridevirtual

Implements TrackSelector.

Definition at line 26 of file NtupleTrackSelector.h.

26 { return new NtupleTrackSelector(*this); }

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

◆ 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  selectTrack( *trackitr );
66  trackitr++;
67  }
68  }

◆ 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

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

63 { return m_tracks.size(); }

◆ 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:
python.CaloRecoConfig.f
f
Definition: CaloRecoConfig.py:127
TrackSelector::TrackSelector
TrackSelector(TrackFilter *selector=0)
Definition: Trigger/TrigAnalysis/TrigInDetAnalysis/TrigInDetAnalysis/TrackSelector.h:28
TrackSelector::addTrack
virtual bool addTrack(TIDA::Track *t, bool(*f)(const TIDA::Track *)=0)
Definition: Trigger/TrigAnalysis/TrigInDetAnalysis/TrigInDetAnalysis/TrackSelector.h:35
xAOD::JetInput::Track
@ Track
Definition: JetContainerInfo.h:61
NtupleTrackSelector::NtupleTrackSelector
NtupleTrackSelector(TrackFilter *selector=0)
Definition: NtupleTrackSelector.h:24
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
TrackFilter::select
virtual bool select(const TIDA::Track *t, const TIDARoiDescriptor *r=0)=0
TrackSelector::cleanup
virtual void cleanup(TIDA::Track *)
Definition: Trigger/TrigAnalysis/TrigInDetAnalysis/TrigInDetAnalysis/TrackSelector.h:77
NtupleTrackSelector::selectTrack
void selectTrack(TIDA::Track *track)
add single Track
Definition: NtupleTrackSelector.h:29
PixelModuleFeMask_create_db.remove
string remove
Definition: PixelModuleFeMask_create_db.py:83
TrackSelector::m_tracks
std::vector< TIDA::Track * > m_tracks
Definition: Trigger/TrigAnalysis/TrigInDetAnalysis/TrigInDetAnalysis/TrackSelector.h:82
lumiFormat.i
int i
Definition: lumiFormat.py:92
TrackSelector::m_selector
TrackFilter * m_selector
Definition: Trigger/TrigAnalysis/TrigInDetAnalysis/TrigInDetAnalysis/TrackSelector.h:85
TrackSelector::tracks
const std::vector< TIDA::Track * > & tracks() const
Definition: Trigger/TrigAnalysis/TrigInDetAnalysis/TrigInDetAnalysis/TrackSelector.h:53
python.selector.AtlRunQuerySelectorLhcOlc.selector
selector
Definition: AtlRunQuerySelectorLhcOlc.py:611
TIDA::Track
Definition: Trigger/TrigAnalysis/TrigInDetAnalysis/TrigInDetAnalysis/Track.h:26
xAOD::track
@ track
Definition: TrackingPrimitives.h:512