Version: SMASH-3.1
pauliblocking.h
Go to the documentation of this file.
1 /*
2  *
3  * Copyright (c) 2015,2017-2018,2020,2022
4  * SMASH Team
5  *
6  * GNU General Public License (GPLv3 or later)
7  *
8  */
9 
10 #ifndef SRC_INCLUDE_SMASH_PAULIBLOCKING_H_
11 #define SRC_INCLUDE_SMASH_PAULIBLOCKING_H_
12 
13 #include <vector>
14 
15 #include "configuration.h"
16 #include "experimentparameters.h"
17 #include "forwarddeclarations.h"
18 #include "particles.h"
19 #include "pdgcode.h"
20 #include "threevector.h"
21 
22 namespace smash {
23 
38 class PauliBlocker {
39  public:
48  PauliBlocker(Configuration conf, const ExperimentParameters &parameters);
49 
51  ~PauliBlocker();
52 
66  double phasespace_dens(const ThreeVector &r, const ThreeVector &p,
67  const std::vector<Particles> &ensembles,
68  const PdgCode pdg,
69  const ParticleList &disregard) const;
70 
71  private:
73  void init_weights();
74 
77 
79  double sig_;
80 
82  double rc_;
83 
85  double rr_;
86 
88  double rp_;
89 
91  int ntest_;
92 
95 
97  std::array<double, 30> weights_;
98 };
99 } // namespace smash
100 
101 #endif // SRC_INCLUDE_SMASH_PAULIBLOCKING_H_
Interface to the SMASH configuration files.
A class that stores parameters needed for Pauli blocking, tabulates necessary integrals and computes ...
Definition: pauliblocking.h:38
void init_weights_analytical()
Analytical calculation of weights.
double rr_
Radius of averaging in coordinate space, fm.
Definition: pauliblocking.h:85
int n_ensembles_
Number of ensembles.
Definition: pauliblocking.h:94
double sig_
Standard deviation of the gaussian used for smearing.
Definition: pauliblocking.h:79
~PauliBlocker()
Destructor.
int ntest_
Testparticles number.
Definition: pauliblocking.h:91
double rc_
Radius, after which gaussians (used for averaging) are cut, fm.
Definition: pauliblocking.h:82
double phasespace_dens(const ThreeVector &r, const ThreeVector &p, const std::vector< Particles > &ensembles, const PdgCode pdg, const ParticleList &disregard) const
Calculate phase-space density of a particle species at the point (r,p).
PauliBlocker(Configuration conf, const ExperimentParameters &parameters)
PauliBlocker constructor.
double rp_
Radius of averaging in momentum space, GeV.
Definition: pauliblocking.h:88
void init_weights()
Tabulate integrals for weights.
std::array< double, 30 > weights_
Weights: tabulated results of numerical integration.
Definition: pauliblocking.h:97
PdgCode stores a Particle Data Group Particle Numbering Scheme particle type number.
Definition: pdgcode.h:111
The ThreeVector class represents a physical three-vector with the components .
Definition: threevector.h:31
constexpr int p
Proton.
Definition: action.h:24
Helper structure for Experiment.