CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Private Attributes
BJetEnergyRegressionMVA Class Reference
Inheritance diagram for BJetEnergyRegressionMVA:
BaseMVAValueMapProducer< pat::Jet > edm::stream::EDProducer<>

Public Member Functions

 BJetEnergyRegressionMVA (const edm::ParameterSet &iConfig)
 
void fillAdditionalVariables (const pat::Jet &j) override
 
void readAdditionalCollections (edm::Event &iEvent, const edm::EventSetup &) override
 to be implemented in derived classes, filling values for additional variables More...
 
- Public Member Functions inherited from BaseMVAValueMapProducer< pat::Jet >
 BaseMVAValueMapProducer (const edm::ParameterSet &iConfig)
 
void setValue (const std::string var, float val)
 
 ~BaseMVAValueMapProducer () override
 
- Public Member Functions inherited from edm::stream::EDProducer<>
 EDProducer ()=default
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndRuns () const final
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 
- Static Public Member Functions inherited from BaseMVAValueMapProducer< pat::Jet >
static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 
static edm::ParameterSetDescription getDescription ()
 

Private Attributes

edm::Handle< std::vector< reco::Vertex > > pvs_
 
const edm::EDGetTokenT< std::vector< reco::Vertex > > pvsrc_
 
edm::Handle< double > rho_
 
edm::EDGetTokenT< double > rhosrc_
 
edm::Handle< edm::View< reco::VertexCompositePtrCandidate > > svs_
 
const edm::EDGetTokenT< edm::View< reco::VertexCompositePtrCandidate > > svsrc_
 

Additional Inherited Members

- Public Types inherited from edm::stream::EDProducer<>
typedef CacheContexts< T... > CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T... > HasAbility
 
typedef CacheTypes::LuminosityBlockCache LuminosityBlockCache
 
typedef LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCacheLuminosityBlockContext
 
typedef CacheTypes::LuminosityBlockSummaryCache LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache, GlobalCacheRunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 

Detailed Description

Definition at line 30 of file BJetEnergyRegressionMVA.cc.

Constructor & Destructor Documentation

BJetEnergyRegressionMVA::BJetEnergyRegressionMVA ( const edm::ParameterSet iConfig)
inlineexplicit

Definition at line 32 of file BJetEnergyRegressionMVA.cc.

34  pvsrc_(edm::stream::EDProducer<>::consumes<std::vector<reco::Vertex>>(
35  iConfig.getParameter<edm::InputTag>("pvsrc"))),
37  iConfig.getParameter<edm::InputTag>("svsrc"))),
39 
40  {}
T getParameter(std::string const &) const
const edm::EDGetTokenT< edm::View< reco::VertexCompositePtrCandidate > > svsrc_
edm::EDGetTokenT< double > rhosrc_
const edm::EDGetTokenT< std::vector< reco::Vertex > > pvsrc_

Member Function Documentation

void BJetEnergyRegressionMVA::fillAdditionalVariables ( const pat::Jet j)
inlineoverridevirtual

Reimplemented from BaseMVAValueMapProducer< pat::Jet >.

Definition at line 47 of file BJetEnergyRegressionMVA.cc.

References funct::abs(), ztail::d, pat::Jet::daughterPtrVector(), PbPb_ZMuSkimMuonDPG_cff::deltaR, pat::Jet::jecFactor(), reco::LeafCandidate::p4(), EgammaValidation_cff::pdgid, edm::Handle< T >::product(), pvs_, rho_, and BaseMVAValueMapProducer< pat::Jet >::setValue().

