Pluto v6.3.0
Loading...
Searching...
No Matches
PDecayChannel.h
Go to the documentation of this file.
1
2//
3// PDecayChannel
4//
5// Author: Volker Hejny
6// Written: 27.08.99
7// Revised: 15.06.00 MK
8// Revised: 23.07.07 IF
9//
10// This class implements a list of decay modes (normally for one particle.
11// Each instance is linked to a next one if there are more choices to
12// decay.
13// -----------------------------------------------------------------------
15
16#ifndef _PDECAYCHANNEL_H_
17#define _PDECAYCHANNEL_H_
18
19#include "TObject.h"
20#include "TArrayI.h"
21#include "TF1.h"
22#include "TF2.h"
23class PParticle;
24
25using namespace std;
26#include <iostream>
27
28class PDecayChannel : public TObject {
29
30 private:
31 Double_t Weight; // branching ratio
32 Int_t NumOfDaughters; // number of decay products
33 TArrayI Daughters; // particle ids of decay products
34 PDecayChannel* Next; // pointer to an alternative channel
35
36 public:
37
40
41 // Add one decay channel by referencing an existing one.
43
44 // Add one decay channel by giving the weight and the particle ids. In
45 // case of more than four particles one could also use a array of ids
46 // together with its length.
47 void AddChannel(Double_t w, Int_t d1);
48 void AddChannel(Double_t w, Int_t d1, Int_t d2);
49 void AddChannel(Double_t w, Int_t d1, Int_t d2, Int_t d3);
50 void AddChannel(Double_t w, Int_t d1, Int_t d2, Int_t d3, Int_t d4);
51 void AddChannel(Double_t w, Int_t nd, Int_t* ld);
52
53 // The same as above using PParticle* instead of ids.
54 void AddChannel(Double_t w, PParticle *d1);
55 void AddChannel(Double_t w, PParticle *d1, PParticle *d2);
56 void AddChannel(Double_t w, PParticle *d1, PParticle *d2, PParticle *d3);
57 void AddChannel(Double_t w, PParticle *d1, PParticle *d2, PParticle *d3, PParticle *d4);
58 void AddChannel(Double_t w, Int_t nd, PParticle **ld);
59
60 // The same as above using particle names instead of ids.
61 void AddChannel(Double_t w, const char *d1);
62 void AddChannel(Double_t w, const char *d1, const char *d2);
63 void AddChannel(Double_t w, const char *d1, const char *d2, const char *d3);
64 void AddChannel(Double_t w, const char *d1, const char *d2, const char *d3, const char *d4);
65 void AddChannel(Double_t w, Int_t nd, const char **ld);
66
67 // Get the information out of the class ...
68 Double_t GetWeight();
69 Int_t *GetDaughters(int &n);
72
73 void setAngleFunction(TF1 *) {Warning("setAngleFunction", "setAngleFunction is obsolete");};
74 void setAngleFunction(TF2 *) {Warning("setAngleFunction", "setAngleFunction is obsolete");};
75
76 // Unlink means to return the next decay channel and to set Next to NULL
78
79 // print decay channel information
80 void Print(const Option_t *delme=NULL) const;
81
82 ClassDef(PDecayChannel, 0)//Pluto Decay Channel Class
83
84}; // end of PDecayChannel
85
86#endif // _PDECAYCHANNEL_H_
void AddChannel(Double_t w, const char *d1, const char *d2, const char *d3, const char *d4)
void AddChannel(Double_t w, PParticle *d1, PParticle *d2, PParticle *d3, PParticle *d4)
void AddChannel(Double_t w, Int_t d1, Int_t d2, Int_t d3)
void AddChannel(Double_t w, const char *d1, const char *d2, const char *d3)
PDecayChannel * GetLast()
Double_t GetWeight()
void setAngleFunction(TF2 *)
void AddChannel(Double_t w, Int_t d1)
PDecayChannel * Unlink()
PDecayChannel * GetNext()
void AddChannel(Double_t w, Int_t d1, Int_t d2)
void AddChannel(Double_t w, PParticle *d1, PParticle *d2, PParticle *d3)
void Print(const Option_t *delme=NULL) const
void AddChannel(Double_t w, Int_t nd, Int_t *ld)
void AddChannel(PDecayChannel *n)
void AddChannel(Double_t w, const char *d1)
Int_t * GetDaughters(int &n)
void AddChannel(Double_t w, const char *d1, const char *d2)
void AddChannel(Double_t w, PParticle *d1, PParticle *d2)
void setAngleFunction(TF1 *)
void AddChannel(Double_t w, Int_t d1, Int_t d2, Int_t d3, Int_t d4)
void AddChannel(Double_t w, Int_t nd, const char **ld)
void AddChannel(Double_t w, PParticle *d1)
void AddChannel(Double_t w, Int_t nd, PParticle **ld)
PDecayChannel * d1
Definition dp_mult.C:9
PDecayChannel * d2
Definition dp_mult.C:13
Int_t n
Definition etap+omeg.C:21
PParticle * w