CMS 3D CMS Logo

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
ElectronMVANtuplizer.cc
Go to the documentation of this file.
1 // -*- C++ -*-
2 //
3 // Package: RecoEgamma/ElectronIdentification
4 // Class: ElectronMVANtuplizer
5 //
13 //
14 // Original Author: Jonas REMBSER
15 // Created: Thu, 22 Mar 2018 14:54:24 GMT
16 //
17 //
18 
19 // user include files
36 
37 #include <TTree.h>
38 #include <TFile.h>
39 #include <Math/VectorUtil.h>
40 
41 //
42 // class declaration
43 //
44 
45 class ElectronMVANtuplizer : public edm::one::EDAnalyzer<edm::one::SharedResources> {
46 public:
47  explicit ElectronMVANtuplizer(const edm::ParameterSet&);
48 
49  static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
50 
51 private:
52  void analyze(const edm::Event&, const edm::EventSetup&) override;
53 
54  // method called once each job just before starting event loop
55  void beginJob() override{};
56  // method called once each job just after ending the event loop
57  void endJob() override{};
58 
60 
61  // ----------member data ---------------------------
62 
63  //global variables
64  int nEvent_;
65  int nRun_;
66  int nLumi_;
67  int genNpu_;
68  int vtxN_;
69 
70  // electron variables
71  float eleQ_;
72  int ele3Q_;
74 
75  std::vector<float> energyMatrix_;
76 
77  // gap variables
78  bool eleIsEB_;
79  bool eleIsEE_;
85 
86  // config
87  const bool isMC_;
88  const double deltaR_;
89  const double ptThreshold_;
90 
91  // ID decisions objects
92  const std::vector<std::string> eleMapTags_;
93  std::vector<edm::EDGetTokenT<edm::ValueMap<bool>>> eleMapTokens_;
94  const std::vector<std::string> eleMapBranchNames_;
95  const size_t nEleMaps_;
96 
97  // MVA values and categories (optional)
98  const std::vector<std::string> valMapTags_;
99  std::vector<edm::EDGetTokenT<edm::ValueMap<float>>> valMapTokens_;
100  const std::vector<std::string> valMapBranchNames_;
101  const size_t nValMaps_;
102 
103  const std::vector<std::string> mvaCatTags_;
104  std::vector<edm::EDGetTokenT<edm::ValueMap<int>>> mvaCatTokens_;
105  const std::vector<std::string> mvaCatBranchNames_;
106  const size_t nCats_;
107 
108  // Tokens
115 
116  // to hold ID decisions and categories
117  std::vector<int> mvaPasses_;
118  std::vector<float> mvaValues_;
119  std::vector<int> mvaCats_;
120 
121  // To get the auxiliary MVA variables
123 
124  // other
125  TTree* tree_;
126 
128  const int nVars_;
129  std::vector<float> vars_;
130 
131  const bool doEnergyMatrix_;
132  const int energyMatrixSize_;
133 };
134 
135 //
136 // constants, enums and typedefs
137 //
138 
144 }; // The last does not include tau parents
145 
146 //
147 // constructors and destructor
148 //
150  : isMC_(iConfig.getParameter<bool>("isMC")),
151  deltaR_(iConfig.getParameter<double>("deltaR")),
152  ptThreshold_(iConfig.getParameter<double>("ptThreshold")),
153  eleMapTags_(iConfig.getParameter<std::vector<std::string>>("eleMVAs")),
154  eleMapBranchNames_(iConfig.getParameter<std::vector<std::string>>("eleMVALabels")),
155  nEleMaps_(eleMapBranchNames_.size()),
156  valMapTags_(iConfig.getParameter<std::vector<std::string>>("eleMVAValMaps")),
157  valMapBranchNames_(iConfig.getParameter<std::vector<std::string>>("eleMVAValMapLabels")),
158  nValMaps_(valMapBranchNames_.size()),
159  mvaCatTags_(iConfig.getParameter<std::vector<std::string>>("eleMVACats")),
160  mvaCatBranchNames_(iConfig.getParameter<std::vector<std::string>>("eleMVACatLabels")),
161  nCats_(mvaCatBranchNames_.size()),
162  src_(consumes<edm::View<reco::GsfElectron>>(iConfig.getParameter<edm::InputTag>("src"))),
163  vertices_(consumes<std::vector<reco::Vertex>>(iConfig.getParameter<edm::InputTag>("vertices"))),
164  pileup_(consumes<std::vector<PileupSummaryInfo>>(iConfig.getParameter<edm::InputTag>("pileup"))),
165  genParticles_(consumes<edm::View<reco::GenParticle>>(iConfig.getParameter<edm::InputTag>("genParticles"))),
166  ebRecHits_(consumes<EcalRecHitCollection>(iConfig.getParameter<edm::InputTag>("ebReducedRecHitCollection"))),
167  eeRecHits_(consumes<EcalRecHitCollection>(iConfig.getParameter<edm::InputTag>("eeReducedRecHitCollection"))),
168  mvaPasses_(nEleMaps_),
169  mvaValues_(nValMaps_),
170  mvaCats_(nCats_),
171  variableHelper_(consumesCollector()),
172  mvaVarMngr_(iConfig.getParameter<std::string>("variableDefinition")),
173  nVars_(mvaVarMngr_.getNVars()),
174  vars_(nVars_),
175  doEnergyMatrix_(iConfig.getParameter<bool>("doEnergyMatrix")),
176  energyMatrixSize_(iConfig.getParameter<int>("energyMatrixSize")) {
177  // eleMaps
178  for (auto const& tag : eleMapTags_) {
180  }
181  // valMaps
182  for (auto const& tag : valMapTags_) {
184  }
185  // categories
186  for (auto const& tag : mvaCatTags_) {
188  }
189 
190  // Book tree
191  usesResource(TFileService::kSharedResource);
193  tree_ = fs->make<TTree>("tree", "tree");
194 
195  tree_->Branch("nEvent", &nEvent_);
196  tree_->Branch("nRun", &nRun_);
197  tree_->Branch("nLumi", &nLumi_);
198  if (isMC_)
199  tree_->Branch("genNpu", &genNpu_);
200  tree_->Branch("vtxN", &vtxN_);
201 
202  tree_->Branch("ele_q", &eleQ_);
203  tree_->Branch("ele_3q", &ele3Q_);
204 
205  if (doEnergyMatrix_)
206  tree_->Branch("energyMatrix", &energyMatrix_);
207 
208  if (isMC_)
209  tree_->Branch("matchedToGenEle", &matchedToGenEle_);
210 
211  for (int i = 0; i < nVars_; ++i)
212  tree_->Branch(mvaVarMngr_.getName(i).c_str(), &vars_[i]);
213 
214  tree_->Branch("ele_isEB", &eleIsEB_);
215  tree_->Branch("ele_isEE", &eleIsEE_);
216  tree_->Branch("ele_isEBEtaGap", &eleIsEBEtaGap_);
217  tree_->Branch("ele_isEBPhiGap", &eleIsEBPhiGap_);
218  tree_->Branch("ele_isEBEEGap", &eleIsEBEEGap_);
219  tree_->Branch("ele_isEEDeeGap", &eleIsEEDeeGap_);
220  tree_->Branch("ele_isEERingGap", &eleIsEERingGap_);
221 
222  // IDs
223  for (size_t k = 0; k < nValMaps_; ++k) {
224  tree_->Branch(valMapBranchNames_[k].c_str(), &mvaValues_[k]);
225  }
226 
227  for (size_t k = 0; k < nEleMaps_; ++k) {
228  tree_->Branch(eleMapBranchNames_[k].c_str(), &mvaPasses_[k]);
229  }
230 
231  for (size_t k = 0; k < nCats_; ++k) {
232  tree_->Branch(mvaCatBranchNames_[k].c_str(), &mvaCats_[k]);
233  }
234 }
235 
236 // ------------ method called for each event ------------
238  // Fill global event info
239  nEvent_ = iEvent.id().event();
240  nRun_ = iEvent.id().run();
241  nLumi_ = iEvent.luminosityBlock();
242 
243  // Get Handles
244  auto src = iEvent.getHandle(src_);
245  auto vertices = iEvent.getHandle(vertices_);
246 
247  // initialize cluster tools
248  std::unique_ptr<noZS::EcalClusterLazyTools> lazyTools;
249  if (doEnergyMatrix_) {
250  // Configure Lazy Tools, which will compute 5x5 quantities
251  lazyTools = std::make_unique<noZS::EcalClusterLazyTools>(iEvent, iSetup, ebRecHits_, eeRecHits_);
252  }
253 
254  // Get MC only Handles, which are allowed to be non-valid
255  auto genParticles = iEvent.getHandle(genParticles_);
256  auto pileup = iEvent.getHandle(pileup_);
257 
258  vtxN_ = vertices->size();
259 
260  // Fill with true number of pileup
261  if (isMC_) {
262  for (const auto& pu : *pileup) {
263  int bx = pu.getBunchCrossing();
264  if (bx == 0) {
265  genNpu_ = pu.getPU_NumInteractions();
266  break;
267  }
268  }
269  }
270 
271  // Get MVA decisions
273  for (size_t k = 0; k < nEleMaps_; ++k) {
274  iEvent.getByToken(eleMapTokens_[k], decisions[k]);
275  }
276 
277  // Get MVA values
279  for (size_t k = 0; k < nValMaps_; ++k) {
280  iEvent.getByToken(valMapTokens_[k], values[k]);
281  }
282 
283  // Get MVA categories
285  for (size_t k = 0; k < nCats_; ++k) {
286  iEvent.getByToken(mvaCatTokens_[k], mvaCats[k]);
287  }
288 
289  std::vector<float> extraVariables = variableHelper_.getAuxVariables(iEvent);
290 
291  for (auto const& ele : src->ptrs()) {
292  if (ele->pt() < ptThreshold_)
293  continue;
294 
295  // Fill the energy matrix around the seed
296  if (doEnergyMatrix_) {
297  const auto& seed = *(ele->superCluster()->seed());
298  energyMatrix_ = lazyTools->energyMatrix(seed, energyMatrixSize_);
299  }
300 
301  // Fill various tree variable
302  eleQ_ = ele->charge();
303  ele3Q_ = ele->chargeInfo().isGsfCtfScPixConsistent;
304 
305  for (int iVar = 0; iVar < nVars_; ++iVar) {
306  vars_[iVar] = mvaVarMngr_.getValue(iVar, *ele, extraVariables);
307  }
308 
309  if (isMC_) {
311  }
312 
313  // gap variables
314  eleIsEB_ = ele->isEB();
315  eleIsEE_ = ele->isEE();
316  eleIsEBEEGap_ = ele->isEBEEGap();
317  eleIsEBEtaGap_ = ele->isEBEtaGap();
318  eleIsEBPhiGap_ = ele->isEBPhiGap();
319  eleIsEEDeeGap_ = ele->isEEDeeGap();
320  eleIsEERingGap_ = ele->isEERingGap();
321 
322  //
323  // Look up and save the ID decisions
324  //
325  for (size_t k = 0; k < nEleMaps_; ++k)
326  mvaPasses_[k] = static_cast<int>((*decisions[k])[ele]);
327  for (size_t k = 0; k < nValMaps_; ++k)
328  mvaValues_[k] = (*values[k])[ele];
329  for (size_t k = 0; k < nCats_; ++k)
330  mvaCats_[k] = (*mvaCats[k])[ele];
331 
332  tree_->Fill();
333  }
334 }
335 
338  //
339  // Explicit loop and geometric matching method (advised by Josh Bendavid)
340  //
341 
342  // Find the closest status 1 gen electron to the reco electron
343  double dR = 999;
344  reco::GenParticle const* closestElectron = nullptr;
345  for (auto const& particle : genParticles) {
346  // Drop everything that is not electron or not status 1
347  if (std::abs(particle.pdgId()) != 11 || particle.status() != 1)
348  continue;
349  //
350  double dRtmp = ROOT::Math::VectorUtil::DeltaR(electron.p4(), particle.p4());
351  if (dRtmp < dR) {
352  dR = dRtmp;
353  closestElectron = &particle;
354  }
355  }
356  // See if the closest electron is close enough. If not, no match found.
357  if (closestElectron == nullptr || dR >= deltaR_)
358  return UNMATCHED;
359 
360  if (closestElectron->fromHardProcessFinalState())
361  return TRUE_PROMPT_ELECTRON;
362 
363  if (closestElectron->isDirectHardProcessTauDecayProductFinalState())
364  return TRUE_ELECTRON_FROM_TAU;
365 
366  // What remains is true non-prompt electrons
368 }
369 
370 // ------------ method fills 'descriptions' with the allowed parameters for the module ------------
373  desc.add<edm::InputTag>("src", edm::InputTag("slimmedElectrons"));
374  desc.add<edm::InputTag>("vertices", edm::InputTag("offlineSlimmedPrimaryVertices"));
375  desc.add<edm::InputTag>("pileup", edm::InputTag("slimmedAddPileupInfo"));
376  desc.add<edm::InputTag>("genParticles", edm::InputTag("prunedGenParticles"));
377  desc.add<edm::InputTag>("ebReducedRecHitCollection", edm::InputTag("reducedEgamma", "reducedEBRecHits"));
378  desc.add<edm::InputTag>("eeReducedRecHitCollection", edm::InputTag("reducedEgamma", "reducedEERecHits"));
379  desc.add<std::string>("variableDefinition");
380  desc.add<bool>("doEnergyMatrix", false);
381  desc.add<int>("energyMatrixSize", 2)->setComment("extension of crystals in each direction away from the seed");
382  desc.add<bool>("isMC", true);
383  desc.add<double>("deltaR", 0.1);
384  desc.add<double>("ptThreshold", 5.0);
385  desc.add<std::vector<std::string>>("eleMVAs", {});
386  desc.add<std::vector<std::string>>("eleMVALabels", {});
387  desc.add<std::vector<std::string>>("eleMVAValMaps", {});
388  desc.add<std::vector<std::string>>("eleMVAValMapLabels", {});
389  desc.add<std::vector<std::string>>("eleMVACats", {});
390  desc.add<std::vector<std::string>>("eleMVACatLabels", {});
391  descriptions.addDefault(desc);
392 }
393 
394 //define this as a plug-in
ElectronMVANtuplizer::eleQ_
float eleQ_
Definition: ElectronMVANtuplizer.cc:71
ElectronMVANtuplizer::valMapTokens_
std::vector< edm::EDGetTokenT< edm::ValueMap< float > > > valMapTokens_
Definition: ElectronMVANtuplizer.cc:99
ElectronMVANtuplizer::valMapTags_
const std::vector< std::string > valMapTags_
Definition: ElectronMVANtuplizer.cc:98
PileupSummaryInfo.h
TRUE_ELECTRON_FROM_TAU
Definition: ElectronMVANtuplizer.cc:142
electrons_cff.bool
bool
Definition: electrons_cff.py:372
EDAnalyzer.h
mps_fire.i
i
Definition: mps_fire.py:355
ElectronMVANtuplizer::mvaCatTags_
const std::vector< std::string > mvaCatTags_
Definition: ElectronMVANtuplizer.cc:103
edm::ParameterSetDescription::add
ParameterDescriptionBase * add(U const &iLabel, T const &value)
Definition: ParameterSetDescription.h:95
ElectronMVANtuplizer::beginJob
void beginJob() override
Definition: ElectronMVANtuplizer.cc:55
genParticles2HepMC_cfi.genParticles
genParticles
Definition: genParticles2HepMC_cfi.py:4
ElectronMVANtuplizer::mvaPasses_
std::vector< int > mvaPasses_
Definition: ElectronMVANtuplizer.cc:117
ElectronMVANtuplizer::eleMapTags_
const std::vector< std::string > eleMapTags_
Definition: ElectronMVANtuplizer.cc:92
ElectronMVANtuplizer::genParticles_
const edm::EDGetTokenT< edm::View< reco::GenParticle > > genParticles_
Definition: ElectronMVANtuplizer.cc:112
MVAVariableManager::getValue
float getValue(int index, const ParticleType &particle, const std::vector< float > &auxVariables) const
Definition: MVAVariableManager.h:51
sistrip::View
View
Definition: ConstantsForView.h:26
reco::GenParticle
Definition: GenParticle.h:21
edm::EDGetTokenT
Definition: EDGetToken.h:33
edm
HLT enums.
Definition: AlignableModifier.h:19
ElectronMVANtuplizer::nCats_
const size_t nCats_
Definition: ElectronMVANtuplizer.cc:106
ElectronMVANtuplizer::mvaValues_
std::vector< float > mvaValues_
Definition: ElectronMVANtuplizer.cc:118
ElectronMVANtuplizer::eleIsEBPhiGap_
bool eleIsEBPhiGap_
Definition: ElectronMVANtuplizer.cc:81
ElectronMVANtuplizer::mvaCatTokens_
std::vector< edm::EDGetTokenT< edm::ValueMap< int > > > mvaCatTokens_
Definition: ElectronMVANtuplizer.cc:104
l1GtPatternGenerator_cfi.bx
bx
Definition: l1GtPatternGenerator_cfi.py:18
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
ElectronMVANtuplizer::vtxN_
int vtxN_
Definition: ElectronMVANtuplizer.cc:68
ElectronMVANtuplizer::ebRecHits_
const edm::EDGetTokenT< EcalRecHitCollection > ebRecHits_
Definition: ElectronMVANtuplizer.cc:113
edm::SortedCollection< EcalRecHit >
EcalClusterLazyTools.h
reco
fixed size matrix
Definition: AlignmentAlgorithmBase.h:45
edm::one::EDAnalyzer
Definition: EDAnalyzer.h:30
ElectronMVANtuplizer::eeRecHits_
const edm::EDGetTokenT< EcalRecHitCollection > eeRecHits_
Definition: ElectronMVANtuplizer.cc:114
edm::Handle
Definition: AssociativeIterator.h:50
GenParticle
Definition: GenParticle.py:1
MVAVariableManager::getName
const std::string & getName(int index) const
Definition: MVAVariableManager.h:47
ElectronMVANtuplizer::deltaR_
const double deltaR_
Definition: ElectronMVANtuplizer.cc:88
ElectronMVANtuplizer::vars_
std::vector< float > vars_
Definition: ElectronMVANtuplizer.cc:129
MakerMacros.h
ElectronMVANtuplizer::ElectronMVANtuplizer
ElectronMVANtuplizer(const edm::ParameterSet &)
Definition: ElectronMVANtuplizer.cc:149
DEFINE_FWK_MODULE
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
ElectronMatchType
ElectronMatchType
Definition: ElectronMVANtuplizer.cc:139
ElectronMVANtuplizer::eleIsEBEEGap_
bool eleIsEBEEGap_
Definition: ElectronMVANtuplizer.cc:82
ElectronMVANtuplizer::eleMapTokens_
std::vector< edm::EDGetTokenT< edm::ValueMap< bool > > > eleMapTokens_
Definition: ElectronMVANtuplizer.cc:93
GlobalPosition_Frontier_DevDB_cff.tag
tag
Definition: GlobalPosition_Frontier_DevDB_cff.py:11
ElectronMVANtuplizer::src_
const edm::EDGetTokenT< edm::View< reco::GsfElectron > > src_
Definition: ElectronMVANtuplizer.cc:109
MVAVariableHelper::getAuxVariables
const std::vector< float > getAuxVariables(const edm::Event &iEvent) const
Definition: MVAVariableHelper.cc:7
Service.h
mixOne_premix_on_sim_cfi.pileup
pileup
Definition: mixOne_premix_on_sim_cfi.py:42
contentValuesCheck.values
values
Definition: contentValuesCheck.py:38
MVAVariableManager.h
metsig::electron
Definition: SignAlgoResolutions.h:48
ElectronMVANtuplizer::energyMatrix_
std::vector< float > energyMatrix_
Definition: ElectronMVANtuplizer.cc:75
ElectronMVANtuplizer::eleMapBranchNames_
const std::vector< std::string > eleMapBranchNames_
Definition: ElectronMVANtuplizer.cc:94
ElectronMVANtuplizer::mvaVarMngr_
MVAVariableManager< reco::GsfElectron > mvaVarMngr_
Definition: ElectronMVANtuplizer.cc:127
ElectronMVANtuplizer::endJob
void endJob() override
Definition: ElectronMVANtuplizer.cc:57
reco::GsfElectron
Definition: GsfElectron.h:35
dqmdumpme.k
k
Definition: dqmdumpme.py:60
TRUE_NON_PROMPT_ELECTRON
Definition: ElectronMVANtuplizer.cc:143
ElectronMVANtuplizer::mvaCats_
std::vector< int > mvaCats_
Definition: ElectronMVANtuplizer.cc:119
GsfElectron.h
EDGetToken.h
ElectronMVANtuplizer
Definition: ElectronMVANtuplizer.cc:45
ElectronMVANtuplizer::tree_
TTree * tree_
Definition: ElectronMVANtuplizer.cc:125
edm::ConfigurationDescriptions
Definition: ConfigurationDescriptions.h:28
ElectronMVANtuplizer::eleIsEBEtaGap_
bool eleIsEBEtaGap_
Definition: ElectronMVANtuplizer.cc:80
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
Vertex.h
reco::GenParticle::isDirectHardProcessTauDecayProductFinalState
bool isDirectHardProcessTauDecayProductFinalState() const
Definition: GenParticle.h:85
ElectronMVANtuplizer::valMapBranchNames_
const std::vector< std::string > valMapBranchNames_
Definition: ElectronMVANtuplizer.cc:100
TFileService.h
edm::View
Definition: CaloClusterFwd.h:14
HLT_2018_cff.InputTag
InputTag
Definition: HLT_2018_cff.py:79016
edm::ParameterSet
Definition: ParameterSet.h:36
ElectronMVANtuplizer::isMC_
const bool isMC_
Definition: ElectronMVANtuplizer.cc:87
TrackRefitter_38T_cff.src
src
Definition: TrackRefitter_38T_cff.py:24
ElectronMVANtuplizer::genNpu_
int genNpu_
Definition: ElectronMVANtuplizer.cc:67
Event.h
ElectronMVANtuplizer::variableHelper_
const MVAVariableHelper variableHelper_
Definition: ElectronMVANtuplizer.cc:122
ElectronMVANtuplizer::nLumi_
int nLumi_
Definition: ElectronMVANtuplizer.cc:66
edm::Service< TFileService >
createfilelist.int
int
Definition: createfilelist.py:10
iEvent
int iEvent
Definition: GenABIO.cc:224
ElectronMVANtuplizer::eleIsEEDeeGap_
bool eleIsEEDeeGap_
Definition: ElectronMVANtuplizer.cc:83
ElectronMVANtuplizer::ele3Q_
int ele3Q_
Definition: ElectronMVANtuplizer.cc:72
edm::EventSetup
Definition: EventSetup.h:57
electronAnalyzer_cfi.DeltaR
DeltaR
Definition: electronAnalyzer_cfi.py:33
InputTag.h
ElectronMVANtuplizer::vertices_
const edm::EDGetTokenT< std::vector< reco::Vertex > > vertices_
Definition: ElectronMVANtuplizer.cc:110
ElectronMVANtuplizer::matchToTruth
int matchToTruth(reco::GsfElectron const &electron, edm::View< reco::GenParticle > const &genParticles) const
Definition: ElectronMVANtuplizer.cc:336
VertexFwd.h
ElectronMVANtuplizer::nVars_
const int nVars_
Definition: ElectronMVANtuplizer.cc:128
ElectronMVANtuplizer::eleIsEE_
bool eleIsEE_
Definition: ElectronMVANtuplizer.cc:79
nVars_
constexpr int nVars_
Definition: PhotonIDValueMapProducer.cc:120
ElectronMVANtuplizer::energyMatrixSize_
const int energyMatrixSize_
Definition: ElectronMVANtuplizer.cc:132
ElectronMVANtuplizer::fillDescriptions
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
Definition: ElectronMVANtuplizer.cc:371
std
Definition: JetResolutionObject.h:76
ElectronMVANtuplizer::doEnergyMatrix_
const bool doEnergyMatrix_
Definition: ElectronMVANtuplizer.cc:131
MVAVariableManager< reco::GsfElectron >
HltBtagValidation_cff.Vertex
Vertex
Definition: HltBtagValidation_cff.py:32
ElectronMVANtuplizer::pileup_
const edm::EDGetTokenT< std::vector< PileupSummaryInfo > > pileup_
Definition: ElectronMVANtuplizer.cc:111
ElectronMVANtuplizer::matchedToGenEle_
int matchedToGenEle_
Definition: ElectronMVANtuplizer.cc:73
Frameworkfwd.h
ElectronMVANtuplizer::nEvent_
int nEvent_
Definition: ElectronMVANtuplizer.cc:64
edm::ValueMap
Definition: ValueMap.h:107
TFileService::kSharedResource
static const std::string kSharedResource
Definition: TFileService.h:76
TRUE_PROMPT_ELECTRON
Definition: ElectronMVANtuplizer.cc:141
ElectronMVANtuplizer::nEleMaps_
const size_t nEleMaps_
Definition: ElectronMVANtuplizer.cc:95
Electron.h
ElectronMVANtuplizer::mvaCatBranchNames_
const std::vector< std::string > mvaCatBranchNames_
Definition: ElectronMVANtuplizer.cc:105
ElectronMVANtuplizer::eleIsEB_
bool eleIsEB_
Definition: ElectronMVANtuplizer.cc:78
muons2muons_cfi.pu
pu
Definition: muons2muons_cfi.py:31
ElectronMVANtuplizer::eleIsEERingGap_
bool eleIsEERingGap_
Definition: ElectronMVANtuplizer.cc:84
UNMATCHED
Definition: ElectronMVANtuplizer.cc:140
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
HGC3DClusterGenMatchSelector_cfi.dR
dR
Definition: HGC3DClusterGenMatchSelector_cfi.py:7
ParameterSet.h
edm::EDConsumerBase::consumes
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
Definition: EDConsumerBase.h:126
reco::GenParticle::fromHardProcessFinalState
bool fromHardProcessFinalState() const
Definition: GenParticle.h:75
ElectronMVANtuplizer::nValMaps_
const size_t nValMaps_
Definition: ElectronMVANtuplizer.cc:101
edm::Event
Definition: Event.h:73
ElectronMVANtuplizer::analyze
void analyze(const edm::Event &, const edm::EventSetup &) override
Definition: ElectronMVANtuplizer.cc:237
edm::ConfigurationDescriptions::addDefault
void addDefault(ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:99
ElectronMVANtuplizer::ptThreshold_
const double ptThreshold_
Definition: ElectronMVANtuplizer.cc:89
ElectronMVANtuplizer::nRun_
int nRun_
Definition: ElectronMVANtuplizer.cc:65
MVAVariableHelper
Definition: MVAVariableHelper.h:23
edm::InputTag
Definition: InputTag.h:15
PileupSummaryInfo
Definition: PileupSummaryInfo.h:22
SurveyInfoScenario_cff.seed
seed
Definition: SurveyInfoScenario_cff.py:295
TFileService::make
T * make(const Args &... args) const
make new ROOT object
Definition: TFileService.h:64
findQualityFiles.size
size
Write out results.
Definition: findQualityFiles.py:443
pwdgSkimBPark_cfi.vertices
vertices
Definition: pwdgSkimBPark_cfi.py:7