CKernel Class Reference

#include <kernel.h>

Inheritance diagram for CKernel:
[legend]

List of all members.

Public Member Functions

 CKernel (string kparsfilename="")
 Constructor for CKernel.
virtual ~CKernel ()
 Destructor for CKernel.
virtual double GetValue (int ell, double q, double r) const
double GetValue (int ell, int iq, int ir) const
 The value of a particular point in the interpolation table.
bool Read (const parameterMap &parameters)
 Read in the parameters from a parameterMap.
bool Write (parameterMap &parameters)
 Writes the parameters to a parameterMap.
void ReadData (string datadirname)
 Read in the interpolation table from a directory.
void WriteData (string datadirname)
 Writes the interpolation table to bunch of files in a directory.
void Print ()
 Simple routine to print out the entire interpolation table to stdout for debugging.
int GetLMAX ()
double GetDELR ()
double GetDELQ ()
int GetNQMAX ()
int GetNRMAX ()
double GetQ (int iq)
virtual void Calc (CWaveFunction *wf)
 Builds the interpolation table, using the actual CWaveFunction in CKernel::wf.
void Calc_ClassCoul (double ma, double mb, int zazb)
 Builds the interpolation table, assuming classical Coulomb correlations.
void Calc_PureHBT ()
 Builds the interpolation table, assuming HBT only.
bool GetIDENTICAL ()
double GetPsiSquared (int iq, int ir, double ctheta)
double GetPsiSquared (int iq, double r, double ctheta)
double GetPsiSquared (double q, double r, double ctheta)

Private Member Functions

void ParsInit (string kparsfilename)
double CalcPsiSquared (int iq, int ir, double ctheta)
double CalcPsiSquared (int iq, double r, double ctheta)
void CalcP (double ctheta)

Private Attributes

bool IDENTICAL
int ellmax
int nrmax
int nqmax
double delr
double delq
double *** kernel
double * P


Detailed Description

Definition at line 22 of file kernel.h.


Constructor & Destructor Documentation

CKernel::CKernel ( string  kparsfilename = ""  ) 

Constructor for CKernel.

Parameters:
kparsfilename name of the file that has the parameters to set up the kernel

Definition at line 24 of file kernel.cc.

CKernel::~CKernel (  )  [virtual]

Destructor for CKernel.

Definition at line 48 of file kernel.cc.


Member Function Documentation

void CKernel::Calc ( CWaveFunction wf  )  [virtual]

Builds the interpolation table, using the actual CWaveFunction in CKernel::wf.

Parameters:
wf pointer to the wavefunction to use to build the kernel
The table is built up on the regular grid defined by CKernel::nqmax, CKernel::delq, CKernel::nrmax, CKernel::delr, by a simple Simpson rule integration over the angle between $\vec{q}$ and $\vec{r}$:

\[ K_\ell(q,r) = \frac{1}{2}\int_{-1}^{1} d\mu \left[|\Psi(q,r,\mu)|^2 - 1\right] P_\ell(\mu) \]

Where $\mu = cos(\vec{q}\cdot\vec{r}/qr)$.

Definition at line 468 of file kernel.cc.

void CKernel::Calc_ClassCoul ( double  ma,
double  mb,
int  zazb 
)

Builds the interpolation table, assuming classical Coulomb correlations.

Parameters:
ma Mass of particle a, in MeV
mb Mass of particle b, in MeV
zazb Charge of particle a times charge or particle b. Both in units of $e$.
THIS DOCUMENTATION NEEDS TO BE FLUSHED OUT!!!!!!

Definition at line 385 of file kernel.cc.

void CKernel::Calc_PureHBT (  ) 

Builds the interpolation table, assuming HBT only.

For a pure HBT kernel, the pair relative wavefunction is simply $ \Psi = \frac{1}{\sqrt{2}}\left(e^{iq\cdot r}+e^{-iq\cdot r}\right) $ Where $q = \frac{1}{2}(q_1-q_2)$ is the relative four-momentum of the pair and $r$ is the space-time separation of the pair at freeze-out. It is straight-forward to show that the kernel is

\[ K_\ell(r,q) = (-1)^{\ell/2} j_\ell(2qr/\hbar c) \]

This is for even $\ell$ only. For odd ones, this is zero. Here $q=|\vec{q}|$ and $r=|\vec{r}|$, both in the pair rest frame.

Definition at line 435 of file kernel.cc.

void CKernel::CalcP ( double  ctheta  )  [private]

Definition at line 566 of file kernel.cc.

double CKernel::CalcPsiSquared ( int  iq,
double  r,
double  ctheta 
) [private]

Definition at line 525 of file kernel.cc.

double CKernel::CalcPsiSquared ( int  iq,
int  ir,
double  ctheta 
) [private]

Definition at line 498 of file kernel.cc.

double CKernel::GetDELQ (  ) 

Getter method for delq

Returns:
CKernel::delq

Definition at line 78 of file kernel.cc.

double CKernel::GetDELR (  ) 

Getter method for delr

Returns:
CKernel::delr

