CMS 3D CMS Logo

LheWeightValidation.h
Go to the documentation of this file.
1 #ifndef LHEWEIGHTVALIDATION_H
2 #define LHEWEIGHTVALIDATION_H
3 
4 // framework & common header files
8 
12 
13 //DQM services
17 
22 
24 
27 
28 class TH1F; // forward declaration for ROOT
29 
31 public:
32  explicit LheWeightValidation(const edm::ParameterSet&);
33  ~LheWeightValidation() override = default;
34  void analyze(const edm::Event&, const edm::EventSetup&) override;
35  void bookHistograms(DQMStore::IBooker&, edm::Run const&, edm::EventSetup const&) override;
36  void dqmBeginRun(const edm::Run&, const edm::EventSetup&) override;
37  void dqmEndRun(const edm::Run&, const edm::EventSetup&) override;
38 
39 private:
40  void bookTemplates(DQMHelper& aDqmHelper,
41  std::vector<std::unique_ptr<TH1F>>& scaleVar,
42  std::vector<std::unique_ptr<TH1F>>& pdfVar,
43  std::vector<MonitorElement*>& tmps,
44  const std::string& name,
45  const std::string& title,
46  int nbin,
47  float low,
48  float high,
49  const std::string& xtitle,
50  const std::string& ytitle);
51 
52  void fillTemplates(std::vector<std::unique_ptr<TH1F>>& scaleVar,
53  std::vector<std::unique_ptr<TH1F>>& pdfVar,
54  std::vector<MonitorElement*>& tmps,
55  float obs);
56 
57  void envelop(const std::vector<std::unique_ptr<TH1F>>& var, std::vector<MonitorElement*>& tmps);
58  void pdfRMS(const std::vector<std::unique_ptr<TH1F>>& var, std::vector<MonitorElement*>& tmps);
59 
60  double weight_, orgWgt_;
61  std::vector<LHEEventProduct::WGT> weights_;
62 
66  std::vector<MonitorElement*> leadLepPtTemp_;
67  std::vector<MonitorElement*> leadLepEtaTemp_;
68  std::vector<MonitorElement*> jetMultTemp_;
69  std::vector<MonitorElement*> leadJetPtTemp_;
70  std::vector<MonitorElement*> leadJetEtaTemp_;
71 
72  std::vector<std::unique_ptr<TH1F>> leadLepPtScaleVar_;
73  std::vector<std::unique_ptr<TH1F>> leadLepPtPdfVar_;
74  std::vector<std::unique_ptr<TH1F>> leadLepEtaScaleVar_;
75  std::vector<std::unique_ptr<TH1F>> leadLepEtaPdfVar_;
76  std::vector<std::unique_ptr<TH1F>> jetMultScaleVar_;
77  std::vector<std::unique_ptr<TH1F>> jetMultPdfVar_;
78  std::vector<std::unique_ptr<TH1F>> leadJetPtScaleVar_;
79  std::vector<std::unique_ptr<TH1F>> leadJetPtPdfVar_;
80  std::vector<std::unique_ptr<TH1F>> leadJetEtaScaleVar_;
81  std::vector<std::unique_ptr<TH1F>> leadJetEtaPdfVar_;
82 
88 
89  const bool dumpLHEheader_;
92  const int nJetsNbin_, jetPtNbin_;
94 
95  const int nScaleVar_; // including Nominal
97 };
98 
99 #endif
const edm::InputTag lheLabel_
void envelop(const std::vector< std::unique_ptr< TH1F >> &var, std::vector< MonitorElement *> &tmps)
void pdfRMS(const std::vector< std::unique_ptr< TH1F >> &var, std::vector< MonitorElement *> &tmps)
std::vector< MonitorElement * > leadLepPtTemp_
MonitorElement * wgtVal_
std::vector< LHEEventProduct::WGT > weights_
std::vector< MonitorElement * > leadJetPtTemp_
std::vector< std::unique_ptr< TH1F > > leadLepEtaScaleVar_
~LheWeightValidation() override=default
void bookHistograms(DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
std::vector< std::unique_ptr< TH1F > > jetMultScaleVar_
void fillTemplates(std::vector< std::unique_ptr< TH1F >> &scaleVar, std::vector< std::unique_ptr< TH1F >> &pdfVar, std::vector< MonitorElement *> &tmps, float obs)
std::vector< std::unique_ptr< TH1F > > leadJetPtScaleVar_
std::vector< std::unique_ptr< TH1F > > leadJetEtaPdfVar_
std::vector< std::unique_ptr< TH1F > > leadLepPtScaleVar_
std::vector< std::unique_ptr< TH1F > > jetMultPdfVar_
LheWeightValidation(const edm::ParameterSet &)
void dqmBeginRun(const edm::Run &, const edm::EventSetup &) override
const edm::EDGetTokenT< reco::GenParticleCollection > genParticleToken_
MonitorElement * nlogWgt_
void analyze(const edm::Event &, const edm::EventSetup &) override
void bookTemplates(DQMHelper &aDqmHelper, std::vector< std::unique_ptr< TH1F >> &scaleVar, std::vector< std::unique_ptr< TH1F >> &pdfVar, std::vector< MonitorElement *> &tmps, const std::string &name, const std::string &title, int nbin, float low, float high, const std::string &xtitle, const std::string &ytitle)
std::vector< MonitorElement * > jetMultTemp_
const edm::EDGetTokenT< LHEEventProduct > lheEvtToken_
MonitorElement * nEvt_
std::vector< MonitorElement * > leadLepEtaTemp_
const double leadLepPtRange_
std::vector< std::unique_ptr< TH1F > > leadLepEtaPdfVar_
const edm::EDGetTokenT< reco::GenJetCollection > genJetToken_
const edm::EDGetTokenT< LHERunInfoProduct > lheRunToken_
std::vector< std::unique_ptr< TH1F > > leadJetEtaScaleVar_
std::vector< std::unique_ptr< TH1F > > leadJetPtPdfVar_
void dqmEndRun(const edm::Run &, const edm::EventSetup &) override
Definition: Run.h:45
std::vector< MonitorElement * > leadJetEtaTemp_
std::vector< std::unique_ptr< TH1F > > leadLepPtPdfVar_