ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/grimes/L1Menu/interface/l1menu/ReducedSample.h
Revision: 1.1
Committed: Thu Jul 4 13:02:21 2013 UTC (11 years, 10 months ago) by grimes
Content type: text/plain
Branch: MAIN
CVS Tags: HEAD
Log Message:
Renamed ReducedMenuSample to ReducedSample, and MenuSample to FullSample

File Contents

# User Rev Content
1 grimes 1.1 #ifndef l1menu_ReducedSample_h
2     #define l1menu_ReducedSample_h
3    
4     #include <string>
5     #include <memory>
6     #include <map>
7    
8     #include "l1menu/ReducedEvent.h"
9     #include "l1menu/ISample.h"
10    
11     // Forward declarations
12     namespace l1menu
13     {
14     class FullSample;
15     class TriggerMenu;
16     class ITrigger;
17     }
18    
19    
20     namespace l1menu
21     {
22     /** @brief A simplified sample that has been reduced to just storing the thresholds required for each trigger to pass.
23     *
24     * @author Mark Grimes (mark.grimes@bristol.ac.uk)
25     * @date 28/May/2013
26     */
27     class ReducedSample : public l1menu::ISample
28     {
29     public:
30     /** @brief Load from a file in protobuf format. */
31     ReducedSample( const std::string& filename );
32     ReducedSample( const l1menu::FullSample& originalSample, const l1menu::TriggerMenu& triggerMenu );
33     ReducedSample( const l1menu::TriggerMenu& triggerMenu );
34     virtual ~ReducedSample();
35    
36     void addSample( const l1menu::FullSample& originalSample );
37    
38     /** @brief Save to a file in protobuf format (protobuf in src/protobuf/l1menu.proto). */
39     void saveToFile( const std::string& filename ) const;
40    
41     const l1menu::TriggerMenu& getTriggerMenu() const;
42     bool containsTrigger( const l1menu::ITrigger& trigger, bool allowOlderVersion=false ) const;
43     const std::map<std::string,ReducedEvent::ParameterID> getTriggerParameterIdentifiers( const l1menu::ITrigger& trigger, bool allowOlderVersion=false ) const;
44    
45     //
46     // Implementations required for the ISample interface
47     //
48     virtual size_t numberOfEvents() const;
49     virtual const l1menu::IEvent& getEvent( size_t eventNumber ) const;
50     virtual std::unique_ptr<l1menu::ICachedTrigger> createCachedTrigger( const l1menu::ITrigger& trigger ) const;
51     virtual float eventRate() const;
52     virtual void setEventRate( float rate );
53     virtual float sumOfWeights() const;
54     virtual std::unique_ptr<const l1menu::IMenuRate> rate( const l1menu::TriggerMenu& menu ) const;
55    
56     private:
57     std::unique_ptr<class ReducedSamplePrivateMembers> pImple_;
58     }; // end of class ReducedSample
59    
60     } // end of namespace l1menu
61    
62     #endif