ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/System8/s8/Analyzer/interface/MonitorTriggerAnalyzer.h
Revision: 1.1
Committed: Fri May 6 14:31:19 2011 UTC (13 years, 11 months ago) by samvel
Content type: text/plain
Branch: MAIN
CVS Tags: melo-old
Log Message:
Import Analyzer

File Contents

# User Rev Content
1 samvel 1.1 /**
2     * MonitorTriggerAnalyzer
3     * s8
4     *
5     * Created by Samvel Khalatian on Feb 25, 2011
6     * Copyright 2011, All rights reserved
7     */
8    
9     #ifndef S8_MONITOR_TRIGGER_ANALYZER
10     #define S8_MONITOR_TRIGGER_ANALYZER
11    
12     #include <memory>
13    
14     #include "Analyzer/interface/Analyzer.h"
15     #include "Option/interface/MonitorOptionsDelegate.h"
16     #include "Option/interface/PythiaOptionsDelegate.h"
17     #include "S8Tree/interface/S8Trigger.h"
18     #include "Selector/interface/TriggerNamePredicator.h"
19     #include "Utility/interface/Range.h"
20     #include "Utility/interface/MuonInJetDelegate.h"
21    
22     class TH1;
23    
24     namespace s8
25     {
26     class MonitorDelta;
27     class MonitorJet;
28     class MonitorLepton;
29     class MuonInJet;
30     class S8Selector;
31     class TaggerOperatingPoint;
32    
33     class MonitorTriggerAnalyzer: public Analyzer,
34     public MonitorOptionsDelegate,
35     public MuonInJetDelegate
36     {
37     public:
38     MonitorTriggerAnalyzer() throw();
39     virtual ~MonitorTriggerAnalyzer() throw();
40    
41     // Analyzer interface
42     //
43     virtual void init();
44    
45     virtual void treeDidLoad(const TreeInfo *, const TriggerCenter *);
46     virtual void eventDidLoad(const Event *);
47     virtual void print(std::ostream &) const;
48     virtual void save(TDirectory *) const;
49    
50     // MuonInJet options
51     //
52     virtual void optionTagIsSet(const std::string &);
53     virtual void optionAwayTagIsSet(const std::string &);
54     virtual void optionMuonPtIsSet(const Range &);
55     virtual void optionJetPtIsSet(const Range &);
56     virtual void optionJetEtaIsSet(const Range &);
57    
58     // MuonInJetDelegate interface
59     //
60     virtual bool shouldSkipMuonInJetPlusAwayJet(const Lepton *,
61     const Jet *);
62    
63     virtual void muonIsInJetPlusAwayJet(const Lepton *,
64     const Jet *);
65    
66     virtual void muonIsInJetPlusTaggedAwayJet(const Lepton *,
67     const Jet *);
68    
69     // PythiaOptionsDelegate interface
70     //
71     virtual void optionGluonSplittingIsSet(const GluonSplitting &);
72     virtual void optionPtHatIsSet(const Range &);
73    
74     // Trigger options
75     //
76     virtual void optionTriggerIsSet(const Trigger &);
77     virtual void optionUseTriggerPrescaleIsSet(const bool &);
78    
79     private:
80     void saveGenericPlots(TDirectory *) const;
81     void saveNPlots(TDirectory *) const;
82     void savePPlots(TDirectory *) const;
83    
84     std::auto_ptr<MuonInJet> _muonInJet;
85    
86     std::auto_ptr<TaggerOperatingPoint> _muonInJetTagger;
87     std::auto_ptr<TaggerOperatingPoint> _awayJetTagger;
88    
89     // Generic plots
90     //
91     std::auto_ptr<TH1> _muons;
92     std::auto_ptr<TH1> _jets;
93     std::auto_ptr<TH1> _pthat;
94    
95     std::auto_ptr<MonitorLepton> _monitorMuons;
96     std::auto_ptr<MonitorJet> _monitorJets;
97     std::auto_ptr<MonitorJet> _monitorLeadingJet;
98    
99     // (n) plots
100     //
101     std::auto_ptr<MonitorLepton> _monitorNMuons;
102     std::auto_ptr<MonitorJet> _monitorNJets;
103     std::auto_ptr<MonitorDelta> _monitorNDelta;
104    
105     // (p) plots
106     //
107     std::auto_ptr<MonitorLepton> _monitorPMuons;
108     std::auto_ptr<MonitorJet> _monitorPJets;
109     std::auto_ptr<MonitorDelta> _monitorPDelta;
110    
111     Range _n_muon_pt;
112     Range _n_jet_pt;
113     Range _n_jet_eta;
114    
115     S8Selector *_s8_selector;
116    
117     bool _use_trigger_prescale;
118     int _prescale;
119     Trigger _trigger;
120     TriggerNamePredicator _trigger_predicator;
121     };
122     }
123    
124     #endif