Go to the documentation of this file.00001 #include "DQMOffline/PFTau/interface/CandidateBenchmark.h"
00002
00003 #include "DataFormats/Candidate/interface/Candidate.h"
00004
00005
00006 #include <TROOT.h>
00007 #include <TFile.h>
00008 #include <TH1.h>
00009 #include <TH2.h>
00010
00011
00012 using namespace std;
00013
00014
00015 CandidateBenchmark::CandidateBenchmark(Mode mode) : Benchmark(mode) {
00016 pt_ = 0;
00017 eta_ = 0;
00018 phi_ = 0;
00019 charge_ = 0;
00020 pdgId_ = 0;
00021
00022 histogramBooked_ = false;
00023
00024 }
00025
00026 CandidateBenchmark::~CandidateBenchmark() {}
00027
00028
00029 void CandidateBenchmark::setup() {
00030
00031 if (!histogramBooked_) {
00032 PhaseSpace ptPS(100,0,100);
00033 PhaseSpace phiPS(360, -3.1416, 3.1416);
00034 PhaseSpace etaPS(100, -5,5);
00035 switch(mode_) {
00036 case DQMOFFLINE:
00037 default:
00038 ptPS = PhaseSpace(50, 0, 100);
00039 phiPS.n = 50;
00040 etaPS.n = 20;
00041 break;
00042 }
00043
00044 pt_ = book1D("pt_", "pt_;p_{T} (GeV)", ptPS.n, ptPS.m, ptPS.M);
00045
00046 eta_ = book1D("eta_", "eta_;#eta", etaPS.n, etaPS.m, etaPS.M);
00047
00048 phi_ = book1D("phi_", "phi_;#phi", phiPS.n, phiPS.m, phiPS.M);
00049
00050 charge_ = book1D("charge_", "charge_;charge", 3,-1.5,1.5);
00051
00052 histogramBooked_ = true;
00053 }
00054 }
00055
00056 void CandidateBenchmark::setup(const edm::ParameterSet& parameterSet) {
00057 if (histogramBooked_) return;
00058 edm::ParameterSet ptPS = parameterSet.getParameter<edm::ParameterSet>("PtHistoParameter");
00059 edm::ParameterSet etaPS = parameterSet.getParameter<edm::ParameterSet>("EtaHistoParameter");
00060 edm::ParameterSet phiPS = parameterSet.getParameter<edm::ParameterSet>("PhiHistoParameter");
00061 edm::ParameterSet chPS = parameterSet.getParameter<edm::ParameterSet>("ChargeHistoParameter");
00062
00063 if (ptPS.getParameter<bool>("switchOn")) {
00064 pt_ = book1D("pt_", "pt_;p_{T} (GeV)", ptPS.getParameter<int32_t>("nBin"),
00065 ptPS.getParameter<double>("xMin"),
00066 ptPS.getParameter<double>("xMax"));
00067 }
00068
00069 if (etaPS.getParameter<bool>("switchOn")) {
00070 eta_ = book1D("eta_", "eta_;#eta", etaPS.getParameter<int32_t>("nBin"),
00071 etaPS.getParameter<double>("xMin"),
00072 etaPS.getParameter<double>("xMax"));
00073 }
00074 if (phiPS.getParameter<bool>("switchOn")) {
00075 phi_ = book1D("phi_", "phi_;#phi", phiPS.getParameter<int32_t>("nBin"),
00076 phiPS.getParameter<double>("xMin"),
00077 phiPS.getParameter<double>("xMax"));
00078 }
00079 if (chPS.getParameter<bool>("switchOn")) {
00080 charge_ = book1D("charge_","charge_;charge",chPS.getParameter<int32_t>("nBin"),
00081 chPS.getParameter<double>("xMin"),
00082 chPS.getParameter<double>("xMax"));
00083 }
00084 histogramBooked_ = true;
00085 }
00086
00087 void CandidateBenchmark::fillOne(const reco::Candidate& cand) {
00088
00089 if( !isInRange(cand.pt(), cand.eta(), cand.phi() ) ) return;
00090
00091 if (pt_) pt_->Fill( cand.pt() );
00092 if (eta_) eta_->Fill( cand.eta() );
00093 if (phi_) phi_->Fill( cand.phi() );
00094 if (charge_) charge_->Fill( cand.charge() );
00095 }