CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
ParticlePDG.cc
Go to the documentation of this file.
1 /*
2  Copyright : The FASTMC and SPHMC Collaboration
3  Author : Ionut Cristian Arsene
4  Affiliation : Oslo University, Norway & Institute for Space Sciences, Bucharest, Romania
5  e-mail : i.c.arsene@fys.uio.no
6  Date : 2007/05/30
7 
8  This class is using the particle and decay lists provided by the
9  THERMINATOR (Computer Physics Communications 174 669 (2006)) and
10  SHARE (Computer Physics Communications 167 229 (2005)) collaborations.
11 */
12 
13 #ifndef PARTICLE_PDG
15 #endif
16 
17 #include <iostream>
18 
19 using namespace std;
20 
22  fPDG = kNonsensePDG;
23  fMass = -1.0;
24  fWidth = 0.0;
25  fNDecayChannels = 0;
26  for (int i = 0; i < kMaxDecayChannels; i++)
27  fDecayChannels[i] = new DecayChannel();
28 }
29 
30 ParticlePDG::ParticlePDG(char *name, int pdg, double mass, double width) {
31  for (int i = 0; i < 9; i++)
32  if (*(name + i) != '\0')
33  fName[i] = *(name + i);
34  else
35  break;
36  fPDG = pdg;
37  fMass = mass;
38  fWidth = width;
39  fNDecayChannels = 0;
40  for (int i = 0; i < kMaxDecayChannels; i++)
41  fDecayChannels[i] = new DecayChannel();
42 }
43 
45  for (int i = 0; i < kMaxDecayChannels; i++)
46  delete fDecayChannels[i];
47 }
48 
50  double fullBranching = 0.0;
51  for (int i = 0; i < fNDecayChannels; i++)
52  fullBranching += fDecayChannels[i]->GetBranching();
53  return fullBranching;
54 }
55 
57  if (channel.GetMotherPDG() != fPDG) {
58  edm::LogError("ParticlePDG") << " AddChannel() : You try to add a channel which has a different mother PDG";
59  return;
60  }
61  fDecayChannels[fNDecayChannels]->SetMotherPDG(channel.GetMotherPDG());
62  fDecayChannels[fNDecayChannels]->SetBranching(channel.GetBranching());
63  fDecayChannels[fNDecayChannels]->SetDaughters(channel.GetDaughters(), channel.GetNDaughters());
64  fNDecayChannels++;
65 }
int GetNDaughters()
Definition: DecayChannel.h:41
double GetBranching()
Definition: DecayChannel.h:40
Log< level::Error, false > LogError
int * GetDaughters()
Definition: DecayChannel.h:42
void AddChannel(DecayChannel &channel)
Definition: ParticlePDG.cc:56
const int kMaxDecayChannels
Definition: ParticlePDG.h:22
int GetMotherPDG()
Definition: DecayChannel.h:39
double GetFullBranching()
Definition: ParticlePDG.cc:49
const int kNonsensePDG
Definition: DecayChannel.h:20