CMS 3D CMS Logo

BPhysicsValidation.cc
Go to the documentation of this file.
1 //
3 // class Validation: Class to fill dqm monitor elements from existing EDM file
4 //
6 
8 
10 
11 using namespace edm;
12 
14  : genparticleCollection_(iPSet.getParameter<edm::InputTag>("genparticleCollection")),
15  // do not include weights right now to allow for running on aod
16  name(iPSet.getParameter<std::string>("name")),
17  particle(name, iPSet) {
18  genparticleCollectionToken_ = consumes<reco::GenParticleCollection>(genparticleCollection_);
19  std::vector<std::string> daughterNames = iPSet.getParameter<std::vector<std::string> >("daughters");
20  for (unsigned int i = 0; i < daughterNames.size(); i++) {
21  std::string curSet = daughterNames[i];
22  daughters.push_back(ParticleMonitor(name + curSet, iPSet.getUntrackedParameter<ParameterSet>(curSet)));
23  }
24 }
25 
27 
29  DQMHelper dqm(&i);
30  i.setCurrentFolder("Generator/BPhysics");
31  Nobj = dqm.book1dHisto("N" + name, "N" + name, 1, 0., 1, "bin", "Number of " + name);
33  for (unsigned int j = 0; j < daughters.size(); j++) {
34  daughters[j].Configure(i);
35  }
36 }
37 
41  for (reco::GenParticleCollection::const_iterator iter = genParticles->begin(); iter != genParticles->end(); ++iter) {
42  if (abs(iter->pdgId()) == abs(particle.PDGID())) {
43  Nobj->Fill(0.5, 1.0);
44  particle.Fill(&(*iter), 1.0);
45  FillDaughters(&(*iter));
46  }
47  }
48 }
49 
51  int mpdgid = p->pdgId();
52  for (unsigned int i = 0; i < p->numberOfDaughters(); i++) {
53  const reco::GenParticle* dau = static_cast<const reco::GenParticle*>(p->daughter(i));
54  int pdgid = dau->pdgId();
55  for (unsigned int i = 0; i < daughters.size(); i++) {
56  if (abs(mpdgid) != abs(daughters[i].PDGID()) && daughters[i].PDGID() == pdgid)
57  daughters[i].Fill(dau, 1.0);
58  // note: use abs when comparing to mother to avoid mixing
59  }
60  FillDaughters(dau);
61  }
62 }
BPhysicsValidation::bookHistograms
void bookHistograms(DQMStore::IBooker &i, edm::Run const &, edm::EventSetup const &) override
Definition: BPhysicsValidation.cc:28
mps_fire.i
i
Definition: mps_fire.py:428
genParticles2HepMC_cfi.genParticles
genParticles
Definition: genParticles2HepMC_cfi.py:4
reco::GenParticle
Definition: GenParticle.h:21
edm::Run
Definition: Run.h:45
edm
HLT enums.
Definition: AlignableModifier.h:19
edm::ParameterSet::getUntrackedParameter
T getUntrackedParameter(std::string const &, T const &) const
BPhysicsValidation::FillDaughters
void FillDaughters(const reco::GenParticle *p)
Definition: BPhysicsValidation.cc:50
edm::Handle< reco::GenParticleCollection >
BPhysicsValidation.h
MakerMacros.h
BPhysicsValidation::daughters
std::vector< ParticleMonitor > daughters
Definition: BPhysicsValidation.h:86
BPhysicsValidation::Nobj
MonitorElement * Nobj
Definition: BPhysicsValidation.h:87
dqm::impl::MonitorElement::Fill
void Fill(long long x)
Definition: MonitorElement.h:290
BPhysicsValidation::ParticleMonitor::PDGID
int PDGID()
Definition: BPhysicsValidation.h:72
BPhysicsValidation::ParticleMonitor::Configure
void Configure(DQMStore::IBooker &i)
Definition: BPhysicsValidation.h:49
BPhysicsValidation::ParticleMonitor::Fill
void Fill(const reco::GenParticle *p, double weight)
Definition: BPhysicsValidation.h:64
edm::ParameterSet
Definition: ParameterSet.h:47
AlCaHLTBitMon_ParallelJobs.p
def p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
BPhysicsValidation::analyze
void analyze(edm::Event const &, edm::EventSetup const &) override
Definition: BPhysicsValidation.cc:38
reco::LeafCandidate::pdgId
int pdgId() const final
PDG identifier.
Definition: LeafCandidate.h:176
iEvent
int iEvent
Definition: GenABIO.cc:224
BPhysicsValidation::ParticleMonitor
Definition: BPhysicsValidation.h:43
BPhysicsValidation::particle
ParticleMonitor particle
Definition: BPhysicsValidation.h:85
edm::EventSetup
Definition: EventSetup.h:58
BPhysicsValidation::name
std::string name
Definition: BPhysicsValidation.h:84
AlCaHLTBitMon_QueryRunRegistry.string
string string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
HcalObjRepresent::Fill
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
Definition: HcalObjRepresent.h:1053
DQMHelper
Definition: DQMHelper.h:15
BPhysicsValidation::~BPhysicsValidation
~BPhysicsValidation() override
Definition: BPhysicsValidation.cc:26
BPhysicsValidation::genparticleCollectionToken_
edm::EDGetTokenT< reco::GenParticleCollection > genparticleCollectionToken_
Definition: BPhysicsValidation.h:83
BPhysicsValidation::BPhysicsValidation
BPhysicsValidation(const edm::ParameterSet &)
Definition: BPhysicsValidation.cc:13
std
Definition: JetResolutionObject.h:76
Skims_PA_cff.name
name
Definition: Skims_PA_cff.py:17
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
dqm::implementation::IBooker
Definition: DQMStore.h:43
dqm
Definition: DQMStore.h:18
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
edm::Event
Definition: Event.h:73
EgammaValidation_cff.pdgid
pdgid
Definition: EgammaValidation_cff.py:29
edm::InputTag
Definition: InputTag.h:15
BPhysicsValidation::genparticleCollection_
edm::InputTag genparticleCollection_
Definition: BPhysicsValidation.h:82