CMS 3D CMS Logo

List of all members | Public Member Functions | Private Attributes
BasicGenParticleValidation Class Reference

#include <BasicGenParticleValidation.h>

Inheritance diagram for BasicGenParticleValidation:
DQMEDAnalyzer edm::one::EDProducer< edm::EndRunProducer, edm::one::WatchRuns, edm::EndLuminosityBlockProducer, edm::one::WatchLuminosityBlocks, edm::Accumulator > edm::one::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

void analyze (const edm::Event &, const edm::EventSetup &) override
 
 BasicGenParticleValidation (const edm::ParameterSet &)
 
void bookHistograms (DQMStore::IBooker &i, edm::Run const &, edm::EventSetup const &) override
 
bool matchParticles (const HepMC::GenParticle *&, const reco::GenParticle *&)
 
 ~BasicGenParticleValidation () override
 
- Public Member Functions inherited from DQMEDAnalyzer
void accumulate (edm::Event const &event, edm::EventSetup const &setup) final
 
virtual void analyze (edm::Event const &, edm::EventSetup const &)
 
void beginLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final
 
void beginRun (edm::Run const &run, edm::EventSetup const &setup) final
 
virtual void dqmBeginLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &)
 
virtual void dqmBeginRun (edm::Run const &, edm::EventSetup const &)
 
 DQMEDAnalyzer ()
 
virtual void dqmEndLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &)
 
virtual void dqmEndRun (edm::Run const &, edm::EventSetup const &)
 
void endLuminosityBlock (edm::LuminosityBlock const &, edm::EventSetup const &) final
 
void endLuminosityBlockProduce (edm::LuminosityBlock &lumi, edm::EventSetup const &setup) final
 
void endRun (edm::Run const &, edm::EventSetup const &) final
 
void endRunProduce (edm::Run &run, edm::EventSetup const &setup) final
 
virtual bool getCanSaveByLumi ()
 
- Public Member Functions inherited from edm::one::EDProducer< edm::EndRunProducer, edm::one::WatchRuns, edm::EndLuminosityBlockProducer, edm::one::WatchLuminosityBlocks, edm::Accumulator >
 EDProducer ()=default
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
- Public Member Functions inherited from edm::one::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
bool wantsStreamLuminosityBlocks () const
 
bool wantsStreamRuns () const
 
 ~EDProducerBase () override
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex () const
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription const &)> registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
 
 ~ProducerBase () noexcept(false) override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Private Attributes

MonitorElementgenJetCentral
 
edm::InputTag genjetCollection_
 
edm::EDGetTokenT< reco::GenJetCollectiongenjetCollectionToken_
 
MonitorElementgenJetDeltaEtaMin
 
MonitorElementgenJetEnergy
 
MonitorElementgenJetEta
 
MonitorElementgenJetMult
 
MonitorElementgenJetPhi
 
MonitorElementgenJetPt
 
MonitorElementgenJetPto1
 
MonitorElementgenJetPto10
 
MonitorElementgenJetPto100
 
MonitorElementgenJetTotPt
 
MonitorElementgenMatched
 
edm::InputTag genparticleCollection_
 
edm::EDGetTokenT< reco::GenParticleCollectiongenparticleCollectionToken_
 
MonitorElementgenPMultiplicity
 
edm::InputTag hepmcCollection_
 
edm::EDGetTokenT< edm::HepMCProducthepmcCollectionToken_
 
MonitorElementmatchedResolution
 
double matchPr_
 
MonitorElementmultipleMatching
 
MonitorElementnEvt
 
unsigned int verbosity_
 
WeightManager wmanager_
 

Additional Inherited Members

- Public Types inherited from DQMEDAnalyzer
typedef dqm::reco::DQMStore DQMStore
 
typedef dqm::reco::MonitorElement MonitorElement
 
- Public Types inherited from edm::one::EDProducerBase
typedef EDProducerBase ModuleType
 
- Public Types inherited from edm::ProducerBase
using ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex >>
 