Definition at line 69 of file kernel.cc.

bool CKernel::GetIDENTICAL (  ) 

Getter method for IDENTICAL

Returns:
CKernel::IDENTICAL

Definition at line 96 of file kernel.cc.

int CKernel::GetLMAX (  ) 

Getter method for ellmax

Returns:
CKernel::ellmax

Definition at line 63 of file kernel.cc.

int CKernel::GetNQMAX (  ) 

Getter method for nqmax

Returns:
CKernel::nqmax

Definition at line 90 of file kernel.cc.

int CKernel::GetNRMAX (  ) 

Getter method for nrmax

Returns:
CKernel::nrmax

Definition at line 84 of file kernel.cc.

double CKernel::GetPsiSquared ( double  q,
double  r,
double  ctheta 
)

Definition at line 548 of file kernel.cc.

double CKernel::GetPsiSquared ( int  iq,
double  r,
double  ctheta 
)

Definition at line 537 of file kernel.cc.

double CKernel::GetPsiSquared ( int  iq,
int  ir,
double  ctheta 
)

Definition at line 516 of file kernel.cc.

double CKernel::GetQ ( int  iq  ) 

Definition at line 72 of file kernel.cc.

double CKernel::GetValue ( int  ell,
int  iq,
int  ir 
) const

The value of a particular point in the interpolation table.

Parameters:
ell The Legendre order of the table in question
iq The q grid index
ir The r grid index
Returns:
The value of the interpolation table at the specified index on the grid

Definition at line 187 of file kernel.cc.

double CKernel::GetValue ( int  ell,
double  q,
double  r 
) const [virtual]

Performs the linear interpolation to get the value of the kernel at a particular point

Parameters:
ell The Legendre order of the requested kernel
q The value of relative momentum at which you want to evaluate the kernel (in MeV/c)
r The value of separation at which you want to evaluate the kernel (in fm)
Returns:
Value of the kernel at the requested point

Reimplemented in CKernelExactHBT.

Definition at line 107 of file kernel.cc.

void CKernel::ParsInit ( string  kparsfilename  )  [private]

Definition at line 248 of file kernel.cc.

void CKernel::Print (  ) 

Simple routine to print out the entire interpolation table to stdout for debugging.

Definition at line 356 of file kernel.cc.

bool CKernel::Read ( const parameterMap parameters  ) 

Read in the parameters from a parameterMap.

Parameters:
parameters The parameterMap containing the parameters (see below)
Returns:
True==Success, False==Failure
The parameters in the parameterMap that this code uses are as follows:
  • nqmax The number of points in the q direction in the kernel interpolation table
  • nrmax The number of points in the r direction in the kernel interpolation table
  • kellmax The maximum order of the Legendre polynomial expansion of the kernel to compute
  • delq The step size in the q direction in the kernel interpolation table
  • delr The step size in the r direction in the kernel interpolation table
  • IDENTICAL Bool to denote whether this kernel is for identical pairs

Definition at line 213 of file kernel.cc.

void CKernel::ReadData ( string  datadir  ) 

Read in the interpolation table from a directory.

Parameters:
datadir The directory containing the interpolation table.
The data in datadir is stored in one file per q. Each file contains an interpolation table in r for that value of q.

Definition at line 274 of file kernel.cc.

bool CKernel::Write ( parameterMap parameters  ) 

Writes the parameters to a parameterMap.

Parameters:
parameters The parameterMap containing the parameters (see below)
Returns:
True==Success, False==Failure
The parameters in the parameterMap that this code uses are as follows:
  • nqmax The number of points in the q direction in the kernel interpolation table
  • nrmax The number of points in the r direction in the kernel interpolation table
  • kellmax The maximum order of the Legendre polynomial expansion of the kernel to compute
  • delq The step size in the q direction in the kernel interpolation table
  • delr The step size in the r direction in the kernel interpolation table
  • IDENTICAL Bool to denote whether this kernel is for identical pairs

Definition at line 237 of file kernel.cc.

void CKernel::WriteData ( string  datadir  ) 

Writes the interpolation table to bunch of files in a directory.

Parameters:
datadir The directory containing the interpolation table.
The data in datadir is stored in one file per q. Each file contains an interpolation table in r for that value of q.

Definition at line 323 of file kernel.cc.


Member Data Documentation

double CKernel::delq [private]

Definition at line 54 of file kernel.h.

double CKernel::delr [private]

Definition at line 54 of file kernel.h.

int CKernel::ellmax [private]

Definition at line 52 of file kernel.h.

bool CKernel::IDENTICAL [private]

Definition at line 51 of file kernel.h.

double*** CKernel::kernel [private]

Definition at line 55 of file kernel.h.

int CKernel::nqmax [private]

Definition at line 53 of file kernel.h.

int CKernel::nrmax [private]

Definition at line 53 of file kernel.h.

double* CKernel::P [private]

Definition at line 56 of file kernel.h.


The documentation for this class was generated from the following files:

Generated on Fri Feb 6 13:30:18 2009 for CorAL by  doxygen 1.5.8