CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
BasicHepMCValidation.cc
Go to the documentation of this file.
1 /*class BasicHepMCValidation
2  *
3  * Class to fill dqm monitor elements from existing EDM file
4  *
5  * $Date: 2010/05/25 16:50:50 $
6  * $Revision: 1.1 $
7  */
8 
10 
11 #include "CLHEP/Units/defs.h"
12 #include "CLHEP/Units/PhysicalConstants.h"
13 
14 using namespace edm;
15 
17  hepmcCollection_(iPSet.getParameter<edm::InputTag>("hepmcCollection"))
18 {
19  dbe = 0;
21 }
22 
24 
26 {
27  if(dbe){
29  dbe->setCurrentFolder("Generator/Particles");
30 
31  // Number of analyzed events
32  nEvt = dbe->book1D("nEvt", "n analyzed Events", 1, 0., 1.);
33 
36  uNumber = dbe->book1D("uNumber", "No. u", 20, 0, 20);
37  dNumber = dbe->book1D("dNumber", "No. d", 20, 0, 20);
38  sNumber = dbe->book1D("sNumber", "No. s", 20, 0, 20);
39  cNumber = dbe->book1D("cNumber", "No. c", 20, 0, 20);
40  bNumber = dbe->book1D("bNumber", "No. b", 20, 0, 20);
41  tNumber = dbe->book1D("tNumber", "No. t", 20, 0, 20);
42  //
43  ubarNumber = dbe->book1D("ubarNumber", "No. ubar", 20, 0, 20);
44  dbarNumber = dbe->book1D("dbarNumber", "No. dbar", 20, 0, 20);
45  sbarNumber = dbe->book1D("sbarNumber", "No. sbar", 20, 0, 20);
46  cbarNumber = dbe->book1D("cbarNumber", "No. cbar", 20, 0, 20);
47  bbarNumber = dbe->book1D("bbarNumber", "No. bbar", 20, 0, 20);
48  tbarNumber = dbe->book1D("tbarNumber", "No. tbar", 20, 0, 20);
49  //
50  eminusNumber = dbe->book1D("eminusNumber", "No. e-", 20, 0, 20);
51  nueNumber = dbe->book1D("nueNumber", "No. nu_e", 20, 0, 20);
52  muminusNumber = dbe->book1D("muminusNumber", "No. mu-", 20, 0, 20);
53  numuNumber = dbe->book1D("numuNumber", "No. nu_mu", 20, 0, 20);
54  tauminusNumber = dbe->book1D("tauminusNumber", "No. tau-", 20, 0, 20);
55  nutauNumber = dbe->book1D("nutauNumber", "No. nu_tau", 20, 0, 20);
56  //
57  eplusNumber = dbe->book1D("eplusNumber", "No. e+", 20, 0, 20);
58  nuebarNumber = dbe->book1D("nuebarNumber", "No. nu_e_bar", 20, 0, 20);
59  muplusNumber = dbe->book1D("muplusNumber", "No. mu+", 20, 0, 20);
60  numubarNumber = dbe->book1D("numuNumber", "No. nu_mu_bar", 20, 0, 20);
61  tauplusNumber = dbe->book1D("tauplusNumber", "No. tau+", 20, 0, 20);
62  nutaubarNumber = dbe->book1D("nutauNumber", "No. nu_tau_bar", 20, 0, 20);
63  //
64  WplusNumber = dbe->book1D("WplusNumber", "No. W+", 20, 0, 20);
65  WminusNumber = dbe->book1D("WminusNumber", "No. W-", 20, 0, 20);
66  ZNumber = dbe->book1D("ZNumber", "No. Z", 20, 0, 20);
67  gammaNumber = dbe->book1D("gammaNumber", "Log10(No. gamma)", 60, -1, 5); //Log
68  gluNumber = dbe->book1D("gluonNumber", "Log10(No. gluons)", 60, -1, 5); //Log
69  //
70  piplusNumber = dbe->book1D("piplusNumber", "Log10(No. pi+)", 60, -1, 5); //Log
71  piminusNumber = dbe->book1D("piminusNumber", "Log10(No. pi-)", 60, -1, 5); //Log
72  pizeroNumber = dbe->book1D("pizeroNumber", "Log10(No. pi_0)", 60, -1, 5); //Log
73  KplusNumber = dbe->book1D("KplusNumber", "No. K+", 100, 0, 100);
74  KminusNumber = dbe->book1D("KminusNumber", "No. K-", 100, 0, 100);
75  KlzeroNumber = dbe->book1D("KlzeroNumber", "No. K_l^0", 100, 0, 100);
76  KszeroNumber = dbe->book1D("KszeroNumber", "No. K_s^0", 100, 0, 100);
77  //
78  pNumber = dbe->book1D("pNumber", "No. p", 100, 0, 100);
79  pbarNumber = dbe->book1D("pbarNumber", "No. pbar", 100, 0, 100);
80  nNumber = dbe->book1D("nNumber", "No. n", 100, 0, 100);
81  nbarNumber = dbe->book1D("nbarNumber", "No. nbar", 100, 0, 100);
82  l0Number = dbe->book1D("l0Number", "No. Lambda0", 100, 0, 100);
83  l0barNumber = dbe->book1D("l0barNumber", "No. Lambda0bar", 100, 0, 100);
84  //
85  DplusNumber = dbe->book1D("DplusNumber", "No. D+", 20, 0, 20);
86  DminusNumber = dbe->book1D("DminusNumber", "No. D-", 20, 0, 20);
87  DzeroNumber = dbe->book1D("DzeroNumber", "No. D^0", 20, 0, 20);
88  //
89  BplusNumber = dbe->book1D("BplusNumber", "No. B+", 20, 0, 20);
90  BminusNumber = dbe->book1D("BminusNumber", "No. B-", 20, 0, 20);
91  BzeroNumber = dbe->book1D("BzeroNumber", "No. B^0", 20, 0, 20);
92  BszeroNumber = dbe->book1D("BszeroNumber", "No. B^0_s", 20, 0, 20);
93  //
94  otherPtclNumber = dbe->book1D("otherPtclNumber", "Log10(No. other ptcls)", 60, -1, 5); //Log
95 
96  //Momentum
97  uMomentum = dbe->book1D("uMomentum", "Log10(p) u", 60, -2, 4);
98  dMomentum = dbe->book1D("dMomentum", "Log10(p) d", 60, -2, 4);
99  sMomentum = dbe->book1D("sMomentum", "Log10(p) s", 60, -2, 4);
100  cMomentum = dbe->book1D("cMomentum", "Log10(p) c", 60, -2, 4);
101  bMomentum = dbe->book1D("bMomentum", "Log10(p) b", 60, -2, 4);
102  tMomentum = dbe->book1D("tMomentum", "Log10(p) t", 60, -2, 4);
103  //
104  ubarMomentum = dbe->book1D("ubarMomentum", "Log10(p) ubar", 60, -2, 4);
105  dbarMomentum = dbe->book1D("dbarMomentum", "Log10(p) dbar", 60, -2, 4);
106  sbarMomentum = dbe->book1D("sbarMomentum", "Log10(p) sbar", 60, -2, 4);
107  cbarMomentum = dbe->book1D("cbarMomentum", "Log10(p) cbar", 60, -2, 4);
108  bbarMomentum = dbe->book1D("bbarMomentum", "Log10(p) bbar", 60, -2, 4);
109  tbarMomentum = dbe->book1D("tbarMomentum", "Log10(p) tbar", 60, -2, 4);
110  //
111  eminusMomentum = dbe->book1D("eminusMomentum", "Log10(p) e-", 60, -2, 4);
112  nueMomentum = dbe->book1D("nueMomentum", "Log10(Momentum) nue", 60, -2, 4);
113  muminusMomentum = dbe->book1D("muminusMomentum", "Log10(p) mu-", 60, -2, 4);
114  numuMomentum = dbe->book1D("numuMomentum", "Log10(p) numu", 60, -2, 4);
115  tauminusMomentum = dbe->book1D("tauminusMomentum", "Log10(p) tau-", 60, -2, 4);
116  nutauMomentum = dbe->book1D("nutauMomentum", "Log10(p) nutau", 60, -2, 4);
117  //
118  eplusMomentum = dbe->book1D("eplusMomentum", "Log10(p) e+", 60, -2, 4);
119  nuebarMomentum = dbe->book1D("nuebarMomentum", "Log10(p) nuebar", 60, -2, 4);
120  muplusMomentum = dbe->book1D("muplusMomentum", "Log10(p) mu+", 60, -2, 4);
121  numubarMomentum = dbe->book1D("numuMomentum", "Log10(p) numubar", 60, -2, 4);
122  tauplusMomentum = dbe->book1D("tauplusMomentum", "Log10(p) tau+", 60, -2, 4);
123  nutaubarMomentum = dbe->book1D("nutauMomentum", "Log10(p) nutaubar", 60, -2, 4);
124  //
125  gluMomentum = dbe->book1D("gluonMomentum", "Log10(p) gluons", 70, -3, 4);
126  WplusMomentum = dbe->book1D("WplusMomentum", "Log10(p) W+", 60, -2, 4);
127  WminusMomentum = dbe->book1D("WminusMomentum", "Log10(p) W-", 60, -2, 4);
128  ZMomentum = dbe->book1D("ZMomentum", "Log10(p) Z", 60, -2, 4);
129  gammaMomentum = dbe->book1D("gammaMomentum", "Log10(p) gamma", 70, -3, 4);
130  //
131  piplusMomentum = dbe->book1D("piplusMomentum", "Log10(p) pi+", 60, -2, 4);
132  piminusMomentum = dbe->book1D("piminusMomentum", "Log10(p) pi-", 60, -2, 4);
133  pizeroMomentum = dbe->book1D("pizeroMomentum", "Log10(p) pi_0", 60, -2, 4);
134  KplusMomentum = dbe->book1D("KplusMomentum", "Log10(p) K+", 60, -2, 4);
135  KminusMomentum = dbe->book1D("KminusMomentum", "Log10(p) K-", 60, -2, 4);
136  KlzeroMomentum = dbe->book1D("KlzeroMomentum", "Log10(p) K_l^0", 60, -2, 4);
137  KszeroMomentum = dbe->book1D("KszeroMomentum", "Log10(p) K_s^0", 60, -2, 4);
138  //
139  pMomentum = dbe->book1D("pMomentum", "Log10(p) p", 60, -2, 4);
140  pbarMomentum = dbe->book1D("pbarMomentum", "Log10(p) pbar", 60, -2, 4);
141  nMomentum = dbe->book1D("nMomentum", "Log10(p) n", 60, -2, 4);
142  nbarMomentum = dbe->book1D("nbarMomentum", "Log10(p) nbar", 60, -2, 4);
143  l0Momentum = dbe->book1D("l0Momentum", "Log10(p) Lambda0", 60, -2, 4);
144  l0barMomentum = dbe->book1D("l0barMomentum", "Log10(p) Lambda0bar", 60, -2, 4);
145  //
146  DplusMomentum = dbe->book1D("DplusMomentum", "Log10(p) D+", 60, -2, 4);
147  DminusMomentum = dbe->book1D("DminusMomentum", "Log10(p) D-", 60, -2, 4);
148  DzeroMomentum = dbe->book1D("DzeroMomentum", "Log10(p) D^0", 60, -2, 4);
149  //
150  BplusMomentum = dbe->book1D("BplusMomentum", "Log10(p) B+", 60, -2, 4);
151  BminusMomentum = dbe->book1D("BminusMomentum", "Log10(p) B-", 60, -2, 4);
152  BzeroMomentum = dbe->book1D("BzeroMomentum", "Log10(p) B^0", 60, -2, 4);
153  BszeroMomentum = dbe->book1D("BszeroMomentum", "Log10(p) B^0_s", 60, -2, 4);
154  //
155  otherPtclMomentum = dbe->book1D("otherPtclMomentum", "Log10(p) other ptcls", 60, -2, 4);
156 
158  genPtclNumber = dbe->book1D("genPtclNumber", "Log10(No. all particles)", 60, -1, 5); //Log
159  genVrtxNumber = dbe->book1D("genVrtxNumber", "Log10(No. all vertexs)", 60, -1, 5); //Log
160  //
161  stablePtclNumber= dbe->book1D("stablePtclNumber", "Log10(No. stable particles)", 50, 0, 5); //Log
162  stablePtclPhi = dbe->book1D("stablePtclPhi", "stable Ptcl Phi", 360, -180, 180);
163  stablePtclEta = dbe->book1D("stablePtclEta", "stable Ptcl Eta (pseudo rapidity)", 220, -11, 11);
164  stablePtclCharge = dbe->book1D("stablePtclCharge", "stablePtclCharge", 5, -2, 2);
165  stableChaNumber= dbe->book1D("stableChaNumber", "Log10(No. stable charged particles)", 50, 0, 5); //Log
166  stablePtclp = dbe->book1D("stablePtclp", "Log10(p) stable ptcl p", 80, -4, 4); //Log
167  stablePtclpT = dbe->book1D("stablePtclpT", "Log10(pT) stable ptcl pT", 80, -4, 4); //Log
168  outVrtxStablePtclNumber = dbe->book1D("outVrtxStablePtclNumber", "No. outgoing stable ptcls from vrtx", 10, 0, 10);
169  //
170  outVrtxPtclNumber = dbe->book1D("outVrtxPtclNumber", "No. outgoing ptcls from vrtx", 30, 0, 30);
171  vrtxZ = dbe->book1D("VrtxZ", "VrtxZ", 50 , -250, 250);
172  vrtxRadius = dbe->book1D("vrtxRadius", "vrtxRadius", 50, 0, 50);
173  //
174  unknownPDTNumber = dbe->book1D("unknownPDTNumber", "Log10(No. unknown ptcls PDT)", 60, -1, 5); //Log
175  genPtclStatus = dbe->book1D("genPtclStatus", "Status of genParticle", 200,0,200.);
176  //
177  Bjorken_x = dbe->book1D("Bjorken_x", "Bjorken_x", 1000, 0.0, 1.0);
178  }
179  return;
180 }
181 
184 {
186  iSetup.getData( fPDGTable );
187  return;
188 }
189 void BasicHepMCValidation::endRun(const edm::Run& iRun,const edm::EventSetup& iSetup){return;}
191 {
193  int uNum = 0; int dNum = 0; int sNum = 0; int cNum = 0; int bNum = 0; int tNum = 0;
194  int ubarNum = 0; int dbarNum = 0; int sbarNum = 0; int cbarNum = 0; int bbarNum = 0; int tbarNum = 0;
195  //
196  int eminusNum = 0; int nueNum = 0; int muminusNum = 0; int numuNum = 0; int tauminusNum = 0; int nutauNum = 0;
197  int eplusNum = 0; int nuebarNum = 0; int muplusNum = 0; int numubarNum = 0; int tauplusNum = 0; int nutaubarNum = 0;
198  //
199  int gluNum = 0; int WplusNum = 0; int WminusNum = 0; int ZNum = 0; int gammaNum = 0;
200  //
201  int piplusNum = 0; int piminusNum = 0; int pizeroNum = 0; int KplusNum = 0; int KminusNum = 0; int KlzeroNum = 0; int KszeroNum = 0;
202  //
203  int pNum = 0; int pbarNum = 0; int nNum = 0; int nbarNum = 0; int l0Num = 0; int l0barNum = 0;
204  //
205  int DplusNum = 0; int DminusNum = 0; int DzeroNum = 0; int BplusNum = 0; int BminusNum = 0; int BzeroNum = 0; int BszeroNum = 0;
206  //
207  int outVrtxStablePtclNum = 0; int stablePtclNum = 0; int otherPtclNum = 0; int unknownPDTNum = 0; int stableChaNum = 0;
208  //
209  double bjorken = 0.;
210 
213  iEvent.getByLabel(hepmcCollection_, evt);
214 
215  //Get EVENT
216  HepMC::GenEvent *myGenEvent = new HepMC::GenEvent(*(evt->GetEvent()));
217 
218  nEvt->Fill(0.5);
219 
220  genPtclNumber->Fill(log10(myGenEvent->particles_size()));
221  genVrtxNumber->Fill(log10(myGenEvent->vertices_size()));
222 
224  HepMC::PdfInfo *pdf = myGenEvent->pdf_info();
225  if(pdf){
226  bjorken = ((pdf->x1())/((pdf->x1())+(pdf->x2())));
227  }
228  Bjorken_x->Fill(bjorken);
229 
230  //Looping through the VERTICES in the event
231  HepMC::GenEvent::vertex_const_iterator vrtxBegin = myGenEvent->vertices_begin();
232  HepMC::GenEvent::vertex_const_iterator vrtxEnd = myGenEvent->vertices_end();
233  for(HepMC::GenEvent::vertex_const_iterator vrtxIt = vrtxBegin; vrtxIt!=vrtxEnd; ++vrtxIt)
234  {
236  HepMC::GenVertex *vrtx = *vrtxIt;
237  outVrtxPtclNumber->Fill(vrtx->particles_out_size()); //std::cout << "all " << vrtx->particles_out_size() << '\n';
238  vrtxZ->Fill(vrtx->point3d().z());
239  vrtxRadius->Fill(vrtx->point3d().perp());
240 
242  HepMC::GenVertex::particles_out_const_iterator vrtxPtclBegin = vrtx->particles_out_const_begin();
243  HepMC::GenVertex::particles_out_const_iterator vrtxPtclEnd = vrtx->particles_out_const_end();
244  outVrtxStablePtclNum = 0;
245  for(HepMC::GenVertex::particles_out_const_iterator vrtxPtclIt = vrtxPtclBegin; vrtxPtclIt != vrtxPtclEnd; ++vrtxPtclIt)
246  {
247  HepMC::GenParticle *vrtxPtcl = *vrtxPtclIt;
248  if (vrtxPtcl->status() == 1){
249  ++outVrtxStablePtclNum; //std::cout << "stable " << outVrtxStablePtclNum << '\n';
250  }
251  }
252  outVrtxStablePtclNumber->Fill(outVrtxStablePtclNum);
253  }//vertices
254 
255 
257  HepMC::GenEvent::particle_const_iterator ptclBegin = myGenEvent->particles_begin();
258  HepMC::GenEvent::particle_const_iterator ptclEnd = myGenEvent->particles_end();
259  for(HepMC::GenEvent::particle_const_iterator ptclIt = ptclBegin; ptclIt!=ptclEnd; ++ptclIt)
260  {
261 
263  HepMC::GenParticle *ptcl = *ptclIt;
264  int Id = ptcl->pdg_id(); // std::cout << Id << '\n';
265  float Log_p = log10( ptcl->momentum().rho() );
266  double charge = 999.; // for the charge it's needed a HepPDT method
267  int status = ptcl->status();
268  const HepPDT::ParticleData* PData = fPDGTable->particle(HepPDT::ParticleID(Id));
269  if(PData==0) {
270  // std::cout << "Unknown id = " << Id << '\n';
271  ++unknownPDTNum;
272  }
273  else
274  charge = PData->charge();
275 
277  genPtclStatus->Fill((float)status);
278 
280  if(ptcl->status() == 1){
281  ++stablePtclNum;
282  stablePtclPhi->Fill(ptcl->momentum().phi()/CLHEP::degree); //std::cout << ptcl->polarization().phi() << '\n';
283  stablePtclEta->Fill(ptcl->momentum().pseudoRapidity());
284  stablePtclCharge->Fill(charge); // std::cout << ptclData.charge() << '\n';
285  stablePtclp->Fill(Log_p);
286  stablePtclpT->Fill(log10(ptcl->momentum().perp()));
287  if (charge != 0. && charge != 999.) ++stableChaNum;
288  }
289 
291  switch(abs(Id)){
292 
293  case 1 : {
294  if(Id > 0) {
295  ++dNum; dMomentum->Fill(Log_p);}
296  else{
297  ++dbarNum; dbarMomentum->Fill(Log_p);}
298  }
299  break;
300  //
301  case 2 : {
302  if(Id > 0) {
303  ++uNum; uMomentum->Fill(Log_p);}
304  else{
305  ++ubarNum; ubarMomentum->Fill(Log_p);}
306  }
307  break;
308  //
309  case 3 : {
310  if(Id > 0) {
311  ++sNum; sMomentum->Fill(Log_p);}
312  else{
313  ++sbarNum; sbarMomentum->Fill(Log_p);}
314  }
315  break;
316  //
317  case 4 : {
318  if(Id > 0) {
319  ++cNum; cMomentum->Fill(Log_p);}
320  else{
321  ++cbarNum; cbarMomentum->Fill(Log_p);}
322  }
323  break;
324  //
325  case 5 : {
326  if(Id > 0) {
327  ++bNum; bMomentum->Fill(Log_p);}
328  else{
329  ++bbarNum; bbarMomentum->Fill(Log_p);}
330  }
331  break;
332  //
333  case 6 : {
334  if(Id > 0) {
335  ++tNum; tMomentum->Fill(Log_p);}
336  else{
337  ++tbarNum; tbarMomentum->Fill(Log_p);}
338  }
339  break;
340  //
341  case 11 : {
342  if(Id > 0) {
343  ++eminusNum; eminusMomentum->Fill(Log_p);}
344  else{
345  ++eplusNum; eplusMomentum->Fill(Log_p);}
346  }
347  break;
348  //
349  case 12 : {
350  if(Id > 0) {
351  ++nueNum; nueMomentum->Fill(Log_p);}
352  else{
353  ++nuebarNum; nuebarMomentum->Fill(Log_p);}
354  }
355  break;
356  //
357  case 13 : {
358  if(Id > 0) {
359  ++muminusNum; muminusMomentum->Fill(Log_p);}
360  else{
361  ++muplusNum; muplusMomentum->Fill(Log_p);}
362  }
363  break;
364  //
365  case 14 : {
366  if(Id > 0) {
367  ++numuNum; numuMomentum->Fill(Log_p);}
368  else{
369  ++numubarNum; numubarMomentum->Fill(Log_p);}
370  }
371  break;
372  //
373  case 15 : {
374  if(Id > 0) {
375  ++tauminusNum; tauminusMomentum->Fill(Log_p);}
376  else{
377  ++tauplusNum; tauplusMomentum->Fill(Log_p);}
378  }
379  break;
380  //
381  case 16 : {
382  if(Id > 0) {
383  ++nutauNum; nutauMomentum->Fill(Log_p);}
384  else{
385  ++nutaubarNum; nutaubarMomentum->Fill(Log_p);}
386  }
387  break;
388  //
389  //
390  case 21 : {
391  ++gluNum; gluMomentum->Fill(Log_p);
392  }
393  break;
394  //
395  case 22 : {
396  ++gammaNum; gammaMomentum->Fill(Log_p);
397  }
398  break;
399  //
400  case 23 : {
401  ++ZNum; ZMomentum->Fill(Log_p);
402  }
403  break;
404  case 24 : {
405  if(Id > 0) {
406  ++WplusNum; WplusMomentum->Fill(Log_p);}
407  else{
408  ++WminusNum; WminusMomentum->Fill(Log_p);}
409  }
410  break;
411  //
412  //
413  case 211 : {
414  if(Id > 0) {
415  ++piplusNum; piplusMomentum->Fill(Log_p);}
416  else{
417  ++piminusNum; piminusMomentum->Fill(Log_p);}
418  }
419  break;
420  //
421  case 111 : {
422  ++pizeroNum; pizeroMomentum->Fill(Log_p);
423  }
424  break;
425  //
426  case 321 : {
427  if(Id > 0) {
428  ++KplusNum; KplusMomentum->Fill(Log_p);}
429  else{
430  ++KminusNum; KminusMomentum->Fill(Log_p);}
431  }
432  break;
433  //
434  case 130 : {
435  ++KlzeroNum; KlzeroMomentum->Fill(Log_p);
436  }
437  break;
438  //
439  case 310 : {
440  ++KszeroNum; KszeroMomentum->Fill(Log_p);
441  }
442  break;
443  //
444  //
445  case 2212 : {
446  if(Id > 0) {
447  ++pNum; pMomentum->Fill(Log_p);}
448  else{
449  ++pbarNum; pbarMomentum->Fill(Log_p);}
450  }
451  break;
452  //
453  case 2112 : {
454  if(Id > 0) {
455  ++nNum; nMomentum->Fill(Log_p);}
456  else{
457  ++nbarNum; nbarMomentum->Fill(Log_p);}
458  }
459  break;
460  //
461  //
462  case 3122 : {
463  if(Id > 0) {
464  ++l0Num; l0Momentum->Fill(Log_p);}
465  else{
466  ++l0barNum; l0barMomentum->Fill(Log_p);}
467  }
468  break;
469  //
470  //
471  case 411 : {
472  if(Id > 0) {
473  ++DplusNum; DplusMomentum->Fill(Log_p);}
474  else{
475  ++DminusNum; DminusMomentum->Fill(Log_p);}
476  }
477  break;
478  //
479  case 421 : {
480  ++DzeroNum; DzeroMomentum->Fill(Log_p);
481  }
482  break;
483  //
484  case 521 : {
485  if(Id > 0) {
486  ++BplusNum; BplusMomentum->Fill(Log_p);}
487  else{
488  ++BminusNum; BminusMomentum->Fill(Log_p);}
489  }
490  break;
491  //
492  case 511 : {
493  ++BzeroNum; BzeroMomentum->Fill(Log_p);
494  }
495  break;
496  //
497  case 531 : {
498  ++BszeroNum; BszeroMomentum->Fill(Log_p);
499  }
500  break;
501  //
502  default : {
503  ++otherPtclNum; otherPtclMomentum->Fill(Log_p);
504  }
505  }//switch
506  // if( 0 < Id && 100 > Id) ++part_counter[Id];
507  }//event particles
508 
509 
511  stablePtclNumber->Fill(log10(stablePtclNum+0.1));
512  stableChaNumber->Fill(log10(stableChaNum+0.1));
513  otherPtclNumber->Fill(log10(otherPtclNum+0.1));
514  unknownPDTNumber->Fill(log10(unknownPDTNum+0.1));
515  //
516  dNumber->Fill(dNum); uNumber->Fill(uNum); sNumber->Fill(sNum); cNumber->Fill(cNum); bNumber->Fill(bNum); tNumber->Fill(tNum);
517  dbarNumber->Fill(dbarNum); ubarNumber->Fill(ubarNum); sbarNumber->Fill(sbarNum); cbarNumber->Fill(cbarNum); bbarNumber->Fill(bbarNum); tbarNumber->Fill(tbarNum);
518  //
519  eminusNumber->Fill(eminusNum); nueNumber->Fill(nueNum); muminusNumber->Fill(muminusNum); numuNumber->Fill(numuNum); tauminusNumber->Fill(tauminusNum); nutauNumber->Fill(nutauNum);
520  eplusNumber->Fill(eplusNum); nuebarNumber->Fill(nuebarNum); muplusNumber->Fill(muplusNum); numubarNumber->Fill(numubarNum); tauplusNumber->Fill(tauplusNum); nutaubarNumber->Fill(nutaubarNum);
521  //
522  ZNumber->Fill(ZNum); WminusNumber->Fill(WminusNum); WplusNumber->Fill(WplusNum);
523  gammaNumber->Fill(log10(gammaNum+0.1));
524  gluNumber->Fill(log10(gluNum+0.1));
525  //
526  piplusNumber->Fill(log10(piplusNum+0.1));
527  piminusNumber->Fill(log10(piminusNum+0.1));
528  pizeroNumber->Fill(log10(pizeroNum+0.1));
529  KplusNumber->Fill(KplusNum); KminusNumber->Fill(KminusNum); KlzeroNumber->Fill(KlzeroNum); KszeroNumber->Fill(KszeroNum);
530  //
531  pNumber->Fill(pNum); pbarNumber->Fill(pbarNum); nNumber->Fill(nNum); nbarNumber->Fill(nbarNum); l0Number->Fill(l0Num); l0barNumber->Fill(l0barNum);
532  //
533  DplusNumber->Fill(DplusNum); DminusNumber->Fill(DminusNum); DzeroNumber->Fill(DzeroNum); BplusNumber->Fill(BplusNum); BminusNumber->Fill(BminusNum); BzeroNumber->Fill(BzeroNum); BszeroNumber->Fill(BszeroNum);
534 
535  delete myGenEvent;
536 }//analyze
MonitorElement * sbarMomentum
virtual void analyze(const edm::Event &, const edm::EventSetup &)
MonitorElement * WplusNumber
MonitorElement * genPtclStatus
MonitorElement * BzeroMomentum
MonitorElement * pizeroMomentum
MonitorElement * muplusMomentum
MonitorElement * genVrtxNumber
MonitorElement * nueMomentum
MonitorElement * BplusNumber
MonitorElement * pbarNumber
MonitorElement * pizeroNumber
MonitorElement * KlzeroMomentum
MonitorElement * KplusMomentum
MonitorElement * pbarMomentum
MonitorElement * unknownPDTNumber
MonitorElement * gammaNumber
MonitorElement * uNumber
multiplicity ME&#39;s
virtual void endRun(const edm::Run &, const edm::EventSetup &)
MonitorElement * numubarNumber
MonitorElement * dbarNumber
MonitorElement * cMomentum
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
Definition: DQMStore.cc:514
MonitorElement * outVrtxPtclNumber
MonitorElement * BszeroMomentum
MonitorElement * muminusNumber
MonitorElement * KlzeroNumber
MonitorElement * Bjorken_x
MonitorElement * otherPtclNumber
MonitorElement * ubarMomentum
MonitorElement * DminusNumber
MonitorElement * tauminusNumber
MonitorElement * eplusMomentum
MonitorElement * tauplusNumber
MonitorElement * piplusMomentum
BasicHepMCValidation(const edm::ParameterSet &)
MonitorElement * tNumber
MonitorElement * bbarMomentum
MonitorElement * sbarNumber
MonitorElement * otherPtclMomentum
#define abs(x)
Definition: mlp_lapack.h:159
MonitorElement * stablePtclCharge
MonitorElement * pMomentum
MonitorElement * ZNumber
MonitorElement * dbarMomentum
MonitorElement * nuebarMomentum
MonitorElement * KminusNumber
MonitorElement * eminusMomentum
MonitorElement * tauplusMomentum
double charge(const std::vector< uint8_t > &Ampls)
MonitorElement * gluMomentum
MonitorElement * gammaMomentum
void getData(T &iHolder) const
Definition: EventSetup.h:67
MonitorElement * BszeroNumber
MonitorElement * tbarNumber
MonitorElement * nMomentum
MonitorElement * piplusNumber
MonitorElement * nbarNumber
MonitorElement * BminusNumber
void Fill(long long x)
MonitorElement * cbarNumber
MonitorElement * dMomentum
int iEvent
Definition: GenABIO.cc:243
MonitorElement * vrtxRadius
MonitorElement * ZMomentum
MonitorElement * l0Number
MonitorElement * tbarMomentum
MonitorElement * BplusMomentum
MonitorElement * eminusNumber
MonitorElement * DminusMomentum
MonitorElement * nuebarNumber
edm::ESHandle< HepPDT::ParticleDataTable > fPDGTable
PDT table.
MonitorElement * nNumber
MonitorElement * numubarMomentum
MonitorElement * eplusNumber
MonitorElement * WminusMomentum
MonitorElement * stablePtclPhi
MonitorElement * WplusMomentum
MonitorElement * stablePtclEta
MonitorElement * DzeroNumber
MonitorElement * KplusNumber
DQMStore * dbe
ME&#39;s &quot;container&quot;.
HepPDT::ParticleData ParticleData
MonitorElement * KminusMomentum
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:355
MonitorElement * pNumber
MonitorElement * cbarMomentum
MonitorElement * muminusMomentum
virtual void beginRun(const edm::Run &, const edm::EventSetup &)
MonitorElement * cNumber
MonitorElement * l0barNumber
MonitorElement * nbarMomentum
MonitorElement * stablePtclp
MonitorElement * stablePtclpT
MonitorElement * tauminusMomentum
MonitorElement * muplusNumber
MonitorElement * nueNumber
MonitorElement * stableChaNumber
MonitorElement * nutaubarMomentum
MonitorElement * DplusNumber
MonitorElement * stablePtclNumber
MonitorElement * bbarNumber
MonitorElement * sMomentum
MonitorElement * BzeroNumber
MonitorElement * dNumber
MonitorElement * piminusNumber
MonitorElement * uMomentum
Momentum ME&#39;s.
MonitorElement * tMomentum
MonitorElement * KszeroMomentum
MonitorElement * numuMomentum
MonitorElement * genPtclNumber
other ME&#39;s
edm::InputTag hepmcCollection_
MonitorElement * nutaubarNumber
MonitorElement * gluNumber
MonitorElement * sNumber
MonitorElement * outVrtxStablePtclNumber
MonitorElement * KszeroNumber
MonitorElement * piminusMomentum
tuple status
Definition: ntuplemaker.py:245
MonitorElement * numuNumber
MonitorElement * l0barMomentum
MonitorElement * DzeroMomentum
MonitorElement * DplusMomentum
MonitorElement * WminusNumber
MonitorElement * nutauMomentum
MonitorElement * nutauNumber
MonitorElement * ubarNumber
MonitorElement * bNumber
MonitorElement * bMomentum
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:232
Definition: Run.h:32
MonitorElement * l0Momentum
MonitorElement * BminusMomentum