CMS 3D CMS Logo

List of all members | Classes | Public Member Functions | Private Attributes
l1tpf::HGC3DClusterEgID Class Reference

#include <HGC3DClusterEgID.h>

Classes

class  Var
 

Public Member Functions

 HGC3DClusterEgID (const edm::ParameterSet &pset)
 
std::string method ()
 
float passID (l1t::HGCalMulticluster c, l1t::PFCluster &cpf)
 
void prepareTMVA ()
 

Private Attributes

bool isPUFilter_
 
std::string method_
 
StringCutObjectSelector< l1t::HGCalMulticlusterpreselection_
 
std::unique_ptr< TMVA::Reader > reader_
 
std::vector< Varvariables_
 
std::string weightsFile_
 
StringObjectFunction< l1t::HGCalMulticlusterwp_
 

Detailed Description

Definition at line 21 of file HGC3DClusterEgID.h.

Constructor & Destructor Documentation

◆ HGC3DClusterEgID()

l1tpf::HGC3DClusterEgID::HGC3DClusterEgID ( const edm::ParameterSet pset)

Definition at line 4 of file HGC3DClusterEgID.cc.

References muonDTDigis_cfi::pset, AlCaHLTBitMon_QueryRunRegistry::string, and variables_.

5  : isPUFilter_(pset.getParameter<bool>("isPUFilter")),
6  preselection_(pset.getParameter<std::string>("preselection")),
7  method_(pset.getParameter<std::string>("method")),
8  weightsFile_(pset.getParameter<std::string>("weightsFile")),
9  reader_(new TMVA::Reader()),
10  wp_(pset.getParameter<std::string>("wp")) {
11  // first create all the variables
12  for (const auto &psvar : pset.getParameter<std::vector<edm::ParameterSet>>("variables")) {
13  variables_.emplace_back(psvar.getParameter<std::string>("name"), psvar.getParameter<std::string>("value"));
14  }
15 }
StringCutObjectSelector< l1t::HGCalMulticluster > preselection_
std::vector< Var > variables_
StringObjectFunction< l1t::HGCalMulticluster > wp_
std::unique_ptr< TMVA::Reader > reader_

Member Function Documentation

◆ method()

std::string l1tpf::HGC3DClusterEgID::method ( )
inline

◆ passID()

float l1tpf::HGC3DClusterEgID::passID ( l1t::HGCalMulticluster  c,
l1t::PFCluster cpf 
)

Definition at line 28 of file HGC3DClusterEgID.cc.

References HltBtagPostValidation_cff::c, l1t::PFCluster::setEgVsPionMVAOut(), l1t::PFCluster::setEgVsPUMVAOut(), and trigObjTnPSource_cfi::var.

28  {
29  if (preselection_(c)) {
30  for (auto &var : variables_)
31  var.fill(c);
32  float mvaOut = reader_->EvaluateMVA(method_);
33  if (isPUFilter_)
34  cpf.setEgVsPUMVAOut(mvaOut);
35  else
36  cpf.setEgVsPionMVAOut(mvaOut);
37  return (mvaOut > wp_(c) ? 1 : 0);
38  } else {
39  if (isPUFilter_)
40  cpf.setEgVsPUMVAOut(-100.0);
41  else
42  cpf.setEgVsPionMVAOut(-100.0);
43  return 0;
44  }
45 }
void setEgVsPionMVAOut(float egVsPionMVAOut)
Definition: PFCluster.h:64
void setEgVsPUMVAOut(float egVsPUMVAOut)
Definition: PFCluster.h:67
StringCutObjectSelector< l1t::HGCalMulticluster > preselection_
std::vector< Var > variables_
StringObjectFunction< l1t::HGCalMulticluster > wp_
std::unique_ptr< TMVA::Reader > reader_

◆ prepareTMVA()

void l1tpf::HGC3DClusterEgID::prepareTMVA ( )

Definition at line 17 of file HGC3DClusterEgID.cc.

References edm::FileInPath::fullPath(), reco::details::loadTMVAWeights(), and trigObjTnPSource_cfi::var.

Referenced by l1tpf::PFClusterProducerFromHGC3DClusters::PFClusterProducerFromHGC3DClusters().

17  {
18  // Declare the variables
19  for (auto &var : variables_)
20  var.declare(*reader_);
21  // then read the weights
22  if (weightsFile_[0] != '/' && weightsFile_[0] != '.') {
24  }
26 }
std::string fullPath() const
Definition: FileInPath.cc:161
std::vector< Var > variables_
TMVA::IMethod * loadTMVAWeights(TMVA::Reader *reader, const std::string &method, const std::string &weightFile, bool verbose=false)
std::unique_ptr< TMVA::Reader > reader_

Member Data Documentation

◆ isPUFilter_

bool l1tpf::HGC3DClusterEgID::isPUFilter_
private

Definition at line 44 of file HGC3DClusterEgID.h.

◆ method_

std::string l1tpf::HGC3DClusterEgID::method_
private

Definition at line 47 of file HGC3DClusterEgID.h.

Referenced by method().

◆ preselection_

StringCutObjectSelector<l1t::HGCalMulticluster> l1tpf::HGC3DClusterEgID::preselection_
private

Definition at line 45 of file HGC3DClusterEgID.h.

◆ reader_

std::unique_ptr<TMVA::Reader> l1tpf::HGC3DClusterEgID::reader_
private

Definition at line 48 of file HGC3DClusterEgID.h.

◆ variables_

std::vector<Var> l1tpf::HGC3DClusterEgID::variables_
private

Definition at line 46 of file HGC3DClusterEgID.h.

Referenced by HGC3DClusterEgID().

◆ weightsFile_

std::string l1tpf::HGC3DClusterEgID::weightsFile_
private

Definition at line 47 of file HGC3DClusterEgID.h.

◆ wp_

StringObjectFunction<l1t::HGCalMulticluster> l1tpf::HGC3DClusterEgID::wp_
private

Definition at line 49 of file HGC3DClusterEgID.h.