ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/DGele/PhysicsTools/PatUtils/src/TriggerHelper.cc
Revision: 1.1.1.1 (vendor branch)
Committed: Tue Oct 20 17:15:14 2009 UTC (15 years, 6 months ago) by dgele
Content type: text/plain
Branch: ANA
CVS Tags: start
Changes since 1.1: +0 -0 lines
Error occurred while calculating annotation data.
Log Message:
version CMSSW_2_2_10

File Contents

# Content
1 //
2 // $Id: TriggerHelper.cc,v 1.1.2.1 2009/04/28 18:36:12 vadler Exp $
3 //
4
5
6 #include "PhysicsTools/PatUtils/interface/TriggerHelper.h"
7
8 #include "DataFormats/Common/interface/AssociativeIterator.h"
9
10
11 using namespace pat;
12 using namespace pat::helper;
13
14
15
16 /// functions
17
18 TriggerObjectRef TriggerMatchHelper::triggerMatchObject( const reco::CandidateBaseRef & candRef, const TriggerObjectMatch * matchResult, const edm::Event & event, const TriggerEvent & triggerEvent ) const
19 {
20 if ( matchResult ) {
21 edm::AssociativeIterator< reco::CandidateBaseRef, TriggerObjectMatch > it( *matchResult, edm::EdmEventItemGetter< reco::CandidateBaseRef >( event ) ), itEnd( it.end() );
22 while ( it != itEnd ) {
23 if ( it->first.isNonnull() && it->second.isNonnull() && it->second.isAvailable() ) {
24 if ( it->first == candRef ) {
25 return TriggerObjectRef( it->second );
26 }
27 }
28 ++it;
29 }
30 }
31 return TriggerObjectRef();
32 }
33 TriggerObjectRef TriggerMatchHelper::triggerMatchObject( const reco::CandidateBaseRef & candRef, const std::string & labelMatcher, const edm::Event & event, const TriggerEvent & triggerEvent ) const
34 {
35 return triggerMatchObject( candRef, triggerEvent.triggerObjectMatchResult( labelMatcher ), event, triggerEvent );
36 }
37
38 TriggerObjectMatchMap TriggerMatchHelper::triggerMatchObjects( const reco::CandidateBaseRef & candRef, const edm::Event & event, const TriggerEvent & triggerEvent ) const
39 {
40 TriggerObjectMatchMap theContainer;
41 const std::vector< std::string > matchers( triggerEvent.triggerMatchers() );
42 for ( size_t iMatch = 0; iMatch < matchers.size(); ++iMatch ) {
43 theContainer[ matchers.at( iMatch ) ] = triggerMatchObject( candRef, matchers.at( iMatch ), event, triggerEvent );
44 }
45 return theContainer;
46 }
47
48 reco::CandidateBaseRefVector TriggerMatchHelper::triggerMatchCandidates( const TriggerObjectRef & objectRef, const TriggerObjectMatch * matchResult, const edm::Event & event, const TriggerEvent & triggerEvent ) const
49 {
50 reco::CandidateBaseRefVector theCands;
51 if ( matchResult ) {
52 edm::AssociativeIterator< reco::CandidateBaseRef, TriggerObjectMatch > it( *matchResult, edm::EdmEventItemGetter< reco::CandidateBaseRef >( event ) ), itEnd( it.end() );
53 while ( it != itEnd ) {
54 if ( it->first.isNonnull() && it->second.isNonnull() && it->second.isAvailable() ) {
55 if ( it->second == objectRef ) {
56 theCands.push_back( it->first );
57 }
58 }
59 ++it;
60 }
61 }
62 return theCands;
63 }
64 reco::CandidateBaseRefVector TriggerMatchHelper::triggerMatchCandidates( const TriggerObjectRef & objectRef, const std::string & labelMatcher, const edm::Event & event, const TriggerEvent & triggerEvent ) const
65 {
66 return triggerMatchCandidates( objectRef, triggerEvent.triggerObjectMatchResult( labelMatcher ), event, triggerEvent );
67 }