File indexing completed on 2024-04-06 12:24:32
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020 #include <iostream>
0021 #include <memory>
0022
0023
0024 #include "FWCore/Framework/interface/Frameworkfwd.h"
0025 #include "FWCore/Framework/interface/one/EDAnalyzer.h"
0026
0027 #include "FWCore/Framework/interface/Event.h"
0028 #include "FWCore/Framework/interface/MakerMacros.h"
0029 #include "FWCore/Framework/interface/EventSetup.h"
0030 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0031 #include "FWCore/Framework/interface/ESHandle.h"
0032
0033
0034
0035
0036 #include "RecoBTag/Records/interface/BTagPerformanceRecord.h"
0037
0038 #include "CondFormats/PhysicsToolsObjects/interface/BinningPointByMap.h"
0039 #include "RecoBTag/PerformanceDB/interface/BtagPerformance.h"
0040
0041 class TestPerformanceFW_ES_TFormula : public edm::one::EDAnalyzer<> {
0042 public:
0043 explicit TestPerformanceFW_ES_TFormula(const edm::ParameterSet&);
0044
0045 private:
0046 std::string name_;
0047 edm::ESGetToken<BtagPerformance, BTagPerformanceRecord> token_;
0048 void analyze(const edm::Event&, const edm::EventSetup&) final;
0049
0050
0051 };
0052
0053
0054
0055
0056
0057
0058
0059
0060
0061
0062
0063
0064
0065 TestPerformanceFW_ES_TFormula::TestPerformanceFW_ES_TFormula(const edm::ParameterSet& iConfig)
0066
0067 {
0068
0069 std::cout << " In the constructor" << std::endl;
0070
0071 name_ = iConfig.getParameter<std::string>("AlgoName");
0072
0073 token_ = esConsumes(edm::ESInputTag("", name_));
0074 }
0075
0076
0077
0078
0079
0080
0081 void TestPerformanceFW_ES_TFormula::analyze(const edm::Event& iEvent, const edm::EventSetup& iSetup) {
0082 std::cout << " Studying performance with label " << name_ << std::endl;
0083
0084 const BtagPerformance& perf = iSetup.getData(token_);
0085
0086
0087
0088
0089
0090
0091
0092 BinningPointByMap p;
0093
0094 std::cout << " My Performance Object is indeed a " << typeid(&perf).name() << std::endl;
0095
0096
0097
0098 std::cout << " The WP is defined by a cut at " << perf.workingPoint().cut() << std::endl;
0099 std::cout << " Discriminant is " << perf.workingPoint().discriminantName() << std::endl;
0100 std::cout << " Is cut based WP " << perf.workingPoint().cutBased() << std::endl;
0101
0102 p.insert(BinningVariables::JetEta, 0.6);
0103 p.insert(BinningVariables::Discriminator, 0.23);
0104
0105 std::cout << " test eta=0.6, discrim = 0.3" << std::endl;
0106 std::cout << " beff/berr ?" << perf.isResultOk(PerformanceResult::BTAGBEFF, p) << "/"
0107 << perf.isResultOk(PerformanceResult::BTAGBERR, p) << std::endl;
0108 std::cout << " beff/berr =" << perf.getResult(PerformanceResult::BTAGBEFF, p) << "/"
0109 << perf.getResult(PerformanceResult::BTAGBERR, p) << std::endl;
0110 std::cout << " bSF/bFSerr ?" << perf.isResultOk(PerformanceResult::BTAGBEFFCORR, p) << "/"
0111 << perf.isResultOk(PerformanceResult::BTAGBERRCORR, p) << std::endl;
0112 std::cout << " bSF/bSFerr =" << perf.getResult(PerformanceResult::BTAGBEFFCORR, p) << "/"
0113 << perf.getResult(PerformanceResult::BTAGBERRCORR, p) << std::endl;
0114
0115 std::cout << std::endl;
0116
0117 p.insert(BinningVariables::JetEta, 1.8);
0118 p.insert(BinningVariables::Discriminator, 0.53);
0119
0120 std::cout << " NEW POINT " << std::endl;
0121
0122 std::cout << " test eta=1.8, discrim = 0.3" << std::endl;
0123 std::cout << " beff/berr ?" << perf.isResultOk(PerformanceResult::BTAGBEFF, p) << "/"
0124 << perf.isResultOk(PerformanceResult::BTAGBERR, p) << std::endl;
0125 std::cout << " beff/berr =" << perf.getResult(PerformanceResult::BTAGBEFF, p) << "/"
0126 << perf.getResult(PerformanceResult::BTAGBERR, p) << std::endl;
0127 std::cout << " bSF/bFSerr ?" << perf.isResultOk(PerformanceResult::BTAGBEFFCORR, p) << "/"
0128 << perf.isResultOk(PerformanceResult::BTAGBERRCORR, p) << std::endl;
0129 std::cout << " bSF/bSFerr =" << perf.getResult(PerformanceResult::BTAGBEFFCORR, p) << "/"
0130 << perf.getResult(PerformanceResult::BTAGBERRCORR, p) << std::endl;
0131
0132 p.insert(BinningVariables::JetEta, 0.8);
0133 p.insert(BinningVariables::Discriminator, 1.64);
0134
0135 std::cout << std::endl;
0136
0137 std::cout << " NEW POINT " << std::endl;
0138
0139 std::cout << " test eta=3.8, discrim = 0.4" << std::endl;
0140 std::cout << " beff/berr ?" << perf.isResultOk(PerformanceResult::BTAGBEFF, p) << "/"
0141 << perf.isResultOk(PerformanceResult::BTAGBERR, p) << std::endl;
0142 std::cout << " beff/berr =" << perf.getResult(PerformanceResult::BTAGBEFF, p) << "/"
0143 << perf.getResult(PerformanceResult::BTAGBERR, p) << std::endl;
0144 std::cout << " bSF/bFSerr ?" << perf.isResultOk(PerformanceResult::BTAGBEFFCORR, p) << "/"
0145 << perf.isResultOk(PerformanceResult::BTAGBERRCORR, p) << std::endl;
0146 std::cout << " bSF/bSFerr =" << perf.getResult(PerformanceResult::BTAGBEFFCORR, p) << "/"
0147 << perf.getResult(PerformanceResult::BTAGBERRCORR, p) << std::endl;
0148
0149
0150
0151
0152
0153
0154
0155
0156
0157
0158
0159
0160
0161
0162
0163
0164
0165
0166
0167
0168
0169
0170
0171
0172
0173
0174
0175
0176
0177
0178
0179
0180
0181
0182
0183
0184
0185
0186
0187
0188
0189
0190
0191
0192
0193
0194
0195
0196 }
0197
0198
0199 DEFINE_FWK_MODULE(TestPerformanceFW_ES_TFormula);