ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/grimes/L1Menu/src/L1TriggerDPGEvent.cpp
Revision: 1.1
Committed: Fri Jun 28 14:30:08 2013 UTC (11 years, 10 months ago) by grimes
Branch: MAIN
Log Message:
Added ICachedTrigger to speed up processing

File Contents

# User Rev Content
1 grimes 1.1 #include "l1menu/L1TriggerDPGEvent.h"
2    
3     #include "l1menu/ITrigger.h"
4     #include "UserCode/L1TriggerUpgrade/interface/L1AnalysisDataFormat.h"
5    
6     namespace l1menu
7     {
8     class L1TriggerDPGEventPrivateMembers
9     {
10     public:
11     L1Analysis::L1AnalysisDataFormat rawEvent;
12     bool physicsBits[128];
13     float weight;
14     };
15     }
16    
17    
18     l1menu::L1TriggerDPGEvent::L1TriggerDPGEvent() : pImple_( new L1TriggerDPGEventPrivateMembers )
19     {
20     pImple_->weight=1;
21     }
22    
23     l1menu::L1TriggerDPGEvent::L1TriggerDPGEvent( const L1TriggerDPGEvent& otherEvent ) : pImple_( new L1TriggerDPGEventPrivateMembers(*otherEvent.pImple_) )
24     {
25     // No operation besides the initialiser list
26     }
27    
28     l1menu::L1TriggerDPGEvent::L1TriggerDPGEvent( L1TriggerDPGEvent&& otherEvent ) noexcept : pImple_( std::move(otherEvent.pImple_) )
29     {
30     // No operation besides the initialiser list
31     }
32    
33     l1menu::L1TriggerDPGEvent& l1menu::L1TriggerDPGEvent::operator=( const L1TriggerDPGEvent& otherEvent )
34     {
35     *pImple_=*otherEvent.pImple_;
36     return *this;
37     }
38    
39     l1menu::L1TriggerDPGEvent& l1menu::L1TriggerDPGEvent::operator=( L1TriggerDPGEvent&& otherEvent ) noexcept
40     {
41     pImple_=std::move(otherEvent.pImple_);
42     return *this;
43     }
44    
45     l1menu::L1TriggerDPGEvent::~L1TriggerDPGEvent()
46     {
47     // No operation
48     }
49    
50     L1Analysis::L1AnalysisDataFormat& l1menu::L1TriggerDPGEvent::rawEvent()
51     {
52     return pImple_->rawEvent;
53     }
54    
55     const L1Analysis::L1AnalysisDataFormat& l1menu::L1TriggerDPGEvent::rawEvent() const
56     {
57     return pImple_->rawEvent;
58     }
59    
60     bool* l1menu::L1TriggerDPGEvent::physicsBits()
61     {
62     return pImple_->physicsBits;
63     }
64    
65     const bool* l1menu::L1TriggerDPGEvent::physicsBits() const
66     {
67     return pImple_->physicsBits;
68     }
69    
70     bool l1menu::L1TriggerDPGEvent::passesTrigger( const l1menu::ITrigger& trigger ) const
71     {
72     // This is an IEvent method, but ITrigger has a method that can
73     // handle L1TriggerDPGEvent concrete objects, so call that
74     // reflexively.
75     return trigger.apply( *this );
76     }
77    
78     float l1menu::L1TriggerDPGEvent::weight() const
79     {
80     return pImple_->weight;
81     }