47  {
48  this->setValue("nPVs", pvs_->size());
49  this->setValue("rho", *(rho_.product()));
50 
51  float cone_boundaries[] = {0.05, 0.1, 0.2, 0.3, 0.4};
52  size_t ncone_boundaries = sizeof(cone_boundaries) / sizeof(float);
53  std::vector<float> emFractionEnergyRings(ncone_boundaries + 1);
54  std::vector<float> chFractionEnergyRings(ncone_boundaries + 1);
55  std::vector<float> neFractionEnergyRings(ncone_boundaries + 1);
56  std::vector<float> muFractionEnergyRings(ncone_boundaries + 1);
57  float jetRawEnergy = j.p4().E() * j.jecFactor("Uncorrected");
58  int numDaughtersPt03 = 0;
59  for (unsigned int ijcone = 0; ijcone < ncone_boundaries; ijcone++) {
60  emFractionEnergyRings[ijcone] = 0;
61  muFractionEnergyRings[ijcone] = 0;
62  chFractionEnergyRings[ijcone] = 0;
63  neFractionEnergyRings[ijcone] = 0;
64  }
65  for (const auto& d : j.daughterPtrVector()) {
66  float candDr = Geom::deltaR(d->p4(), j.p4());
67  size_t icone =
68  std::lower_bound(&cone_boundaries[0], &cone_boundaries[ncone_boundaries], candDr) - &cone_boundaries[0];
69  float candEnergy = d->energy() / jetRawEnergy;
70  int pdgid = abs(d->pdgId());
71  if (pdgid == 22 || pdgid == 11) {
72  emFractionEnergyRings[icone] += candEnergy;
73  } else if (pdgid == 13) {
74  muFractionEnergyRings[icone] += candEnergy;
75  } else if (d->charge() != 0) {
76  chFractionEnergyRings[icone] += candEnergy;
77  } else {
78  neFractionEnergyRings[icone] += candEnergy;
79  }
80  if (d->pt() > 0.3)
81  numDaughtersPt03 += 1;
82  } // end of jet daughters loop
83 
84  this->setValue("Jet_energyRing_dR0_em_Jet_rawEnergy", emFractionEnergyRings[0]);
85  this->setValue("Jet_energyRing_dR1_em_Jet_rawEnergy", emFractionEnergyRings[1]);
86  this->setValue("Jet_energyRing_dR2_em_Jet_rawEnergy", emFractionEnergyRings[2]);
87  this->setValue("Jet_energyRing_dR3_em_Jet_rawEnergy", emFractionEnergyRings[3]);
88  this->setValue("Jet_energyRing_dR4_em_Jet_rawEnergy", emFractionEnergyRings[4]);
89  // this->setValue("Jet_energyRing_dR5_em_Jet_rawEnergy", emFractionEnergyRings[5]);
90 
91  this->setValue("Jet_energyRing_dR0_ch_Jet_rawEnergy", chFractionEnergyRings[0]);
92  this->setValue("Jet_energyRing_dR1_ch_Jet_rawEnergy", chFractionEnergyRings[1]);
93  this->setValue("Jet_energyRing_dR2_ch_Jet_rawEnergy", chFractionEnergyRings[2]);
94  this->setValue("Jet_energyRing_dR3_ch_Jet_rawEnergy", chFractionEnergyRings[3]);
95  this->setValue("Jet_energyRing_dR4_ch_Jet_rawEnergy", chFractionEnergyRings[4]);
96  // this->setValue("Jet_energyRing_dR5_ch_Jet_rawEnergy", chFractionEnergyRings[5]);
97 
98  this->setValue("Jet_energyRing_dR0_mu_Jet_rawEnergy", muFractionEnergyRings[0]);
99  this->setValue("Jet_energyRing_dR1_mu_Jet_rawEnergy", muFractionEnergyRings[1]);
100  this->setValue("Jet_energyRing_dR2_mu_Jet_rawEnergy", muFractionEnergyRings[2]);
101  this->setValue("Jet_energyRing_dR3_mu_Jet_rawEnergy", muFractionEnergyRings[3]);
102  this->setValue("Jet_energyRing_dR4_mu_Jet_rawEnergy", muFractionEnergyRings[4]);
103  // this->setValue("Jet_energyRing_dR5_mu_Jet_rawEnergy", muFractionEnergyRings[5]);
104 
105  this->setValue("Jet_energyRing_dR0_neut_Jet_rawEnergy", neFractionEnergyRings[0]);
106  this->setValue("Jet_energyRing_dR1_neut_Jet_rawEnergy", neFractionEnergyRings[1]);
107  this->setValue("Jet_energyRing_dR2_neut_Jet_rawEnergy", neFractionEnergyRings[2]);
108  this->setValue("Jet_energyRing_dR3_neut_Jet_rawEnergy", neFractionEnergyRings[3]);
109  this->setValue("Jet_energyRing_dR4_neut_Jet_rawEnergy", neFractionEnergyRings[4]);
110  // this->setValue("Jet_energyRing_dR5_neut_Jet_rawEnergy", neFractionEnergyRings[5]);
111 
112  this->setValue("Jet_numDaughters_pt03", numDaughtersPt03);
113  }
void setValue(const std::string var, float val)
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
const LorentzVector & p4() const final
four-momentum Lorentz vector
edm::Handle< std::vector< reco::Vertex > > pvs_
d
Definition: ztail.py:151
T const * product() const
Definition: Handle.h:69
float jecFactor(const std::string &level, const std::string &flavor="none", const std::string &set="") const
const reco::CompositePtrCandidate::daughters & daughterPtrVector() const override
references to daughtes
static void BJetEnergyRegressionMVA::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
inlinestatic

