CMS 3D CMS Logo

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') fName[i] = *(name+i);
33  else break;
34  fPDG = pdg;
35  fMass = mass;
36  fWidth = width;
37  fNDecayChannels = 0;
38  for(int i=0; i<kMaxDecayChannels; i++)
39  fDecayChannels[i] = new DecayChannel();
40 }
41 
43  for(int i=0; i<kMaxDecayChannels; i++)
44  delete fDecayChannels[i];
45 }
46 
48  double fullBranching = 0.0;
49  for(int i=0; i<fNDecayChannels; i++)
50  fullBranching += fDecayChannels[i]->GetBranching();
51  return fullBranching;
52 }
53 
55  if(channel.GetMotherPDG() != fPDG) {
56  edm::LogError("ParticlePDG") <<" AddChannel() : You try to add a channel which has a different mother PDG";
57  return;
58  }
59  fDecayChannels[fNDecayChannels]->SetMotherPDG(channel.GetMotherPDG());
60  fDecayChannels[fNDecayChannels]->SetBranching(channel.GetBranching());
61  fDecayChannels[fNDecayChannels]->SetDaughters(channel.GetDaughters(), channel.GetNDaughters());
62  fNDecayChannels++;
63 }
int GetNDaughters()
Definition: DecayChannel.h:41
double GetBranching()
Definition: DecayChannel.h:40
int * GetDaughters()
Definition: DecayChannel.h:42
void AddChannel(DecayChannel &channel)
Definition: ParticlePDG.cc:54
const int kMaxDecayChannels
Definition: ParticlePDG.h:22
int GetMotherPDG()
Definition: DecayChannel.h:39
double GetFullBranching()
Definition: ParticlePDG.cc:47
const int kNonsensePDG
Definition: DecayChannel.h:20