Version: SMASH-1.5
pauliblocking.h
Go to the documentation of this file.
1 /*
2  *
3  * Copyright (c) 2014-2018
4  * SMASH Team
5  *
6  * GNU General Public License (GPLv3 or later)
7  *
8  */
9 
10 #ifndef SRC_INCLUDE_PAULIBLOCKING_H_
11 #define SRC_INCLUDE_PAULIBLOCKING_H_
12 
13 #include "configuration.h"
14 #include "experimentparameters.h"
15 #include "forwarddeclarations.h"
16 #include "particles.h"
17 #include "pdgcode.h"
18 #include "threevector.h"
19 
20 namespace smash {
21 
36 class PauliBlocker {
37  public:
46  PauliBlocker(Configuration conf, const ExperimentParameters &parameters);
47 
49  ~PauliBlocker();
50 
64  double phasespace_dens(const ThreeVector &r, const ThreeVector &p,
65  const Particles &particles, const PdgCode pdg,
66  const ParticleList &disregard) const;
67 
68  private:
70  void init_weights();
71 
74 
76  double sig_;
77 
79  double rc_;
80 
82  double rr_;
83 
85  double rp_;
86 
88  int ntest_;
89 
91  std::array<double, 30> weights_;
92 };
93 } // namespace smash
94 
95 #endif // SRC_INCLUDE_PAULIBLOCKING_H_
The ThreeVector class represents a physical three-vector with the components .
Definition: threevector.h:30
double phasespace_dens(const ThreeVector &r, const ThreeVector &p, const Particles &particles, 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.
~PauliBlocker()
Destructor.
Interface to the SMASH configuration files.
double rp_
Radius of averaging in momentum space, GeV/c.
Definition: pauliblocking.h:85
int ntest_
Testparticles number.
Definition: pauliblocking.h:88
PdgCode stores a Particle Data Group Particle Numbering Scheme particle type number.
Definition: pdgcode.h:108
A class that stores parameters needed for Pauli blocking, tabulates necessary integrals and computes ...
Definition: pauliblocking.h:36
double sig_
Standard deviation of the gaussian used for smearing.
Definition: pauliblocking.h:76
constexpr int p
Proton.
double rc_
Radius, after which gaussians (used for averaging) are cut, fm.
Definition: pauliblocking.h:79
void init_weights()
Tabulate integrals for weights.
The Particles class abstracts the storage and manipulation of particles.
Definition: particles.h:33
void init_weights_analytical()
Analytical calculation of weights.
Helper structure for Experiment.
std::array< double, 30 > weights_
Weights: tabulated results of numerical integration.
Definition: pauliblocking.h:91
Definition: action.h:24
double rr_
Radius of averaging in coordinate space, fm.
Definition: pauliblocking.h:82