Skip to content
Snippets Groups Projects

Sweeping !20881 from 21.3 to master. Allow selection on ET/PT of Offline objects

Merged Sweeping !20881 from 21.3 to master. Allow selection on ET/PT of Offline objects
Merged Atlas Nightlybuild requested to merge cherry-pick-e4d5bd10f8-master into master
2 files
+ 42
2
Compare changes
  • Side-by-side
  • Inline
Files
2
@@ -40,12 +40,20 @@ public:
TrigObjectMatcher( TrackSelector* selector,
const std::vector<TrackTrigObject>& objects,
bool (*select_function)(const TrackTrigObject& t)=0 )
bool (*select_function)(const TrackTrigObject& )=0 )
: m_status(1) {
const std::vector<TIDA::Track*> tracks = selector->tracks();
for ( size_t i=tracks.size() ; i-- ; ) if ( match( tracks[i]->id(), objects, select_function )==false ) selector->delete_track( tracks[i] );
}
TrigObjectMatcher( TrackSelector* selector,
const std::vector<TrackTrigObject>& objects,
bool (*select_function)(const TrackTrigObject& , TIDA::Track* )=0 )
: m_status(1) {
const std::vector<TIDA::Track*> tracks = selector->tracks();
for ( size_t i=tracks.size() ; i-- ; ) if ( match( tracks[i], objects, select_function )==false ) selector->delete_track( tracks[i] );
}
virtual ~TrigObjectMatcher() { }
@@ -88,6 +96,22 @@ private:
}
bool match( TIDA::Track* track, const std::vector<TrackTrigObject>& objects, bool (*select_function)(const TrackTrigObject& , TIDA::Track* )=0 ) {
for ( size_t j=objects.size() ; j-- ; ) {
for ( size_t k=objects[j].children().size() ; k-- ; ) {
if ( track->id() == objects[j].children()[k] ) {
if ( select_function==0 || select_function(objects[j], track) ) {
m_objectmap.insert( map_type::value_type( track->id(), &objects[j] ) );
return true;
}
else return false;
}
}
}
return false;
}
private:
int m_status;
Loading