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

# Content
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