Pluto v6.3.0
Loading...
Searching...
No Matches
PDalitzDecay.h
Go to the documentation of this file.
1// Author: I. Froehlich
2// Written: 27.5.2007
3// Revised:
4
5#ifndef _PDALITZDECAY_H_
6#define _PDALITZDECAY_H_
7
8#include "TF1.h"
9#include "TF2.h"
10#include "PChannelModel.h"
11#include "PDynamicData.h"
12#include "PKinematics.h"
13
15
16 public:
18 PDalitzDecay(const Char_t *id, const Char_t *de, Int_t key);
19 PDistribution *Clone(const char *delme=NULL) const;
20
21 Bool_t Init(void);
22 Bool_t SampleMass(void);
23 Bool_t SampleMass(Double_t *mass, Int_t *didx=NULL);
24
25 Bool_t GetWidth(Double_t mass, Double_t *width, Int_t didx=-1);
26
28 Double_t GetWeight(Double_t *mass, Int_t *didx=NULL);
29 Double_t GetWeight(void);
30 int GetDepth(int i=0);
31
32 Bool_t FreezeOut(void);
33
34 virtual Double_t Eval(Double_t x, Double_t y = 0, Double_t z = 0, Double_t t = 0) const;
35 virtual Double_t EvalPar(const Double_t *x, const Double_t *params);
36 //TF1 wrapper
37
38 void SetUseQED(int t) {
39 useQED=t;
40 };
41 virtual void Print(const Option_t *delme=NULL) const ; //Debug info
43
44 protected:
45
47
48 long double alpha;
49 double mass_pi0;
50 double mass_n;
51 double mass_eta;
52 double mass_p;
53 double p1;
54
55 double mass_e, mass_ee;
56
57 double p2;
58 double p3;
59 double mass_x; // mass of second (non dilepton) product
61 int flag; // case flag
62 int sw; //0 for ee, 1 for mumu
63 double ml; // dilepton mass threshold
64
65 int rejection_flag; //Case flag for the mass sampling
66
69 int dilepton_position; //is dilepton particle 1 or 2?
71 double photon_br; //PhotonBR
72
73 int useQED; //use QED FF and not VMD
74 int flatMD; // for test purposes sample a flat mass distribution
75
76 PMesh *integral; //parent-mass dependent integral
77 PChannelModel *formfactor_model; //form factor object
78
79
80 //The following private methods are copied from PData
81 //they are used here by the official wrapper funcions
82 virtual double dGdM(const int &id, const double &m, const double &ecm);
83 double FDalitz(const int &id, const double &m, double ecm);
84 void sampleMD(const double &ecm, const int &id,
85 double &m, const double &m1);
86 double PhotonBR(const int &id);
87
88 ClassDef(PDalitzDecay, 0) // Dalitz decays "a -> dilepton/dimuon + b"
89};
90
91#endif
92
93
double FDalitz(const int &id, const double &m, double ecm)
int dilepton_position
virtual Double_t EvalPar(const Double_t *x, const Double_t *params)
void sampleMD(const double &ecm, const int &id, double &m, const double &m1)
double mass_eta
PMesh * integral
virtual Double_t Eval(Double_t x, Double_t y=0, Double_t z=0, Double_t t=0) const
long double alpha
double mass_pi0
void SetUseQED(int t)
PParticle * other
Bool_t SampleMass(void)
Double_t GetWeight(Double_t *mass, Int_t *didx=NULL)
virtual double dGdM(const int &id, const double &m, const double &ecm)
double mass_parent
PParticle * dilepton
double PhotonBR(const int &id)
Bool_t GetWidth(Double_t mass, Double_t *width, Int_t didx=-1)
PChannelModel * formfactor_model
PDistribution * Clone(const char *delme=NULL) const
Bool_t SampleMass(Double_t *mass, Int_t *didx=NULL)
Double_t draw_parent_mass
PDalitzDecay(const Char_t *id, const Char_t *de, Int_t key)
PParticle * parent
virtual void Print(const Option_t *delme=NULL) const
Double_t GetWeight(void)
Bool_t FreezeOut(void)
double photon_br
Bool_t Init(void)
int GetDepth(int i=0)
virtual Double_t GetWeight(void)
Definition PMesh.h:13
PProjector * m1
Double_t mass