typedef ProductRegistryHelper::TypeLabelList TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::one::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::ProducerBase
ProducesCollector producesCollector ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
- Protected Attributes inherited from DQMEDAnalyzer
edm::EDPutTokenT< DQMTokenlumiToken_
 
edm::EDPutTokenT< DQMTokenrunToken_
 

Detailed Description

Definition at line 36 of file BasicGenParticleValidation.h.

Constructor & Destructor Documentation

BasicGenParticleValidation::BasicGenParticleValidation ( const edm::ParameterSet iPSet)
explicit

Definition at line 15 of file BasicGenParticleValidation.cc.

References genjetCollection_, genjetCollectionToken_, genparticleCollection_, genparticleCollectionToken_, hepmcCollection_, and hepmcCollectionToken_.

16  : wmanager_(iPSet, consumesCollector()),
17  hepmcCollection_(iPSet.getParameter<edm::InputTag>("hepmcCollection")),
18  genparticleCollection_(iPSet.getParameter<edm::InputTag>("genparticleCollection")),
19  genjetCollection_(iPSet.getParameter<edm::InputTag>("genjetsCollection")),
20  matchPr_(iPSet.getParameter<double>("matchingPrecision")),
21  verbosity_(iPSet.getUntrackedParameter<unsigned int>("verbosity", 0)) {
22  hepmcCollectionToken_ = consumes<HepMCProduct>(hepmcCollection_);
23  genparticleCollectionToken_ = consumes<reco::GenParticleCollection>(genparticleCollection_);
24  genjetCollectionToken_ = consumes<reco::GenJetCollection>(genjetCollection_);
25 }
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
edm::EDGetTokenT< reco::GenJetCollection > genjetCollectionToken_
ConsumesCollector consumesCollector()
Use a ConsumesCollector to gather consumes information from helper functions.
edm::EDGetTokenT< edm::HepMCProduct > hepmcCollectionToken_
edm::EDGetTokenT< reco::GenParticleCollection > genparticleCollectionToken_
BasicGenParticleValidation::~BasicGenParticleValidation ( )
override

Definition at line 27 of file BasicGenParticleValidation.cc.

27 {}

Member Function Documentation

void BasicGenParticleValidation::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
override

Gathering the HepMCProduct information

Definition at line 97 of file BasicGenParticleValidation.cc.

References gather_cfg::cout, spr::deltaEta, PVValHelper::eta, dqm::impl::MonitorElement::Fill(), alignBH_cfg::fixed, genJetCentral, genjetCollectionToken_, genJetDeltaEtaMin, genJetEnergy, genJetEta, genJetMult, genJetPhi, genJetPt, genJetPto1, genJetPto10, genJetPto100, ttbarCategorization_cff::genJets, genJetTotPt, genMatched, genparticleCollectionToken_, genParticles2HepMC_cfi::genParticles, genPMultiplicity, edm::Event::getByToken(), edm::HepMCProduct::GetEvent(), hepmcCollectionToken_, mps_fire::i, dqmiolumiharvest::j, reco::btau::jetEta, matchedResolution, matchParticles(), min(), multipleMatching, nEvt, ecalTrigSettings_cff::particles, DiDispStaMuonMonitor_cfi::pt, rho, verbosity_, WeightManager::weight(), mps_merge::weight, and wmanager_.

