Do not include from subdirectories
[u/mrichter/AliRoot.git] / TUHKMgen / UHKM / DecayChannel.h
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 decays 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 DECAYCHANNEL_H
14 #define DECAYCHANNEL_H
15
16 #include <Rtypes.h>
17
18 const Int_t kMaxDaughters = 3;
19 const Int_t kNonsensePDG = 1000000000;
20
21 class DecayChannel {
22  public:
23   DecayChannel();                                                                           // default constructor
24   DecayChannel(const DecayChannel &copy);                                                   // copy constructor
25   DecayChannel(Int_t mother, Double_t branching, Int_t nDaughters, const Int_t *daughters); // explicit constructor
26   ~DecayChannel() {};                                                                       // destructor
27   
28   void     SetMotherPDG(Int_t value)              {fMotherPDG = value;}
29   void     SetBranching(Double_t value)           {fBranchingRatio = value;}
30   void     SetDaughters(const Int_t *values, Int_t n);
31   void     AddDaughter(Int_t pdg);
32   Int_t    GetMotherPDG() const                   {return fMotherPDG;}
33   Double_t GetBranching() const                   {return fBranchingRatio;}
34   Int_t    GetNDaughters() const                  {return fNDaughters;}
35   const Int_t*   GetDaughters() const                   {return fDaughtersPDG;}
36   Int_t    GetDaughterPDG(Int_t i);                                                         // i --> must be the zero-based index of daughter
37
38  private:
39   Int_t    fMotherPDG;                          // PDG code of the mother particle
40   Double_t fBranchingRatio;                     // branching ratio
41   Int_t    fNDaughters;                         // number of daughter particles
42   Int_t    fDaughtersPDG[kMaxDaughters];        // array with daughters PDG
43 };
44
45 #endif