Version: SMASH-3.4
decayactiondilepton.h
Go to the documentation of this file.
1 /*
2  *
3  * Copyright (c) 2015-2022
4  * SMASH Team
5  *
6  * GNU General Public License (GPLv3 or later)
7  *
8  */
9 
10 #ifndef SRC_INCLUDE_SMASH_DECAYACTIONDILEPTON_H_
11 #define SRC_INCLUDE_SMASH_DECAYACTIONDILEPTON_H_
12 
13 #include "decayaction.h"
14 
15 namespace smash {
16 
17 /**
18  * \ingroup action
19  * DecayActionDilepton is special action created for particles
20  * that can decay into dileptons. Such actions are never actually
21  * performed, but only written into the dilepton output according to
22  * our perturbative treatment.
23  */
25  public:
26  /**
27  * Construct a DecayActionDilepton from a particle \p p.
28  *
29  * It does not initialize the list of possible decay processes. You need to
30  * call add_processes after construction.
31  *
32  * \param[in] p The particle that should decay if the action is performed.
33  * \param[in] time_of_execution Time at which the action is supposed to take
34  * place
35  * \param[in] shining_weight The weight of the dilepton decay accroding
36  * to the shining method.
37  */
39  double shining_weight);
40 
41  double get_total_weight() const override {
42  return shining_weight_ * branching_;
43  }
44 
45  /**
46  * Generates momenta of outgoing dileptons (for Dalitz dilepton decays only).
47  */
48  void sample_manybody_phasespace() override;
49 
50  private:
51  /**
52  * The shining weight is a weight you apply to every dilepton decay. Because
53  * we radiate dileptons at every timestep to increase statistics, we
54  * afterwards weight them to correct the dilepton decay yields.
55  */
56  const double shining_weight_;
57  /**
58  * An additional branching factor that is multiplied with the shining weight.
59  * For Dalitz decays, the primary shining weight is based on the integrated
60  * width for the channel, and the branching factor corrects for the
61  * differential width (evaluated at a particular dilepton mass), relative
62  * to the integrated width. It is determined after the dilepton mass is fixed.
63  * For direct (2-body) decays, the branching factor equals one.
64  */
65  double branching_ = 1.;
66 };
67 
68 } // namespace smash
69 
70 #endif // SRC_INCLUDE_SMASH_DECAYACTIONDILEPTON_H_
double time_of_execution() const
Get the time at which the action is supposed to be performed.
Definition: action.h:254
DecayActionDilepton is special action created for particles that can decay into dileptons.
double get_total_weight() const override
Return the total width of the decay process.
void sample_manybody_phasespace() override
Generates momenta of outgoing dileptons (for Dalitz dilepton decays only).
double branching_
An additional branching factor that is multiplied with the shining weight.
DecayActionDilepton(const ParticleData &p, double time_of_execution, double shining_weight)
Construct a DecayActionDilepton from a particle p.
const double shining_weight_
The shining weight is a weight you apply to every dilepton decay.
DecayAction is a special action which takes one single particle in the initial state and makes it dec...
Definition: decayaction.h:26
ParticleData contains the dynamic information of a certain particle.
Definition: particledata.h:59
constexpr int p
Proton.
Definition: action.h:24