Definition at line 115 of file BJetEnergyRegressionMVA.cc.

References edm::ConfigurationDescriptions::add(), edm::ParameterSetDescription::add(), and BaseMVAValueMapProducer< T >::getDescription().

115  {
117  desc.add<edm::InputTag>("pvsrc")->setComment("primary vertices input collection");
118  desc.add<edm::InputTag>("svsrc")->setComment("secondary vertices input collection");
119  desc.add<edm::InputTag>("rhosrc")->setComment("rho input collection");
120  descriptions.add("BJetEnergyRegressionMVA", desc);
121  }
static edm::ParameterSetDescription getDescription()
ParameterDescriptionBase * add(U const &iLabel, T const &value)
void add(std::string const &label, ParameterSetDescription const &psetDescription)
void BJetEnergyRegressionMVA::readAdditionalCollections ( edm::Event ,
const edm::EventSetup  
)
inlineoverridevirtual

to be implemented in derived classes, filling values for additional variables

Reimplemented from BaseMVAValueMapProducer< pat::Jet >.

Definition at line 41 of file BJetEnergyRegressionMVA.cc.

References edm::Event::getByToken(), pvs_, pvsrc_, rho_, rhosrc_, svs_, and svsrc_.

41  {
42  iEvent.getByToken(pvsrc_, pvs_);
43  iEvent.getByToken(svsrc_, svs_);
44  iEvent.getByToken(rhosrc_, rho_);
45  }
int iEvent
Definition: GenABIO.cc:224
const edm::EDGetTokenT< edm::View< reco::VertexCompositePtrCandidate > > svsrc_
edm::Handle< std::vector< reco::Vertex > > pvs_
edm::Handle< edm::View< reco::VertexCompositePtrCandidate > > svs_
edm::EDGetTokenT< double > rhosrc_
const edm::EDGetTokenT< std::vector< reco::Vertex > > pvsrc_

Member Data Documentation

edm::Handle<std::vector<reco::Vertex> > BJetEnergyRegressionMVA::pvs_
private
const edm::EDGetTokenT<std::vector<reco::Vertex> > BJetEnergyRegressionMVA::pvsrc_
private

Definition at line 124 of file BJetEnergyRegressionMVA.cc.

Referenced by readAdditionalCollections().

edm::Handle<double> BJetEnergyRegressionMVA::rho_
private
edm::EDGetTokenT<double> BJetEnergyRegressionMVA::rhosrc_
private

Definition at line 128 of file BJetEnergyRegressionMVA.cc.

Referenced by readAdditionalCollections().

edm::Handle<edm::View<reco::VertexCompositePtrCandidate> > BJetEnergyRegressionMVA::svs_
private

Definition at line 127 of file BJetEnergyRegressionMVA.cc.

Referenced by readAdditionalCollections().

const edm::EDGetTokenT<edm::View<reco::VertexCompositePtrCandidate> > BJetEnergyRegressionMVA::svsrc_
private

Definition at line 126 of file BJetEnergyRegressionMVA.cc.

Referenced by readAdditionalCollections().