97  {
98  unsigned int initSize = 1000;
99 
102  iEvent.getByToken(hepmcCollectionToken_, evt);
103 
104  //Get HepMC EVENT
105  HepMC::GenEvent* myGenEvent = new HepMC::GenEvent(*(evt->GetEvent()));
106 
107  double weight = wmanager_.weight(iEvent);
108 
109  nEvt->Fill(0.5, weight);
110 
111  std::vector<const HepMC::GenParticle*> hepmcGPCollection;
112  std::vector<int> barcodeList;
113  hepmcGPCollection.reserve(initSize);
114  barcodeList.reserve(initSize);
115 
116  //Looping through HepMC::GenParticle collection to search for status 1 particles
117  for (HepMC::GenEvent::particle_const_iterator iter = myGenEvent->particles_begin();
118  iter != myGenEvent->particles_end();
119  ++iter) {
120  if ((*iter)->status() == 1) {
121  hepmcGPCollection.push_back(*iter);
122  barcodeList.push_back((*iter)->barcode());
123  if (verbosity_ > 0) {
124  std::cout << "HepMC " << std::setw(14) << std::fixed << (*iter)->pdg_id() << std::setw(14) << std::fixed
125  << (*iter)->momentum().px() << std::setw(14) << std::fixed << (*iter)->momentum().py()
126  << std::setw(14) << std::fixed << (*iter)->momentum().pz() << std::endl;
127  }
128  }
129  }
130 
131  // Gather information on the reco::GenParticle collection
133  iEvent.getByToken(genparticleCollectionToken_, genParticles);
134 
135  std::vector<const reco::GenParticle*> particles;
136  particles.reserve(initSize);
137  for (reco::GenParticleCollection::const_iterator iter = genParticles->begin(); iter != genParticles->end(); ++iter) {
138  if ((*iter).status() == 1) {
139  particles.push_back(&*iter);
140  if (verbosity_ > 0) {
141  std::cout << "reco " << std::setw(14) << std::fixed << (*iter).pdgId() << std::setw(14) << std::fixed
142  << (*iter).px() << std::setw(14) << std::fixed << (*iter).py() << std::setw(14) << std::fixed
143  << (*iter).pz() << std::endl;
144  }
145  }
146  }
147 
148  unsigned int nReco = particles.size();
149  unsigned int nHepMC = hepmcGPCollection.size();
150 
151  genPMultiplicity->Fill(std::log10(nReco), weight);
152 
153  // Define vector containing index of hepmc corresponding to the reco::GenParticle
154  std::vector<int> hepmcMatchIndex;
155  hepmcMatchIndex.reserve(initSize);
156 
157  // Matching procedure
158 
159  // Check array size consistency
160 
161  if (nReco != nHepMC) {
162  edm::LogWarning("CollectionSizeInconsistency")
163  << "Collection size inconsistency: HepMC::GenParticle = " << nHepMC << " reco::GenParticle = " << nReco;
164  }
165 
166  // Match each HepMC with a reco
167 
168  for (unsigned int i = 0; i < nReco; ++i) {
169  for (unsigned int j = 0; j < nHepMC; ++j) {
170  if (matchParticles(hepmcGPCollection[j], particles[i])) {
171  hepmcMatchIndex.push_back((int)j);
172  if (hepmcGPCollection[j]->momentum().rho() != 0.) {
173  double reso = 1. - particles[i]->p() / hepmcGPCollection[j]->momentum().rho();
174  if (verbosity_ > 0) {
175  std::cout << "Matching momentum: reco = " << particles[i]->p()
176  << " HepMC = " << hepmcGPCollection[j]->momentum().rho() << " resoultion = " << reso << std::endl;
177  }
178  matchedResolution->Fill(std::log10(std::fabs(reso)), weight);
179  }
180  continue;
181  }
182  }
183  }
184 
185  // Check unicity of matching
186 
187  unsigned int nMatched = hepmcMatchIndex.size();
188 
189  if (nMatched != nReco) {
190  edm::LogWarning("IncorrectMatching") << "Incorrect number of matched indexes: GenParticle = " << nReco
191  << " matched indexes = " << nMatched;
192  }
193  genMatched->Fill(int(nReco - nMatched), weight);
194 
195  unsigned int nWrMatch = 0;
196 
197  for (unsigned int i = 0; i < nMatched; ++i) {
198  for (unsigned int j = i + 1; j < nMatched; ++j) {
199  if (hepmcMatchIndex[i] == hepmcMatchIndex[j]) {
200  int theIndex = hepmcMatchIndex[i];
201  edm::LogWarning("DuplicatedMatching")
202  << "Multiple matching occurencies for GenParticle barcode = " << barcodeList[theIndex];
203  nWrMatch++;
204  }
205  }
206  }
207  multipleMatching->Fill(int(nWrMatch), weight);
208 
209  // Gather information in the GenJet collection
211  iEvent.getByToken(genjetCollectionToken_, genJets);
212 
213  int nJets = 0;
214  int nJetso1 = 0;
215  int nJetso10 = 0;
216  int nJetso100 = 0;
217  int nJetsCentral = 0;
218  double totPt = 0.;
219 
220  std::vector<double> jetEta;
221  jetEta.reserve(initSize);
222 
223  for (reco::GenJetCollection::const_iterator iter = genJets->begin(); iter != genJets->end(); ++iter) {
224  nJets++;
225  double pt = (*iter).pt();
226  totPt += pt;
227  if (pt > 1.)
228  nJetso1++;
229  if (pt > 10.)
230  nJetso10++;
231  if (pt > 100.)
232  nJetso100++;
233  double eta = (*iter).eta();
234  if (std::fabs(eta) < 2.5)
235  nJetsCentral++;
236  jetEta.push_back(eta);
237 
238  genJetEnergy->Fill(std::log10((*iter).energy()), weight);
239  genJetPt->Fill(std::log10(pt), weight);
240  genJetEta->Fill(eta, weight);
241  genJetPhi->Fill((*iter).phi() / CLHEP::degree, weight);
242  }
243 
244  genJetMult->Fill(nJets, weight);
245  genJetPto1->Fill(nJetso1, weight);
246  genJetPto10->Fill(nJetso10, weight);
247  genJetPto100->Fill(nJetso100, weight);
248  genJetCentral->Fill(nJetsCentral, weight);
249 
250  genJetTotPt->Fill(std::log10(totPt), weight);
251 
252  double deltaEta = 999.;
253  if (jetEta.size() > 1) {
254  for (unsigned int i = 0; i < jetEta.size(); i++) {
255  for (unsigned int j = i + 1; j < jetEta.size(); j++) {
256  deltaEta = std::min(deltaEta, std::fabs(jetEta[i] - jetEta[j]));
257  }
258  }
259  }
260 
261  genJetDeltaEtaMin->Fill(deltaEta, weight);
262 
263  delete myGenEvent;
264 } //analyze
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:525
Definition: weight.py:1
bool matchParticles(const HepMC::GenParticle *&, const reco::GenParticle *&)
static const double deltaEta
Definition: CaloConstants.h:8
void Fill(long long x)
edm::EDGetTokenT< reco::GenJetCollection > genjetCollectionToken_
T min(T a, T b)
Definition: MathUtil.h:58
edm::EDGetTokenT< edm::HepMCProduct > hepmcCollectionToken_
const HepMC::GenEvent * GetEvent() const
Definition: HepMCProduct.h:34
double weight(const edm::Event &)
edm::EDGetTokenT< reco::GenParticleCollection > genparticleCollectionToken_
void BasicGenParticleValidation::bookHistograms ( DQMStore::IBooker i,
edm::Run const &  ,
edm::EventSetup const &   
)
overridevirtual

