ATLAS Offline Software
Public Types | Public Member Functions | Private Member Functions | Private Attributes | List of all members
TrigObjectMatcher Class Reference

#include <TrigObjectMatcher.h>

Collaboration diagram for TrigObjectMatcher:

Public Types

typedef std::map< unsigned long, const TrackTrigObject * > map_type
 

Public Member Functions

 TrigObjectMatcher ()
 
 TrigObjectMatcher (const std::vector< TIDA::Track * > &tracks, const std::vector< TrackTrigObject > &objects)
 
 TrigObjectMatcher (TrackSelector *selector, const std::vector< TrackTrigObject > &objects, bool(*select_function)(const TrackTrigObject &)=0)
 
 TrigObjectMatcher (TrackSelector *selector, const std::vector< TrackTrigObject > &objects, bool(*select_function)(const TrackTrigObject &, TIDA::Track *)=0)
 
virtual ~TrigObjectMatcher ()
 
const TrackTrigObjectobject (unsigned long track_id)
 
bool status () const
 
map_type::const_iterator begin () const
 
map_type::const_iterator end () const
 
size_t size () const
 
void print (std::ostream &s) const
 

Private Member Functions

bool match (unsigned long track_id, const std::vector< TrackTrigObject > &objects, bool(*select_function)(const TrackTrigObject &t)=0)
 
bool match (TIDA::Track *track, const std::vector< TrackTrigObject > &objects, bool(*select_function)(const TrackTrigObject &, TIDA::Track *)=0)
 

Private Attributes

int m_status
 
map_type m_objectmap
 

Detailed Description

Definition at line 24 of file TrigObjectMatcher.h.

Member Typedef Documentation

◆ map_type

typedef std::map<unsigned long, const TrackTrigObject*> TrigObjectMatcher::map_type

Definition at line 28 of file TrigObjectMatcher.h.

Constructor & Destructor Documentation

◆ TrigObjectMatcher() [1/4]

TrigObjectMatcher::TrigObjectMatcher ( )
inline

Definition at line 32 of file TrigObjectMatcher.h.

32 : m_status(0) { }

◆ TrigObjectMatcher() [2/4]

TrigObjectMatcher::TrigObjectMatcher ( const std::vector< TIDA::Track * > &  tracks,
const std::vector< TrackTrigObject > &  objects 
)
inline

Definition at line 34 of file TrigObjectMatcher.h.

36  : m_status(1) {
37  for ( size_t i=tracks.size() ; i-- ; ) match( tracks[i]->id(), objects );
38  }

◆ TrigObjectMatcher() [3/4]

TrigObjectMatcher::TrigObjectMatcher ( TrackSelector selector,
const std::vector< TrackTrigObject > &  objects,
bool(*)(const TrackTrigObject &)  select_function = 0 
)
inline

Definition at line 41 of file TrigObjectMatcher.h.

44  : m_status(1) {
45  const std::vector<TIDA::Track*> tracks = selector->tracks();
46  for ( size_t i=tracks.size() ; i-- ; ) if ( match( tracks[i]->id(), objects, select_function )==false ) selector->delete_track( tracks[i] );
47  }

◆ TrigObjectMatcher() [4/4]

TrigObjectMatcher::TrigObjectMatcher ( TrackSelector selector,
const std::vector< TrackTrigObject > &  objects,
bool(*)(const TrackTrigObject &, TIDA::Track *)  select_function = 0 
)
inline

Definition at line 49 of file TrigObjectMatcher.h.

52  : m_status(1) {
53  const std::vector<TIDA::Track*> tracks = selector->tracks();
54  for ( size_t i=tracks.size() ; i-- ; ) if ( match( tracks[i], objects, select_function )==false ) selector->delete_track( tracks[i] );
55  }

◆ ~TrigObjectMatcher()

virtual TrigObjectMatcher::~TrigObjectMatcher ( )
inlinevirtual

Definition at line 58 of file TrigObjectMatcher.h.

58 { }

Member Function Documentation

◆ begin()

map_type::const_iterator TrigObjectMatcher::begin ( ) const
inline

Definition at line 69 of file TrigObjectMatcher.h.

69 { return m_objectmap.begin(); }

◆ end()

map_type::const_iterator TrigObjectMatcher::end ( ) const
inline

