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

# Content
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 }