ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/JetFitAnalyzer/src/JetFitAnalyzer.cc
Revision: 1.1
Committed: Wed Sep 2 21:44:14 2009 UTC (15 years, 8 months ago) by dnisson
Content type: text/plain
Branch: MAIN
CVS Tags: V00-01-00, V00-00-01
Log Message:
Adding JetFitAnalyzer to CMS repository.

File Contents

# User Rev Content
1 dnisson 1.1 // -*- C++ -*-
2     //
3     // Package: JetFitAnalyzer
4     // Class: JetFitAnalyzer
5     //
6     /**\class JetFitAnalyzer JetFitAnalyzer.cc UserCode/JetFitAnalyzer/src/JetFitAnalyzer.cc
7    
8     Description: Base class for using jetfit with CMSSW
9    
10     Implementation:
11     o Method make_histo is used to prepare a histogram for analysis;
12     the user can read this from a file or generate from the actual event
13     o Method make_model_def is used to define a formula and initial
14     parameters for the model used
15     o Method analyze_results performs user analysis on results;
16     the user is given a trouble vector and the original histogram in
17     addition.
18     o The function pointer user_minuit defines what to do after each fit
19     is done. The pointer should be obtained in the subclass constructor.
20     */
21     //
22     // Original Author: David Nisson
23     // Created: Wed Aug 5 16:38:38 PDT 2009
24     // $Id$
25     //
26     //
27    
28     #include "UserCode/JetFitAnalyzer/interface/JetFitAnalyzer.h"
29    
30     #include <vector>
31    
32     JetFitAnalyzer::JetFitAnalyzer(const edm::ParameterSet& iConfig)
33     : user_minuit(0)
34     {
35     // get parameters from iConfig
36     ignorezero_ = iConfig.getUntrackedParameter("ignorezero", false);
37     rebinX_ = iConfig.getUntrackedParameter("rebinX", 1);
38     rebinY_ = iConfig.getUntrackedParameter("rebinY", 1);
39     P_cutoff_val_ = iConfig.getUntrackedParameter("P_cutoff_val", 0.5);
40    
41     jetfit::set_ignorezero(ignorezero_);
42     }
43    
44    
45     JetFitAnalyzer::~JetFitAnalyzer()
46     {
47    
48     // do anything here that needs to be done at desctruction time
49     // (e.g. close files, deallocate resources etc.)
50    
51     }
52    
53    
54     //
55     // member functions
56     //
57    
58     // ------------ method called to for each event ------------
59     void
60     JetFitAnalyzer::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup)
61     {
62     using namespace edm;
63    
64     jetfit::results r; std::vector<jetfit::trouble> t;
65    
66     TH2D *histo = make_histo(iEvent, iSetup);
67     jetfit::model_def &_mdef = make_model_def(iEvent, iSetup, histo);
68     jetfit::set_model_def(&_mdef);
69     r = jetfit::fit_histo(histo, t, user_minuit, _mdef.get_n_special_par_sets(),
70     rebinX_, rebinY_, P_cutoff_val_);
71     analyze_results(r, t, histo);
72     }
73    
74    
75     // ------------ method called once each job just before starting event loop ------------
76     void
77     JetFitAnalyzer::beginJob(const edm::EventSetup&)
78     {
79     }
80    
81     // ------------ method called once each job just after ending the event loop ------------
82     void
83     JetFitAnalyzer::endJob() {
84     }
85    
86     //define this as a plug-in
87     // this is a base class-we can't do this DEFINE_FWK_MODULE(JetFitAnalyzer);