CMS 3D CMS Logo

EgammaRegressionContainer.cc
Go to the documentation of this file.
2 
9 
11  : outputTransformerLowEt_(iConfig.getParameter<double>("rangeMinLowEt"),
12  iConfig.getParameter<double>("rangeMaxLowEt")),
13  outputTransformerHighEt_(iConfig.getParameter<double>("rangeMinHighEt"),
14  iConfig.getParameter<double>("rangeMaxHighEt")),
15  forceHighEnergyTrainingIfSaturated_(iConfig.getParameter<bool>("forceHighEnergyTrainingIfSaturated")),
16  lowEtHighEtBoundary_(iConfig.getParameter<double>("lowEtHighEtBoundary")),
17  ebLowEtForestName_(iConfig.getParameter<std::string>("ebLowEtForestName")),
18  ebHighEtForestName_(iConfig.getParameter<std::string>("ebHighEtForestName")),
19  eeLowEtForestName_(iConfig.getParameter<std::string>("eeLowEtForestName")),
20  eeHighEtForestName_(iConfig.getParameter<std::string>("eeHighEtForestName")),
21  ebLowEtForest_(nullptr),
22  ebHighEtForest_(nullptr),
23  eeLowEtForest_(nullptr),
24  eeHighEtForest_(nullptr) {}
25 
28  desc.add<double>("rangeMinLowEt", -1.);
29  desc.add<double>("rangeMaxLowEt", 3.0);
30  desc.add<double>("rangeMinHighEt", -1.);
31  desc.add<double>("rangeMaxHighEt", 3.0);
32  desc.add<double>("lowEtHighEtBoundary", 50.);
33  desc.add<bool>("forceHighEnergyTrainingIfSaturated", false);
34  desc.add<std::string>("ebLowEtForestName", "electron_eb_ECALTRK_lowpt");
35  desc.add<std::string>("ebHighEtForestName", "electron_eb_ECALTRK");
36  desc.add<std::string>("eeLowEtForestName", "electron_ee_ECALTRK_lowpt");
37  desc.add<std::string>("eeHighEtForestName", "electron_ee_ECALTRK");
38  return desc;
39 }
40 
41 namespace {
42  const GBRForestD* getForest(const edm::EventSetup& iSetup, const std::string& name) {
44  iSetup.get<GBRDWrapperRcd>().get(name, handle);
45  return handle.product();
46  }
47 } // namespace
48 
50  ebLowEtForest_ = getForest(iSetup, ebLowEtForestName_);
51  ebHighEtForest_ = getForest(iSetup, ebHighEtForestName_);
52  eeLowEtForest_ = getForest(iSetup, eeLowEtForestName_);
53  eeHighEtForest_ = getForest(iSetup, eeHighEtForestName_);
54 }
55 
57  const bool isEB,
58  const bool isSaturated,
59  const float* data) const {
60  if (useLowEtBin(et, isSaturated)) {
61  if (isEB)
63  else
65  } else {
66  if (isEB)
68  else
70  }
71 }
72 
73 bool EgammaRegressionContainer::useLowEtBin(const float et, const bool isSaturated) const {
74  if (isSaturated && forceHighEnergyTrainingIfSaturated_)
75  return false;
76  else
77  return et < lowEtHighEtBoundary_;
78 }
void setEventContent(const edm::EventSetup &iSetup)
double GetResponse(const float *vector) const
Definition: GBRForestD.h:52
float operator()(const float et, const bool isEB, const bool isSaturated, const float *data) const
#define nullptr
const EgammaBDTOutputTransformer outputTransformerHighEt_
const EgammaBDTOutputTransformer outputTransformerLowEt_
static edm::ParameterSetDescription makePSetDescription()
bool useLowEtBin(const float et, const bool isSaturated) const
ParameterDescriptionBase * add(U const &iLabel, T const &value)
bool isSaturated(const Digi &digi, const int &maxADCvalue, int ifirst, int n)
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:79
T get() const
Definition: EventSetup.h:73
EgammaRegressionContainer(const edm::ParameterSet &iConfig)
T const * product() const
Definition: ESHandle.h:86