ATLAS Offline Software
Loading...
Searching...
No Matches
NtupleTrackSelector.h
Go to the documentation of this file.
1/* emacs: this is -*- c++ -*- */
10
11
12#ifndef TIDAEXAMPLE_NTUPLETRACKSELECTOR_H
13#define TIDAEXAMPLE_NTUPLETRACKSELECTOR_H
14
18
19
21
22public:
23
24 NtupleTrackSelector( TrackFilter* selector=0 ) : TrackSelector(selector) { }
25
26 virtual TrackSelector* clone() override { return new NtupleTrackSelector(*this); }
27
29 void selectTrack( TIDA::Track* track ) {
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 }
37
38
40 void selectTrack( const TIDA::Track& track ) {
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 }
46
48 void selectTracks( const std::vector<TIDA::Track>& tracks ) {
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 }
57
59 void selectTracks( const std::vector<TIDA::Track*>& tracks ) {
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 }
68
71 virtual void clear() override {
72 for ( int i=m_tracks.size() ; i-- ; ) delete m_tracks[i];
73 m_tracks.clear();
74 }
75
76};
77
78
79
80
81#endif // TIDAEXAMPLE_NTUPLETRACKSELECTOR_H
base class for a single track selection filter allowing parameter setting for complex track selection
void selectTrack(TIDA::Track *track)
add single Track
virtual void clear() override
the ntple selector manages the tracks itself, so we have to do an explicit delete for each one to pre...
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 TrackSelector * clone() override
NtupleTrackSelector(TrackFilter *selector=0)
virtual bool addTrack(TIDA::Track *t, bool(*f)(const TIDA::Track *)=0)