Setting the DQM top directories

Booking the ME's

multiplicity

Implements DQMEDAnalyzer.

Definition at line 29 of file BasicGenParticleValidation.cc.

References DQMHelper::book1dHisto(), genJetCentral, genJetDeltaEtaMin, genJetEnergy, genJetEta, genJetMult, genJetPhi, genJetPt, genJetPto1, genJetPto10, genJetPto100, genJetTotPt, genMatched, genPMultiplicity, matchedResolution, multipleMatching, nEvt, and dqm::dqmstoreimpl::DQMStore::IBooker::setCurrentFolder().

29  {
31  DQMHelper dqm(&i);
32  i.setCurrentFolder("Generator/GenParticles");
34 
35  // Number of analyzed events
36  nEvt = dqm.book1dHisto("nEvt", "n analyzed Events", 1, 0., 1., "", "Number of Events");
37 
39  genPMultiplicity = dqm.book1dHisto("genPMultiplicty",
40  "Log(No. all GenParticles)",
41  50,
42  -1,
43  5,
44  "log_{10}(N_{All GenParticles})",
45  "Number of Events"); //Log
46  //difference in HepMC and reco multiplicity
47  genMatched = dqm.book1dHisto(
48  "genMatched", "Difference reco - matched", 50, -25, 25, "N_{All GenParticles}-N_{Matched}", "Number of Events");
49  //multiple matching
50  multipleMatching = dqm.book1dHisto("multipleMatching",
51  "multiple reco HepMC matching",
52  50,
53  0,
54  50,
55  "N_{multiple reco HepMC matching}",
56  "Number of Events");
57  //momentum difference of matched particles
58  matchedResolution = dqm.book1dHisto("matchedResolution",
59  "log10(momentum difference of matched particles)",
60  70,
61  -10.,
62  -3.,
63  "log_{10}(#DeltaP_{matched Particles})",
64  "Number of Events");
65 
66  // GenJet general distributions
67  genJetMult = dqm.book1dHisto("genJetMult", "GenJet multiplicity", 50, 0, 50, "N_{gen-jets}", "Number of Events");
68  genJetEnergy = dqm.book1dHisto(
69  "genJetEnergy", "Log10(GenJet energy)", 60, -1, 5, "log_{10}(E^{gen-jets}) (log_{10}(GeV))", "Number of Events");
70  genJetPt = dqm.book1dHisto(
71  "genJetPt", "Log10(GenJet pt)", 60, -1, 5, "log_{10}(P_{t}^{gen-jets}) (log_{10}(GeV))", "Number of Events");
72  genJetEta = dqm.book1dHisto("genJetEta", "GenJet eta", 220, -11, 11, "#eta^{gen-jets}", "Number of Events");
73  genJetPhi = dqm.book1dHisto("genJetPhi", "GenJet phi", 360, -180, 180, "#phi^{gen-jets} (rad)", "Number of Events");
74  genJetDeltaEtaMin = dqm.book1dHisto(
75  "genJetDeltaEtaMin", "GenJet minimum rapidity gap", 30, 0, 30, "#delta#eta_{min}^{gen-jets}", "Number of Events");
76 
77  genJetPto1 = dqm.book1dHisto(
78  "genJetPto1", "GenJet multiplicity above 1 GeV", 50, 0, 50, "N_{gen-jets P_{t}>1GeV}", "Number of Events");
79  genJetPto10 = dqm.book1dHisto(
80  "genJetPto10", "GenJet multiplicity above 10 GeV", 50, 0, 50, "N_{gen-jets P_{t}>10GeV}", "Number of Events");
81  genJetPto100 = dqm.book1dHisto(
82  "genJetPto100", "GenJet multiplicity above 100 GeV", 50, 0, 50, "N_{gen-jets P_{t}>100GeV}", "Number of Events");
83  genJetCentral = dqm.book1dHisto(
84  "genJetCentral", "GenJet multiplicity |eta|.lt.2.5", 50, 0, 50, "N_{gen-jets |#eta|#leq2.5}", "Number of Events");
85 
86  genJetTotPt = dqm.book1dHisto("genJetTotPt",
87  "Log10(GenJet total pt)",
88  100,
89  -5,
90  5,
91  "log_{10}(#SigmaP_{t}^{gen-jets}) (log_{10}(GeV))",
92  "Number of Events");
93 
94  return;
95 }
bool BasicGenParticleValidation::matchParticles ( const HepMC::GenParticle *&  hepmcP,
const reco::GenParticle *&  recoP 
)