Definition at line 70 of file TrigObjectMatcher.h.

70 { return m_objectmap.end(); }

◆ match() [1/2]

bool TrigObjectMatcher::match ( TIDA::Track track,
const std::vector< TrackTrigObject > &  objects,
bool(*)(const TrackTrigObject &, TIDA::Track *)  select_function = 0 
)
inlineprivate

Definition at line 99 of file TrigObjectMatcher.h.

99  {
100  for ( size_t j=objects.size() ; j-- ; ) {
101  for ( size_t k=objects[j].children().size() ; k-- ; ) {
102  if ( track->id() == objects[j].children()[k] ) {
103  if ( select_function==0 || select_function(objects[j], track) ) {
104  m_objectmap.insert( map_type::value_type( track->id(), &objects[j] ) );
105  return true;
106  }
107  else return false;
108  }
109  }
110  }
111  return false;
112  }

◆ match() [2/2]

bool TrigObjectMatcher::match ( unsigned long  track_id,
const std::vector< TrackTrigObject > &  objects,
bool(*)(const TrackTrigObject &t)  select_function = 0 
)
inlineprivate

Definition at line 83 of file TrigObjectMatcher.h.

83  {
84  for ( size_t j=objects.size() ; j-- ; ) {
85  for ( size_t k=objects[j].children().size() ; k-- ; ) {
86  if ( track_id == objects[j].children()[k] ) {
87  if ( select_function==0 || select_function(objects[j]) ) {
88  m_objectmap.insert( map_type::value_type( track_id, &objects[j] ) );
89  return true;
90  }
91  else return false;
92  }
93  }
94  }
95  return false;
96  }

◆ object()

const TrackTrigObject* TrigObjectMatcher::object ( unsigned long  track_id)
inline

Definition at line 61 of file TrigObjectMatcher.h.

61  {
62  map_type::const_iterator itr = m_objectmap.find( track_id );
63  if ( itr==m_objectmap.end() ) return 0;
64  return itr->second;
65  }

◆ print()

void TrigObjectMatcher::print ( std::ostream &  s) const
inline

Definition at line 74 of file TrigObjectMatcher.h.

74  {
75  s << "TrigObjectMatch size: " << m_objectmap.size();
76  for ( map_type::const_iterator itr = m_objectmap.begin() ; itr!=m_objectmap.end() ; itr++ ) {
77  s << "\n[ id: 0x" << std::hex << itr->first << std::dec << " :: " << *(itr->second) << " ]";
78  }
79  }

◆ size()

size_t TrigObjectMatcher::size ( ) const
inline

Definition at line 72 of file TrigObjectMatcher.h.

72 { return m_objectmap.size(); }

◆ status()

bool TrigObjectMatcher::status ( ) const
inline

Definition at line 67 of file TrigObjectMatcher.h.

67 { return m_status; }

Member Data Documentation

◆ m_objectmap

map_type TrigObjectMatcher::m_objectmap
private

Definition at line 118 of file TrigObjectMatcher.h.

◆ m_status

int TrigObjectMatcher::m_status
private

Definition at line 117 of file TrigObjectMatcher.h.


The documentation for this class was generated from the following file:
python.SystemOfUnits.s
int s
Definition: SystemOfUnits.py:131
LArConditions2Ntuple.objects
objects
Definition: LArConditions2Ntuple.py:56
TrigObjectMatcher::m_objectmap
map_type m_objectmap
Definition: TrigObjectMatcher.h:118
TrigObjectMatcher::m_status
int m_status
Definition: TrigObjectMatcher.h:117
lumiFormat.i
int i
Definition: lumiFormat.py:92
TrigObjectMatcher::size
size_t size() const
Definition: TrigObjectMatcher.h:72
python.selector.AtlRunQuerySelectorLhcOlc.selector
selector
Definition: AtlRunQuerySelectorLhcOlc.py:611
python.DecayParser.children
children
Definition: DecayParser.py:32
xAOD::track
@ track
Definition: TrackingPrimitives.h:512
TrigObjectMatcher::match
bool match(unsigned long track_id, const std::vector< TrackTrigObject > &objects, bool(*select_function)(const TrackTrigObject &t)=0)
Definition: TrigObjectMatcher.h:83
fitman.k
k
Definition: fitman.py:528