Pluto v6.3.0
Loading...
Searching...
No Matches
PHadronDecayM1.h
Go to the documentation of this file.
1// Author: I. Froehlich
2// Written: 27.5.2007
3// Revised:
4
5#ifndef _PHADRONDECAYM1_H_
6#define _PHADRONDECAYM1_H_
7
8#include "TF1.h"
9#include "TF2.h"
10#include "PHadronDecay.h"
11#include "PDynamicData.h"
12#include "PKinematics.h"
13
15
16 public:
17
19 PHadronDecayM1(const Char_t *id, const Char_t *de, Int_t key);
20 PDistribution *Clone(const char*delme=NULL) const;
21
22 Bool_t Init(void);
23 Bool_t Prepare(void);
24 void SubPrint(Int_t opt) const;
25 Bool_t SampleMass(void);
26 Bool_t SampleMass(Double_t *mass, Int_t *didx=NULL);
27
28 Bool_t GetWidth(Double_t mass, Double_t *width, Int_t didx=-1);
29
30 Double_t GetWeight(void);
31 Double_t GetWeight(Double_t *mass, Int_t *didx=NULL);
32 int GetDepth(int i=0);
33
34 Double_t Eval(Double_t x, Double_t y = 0, Double_t z = 0, Double_t t = 0) const;
35 Double_t EvalPar(const Double_t *x, const Double_t *params);
36 //TF1 wrapper
37
38 Bool_t CheckAbort(void) {
39 return abort;
40 };
41
42 Bool_t IsNotRejected(void) {
43 return !abort;
44 };
45
46 protected:
47
50 Double_t unstable_mass, unstable_ml; //Unstable mass pole, threshold
51 Double_t unstable_dynamic_mass; //sampled unstable mass
52 Double_t stable_mass;
53 bool sampleM1(const double &ecm);
55 double BWWeight(const int &i1, const double &m,
56 const double &m1, const double &m2, int didx_local1=-1,
57 int i2=0, int didx_local2=-1);
58 double maxBWWeight(const int &i1, const double &m, const double &lower,
59 const double &upper, double &max1, const double &m2, int didx_local1=-1,
60 int i2=0, int didx_local2=-1);
61
65
66 Bool_t abort;
68
69 ClassDef(PHadronDecayM1, 0) // Hadron decay in 1 unstable and 1 stable product
70};
71
72#endif
73
74
Bool_t IsNotRejected(void)
Bool_t SampleMass(void)
Double_t cutoff_condition
Double_t unstable_ml
Double_t EvalPar(const Double_t *x, const Double_t *params)
PChannelModel * model2
Bool_t Init(void)
Double_t Eval(Double_t x, Double_t y=0, Double_t z=0, Double_t t=0) const
double maxBWWeight(const int &i1, const double &m, const double &lower, const double &upper, double &max1, const double &m2, int didx_local1=-1, int i2=0, int didx_local2=-1)
bool sampleM1(const double &ecm)
Bool_t Prepare(void)
PDistribution * Clone(const char *delme=NULL) const
PParticle * parent
PParticle * daughter2
Double_t stable_mass
double BWWeight(const int &i1, const double &m, const double &m1, const double &m2, int didx_local1=-1, int i2=0, int didx_local2=-1)
void SubPrint(Int_t opt) const
Double_t unstable_mass
PChannelModel * model1
Bool_t SampleMass(Double_t *mass, Int_t *didx=NULL)
Bool_t CheckAbort(void)
Double_t GetWeight(void)
PHadronDecayM1(const Char_t *id, const Char_t *de, Int_t key)
PParticle * daughter1
Double_t GetWeight(Double_t *mass, Int_t *didx=NULL)
Double_t unstable_dynamic_mass
int GetDepth(int i=0)
Bool_t GetWidth(Double_t mass, Double_t *width, Int_t didx=-1)
PProjector * m1
Double_t mass