Definition at line 266 of file BasicGenParticleValidation.cc.

References matchPr_, reco::LeafCandidate::pdgId(), reco::LeafCandidate::px(), reco::LeafCandidate::py(), and reco::LeafCandidate::pz().

Referenced by analyze().

266  {
267  bool state = false;
268 
269  if (hepmcP->pdg_id() != recoP->pdgId())
270  return state;
271  if (std::fabs(hepmcP->momentum().px() - recoP->px()) < std::fabs(matchPr_ * hepmcP->momentum().px()) &&
272  std::fabs(hepmcP->momentum().py() - recoP->py()) < std::fabs(matchPr_ * hepmcP->momentum().py()) &&
273  std::fabs(hepmcP->momentum().pz() - recoP->pz()) < std::fabs(matchPr_ * hepmcP->momentum().pz())) {
274  state = true;
275  }
276 
277  return state;
278 }
int pdgId() const final
PDG identifier.
double px() const final
x coordinate of momentum vector
double pz() const final
z coordinate of momentum vector
double py() const final
y coordinate of momentum vector

Member Data Documentation

MonitorElement* BasicGenParticleValidation::genJetCentral
private

Definition at line 76 of file BasicGenParticleValidation.h.

Referenced by analyze(), and bookHistograms().

edm::InputTag BasicGenParticleValidation::genjetCollection_
private

