|
|
Go to the documentation of this file. 1 #ifndef BASICHEPMCVALIDATION_H
2 #define BASICHEPMCVALIDATION_H
58 name +
"Number",
"Number of " +
name +
"'s per event", 20, 0, 20,
"No. of " +
name,
"Number of Events");
61 "Number of " +
name +
"'s per event",
65 "log_{10}(No. of " +
name +
")",
69 "log_{10}(P) of the " +
name +
"s",
73 "log_{10}(P) (log_{10}(GeV))",
76 eta_init =
dqm.book1dHisto(
name +
"Eta",
"#eta of the " +
name +
"s", 100, -5., 5.,
"#eta",
"Number of " +
name);
79 "#phi of the " +
name +
"s",
83 "Log_{10}(life-time^{final}) (log_{10}(s))",
87 "log_{10}(P^{final}) of " +
name +
"s at end of decay chain",
91 "log_{10}(P^{final}) (log_{10}(GeV))",
95 "Log_{10}(life-time^{final}) of " +
name +
"s at end of decay chain",
99 "Log_{10}(life-time^{final}) (log_{10}(s))",
100 "Number of " +
name);
106 if (
p->pdg_id() ==
pdgid) {
113 if (
p->production_vertex() &&
p->end_vertex()) {
114 TVector3
PV(
p->production_vertex()->point3d().x(),
115 p->production_vertex()->point3d().y(),
116 p->production_vertex()->point3d().z());
117 TVector3
SV(
p->end_vertex()->point3d().x(),
p->end_vertex()->point3d().y(),
p->end_vertex()->point3d().z());
118 TVector3 DL =
SV -
PV;
119 double c(2.99792458E8), Ltau(DL.Mag() / 100) ,
beta(
p->momentum().rho() /
p->momentum().m());
120 double lt = Ltau / (
c *
beta);
123 if (
pf->end_vertex()) {
125 pf->end_vertex()->point3d().x(),
pf->end_vertex()->point3d().y(),
pf->end_vertex()->point3d().z());
127 Ltau = DL.Mag() / 100;
128 lt = Ltau / (
c *
beta);
152 if (
p->production_vertex()) {
153 for (HepMC::GenVertex::particles_in_const_iterator
m =
p->production_vertex()->particles_in_const_begin();
154 m !=
p->production_vertex()->particles_in_const_end();
156 if (
abs((*m)->pdg_id()) ==
abs(
p->pdg_id()))
166 for (
unsigned int iMix = 0; iMix < 10; iMix++) {
167 bool foundSimilar =
false;
168 if (aPart->end_vertex()) {
169 if (aPart->end_vertex()->particles_out_size() != 0) {
170 for (HepMC::GenVertex::particles_out_const_iterator
d = aPart->end_vertex()->particles_out_const_begin();
171 d != aPart->end_vertex()->particles_out_const_end();
173 if (
abs((*d)->pdg_id()) ==
abs(aPart->pdg_id())) {
std::vector< ParticleMonitor > particles
void bookHistograms(DQMStore::IBooker &i, edm::Run const &, edm::EventSetup const &) override
edm::InputTag hepmcCollection_
MonitorElement * lifetime_init
MonitorElement * otherPtclNumber
other ME's
MonitorElement * eta_init
void analyze(edm::Event const &, edm::EventSetup const &) override
MonitorElement * stablePtclPhi
~BasicHepMCValidation() override
MonitorElement * genPtclStatus
edm::ESHandle< HepPDT::ParticleDataTable > fPDGTable
PDT table.
MonitorElement * pdf_ccbar
MonitorElement * numberPerEvent
MonitorElement * status1ShortLived
MonitorElement * scalePDF
MonitorElement * Bjorken_x
MonitorElement * stablePtclNumber
edm::EDGetTokenT< edm::HepMCProduct > hepmcCollectionToken_
MonitorElement * partonpT
MonitorElement * otherPtclMomentum
BasicHepMCValidation(const edm::ParameterSet &)
MonitorElement * DeltaEcms
MonitorElement * partonNumber
MonitorElement * genVrtxNumber
MonitorElement * stablePtclEta
MonitorElement * outVrtxStablePtclNumber
void FillCount(double weight)
MonitorElement * lifetime_final
void dqmBeginRun(const edm::Run &r, const edm::EventSetup &c) override
MonitorElement * vrtxRadius
bool isFirst(const HepMC::GenParticle *p)
MonitorElement * unknownPDTNumber
MonitorElement * pdf_ubar
MonitorElement * stablePtclCharge
MonitorElement * pdf_bbbar
const HepMC::GenParticle * GetFinal(const HepMC::GenParticle *p)
MonitorElement * outVrtxPtclNumber
MonitorElement * stableChaNumber
MonitorElement * genPtclNumber
Abs< T >::type abs(const T &t)
bool Fill(const HepMC::GenParticle *p, double weight)
MonitorElement * parton1Id
MonitorElement * stablePtclpT
MonitorElement * log10DeltaEcms
ParticleMonitor(std::string name_, int pdgid_, DQMStore::IBooker &i, bool nlog_=false)
MonitorElement * pdf_dbar
MonitorElement * parton2Id
MonitorElement * stablePtclp
MonitorElement * pdf_ssbar