Version: SMASH-2.0
pauliblocking.h
Go to the documentation of this file.
1 /*
2  *
3  * Copyright (c) 2014-2020
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 "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_SMASH_PAULIBLOCKING_H_
smash
Definition: action.h:24
smash::PauliBlocker::rc_
double rc_
Radius, after which gaussians (used for averaging) are cut, fm.
Definition: pauliblocking.h:79
smash::PauliBlocker::sig_
double sig_
Standard deviation of the gaussian used for smearing.
Definition: pauliblocking.h:76
smash::PauliBlocker::rp_
double rp_
Radius of averaging in momentum space, GeV/c.
Definition: pauliblocking.h:85
experimentparameters.h
smash::PauliBlocker::init_weights_analytical
void init_weights_analytical()
Analytical calculation of weights.
Definition: pauliblocking.cc:112
smash::PauliBlocker::weights_
std::array< double, 30 > weights_
Weights: tabulated results of numerical integration.
Definition: pauliblocking.h:91
smash::PauliBlocker::phasespace_dens
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).
Definition: pauliblocking.cc:67
smash::Configuration
Interface to the SMASH configuration files.
Definition: configuration.h:464
forwarddeclarations.h
smash::PauliBlocker::init_weights
void init_weights()
Tabulate integrals for weights.
smash::ThreeVector
Definition: threevector.h:31
smash::PauliBlocker
A class that stores parameters needed for Pauli blocking, tabulates necessary integrals and computes ...
Definition: pauliblocking.h:36
smash::PauliBlocker::rr_
double rr_
Radius of averaging in coordinate space, fm.
Definition: pauliblocking.h:82
threevector.h
smash::PauliBlocker::~PauliBlocker
~PauliBlocker()
Destructor.
Definition: pauliblocking.cc:65
smash::PdgCode
Definition: pdgcode.h:108
particles.h
smash::Particles
Definition: particles.h:33
smash::PauliBlocker::PauliBlocker
PauliBlocker(Configuration conf, const ExperimentParameters &parameters)
PauliBlocker constructor.
pdgcode.h
configuration.h
smash::ExperimentParameters
Helper structure for Experiment.
Definition: experimentparameters.h:24
smash::pdg::p
constexpr int p
Proton.
Definition: pdgcode_constants.h:28
smash::PauliBlocker::ntest_
int ntest_
Testparticles number.
Definition: pauliblocking.h:88