Definition at line 50 of file BasicGenParticleValidation.h.

Referenced by BasicGenParticleValidation().

edm::EDGetTokenT<reco::GenJetCollection> BasicGenParticleValidation::genjetCollectionToken_
private

Definition at line 82 of file BasicGenParticleValidation.h.

Referenced by analyze(), and BasicGenParticleValidation().

MonitorElement* BasicGenParticleValidation::genJetDeltaEtaMin
private

Definition at line 71 of file BasicGenParticleValidation.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* BasicGenParticleValidation::genJetEnergy
private

Definition at line 67 of file BasicGenParticleValidation.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* BasicGenParticleValidation::genJetEta
private

Definition at line 69 of file BasicGenParticleValidation.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* BasicGenParticleValidation::genJetMult
private

Definition at line 66 of file BasicGenParticleValidation.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* BasicGenParticleValidation::genJetPhi
private

Definition at line 70 of file BasicGenParticleValidation.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* BasicGenParticleValidation::genJetPt
private

Definition at line 68 of file BasicGenParticleValidation.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* BasicGenParticleValidation::genJetPto1
private

Definition at line 73 of file BasicGenParticleValidation.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* BasicGenParticleValidation::genJetPto10
private

Definition at line 74 of file BasicGenParticleValidation.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* BasicGenParticleValidation::genJetPto100
private

Definition at line 75 of file BasicGenParticleValidation.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* BasicGenParticleValidation::genJetTotPt
private

Definition at line 78 of file BasicGenParticleValidation.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* BasicGenParticleValidation::genMatched
private

Definition at line 60 of file BasicGenParticleValidation.h.

Referenced by analyze(), and bookHistograms().

edm::InputTag BasicGenParticleValidation::genparticleCollection_
private

Definition at line 49 of file BasicGenParticleValidation.h.

Referenced by BasicGenParticleValidation().

edm::EDGetTokenT<reco::GenParticleCollection> BasicGenParticleValidation::genparticleCollectionToken_
private

Definition at line 81 of file BasicGenParticleValidation.h.

Referenced by analyze(), and BasicGenParticleValidation().

MonitorElement* BasicGenParticleValidation::genPMultiplicity
private

Definition at line 59 of file BasicGenParticleValidation.h.

Referenced by analyze(), and bookHistograms().

edm::InputTag BasicGenParticleValidation::hepmcCollection_
private

Definition at line 48 of file BasicGenParticleValidation.h.

Referenced by BasicGenParticleValidation().

edm::EDGetTokenT<edm::HepMCProduct> BasicGenParticleValidation::hepmcCollectionToken_
private

Definition at line 80 of file BasicGenParticleValidation.h.

Referenced by analyze(), and BasicGenParticleValidation().

MonitorElement* BasicGenParticleValidation::matchedResolution
private

Definition at line 62 of file BasicGenParticleValidation.h.

Referenced by analyze(), and bookHistograms().

double BasicGenParticleValidation::matchPr_
private

Definition at line 51 of file BasicGenParticleValidation.h.

Referenced by matchParticles().

MonitorElement* BasicGenParticleValidation::multipleMatching
private

Definition at line 61 of file BasicGenParticleValidation.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* BasicGenParticleValidation::nEvt
private

Definition at line 55 of file BasicGenParticleValidation.h.

Referenced by analyze(), and bookHistograms().

unsigned int BasicGenParticleValidation::verbosity_
private

Definition at line 53 of file BasicGenParticleValidation.h.

Referenced by analyze().

WeightManager BasicGenParticleValidation::wmanager_
private

Definition at line 47 of file BasicGenParticleValidation.h.

Referenced by analyze().