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

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     L1TriggerDPGEvent();
32     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     protected:
49     /** @brief Hide implementation details in a pimple.
50     * In particular I don't want any code that includes this file to be dependent
51     * on L1AnalysisDataFormat.h. */
52     std::unique_ptr<class L1TriggerDPGEventPrivateMembers> pImple_;
53     };
54    
55     } // end of namespace l1menu
56    
57    
58     #endif