ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/grimes/L1Menu/interface/l1menu/MenuFitter.h
Revision: 1.1
Committed: Wed Jul 24 11:48:54 2013 UTC (11 years, 9 months ago) by grimes
Content type: text/plain
Branch: MAIN
CVS Tags: HEAD
Log Message:
Big commit of lots of changes before migrating to Git.

File Contents

# User Rev Content
1 grimes 1.1 #ifndef l1menu_MenuFitter_h
2     #define l1menu_MenuFitter_h
3    
4     #include <memory>
5    
6     // Forward declarations
7     namespace l1menu
8     {
9     class ISample;
10     class ITrigger;
11     class TriggerMenu;
12     class IMenuRate;
13     class MenuRatePlots;
14     }
15    
16     namespace l1menu
17     {
18     /** @brief Changes the thresholds in a trigger menu to provide a given rate.
19     *
20     * @author Mark Grimes (mark.grimes@bristol.ac.uk)
21     * @date 07/Jul/2013
22     */
23     class MenuFitter
24     {
25     public:
26     MenuFitter( const l1menu::ISample& sample );
27     MenuFitter( const l1menu::ISample& sample, const l1menu::MenuRatePlots& menuRatePlots );
28     virtual ~MenuFitter();
29     const l1menu::TriggerMenu& menu() const;
30     std::unique_ptr<const l1menu::IMenuRate> fit( float totalRate, float tolerance );
31     void addTrigger( const l1menu::ITrigger& trigger, float fractionOfTotalBandwidth, bool lockThresholds=false );
32     void loadMenuFromFile( const std::string& filename );
33     private:
34     std::unique_ptr<class MenuFitterPrivateMembers> pImple_;
35     };
36    
37     }
38     #endif