KaliVeda  1.13/01
Heavy-Ion Analysis Toolkit
participant_spectator_model.h
Go to the documentation of this file.
1 #ifndef PARTICIPANT_SPECTATOR_MODEL_H
2 #define PARTICIPANT_SPECTATOR_MODEL_H
3 
4 #include "KVNucleus.h"
5 
6 namespace KVImpactParameters {
16  double A1, A2, Z1, Z2, R1, R2, _beta, NORM;
17  int sector(double BETA, double NU) const;
18 
19  enum Sector
20  { I = 1, II, III, IV };
21 
22  public:
24  participant_spectator_model(const KVNucleus& PROJ, const KVNucleus& TARG, Bool_t normalize_b = kFALSE, Bool_t normalize_participants = kFALSE)
25  : A1(PROJ.GetA()), A2(TARG.GetA()),
26  Z1(PROJ.GetZ()), Z2(TARG.GetZ()),
27  R1(1.2 * pow(PROJ.GetA(), 1. / 3.)),
28  R2(1.2 * pow(TARG.GetA(), 1. / 3.)),
29  _beta(1. / (R1 + R2))
30  {
34 
35  if (normalize_b) _beta = 1;
36  if (normalize_participants) NORM = total_participants(0);
37  else NORM = 1;
38  }
40 
41  void set(const KVNucleus& PROJ, const KVNucleus& TARG, Bool_t normalize_b = kFALSE, Bool_t normalize_participants = kFALSE)
42  {
43  A1 = PROJ.GetA();
44  A2 = TARG.GetA();
45  Z1 = PROJ.GetZ();
46  Z2 = TARG.GetZ();
47  R1 = 1.2 * pow(PROJ.GetA(), 1. / 3.);
48  R2 = 1.2 * pow(TARG.GetA(), 1. / 3.);
49  _beta = 1. / (R1 + R2);
50  if (normalize_b) _beta = 1;
51  if (normalize_participants) NORM = total_participants(0);
52  else NORM = 1;
53  }
54  double F(double b, bool target = false) const;
55  double operator()(double* x, double*)
56  {
68 
69  return total_participants(*x) / NORM;
70  }
71  double total_participants(double b) const
72  {
77 
79  }
80  double projectile_participants(double b) const
81  {
82  return A1 * F(b);
83  }
84  double target_participants(double b) const
85  {
86  return A2 * F(b, true);
87  }
88  double proton_participants(double b) const
89  {
90  return (Z1 / A1) * projectile_participants(b) + (Z2 / A2) * target_participants(b);
91  }
92 
94  };
95 
96 }
97 
98 #endif // PARTICIPANT_SPECTATOR_MODEL_H
#define b(i)
bool Bool_t
#define ClassDef(name, id)
double pow(double, double)
Formulae for participant-spectator model.
participant_spectator_model(const KVNucleus &PROJ, const KVNucleus &TARG, Bool_t normalize_b=kFALSE, Bool_t normalize_participants=kFALSE)
void set(const KVNucleus &PROJ, const KVNucleus &TARG, Bool_t normalize_b=kFALSE, Bool_t normalize_participants=kFALSE)
Description of properties and kinematics of atomic nuclei.
Definition: KVNucleus.h:125
Int_t GetA() const
Definition: KVNucleus.cpp:799
Int_t GetZ() const
Return the number of proton / atomic number.
Definition: KVNucleus.cpp:770
Double_t x[n]