ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/DGele/PhysicsTools/PatUtils/src/TriggerHelper.cc
Revision: 1.1
Committed: Tue Oct 20 17:15:14 2009 UTC (15 years, 6 months ago) by dgele
Content type: text/plain
Branch: MAIN
Branch point for: ANA
Log Message:
Initial revision

File Contents

# User Rev Content
1 dgele 1.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     }