1 #ifndef BASICHEPMCVALIDATION_H 2 #define BASICHEPMCVALIDATION_H 59 20, 0, 20,
"No. of "+
name,
"Number of Events");
63 20, 0, 20,
"log_{10}(No. of "+
name+
")",
"Number of Events");
66 60, -2, 4,
"log_{10}(P) (log_{10}(GeV))",
"Number of "+
name );
69 100, -5., 5.,
"#eta",
"Number of "+
name);
72 100, -15, -5,
"Log_{10}(life-time^{final}) (log_{10}(s))",
"Number of "+
name);
75 60, -2, 4,
"log_{10}(P^{final}) (log_{10}(GeV))",
"Number of "+
name);
78 100,-15,-5,
"Log_{10}(life-time^{final}) (log_{10}(s))",
"Number of "+
name);
84 if(p->pdg_id()==
pdgid){
86 p_init->
Fill(log10(p->momentum().rho()),weight);
91 if(p->production_vertex() && p->end_vertex()){
92 TVector3
PV(p->production_vertex()->point3d().x(),p->production_vertex()->point3d().y(),p->production_vertex()->point3d().z());
93 TVector3
SV(p->end_vertex()->point3d().x(),p->end_vertex()->point3d().y(),p->end_vertex()->point3d().z());
95 double c(2.99792458E8),Ltau(DL.Mag()/100),
beta(p->momentum().rho()/p->momentum().m());
96 double lt=Ltau/(c*
beta);
99 TVector3 SVf(pf->end_vertex()->point3d().x(),pf->end_vertex()->point3d().y(),pf->end_vertex()->point3d().z());
123 if(p->production_vertex()){
124 for(HepMC::GenVertex::particles_in_const_iterator
m=p->production_vertex()->particles_in_const_begin();
m!=p->production_vertex()->particles_in_const_end();
m++){
125 if(
abs((*m)->pdg_id())==
abs(p->pdg_id()))
return false;
133 for (
unsigned int iMix = 0; iMix < 10; iMix++) {
134 bool foundSimilar =
false;
135 if(aPart->end_vertex()){
136 if(aPart->end_vertex()->particles_out_size()!=0){
137 for(HepMC::GenVertex::particles_out_const_iterator
d=aPart->end_vertex()->particles_out_const_begin();
d!=aPart->end_vertex()->particles_out_const_end();
d++){
138 if(
abs((*d)->pdg_id())==
abs(aPart->pdg_id())){
145 if (!foundSimilar)
break;
MonitorElement * genPtclStatus
MonitorElement * DeltaEcms
MonitorElement * genVrtxNumber
MonitorElement * unknownPDTNumber
MonitorElement * pdf_bbbar
MonitorElement * outVrtxPtclNumber
MonitorElement * pdf_dbar
MonitorElement * pdf_ccbar
bool isFirst(const HepMC::GenParticle *p)
MonitorElement * Bjorken_x
MonitorElement * otherPtclNumber
other ME's
void dqmBeginRun(const edm::Run &r, const edm::EventSetup &c) override
BasicHepMCValidation(const edm::ParameterSet &)
MonitorElement * parton2Id
MonitorElement * otherPtclMomentum
MonitorElement * stablePtclCharge
MonitorElement * partonNumber
edm::EDGetTokenT< edm::HepMCProduct > hepmcCollectionToken_
MonitorElement * book1dHisto(std::string name, std::string title, int n, double xmin, double xmax, std::string xaxis, std::string yaxis)
MonitorElement * lifetime_final
MonitorElement * vrtxRadius
~BasicHepMCValidation() override
MonitorElement * pdf_ubar
edm::ESHandle< HepPDT::ParticleDataTable > fPDGTable
PDT table.
MonitorElement * eta_init
void bookHistograms(DQMStore::IBooker &i, edm::Run const &, edm::EventSetup const &) override
MonitorElement * scalePDF
Abs< T >::type abs(const T &t)
MonitorElement * log10DeltaEcms
MonitorElement * partonpT
MonitorElement * stablePtclPhi
MonitorElement * stablePtclEta
const HepMC::GenParticle * GetFinal(const HepMC::GenParticle *p)
void analyze(edm::Event const &, edm::EventSetup const &) override
MonitorElement * stablePtclp
MonitorElement * status1ShortLived
MonitorElement * stablePtclpT
MonitorElement * stableChaNumber
ParticleMonitor(std::string name_, int pdgid_, DQMStore::IBooker &i, bool nlog_=false)
MonitorElement * stablePtclNumber
void FillCount(double weight)
bool Fill(const HepMC::GenParticle *p, double weight)
MonitorElement * lifetime_init
MonitorElement * genPtclNumber
edm::InputTag hepmcCollection_
MonitorElement * outVrtxStablePtclNumber
MonitorElement * numberPerEvent
std::vector< ParticleMonitor > particles
MonitorElement * pdf_ssbar
MonitorElement * parton1Id