ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/grimes/L1Menu/interface/l1menu/L1TriggerDPGEvent.h
Revision: 1.2
Committed: Tue Jul 2 23:30:35 2013 UTC (11 years, 10 months ago) by grimes
Content type: text/plain
Branch: MAIN
Changes since 1.1: +2 -1 lines
Log Message:
Various changes to make interface conformance better, and dropping old unrequired methods

File Contents

# User Rev Content
1 grimes 1.1 #ifndef l1menu_L1TriggerDPGEvent_h
2     #define l1menu_L1TriggerDPGEvent_h
3    
4     #include <memory>
5     #include "l1menu/IEvent.h"
6    
7     // Forward declarations
8     namespace L1Analysis
9     {
10     class L1AnalysisDataFormat;
11     }
12    
13    
14     namespace l1menu
15     {
16     /** @brief Wrapper for the event format. Bundles L1AnalysisDataFormat and the trigger bits into one class.
17     *
18     * Currently just wraps L1Analysis::L1AnalysisDataFormat (from UserCode/L1TriggerDPG) and a boolean array
19     * for the trigger bits into one class so that it can easily be passed around. Also useful because it can
20     * be passed around and have some operations done on it by code that has no knowledge of L1Analysis package.
21     *
22     * Later on I might wrap the L1AnalysisDataFormat more fully so that everything can be done without
23     * knowledge of L1AnalysisDataFormat, just using this lightweight interface.
24     *
25     * @author Mark Grimes (mark.grimes@bristol.ac.uk)
26     * @date 21/May/2013
27     */
28     class L1TriggerDPGEvent : public l1menu::IEvent
29     {
30     public:
31 grimes 1.2 L1TriggerDPGEvent( const l1menu::ISample& parentSample );
32 grimes 1.1 L1TriggerDPGEvent( const L1TriggerDPGEvent& otherEvent );
33     L1TriggerDPGEvent( L1TriggerDPGEvent&& otherEvent ) noexcept;
34     L1TriggerDPGEvent& operator=( const L1TriggerDPGEvent& otherEvent );
35     L1TriggerDPGEvent& operator=( L1TriggerDPGEvent&& otherEvent ) noexcept;
36     virtual ~L1TriggerDPGEvent();
37    
38     virtual L1Analysis::L1AnalysisDataFormat& rawEvent();
39     virtual const L1Analysis::L1AnalysisDataFormat& rawEvent() const;
40     virtual bool* physicsBits(); ///< @brief A 128 element array of the physics bits
41     virtual const bool* physicsBits() const; ///< @brief Const access to the 128 element array of the physics bits.
42    
43     //
44     // These are the methods required by the l1menu::IEvent interface.
45     //
46     virtual bool passesTrigger( const l1menu::ITrigger& trigger ) const;
47     virtual float weight() const;
48 grimes 1.2 virtual const l1menu::ISample& sample() const;
49 grimes 1.1 protected:
50     /** @brief Hide implementation details in a pimple.
51     * In particular I don't want any code that includes this file to be dependent
52     * on L1AnalysisDataFormat.h. */
53     std::unique_ptr<class L1TriggerDPGEventPrivateMembers> pImple_;
54     };
55    
56     } // end of namespace l1menu
57    
58    
59     #endif