ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/grimes/L1Menu/src/L1TriggerDPGEvent.cpp
Revision: 1.3
Committed: Fri Jul 5 14:21:56 2013 UTC (11 years, 10 months ago) by grimes
Branch: MAIN
CVS Tags: HEAD
Changes since 1.2: +5 -0 lines
Log Message:
Set the event weight in FullSamples properly

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 L1TriggerDPGEventPrivateMembers( const l1menu::ISample* pParentSample ) : pParentSample_(pParentSample) {}
12 L1Analysis::L1AnalysisDataFormat rawEvent;
13 bool physicsBits[128];
14 float weight;
15 const l1menu::ISample* pParentSample_;
16 };
17 }
18
19
20 l1menu::L1TriggerDPGEvent::L1TriggerDPGEvent( const l1menu::ISample& parentSample ) : pImple_( new L1TriggerDPGEventPrivateMembers(&parentSample) )
21 {
22 pImple_->weight=1;
23 }
24
25 l1menu::L1TriggerDPGEvent::L1TriggerDPGEvent( const L1TriggerDPGEvent& otherEvent ) : pImple_( new L1TriggerDPGEventPrivateMembers(*otherEvent.pImple_) )
26 {
27 // No operation besides the initialiser list
28 }
29
30 l1menu::L1TriggerDPGEvent::L1TriggerDPGEvent( L1TriggerDPGEvent&& otherEvent ) noexcept : pImple_( std::move(otherEvent.pImple_) )
31 {
32 // No operation besides the initialiser list
33 }
34
35 l1menu::L1TriggerDPGEvent& l1menu::L1TriggerDPGEvent::operator=( const L1TriggerDPGEvent& otherEvent )
36 {
37 *pImple_=*otherEvent.pImple_;
38 return *this;
39 }
40
41 l1menu::L1TriggerDPGEvent& l1menu::L1TriggerDPGEvent::operator=( L1TriggerDPGEvent&& otherEvent ) noexcept
42 {
43 pImple_=std::move(otherEvent.pImple_);
44 return *this;
45 }
46
47 l1menu::L1TriggerDPGEvent::~L1TriggerDPGEvent()
48 {
49 // No operation
50 }
51
52 L1Analysis::L1AnalysisDataFormat& l1menu::L1TriggerDPGEvent::rawEvent()
53 {
54 return pImple_->rawEvent;
55 }
56
57 const L1Analysis::L1AnalysisDataFormat& l1menu::L1TriggerDPGEvent::rawEvent() const
58 {
59 return pImple_->rawEvent;
60 }
61
62 bool* l1menu::L1TriggerDPGEvent::physicsBits()
63 {
64 return pImple_->physicsBits;
65 }
66
67 const bool* l1menu::L1TriggerDPGEvent::physicsBits() const
68 {
69 return pImple_->physicsBits;
70 }
71
72 void l1menu::L1TriggerDPGEvent::setWeight( float weight )
73 {
74 pImple_->weight=weight;
75 }
76
77 bool l1menu::L1TriggerDPGEvent::passesTrigger( const l1menu::ITrigger& trigger ) const
78 {
79 // This is an IEvent method, but ITrigger has a method that can
80 // handle L1TriggerDPGEvent concrete objects, so call that
81 // reflexively.
82 return trigger.apply( *this );
83 }
84
85 float l1menu::L1TriggerDPGEvent::weight() const
86 {
87 return pImple_->weight;
88 }
89
90 const l1menu::ISample& l1menu::L1TriggerDPGEvent::sample() const
91 {
92 return *pImple_->pParentSample_;
93 }