KaliVeda  1.13/01
Heavy-Ion Analysis Toolkit
List of all members | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | List of all members
KV2Body Class Reference

Relativistic binary kinematics calculator.

This class calculates various useful characteristics of binary nuclear reactions. It is based on a Fortran programme by Jean-Luc Charvet (cibi.for).

It allows to calculate:

The values are calculated using relativistic kinematics.

Setting up the calculation

There are 3 ways in which KV2Body can be used.

Note on use of KV2Body constructors.

The arguments used to define the different nuclei are of type (const KVNucleus&). This means that you can use either

(1) a normal KVNucleus object instantiated before calling the constructor:

        KVNucleus xe("129Xe", 50.); // 129Xe nucleus with 50MeV/A kinetic energy
        KVNucleus sn(50,119);       // 119Sn nucleus at rest

        KV2Body kin(xe, sn);        // define kinematics of 129Xe+119Sn@50AMeV collision

(2) a temporary KVNucleus object instantiated in the argument list:

        KV2Body kin(KVNucleus("129Xe", 50.), KVNucleus(50,119));        // define kinematics of 129Xe+119Sn@50AMeV collision

(3) a string giving the symbol and mass of the nucleus.

        KV2Body kin(KVNucleus("129Xe", 50.), "119Sn");        // define kinematics of 129Xe+119Sn@50AMeV collision

(4) [ONLY WITH C++11/ROOT6]: any KVNucleus constructor through uniform initialization:

        KV2Body kin({"129Xe", 50.}, {50,119});        // define kinematics of 129Xe+119Sn@50AMeV collision

a. Collision kinematics

Calculate kinematics for either elastic or inelastic A + B -> A + B collisions.

Either use the constructor with arguments to specify projectile and target, and optionally the dissipated/excitation energy, or the constructor which takes as single argument a formatted name for the colliding system defining projectile, target and beam energy:

KV2Body(const KVNucleus& proj, const KVNucleus& targ, double Ediss = 0);
KV2Body(const Char_t* systemname);
char Char_t
KV2Body()
default ctor
Definition: KV2Body.cpp:62
Description of properties and kinematics of atomic nuclei.
Definition: KVNucleus.h:125

or use specific methods to define the entrance channel after using the default constructor (without arguments):

SetProjectile(int Z, int A = 0);
SetTarget(int Z, int A = 0);
SetEDiss(double); // dissipated/excitation energy
SetExcitEnergy(double); // same as SetEDiss
void SetTarget(const KVNucleus &)
Set target for reaction.
Definition: KV2Body.cpp:315
void SetEDiss(Double_t ex)
Definition: KV2Body.h:245
void SetExcitEnergy(Double_t ex)
Definition: KV2Body.h:234
void SetProjectile(const KVNucleus &)
Set projectile for reaction.
Definition: KV2Body.cpp:340

b. Binary reaction kinematics

Calculate kinematics for A + B -> C + D reactions.

Either use one of the constructors shown above to define the entrance channel then use the method below to define the outgoing fragment, or use the specific constructor with arguments to specify projectile, target, outgoing fragment, and optionally the dissipated/excitation energy:

KV2Body(const KVNucleus& proj, const KVNucleus& targ, const KVNucleus& outgoing, double Ediss = 0);

or use specific methods as above to define the entrance channel after using the default constructor (without arguments):

void SetOutgoing(const KVNucleus &proj_out)
Definition: KV2Body.cpp:398

Note that the partner of the outgoing fragment in the exit channel is deduced from conservation laws.

c. Binary decay kinematics

Calculate kinematics for A -> C + D decays.

Define the compound nucleus and its excitation energy with the constructor

KV2Body(const KVNucleus& compound, double Exx = 0);

(if Exx is not given, the excitation energy of compound is used) and then define the decay channel with

Calculating and obtaining reaction information

Once the entrance channel (and, if necessary, the exit channel) is(are) defined, the kinematical calculation is carried out by:

void CalculateKinematics()
Definition: KV2Body.cpp:678

For a general print-out of the reaction characteristics:

Print("lab");//laboratory scattering angles and energies
Print("ruth");//Rutherford scattering angles, energies and cross-sections
void Print(Option_t *opt="") const
Definition: KV2Body.cpp:814
Examples
ExampleFilteredSimDataAnalysis.cpp, and ExampleINDRAAnalysis.cpp.

Definition at line 165 of file KV2Body.h.

Public Member Functions

 KV2Body ()
 default ctor More...
 
 KV2Body (const Char_t *systemname)
 
 KV2Body (const KVNucleus &compound, double Exx=0.0)
 
 KV2Body (const KVNucleus &proj, const KVNucleus &targ, const KVNucleus &outgoing, double Ediss=0.0)
 
 KV2Body (const KVNucleus &proj, const KVNucleus &targ, double Ediss=0.0)
 
 KV2Body (KVNucleus *, KVNucleus *=nullptr, KVNucleus *=nullptr, Double_t=0.0)
 Deprecated. Do not use. More...
 
virtual ~ KV2Body ()
 
Double_t BassIntBarrier ()
 
void CalculateKinematics ()
 
Double_t eqbm_charge_state_shiwietz_gas (Double_t *t, Double_t *)
 
Double_t eqbm_charge_state_shiwietz_solid (Double_t *t, Double_t *)
 
Double_t EqbmChargeState (Double_t *t, Double_t *)
 
Double_t GetBmaxFromReactionXSec (Double_t ReacXsec)
 
Double_t GetCMEnergy () const
 Return available kinetic energy in centre of mass. More...
 
Double_t GetCMEnergy (Int_t i) const
 
Double_t GetCMGamma () const
 
TVector3 GetCMVelocity () const
 Return vector velocity of centre of mass of reaction (units: cm/ns) More...
 
Double_t GetCMVelocity (Int_t i) const
 
Double_t GetEDiss () const
 
Double_t GetELab (Double_t ThetaCM, Int_t OfNucleus) const
 
Int_t GetELab (Int_t OfNucleus, Double_t ThetaLab, Int_t AngleNucleus, Double_t &e1, Double_t &e2) const
 
TF1GetELabVsThetaCMFunc (Int_t OfNucleus) const
 
TF1GetELabVsThetaLabFunc (Int_t OfNucleus) const
 
TF1GetEqbmChargeStateFunc () const
 
Double_t GetExcitEnergy () const
 
Double_t GetIntegralPrecision ()
 
Double_t GetIntegratedXsec (Double_t b1, Double_t b2)
 
Double_t GetIntegratedXSecRuthLab (Float_t th1, Float_t th2, Float_t phi1=-1, Float_t phi2=-1, Int_t OfNucleus=3)
 
TF1GetKoxReactionXSecFunc () const
 
Double_t GetLabGrazingAngle (Int_t i=1) const
 
Double_t GetMaxAngleLab (Int_t i) const
 
Double_t GetMinAngleLab (Int_t i) const
 
Double_t GetMinThetaCMFromThetaLab (Int_t OfNucleus, Double_t theta, Int_t OtherNucleus) const
 
KVNucleusGetNucleus (Int_t i) const
 
Double_t GetQGroundStates () const
 Calculate Q-value for reaction, assuming all nuclei in ground state. More...
 
Double_t GetQReaction () const
 Calculate Q-value for reaction, including dissipated (excitation) energy. More...
 
TF1GetShiwietzEqbmChargeStateFuncForGasTargets () const
 
TF1GetShiwietzEqbmChargeStateFuncForSolidTargets () const
 
Double_t GetSphereDureReactionXSec (Double_t r0=1.05)
 
Int_t GetThetaCM (Double_t ThetaLab, Int_t OfNucleus, Double_t &t1, Double_t &t2) const
 
Double_t GetThetaCM (Int_t OfNucleus, Double_t theta, Int_t OtherNucleus) const
 
Double_t GetThetaLab (Double_t ThetaCM, Int_t OfNucleus) const
 
Int_t GetThetaLab (Int_t OfNucleus, Double_t ThetaLab, Int_t AngleNucleus, Double_t &e1, Double_t &e2) const
 
TF1GetThetaLabVsThetaCMFunc (Int_t OfNucleus) const
 
Int_t GetVLab (Int_t OfNucleus, Double_t ThetaLab, Int_t AngleNucleus, Double_t &e1, Double_t &e2) const
 
Double_t GetXSecRuthCM (Double_t ThetaLab_Proj, Int_t OfNucleus=3) const
 
Double_t GetXSecRuthLab (Double_t ThetaLab_Proj, Int_t OfNucleus=3) const
 
TF1GetXSecRuthLabFunc (Int_t OfNucleus=3, Double_t theta_min=1., Double_t theta_max=179.) const
 
TF1GetXSecRuthLabIntegralFunc (Int_t OfNucleus=3, Double_t theta_min=1., Double_t theta_max=179.) const
 
void init ()
 Default initialisations. More...
 
Double_t KoxReactionXSec (Double_t *, Double_t *)
 
void Print (Option_t *opt="") const
 
void SetEDiss (Double_t ex)
 
void SetExcitEnergy (Double_t ex)
 
void SetIntegralPrecision (Double_t precision)
 
void SetOutgoing (const KVNucleus &proj_out)
 
void SetProjectile (const KVNucleus &)
 Set projectile for reaction. More...
 
void SetProjectile (Int_t z, Int_t a=0)
 Set projectile for reaction. More...
 
void SetTarget (const KVNucleus &)
 Set target for reaction. More...
 
void SetTarget (Int_t z, Int_t a=0)
 Set target for reaction. More...
 
- Public Member Functions inherited from KVBase
 KVBase ()
 Default constructor. More...
 
 KVBase (const Char_t *name, const Char_t *title="")
 Ctor for object with given name and type. More...
 
 KVBase (const KVBase &)
 copy ctor More...
 
virtual ~ KVBase ()
 
virtual void Clear (Option_t *opt="")
 Clear object properties : name, type/title, number, label. More...
 
virtual void Copy (TObject &) const
 Make a copy of this object. More...
 
const Char_tGetLabel () const
 
UInt_t GetNumber () const
 
UInt_t GetNumberOfObjects () const
 
virtual TObjectGetObject () const
 
virtual const Char_tGetType () const
 
Bool_t HasLabel () const
 
virtual Bool_t IsCalled (const Char_t *name) const
 
Bool_t IsLabelled (const Char_t *l) const
 
virtual Bool_t IsType (const Char_t *typ) const
 
virtual void List ()
 
KVBaseoperator= (const KVBase &)
 copy assignment operator More...
 
Double_t ProtectedGetX (const TF1 *func, Double_t val, int &status, Double_t xmin=0.0, Double_t xmax=0.0) const
 
void SetLabel (const Char_t *lab)
 
virtual void SetNumber (UInt_t num)
 
virtual void SetType (const Char_t *str)
 
- Public Member Functions inherited from TNamed
 TNamed ()
 
 TNamed (const char *name, const char *title)
 
 TNamed (const TNamed &named)
 
 TNamed (const TString &name, const TString &title)
 
virtual ~TNamed ()
 
virtual TObjectClone (const char *newname="") const
 
virtual Int_t Compare (const TObject *obj) const
 
virtual void FillBuffer (char *&buffer)
 
virtual const char * GetName () const
 
virtual const char * GetTitle () const
 
virtual ULong_t Hash () const
 
virtual Bool_t IsSortable () const
 
virtual void ls (Option_t *option="") const
 
TNamedoperator= (const TNamed &rhs)
 
virtual void SetName (const char *name)
 
virtual void SetNameTitle (const char *name, const char *title)
 
virtual void SetTitle (const char *title="")
 
virtual Int_t Sizeof () const
 
- Public Member Functions inherited from TObject
 TObject ()
 
 TObject (const TObject &object)
 
virtual ~TObject ()
 
void AbstractMethod (const char *method) const
 
virtual void AppendPad (Option_t *option="")
 
virtual void Browse (TBrowser *b)
 
ULong_t CheckedHash ()
 
virtual const char * ClassName () const
 
virtual void Delete (Option_t *option="")
 
virtual Int_t DistancetoPrimitive (Int_t px, Int_t py)
 
virtual void Draw (Option_t *option="")
 
virtual void DrawClass () const
 
virtual TObjectDrawClone (Option_t *option="") const
 
virtual void Dump () const
 
virtual void Error (const char *method, const char *msgfmt,...) const
 
virtual void Execute (const char *method, const char *params, Int_t *error=0)
 
virtual void Execute (TMethod *method, TObjArray *params, Int_t *error=0)
 
virtual void ExecuteEvent (Int_t event, Int_t px, Int_t py)
 
virtual void Fatal (const char *method, const char *msgfmt,...) const
 
virtual TObjectFindObject (const char *name) const
 
virtual TObjectFindObject (const TObject *obj) const
 
virtual Option_tGetDrawOption () const
 
virtual const char * GetIconName () const
 
virtual char * GetObjectInfo (Int_t px, Int_t py) const
 
virtual Option_tGetOption () const
 
virtual UInt_t GetUniqueID () const
 
virtual Bool_t HandleTimer (TTimer *timer)
 
Bool_t HasInconsistentHash () const
 
virtual void Info (const char *method, const char *msgfmt,...) const
 
virtual Bool_t InheritsFrom (const char *classname) const
 
virtual Bool_t InheritsFrom (const TClass *cl) const
 
virtual void Inspect () const
 
void InvertBit (UInt_t f)
 
virtual Bool_t IsEqual (const TObject *obj) const
 
virtual Bool_t IsFolder () const
 
R__ALWAYS_INLINE Bool_t IsOnHeap () const
 
R__ALWAYS_INLINE Bool_t IsZombie () const
 
void MayNotUse (const char *method) const
 
virtual Bool_t Notify ()
 
void Obsolete (const char *method, const char *asOfVers, const char *removedFromVers) const
 
void operator delete (void *ptr)
 
void operator delete[] (void *ptr)
 
voidoperator new (size_t sz)
 
voidoperator new (size_t sz, void *vp)
 
voidoperator new[] (size_t sz)
 
voidoperator new[] (size_t sz, void *vp)
 
TObjectoperator= (const TObject &rhs)
 
virtual void Paint (Option_t *option="")
 
virtual void Pop ()
 
virtual Int_t Read (const char *name)
 
virtual void RecursiveRemove (TObject *obj)
 
void ResetBit (UInt_t f)
 
virtual void SaveAs (const char *filename="", Option_t *option="") const
 
virtual void SavePrimitive (std::ostream &out, Option_t *option="")
 
void SetBit (UInt_t f)
 
void SetBit (UInt_t f, Bool_t set)
 
virtual void SetDrawOption (Option_t *option="")
 
virtual void SetUniqueID (UInt_t uid)
 
virtual void SysError (const char *method, const char *msgfmt,...) const
 
R__ALWAYS_INLINE Bool_t TestBit (UInt_t f) const
 
Int_t TestBits (UInt_t f) const
 
virtual void UseCurrentStyle ()
 
virtual void Warning (const char *method, const char *msgfmt,...) const
 
virtual Int_t Write (const char *name=0, Int_t option=0, Int_t bufsize=0)
 
virtual Int_t Write (const char *name=0, Int_t option=0, Int_t bufsize=0) const
 

Static Public Member Functions

static Double_t GetVelocity (Double_t mass, Double_t E)
 
- Static Public Member Functions inherited from KVBase
static Bool_t AreEqual (Double_t x, Double_t y, Long64_t maxdif=1)
 Comparison between two 64-bit floating-point values. More...
 
static void BackupFileWithDate (const Char_t *path)
 
static void CombineFiles (const Char_t *file1, const Char_t *file2, const Char_t *newfilename, Bool_t keep=kTRUE)
 
static void Deprecated (const char *method, const char *advice)
 
static Bool_t FindClassSourceFiles (const Char_t *class_name, KVString &imp_file, KVString &dec_file, const Char_t *dir_name=".")
 
static Bool_t FindExecutable (TString &exec, const Char_t *path="$(PATH)")
 
static const Char_tFindFile (const Char_t *search, TString &wfil)
 
static const Char_tGetBINDIRFilePath (const Char_t *namefile="")
 
static const Char_tGetDATABASEFilePath ()
 
static const Char_tGetDATADIRFilePath (const Char_t *namefile="")
 
static Bool_t GetDataSetEnv (const Char_t *dataset, const Char_t *type, Bool_t defval)
 
static const Char_tGetDataSetEnv (const Char_t *dataset, const Char_t *type, const Char_t *defval)
 
static Double_t GetDataSetEnv (const Char_t *dataset, const Char_t *type, Double_t defval)
 
static const Char_tGetETCDIRFilePath (const Char_t *namefile="")
 
static const Char_tGetExampleFilePath (const Char_t *library, const Char_t *namefile)
 Return full path to example file for given library (="KVMultiDet", "BackTrack", etc.) More...
 
static const Char_tGetINCDIRFilePath (const Char_t *namefile="")
 
static const Char_tGetKVBuildDate ()
 Returns KaliVeda build date. More...
 
static const Char_tGetKVBuildDir ()
 Returns top-level directory used for build. More...
 
static const Char_tGetKVBuildTime ()
 Returns KaliVeda build time. More...
 
static const Char_tGetKVBuildType ()
 Returns KaliVeda build type (cmake build: Release, Debug, RelWithDebInfo, ...) More...
 
static const Char_tGetKVBuildUser ()
 Returns username of person who performed build. More...
 
static const Char_tGetKVSourceDir ()
 Returns top-level directory of source tree used for build. More...
 
static const Char_tGetKVVersion ()
 Returns KaliVeda version string. More...
 
static const Char_tGetLIBDIRFilePath (const Char_t *namefile="")
 
static const Char_tGetListOfPlugins (const Char_t *base)
 
static const Char_tGetListOfPluginURIs (const Char_t *base)
 
static const Char_tGetPluginURI (const Char_t *base, const Char_t *plugin)
 
static void GetTempFileName (TString &base)
 
static const Char_tGetTEMPLATEDIRFilePath (const Char_t *namefile="")
 
static const Char_tGetWORKDIRFilePath (const Char_t *namefile="")
 
static const Char_tgitBranch ()
 Returns git branch of sources. More...
 
static const Char_tgitCommit ()
 Returns last git commit of sources. More...
 
static void InitEnvironment ()
 
static bool is_gnuinstall ()
 
static Bool_t IsThisAPlugin (const TString &uri, TString &base)
 
static TPluginHandlerLoadPlugin (const Char_t *base, const Char_t *uri="0")
 
static Bool_t OpenContextMenu (const char *method, TObject *obj, const char *alt_method_name="")
 
static void OpenTempFile (TString &base, std::ofstream &fp)
 
static void PrintSplashScreen ()
 Prints welcome message and infos on version etc. More...
 
static Bool_t SearchAndOpenKVFile (const Char_t *name, KVSQLite::database &dbfile, const Char_t *kvsubdir="")
 
static Bool_t SearchAndOpenKVFile (const Char_t *name, std::ifstream &file, const Char_t *kvsubdir="", KVLockfile *locks=0)
 
static Bool_t SearchAndOpenKVFile (const Char_t *name, std::ofstream &file, const Char_t *kvsubdir="", KVLockfile *locks=0)
 
static Bool_t SearchKVFile (const Char_t *name, TString &fullpath, const Char_t *kvsubdir="")
 
static const Char_tWorkingDirectory ()
 
- Static Public Member Functions inherited from TObject
static Longptr_t GetDtorOnly ()
 
static Bool_t GetObjectStat ()
 
static void SetDtorOnly (void *obj)
 
static void SetObjectStat (Bool_t stat)
 

Private Member Functions

Double_t ELabVsThetaCM (Double_t *, Double_t *)
 Function calculating lab energy of nucleus par[0] for any CM angle x[0]. More...
 
Double_t ELabVsThetaLab (Double_t *, Double_t *)
 Function calculating lab energy of nucleus par[0] for any lab angle x[0]. More...
 
Int_t FindRoots (TF1 *, Double_t, Double_t, Double_t, Double_t &, Double_t &) const
 
void Set4thNucleus ()
 
Double_t ThetaLabVsThetaCM (Double_t *, Double_t *)
 
Double_t XSecRuthCM (Double_t *, Double_t *)
 
Double_t XSecRuthCMVsThetaCM (Double_t *, Double_t *)
 
Double_t XSecRuthLab (Double_t *, Double_t *)
 
Double_t XSecRuthLabInt (Double_t *, Double_t *)
 

Private Attributes

Double_t BCM
 beta of centre of mass More...
 
Double_t EC [5]
 cm energies More...
 
Double_t fEDiss
 dissipated energy, 0 means elastic scattering More...
 
TF1fELabVsThetaCM [5]
 
TF1fELabVsThetaLab [5]
 
TF1fEqbmChargeState
 function equilibrium charge state of projectile vs. E/A projectile (Leon et al) More...
 
TF1fEqbmChargeStateShGas
 function equilibrium charge state of projectile vs. E/A projectile (Shiwietz et al gas) More...
 
TF1fEqbmChargeStateShSol
 function equilibrium charge state of projectile vs. E/A projectile (Shiwietz et al solid) More...
 
Double_t fIntPrec
 Precision of the TF1::Integral method. More...
 
TF1fKoxReactionXSec
 function Kox reaction cross-section [barns] vs. E/A projectile More...
 
std::vector< KVNucleusfNuclei
 nuclei involved in calculation More...
 
Bool_t fSetOutgoing
 = kTRUE if SetOutgoing is called before CalculateKinematics More...
 
TF1fThetaLabVsThetaCM [5]
 
TF1fXSecRuthLab [5]
 
TF1fXSecRuthLabIntegral [5]
 
Double_t K [5]
 ratio of c.m. velocity to velocity of nucleus in c.m. v_cm/v_i_cm More...
 
Double_t TETAMAX [5]
 defined only for nuclei 3 et 4 More...
 
Double_t TETAMIN [5]
 defined only for nuclei 3 et 4 More...
 
Double_t VC [5]
 cm velocities More...
 
TVector3 VCM
 velocity of centre of mass More...
 
Double_t WC [5]
 cm energy of each nucleus More...
 
Double_t WCT
 total cm energy More...
 
Double_t WLT
 total lab energy More...
 

Additional Inherited Members

- Public Types inherited from KVBase
enum  EKaliVedaBits { kIsKaliVedaObject = BIT(23) }
 
- Public Types inherited from TObject
enum  EDeprecatedStatusBits
 
enum  EStatusBits
 
- Public Attributes inherited from TObject
 kBitMask
 
 kCanDelete
 
 kCannotPick
 
 kHasUUID
 
 kInconsistent
 
 kInvalidObject
 
 kIsOnHeap
 
 kIsReferenced
 
 kMustCleanup
 
 kNoContextMenu
 
 kNotDeleted
 
 kObjInCanvas
 
 kOverwrite
 
 kSingleKey
 
 kWriteDelete
 
 kZombie
 
- Protected Member Functions inherited from TObject
virtual void DoError (int level, const char *location, const char *fmt, va_list va) const
 
void MakeZombie ()
 
- Protected Attributes inherited from KVBase
TString fLabel
 label for the object More...
 
- Protected Attributes inherited from TNamed
TString fName
 
TString fTitle
 
- Protected Attributes inherited from TObject
 kOnlyPrepStep
 

#include <KV2Body.h>

Inheritance diagram for KV2Body:
Inheritance graph
[legend]

Constructor & Destructor Documentation

◆ KV2Body() [1/6]

KV2Body::KV2Body ( )

default ctor

Definition at line 62 of file KV2Body.cpp.

◆ KV2Body() [2/6]

KV2Body::KV2Body ( const Char_t systemname)

Set up calculation defining entrance channel following this prescription:

[Projectile_Symbol]+[Target_Symbol]@[Incident_Energy]MeV/A [Projectile_Symbol]+[Target_Symbol]@[Incident_Energy]MeV/u [Projectile_Symbol]+[Target_Symbol]

Any spaces will be ignored.

Valid examples:

129Xe.nosp@m.+119.nosp@m.Sn@50.nosp@m..0Me.nosp@m.V/A 58Ni + 64Ni @ 32 MeV/u U+U@5MeV/A Ta+Zn

If the format is not respected, this object will be a zombie (IsZombie() returns kTRUE)

Definition at line 88 of file KV2Body.cpp.

◆ KV2Body() [3/6]

KV2Body::KV2Body ( const KVNucleus compound,
double  Exx = 0.0 
)

Set up kinematics of binary decay of compound nucleus.

The excitation energy of the CN (in MeV) is either given:

  • in the KVNucleus object itself (i.e. compound.GetExcitEnergy() gives the E* of CN)
  • or in the variable Exx: in this case any E* in the KVNucleus will be ignored
  • or by calling SetExcitEnergy or SetDissipatedEnergy after this constructor with the NEGATIVE E*

Usage:

KVNucleus CN("204Pb");
CN.SetExcitEnergy(1.5*CN.GetA());
KV2Body CNdecay(CN);
or: KV2Body CNdecay("204Pb", 1.5*204);
* or: KV2Body CNdecay("204Pb");
* CNdecay.SetExcitEnergy(-1.5*204);
// calculate decay
KVNucleus alpha("4He", 67.351/4.);
CNdecay.SetOutgoing(alpha);
Relativistic binary kinematics calculator.
Definition: KV2Body.h:165

Definition at line 197 of file KV2Body.cpp.

◆ KV2Body() [4/6]

KV2Body::KV2Body ( const KVNucleus proj,
const KVNucleus targ,
double  Ediss = 0.0 
)

Set up calculation of basic binary reaction for given projectile and target.

By default the dissipated energy Ediss is zero (elastic reaction).

Usage:

KV2Body reaction(KVNucleus("129Xe",50), "natSn");
// or with C++11 (ROOT6):
KV2Body reaction({"129Xe",50}, "natSn");

Definition at line 243 of file KV2Body.cpp.

◆ KV2Body() [5/6]

KV2Body::KV2Body ( const KVNucleus proj,
const KVNucleus targ,
const KVNucleus outgoing,
double  Ediss = 0.0 
)

Set up calculation of basic binary reaction for given projectile and target with definition of exit channel (outgoing projectile- or target-like fragment).

By default the dissipated energy is zero (elastic reaction).

Any excitation energy of the outgoing fragment will be taken into account, e.g. for quasi-elastic scattering leaving the target in an excited state.

Usage:

KV2Body reaction(KVNucleus("129Xe",50), "natSn", KVNucleus("24Mg",35));
// or with C++11 (ROOT6):
KV2Body reaction({"129Xe",50}, "natSn", {"24Mg",35});

Definition at line 283 of file KV2Body.cpp.

◆ KV2Body() [6/6]

KV2Body::KV2Body ( KVNucleus ,
KVNucleus cib = nullptr,
KVNucleus proj_out = nullptr,
Double_t  = 0.0 
)

Deprecated. Do not use.

Definition at line 153 of file KV2Body.cpp.

◆ ~ KV2Body()

virtual KV2Body::~ KV2Body ( )
virtual

Member Function Documentation

◆ BassIntBarrier()

Double_t KV2Body::BassIntBarrier ( )

calculate Bass interaction barrier B_int

r0 = 1.07 fm

Definition at line 1421 of file KV2Body.cpp.

◆ CalculateKinematics()

void KV2Body::CalculateKinematics ( )

Called to make kinematics calculation for all nuclei, use once properties of entrance-channel (and, if necessary, exit-channel) nuclei have been defined.

If a compound decay is to be calculated (only 1 nucleus in entrance channel), outgoing (decay) product must be defined before calling this method.

For a 2-body entrance channel, if no exit-channel nuclei are defined, we assume elastic scattering (i.e. identical outgoing nuclei)

Definition at line 678 of file KV2Body.cpp.

◆ ELabVsThetaCM()

Double_t KV2Body::ELabVsThetaCM ( Double_t x,
Double_t par 
)
private

Function calculating lab energy of nucleus par[0] for any CM angle x[0].

Definition at line 1007 of file KV2Body.cpp.

◆ ELabVsThetaLab()

Double_t KV2Body::ELabVsThetaLab ( Double_t x,
Double_t par 
)
private

Function calculating lab energy of nucleus par[0] for any lab angle x[0].

Definition at line 990 of file KV2Body.cpp.

◆ eqbm_charge_state_shiwietz_gas()

Double_t KV2Body::eqbm_charge_state_shiwietz_gas ( Double_t t,
Double_t  
)

G. Shiwietz et al Nucl. Instr. and Meth. in Phys. Res. B 175-177 (2001) 125-131 for gas targets

Definition at line 1745 of file KV2Body.cpp.

◆ eqbm_charge_state_shiwietz_solid()

Double_t KV2Body::eqbm_charge_state_shiwietz_solid ( Double_t t,
Double_t  
)

G. Shiwietz et al Nucl. Instr. and Meth. in Phys. Res. B 175-177 (2001) 125-131 for solid targets

Definition at line 1685 of file KV2Body.cpp.

◆ EqbmChargeState()

Double_t KV2Body::EqbmChargeState ( Double_t t,
Double_t  
)

Calculate the mean charge state of the projectile after passage through the target, assuming that the equilibrium charge state distribution is achieved*. t[0] = energy of projectile after the target (in MeV/nucleon)

We use the empirical parameterization of Leon et al., At. Dat. and Nucl. Dat. Tab. 69, 217 (1998) developed for heavy ions in the GANIL energy range (it represents a fit to data measured using GANIL beams).

*N.B. Concerning equilibrium charge state distributions, it is not easy to know whether, for a given combination of projectile, projectile energy, target, and target thickness, the equilibrium distribution is reached or not. Here are some comments from the paper cited above which may give some guidelines:

"The energies available at the GANIL accelerator range from 24 to 95 MeV/u. Within this energy range, the equilibrium charge state is reached only for fairly thick targets (~1 mg/cm2 for C foils)."

"Mean Charge State as a Function of the Target Thickness A typical example of the variation of the mean charge as a function of the foil thickness is shown ... It is seen that the mean charge initially increases due to the ionization process. Then, the equilibrium state is reached at a certain thickness, the so-called equilibrium thickness, due to the equilibration of electron loss and capture processes. Finally, for foils thicker than the equilibrium thickness, the mean charge decreases due to the slowing down of the ions in matter leading to higher capture cross sections."

It should be noted that, according to the data published in this and other papers, the equilibrium thickness decreases with increasing atomic number of the target, and increases with increasing energy of the projectile.

Definition at line 1593 of file KV2Body.cpp.

◆ FindRoots()

Int_t KV2Body::FindRoots ( TF1 fonc,
Double_t  xmin,
Double_t  xmax,
Double_t  val,
Double_t x1,
Double_t x2 
) const
private

Find at most two solutions x1 and x2 between xmin and xmax for which fonc->Eval(x) = val i.e. we use TF1::GetX for a function which may be (at most) double-valued in range (xmin, xmax) This is adapted to the case of the lab angle vs. CM angle of scattered particles. if fonc has a maximum between xmin and xmax, and if val < max, we look for x1 between xmin and the maximum, and x2 between the maximum and xmax. If not (single-valued function) we look for x1 between xmin and xmax. This method returns the number of roots found. If val > maximum of fonc between xmin and xmax, there is no solution: we return 0.

Definition at line 1902 of file KV2Body.cpp.

◆ GetBmaxFromReactionXSec()

Double_t KV2Body::GetBmaxFromReactionXSec ( Double_t  ReacXsec)

Deduce the maximum impact parameter (in fm) from a given reaction cross section (in barn) in the approximation Xsec = \int(0,bmax) 2Pi b db

Definition at line 1507 of file KV2Body.cpp.

◆ GetCMEnergy() [1/2]

Double_t KV2Body::GetCMEnergy ( ) const

Return available kinetic energy in centre of mass.

Definition at line 523 of file KV2Body.cpp.

◆ GetCMEnergy() [2/2]

Double_t KV2Body::GetCMEnergy ( Int_t  i) const

Returns kinetic energy of nucleus "i" in the centre of mass of the reaction Entrance channel nuclei ..... i=1 : projectile i=2 : target Exit channel nuclei ..... i=3 : projectile-like i=4 : target-like

Definition at line 796 of file KV2Body.cpp.

◆ GetCMGamma()

Double_t KV2Body::GetCMGamma ( ) const
inline

Definition at line 268 of file KV2Body.h.

◆ GetCMVelocity() [1/2]

TVector3 KV2Body::GetCMVelocity ( ) const

Return vector velocity of centre of mass of reaction (units: cm/ns)

Examples
ExampleFilteredSimDataAnalysis.cpp.

Definition at line 573 of file KV2Body.cpp.

◆ GetCMVelocity() [2/2]

Double_t KV2Body::GetCMVelocity ( Int_t  i) const

Return velocity of nucleus "i" in the centre of mass of the reaction Entrance channel nuclei ..... i=1 : projectile i=2 : target Exit channel nuclei ..... i=3 : projectile-like i=4 : target-like

Definition at line 588 of file KV2Body.cpp.

◆ GetEDiss()

Double_t KV2Body::GetEDiss ( ) const
inline

Definition at line 250 of file KV2Body.h.

◆ GetELab() [1/2]

Double_t KV2Body::GetELab ( Double_t  ThetaCM,
Int_t  OfNucleus 
) const
inline

Calculate lab energy of nucleus OfNucleus (=1,2,3,4) as a function of CM angle

Definition at line 290 of file KV2Body.h.

◆ GetELab() [2/2]

Int_t KV2Body::GetELab ( Int_t  OfNucleus,
Double_t  ThetaLab,
Int_t  AngleNucleus,
Double_t e1,
Double_t e2 
) const

Calculate laboratory kinetic energy of nucleus OfNucleus as a function of the lab angle of nucleus AngleNucleus.

In general there may be two solutions for a given angle, therefore we return the number of solutions (0 if ThetaLab > max lab angle for nucleus in question).

Definition at line 946 of file KV2Body.cpp.

◆ GetELabVsThetaCMFunc()

TF1 * KV2Body::GetELabVsThetaCMFunc ( Int_t  OfNucleus) const

Return TF1 giving lab energy of nucleus as function of CM angle OfNucleus = 1 or 2 (entrance channel) or 3 or 4 (exit channel)

Definition at line 1045 of file KV2Body.cpp.

◆ GetELabVsThetaLabFunc()

TF1 * KV2Body::GetELabVsThetaLabFunc ( Int_t  OfNucleus) const

Return TF1 giving lab energy of nucleus as function of its lab angle OfNucleus = 1 or 2 (entrance channel) or 3 or 4 (exit channel)

Definition at line 1065 of file KV2Body.cpp.

◆ GetEqbmChargeStateFunc()

TF1 * KV2Body::GetEqbmChargeStateFunc ( ) const

Return pointer to TF1 giving mean charge state of the projectile after passage through the target, assuming that the equilibrium charge state distribution is achieved, as a function of projectile energy after the target (in MeV/nucleon). We use the empirical parameterization of Leon et al., At. Dat. and Nucl. Dat. Tab. 69, 217 (1998) (see EqbmChargeState(Double_t t,Double_t) for details)

By default the range of the function is [5,100] MeV/nucleon. Change with TF1::SetRange.

Definition at line 1656 of file KV2Body.cpp.

◆ GetExcitEnergy()

Double_t KV2Body::GetExcitEnergy ( ) const
inline

Definition at line 240 of file KV2Body.h.

◆ GetIntegralPrecision()

Double_t KV2Body::GetIntegralPrecision ( )
inline

Precision of the TF1::Integral() method

Definition at line 335 of file KV2Body.h.

◆ GetIntegratedXsec()

Double_t KV2Body::GetIntegratedXsec ( Double_t  b1,
Double_t  b2 
)

Integrate the cross section between two impact parameter (in fm) and give the result in barn

Definition at line 1526 of file KV2Body.cpp.

◆ GetIntegratedXSecRuthLab()

Double_t KV2Body::GetIntegratedXSecRuthLab ( Float_t  th1,
Float_t  th2,
Float_t  phi1 = -1,
Float_t  phi2 = -1,
Int_t  OfNucleus = 3 
)

Calculate Integrated Rutherford cross-section (barns) in the Lab using polar and azimuthal angular range expressed in degree if (OfNucleus==3) This angular range is considered to be the scattered projectile one if (OfNucleus==4) This angular range is considered to be the scattered target one

If phi1 ou phi2 ==-1 the azimuthal width is set to 2pi Else if phi1=phi2 the azimuthal width is set to 1 ie the integral is only on theta

The returned value is in barns

Definition at line 1379 of file KV2Body.cpp.

◆ GetKoxReactionXSecFunc()

TF1 * KV2Body::GetKoxReactionXSecFunc ( ) const

Return pointer to TF1 with Kox reaction X-section in barns as a function of projectile lab energy (in Mev/nucleon) for this reaction. By default the range of the function is [20,100] MeV/nucleon. Change with TF1::SetRange.

Definition at line 1545 of file KV2Body.cpp.

◆ GetLabGrazingAngle()

Double_t KV2Body::GetLabGrazingAngle ( Int_t  i = 1) const

Calculate laboratory grazing angle. i = 1 (default) : projectile i = 2 : target

Definition at line 604 of file KV2Body.cpp.

◆ GetMaxAngleLab()

Double_t KV2Body::GetMaxAngleLab ( Int_t  i) const

Returns maximum scattering angle in lab for nuclei i=3 (quasiproj) and i=4 (quasitarget)

Definition at line 537 of file KV2Body.cpp.

◆ GetMinAngleLab()

Double_t KV2Body::GetMinAngleLab ( Int_t  i) const

Returns minimum scattering angle in lab for nuclei i=3 (quasiproj) and i=4 (quasitarget)

Definition at line 555 of file KV2Body.cpp.

◆ GetMinThetaCMFromThetaLab()

Double_t KV2Body::GetMinThetaCMFromThetaLab ( Int_t  OfNucleus,
Double_t  theta,
Int_t  OtherNucleus 
) const

Return the smallest (i.e. most forward) CM angle of nucleus OfNucleus corresponding to laboratory angle theta of nucleus OtherNucleus

Definition at line 1222 of file KV2Body.cpp.

◆ GetNucleus()

KVNucleus * KV2Body::GetNucleus ( Int_t  i) const

Return pointer to nucleus i (1 <= i <= 4)

Entrance channel nuclei ..... i=1 : projectile i=2 : target

Exit channel nuclei ..... i=3 : projectile-like i=4 : target-like

Will return nullptr if any nucleus is undefined

Examples
ExampleFilteredSimDataAnalysis.cpp, and ExampleINDRAAnalysis.cpp.

Definition at line 457 of file KV2Body.cpp.

◆ GetQGroundStates()

Double_t KV2Body::GetQGroundStates ( ) const

Calculate Q-value for reaction, assuming all nuclei in ground state.

Definition at line 500 of file KV2Body.cpp.

◆ GetQReaction()

Double_t KV2Body::GetQReaction ( ) const

Calculate Q-value for reaction, including dissipated (excitation) energy.

Definition at line 481 of file KV2Body.cpp.

◆ GetShiwietzEqbmChargeStateFuncForGasTargets()

TF1 * KV2Body::GetShiwietzEqbmChargeStateFuncForGasTargets ( ) const

Return pointer to TF1 giving mean charge state of the projectile after passage through the target, assuming that the equilibrium charge state distribution is achieved, as a function of projectile energy after the target (in MeV/nucleon). G. Shiwietz et al Nucl. Instr. and Meth. in Phys. Res. B 175-177 (2001) 125-131 This formula is valid for gas targets.

By default the range of the function is [5,100] MeV/nucleon. Change with TF1::SetRange.

Definition at line 1777 of file KV2Body.cpp.

◆ GetShiwietzEqbmChargeStateFuncForSolidTargets()

TF1 * KV2Body::GetShiwietzEqbmChargeStateFuncForSolidTargets ( ) const

Return pointer to TF1 giving mean charge state of the projectile after passage through the target, assuming that the equilibrium charge state distribution is achieved, as a function of projectile energy after the target (in MeV/nucleon). G. Shiwietz et al Nucl. Instr. and Meth. in Phys. Res. B 175-177 (2001) 125-131 This formula is valid for solid targets.

By default the range of the function is [5,100] MeV/nucleon. Change with TF1::SetRange.

Definition at line 1716 of file KV2Body.cpp.

◆ GetSphereDureReactionXSec()

Double_t KV2Body::GetSphereDureReactionXSec ( Double_t  r0 = 1.05)

calculate Reaction Cross Section with the "Sphere Dure" approximation

Definition at line 1486 of file KV2Body.cpp.

◆ GetThetaCM() [1/2]

Int_t KV2Body::GetThetaCM ( Double_t  ThetaLab,
Int_t  OfNucleus,
Double_t t1,
Double_t t2 
) const

Calculate CM angle of nucleus OfNucleus as a function of its lab angle. Returns number of solutions (there may be <=2 solutions).

Definition at line 973 of file KV2Body.cpp.

◆ GetThetaCM() [2/2]

Double_t KV2Body::GetThetaCM ( Int_t  OfNucleus,
Double_t  theta,
Int_t  OtherNucleus 
) const
inline

Calculate projectile CM angle from target CM angle and vice versa

Definition at line 296 of file KV2Body.h.

◆ GetThetaLab() [1/2]

Double_t KV2Body::GetThetaLab ( Double_t  ThetaCM,
Int_t  OfNucleus 
) const
inline

Calculate lab angle of nucleus OfNucleus (=1,2,3,4) as a function of CM angle

Definition at line 285 of file KV2Body.h.

◆ GetThetaLab() [2/2]

Int_t KV2Body::GetThetaLab ( Int_t  OfNucleus,
Double_t  ThetaLab,
Int_t  AngleNucleus,
Double_t t1,
Double_t t2 
) const

Calculate laboratory angle of nucleus OfNucleus as a function of the laboratory angle of nucleus AngleNucleus.

In general there may be two solutions for a given angle, therefore we return the number of solutions (0 if ThetaLab > max lab angle for nucleus in question).

Definition at line 1118 of file KV2Body.cpp.

◆ GetThetaLabVsThetaCMFunc()

TF1 * KV2Body::GetThetaLabVsThetaCMFunc ( Int_t  OfNucleus) const

Return TF1 giving lab angle of nucleus as function of CM angle OfNucleus = 1 or 2 (entrance channel) or 3 or 4 (exit channel)

Definition at line 1150 of file KV2Body.cpp.

◆ GetVelocity()

Double_t KV2Body::GetVelocity ( Double_t  mass,
Double_t  E 
)
static

Static function, calculates relativistic velocity (in cm/ns) from rest mass and total energy (i.e. KE + mass) 'E' for any particle

Definition at line 381 of file KV2Body.cpp.

◆ GetVLab()

Int_t KV2Body::GetVLab ( Int_t  OfNucleus,
Double_t  ThetaLab,
Int_t  AngleNucleus,
Double_t v1,
Double_t v2 
) const

Calculate laboratory velocity of nucleus OfNucleus as a function of the lab angle of nucleus AngleNucleus.

In general there may be two solutions for a given angle, therefore we return the number of solutions (0 if ThetaLab > max lab angle for nucleus in question).

Definition at line 1089 of file KV2Body.cpp.

◆ GetXSecRuthCM()

Double_t KV2Body::GetXSecRuthCM ( Double_t  ThetaLab,
Int_t  OfNucleus = 3 
) const

Calculate Rutherford cross-section (b/sr) in the CM as a function of projectile (OfNucleus=3) or target (OfNucleus=4) lab scattering angle

WARNING: in inverse kinematics, projectile lab angles generally have two corresponding CM angles. We only use the most forward (smallest) CM angle.

Definition at line 1173 of file KV2Body.cpp.

◆ GetXSecRuthLab()

Double_t KV2Body::GetXSecRuthLab ( Double_t  ThetaLab,
Int_t  OfNucleus = 3 
) const

Calculate Rutherford cross-section (b/sr) in the Lab as a function of projectile (OfNucleus=3) or target (OfNucleus=4) lab scattering angle

WARNING: in inverse kinematics, projectile lab angles generally have two corresponding CM angles. We only use the most forward (smallest) CM angle.

Definition at line 1274 of file KV2Body.cpp.

◆ GetXSecRuthLabFunc()

TF1 * KV2Body::GetXSecRuthLabFunc ( Int_t  OfNucleus = 3,
Double_t  theta_min = 1.,
Double_t  theta_max = 179. 
) const

Double_t GetIntegratedXSecRuthLab(KVTelescope* tel, Int_t OfNucleus = 3); Double_t GetIntegratedXSecRuthLab(KVDetector* det, Int_t OfNucleus = 3);

Return pointer to TF1 giving Rutherford cross-section (b/sr) in the Lab as a function of projectile (OfNucleus=3) or target (OfNucleus=4) lab scattering angle By default, theta_min = 1 degree & theta_max = 179 degrees

Definition at line 1808 of file KV2Body.cpp.

◆ GetXSecRuthLabIntegralFunc()

TF1 * KV2Body::GetXSecRuthLabIntegralFunc ( Int_t  OfNucleus = 3,
Double_t  theta_min = 1.,
Double_t  theta_max = 179. 
) const

Return pointer to TF1 giving Rutherford cross-section (b/sr) in the Lab as a function of projectile (OfNucleus=3) or target (OfNucleus=4) lab scattering angle

This function is equal to sin(theta)*dsigma/domega, i.e. it is the integrand needed for calculating total cross-sections integrated over solid angle.

WARNING: when integrating this function using TF1::Integral, the result must be multiplied by TMath::DegToRad(), because 'x' is in degrees rather than radians, e.g. the integrated cross-section in barns is given by

GetXSecRuthLabIntegralFunc(OfNucleus)->Integral(theta_min, theta_max)*TMathDegToRad()

Definition at line 1854 of file KV2Body.cpp.

◆ init()

void KV2Body::init ( void  )

Default initialisations.

Definition at line 33 of file KV2Body.cpp.

◆ KoxReactionXSec()

Double_t KV2Body::KoxReactionXSec ( Double_t eproj,
Double_t  
)

calculate Kox reaction X-section (in barns) for a given lab energy of projectile (in MeV/nucleon)

c parameter fitted with Landau function vs. Log10(E/A) (see Fig. 12 of PRC Kox 87) by imposing c=0.1 at E/A=10 MeV (goes to 0 as E/A->0)

Definition at line 1448 of file KV2Body.cpp.

◆ Print()

void KV2Body::Print ( Option_t opt = "") const
virtual

Print out characteristics of reaction.

If a two-body exit channel has been defined, you can use the following options: opt = "ruth" : list Rutherford scattering cross-sections as a function of angle in laboratory frame opt = "lab" : list energies and angles in laboratory frame

Reimplemented from KVBase.

Definition at line 814 of file KV2Body.cpp.

◆ Set4thNucleus()

void KV2Body::Set4thNucleus ( )
private

Private method, used to deduce 4th nucleus (target-like) from projectile, target and outgoing projectile using conservation of mass, momentum and energy.

if the outgoing nucleus set by the user is equal to the compound nucleus formed by projectile and target, but the excitation energy of the CN was not set by the user, we calculate it here.

Definition at line 423 of file KV2Body.cpp.

◆ SetEDiss()

void KV2Body::SetEDiss ( Double_t  ex)
inline

Definition at line 245 of file KV2Body.h.

◆ SetExcitEnergy()

void KV2Body::SetExcitEnergy ( Double_t  ex)
inline

Definition at line 234 of file KV2Body.h.

◆ SetIntegralPrecision()

void KV2Body::SetIntegralPrecision ( Double_t  precision)
inline

Set the precision of the TF1::Integral() method

Definition at line 340 of file KV2Body.h.

◆ SetOutgoing()

void KV2Body::SetOutgoing ( const KVNucleus proj_out)

Set outgoing projectile-like nucleus properties.

The properties of the outgoing target-like nucleus will be deduced from mass, charge and momentum/energy conservation.

Definition at line 398 of file KV2Body.cpp.

◆ SetProjectile() [1/2]

void KV2Body::SetProjectile ( const KVNucleus proj)

Set projectile for reaction.

Definition at line 340 of file KV2Body.cpp.

◆ SetProjectile() [2/2]

void KV2Body::SetProjectile ( Int_t  z,
Int_t  a = 0 
)

Set projectile for reaction.

Definition at line 352 of file KV2Body.cpp.

◆ SetTarget() [1/2]

void KV2Body::SetTarget ( const KVNucleus targ)

Set target for reaction.

Definition at line 315 of file KV2Body.cpp.

◆ SetTarget() [2/2]

void KV2Body::SetTarget ( Int_t  z,
Int_t  a = 0 
)

Set target for reaction.

Definition at line 327 of file KV2Body.cpp.

◆ ThetaLabVsThetaCM()

Double_t KV2Body::ThetaLabVsThetaCM ( Double_t x,
Double_t par 
)
private

Calculate Lab angle of nucleus as function of CM angle x[0] par[0] = index of nucleus = 1, 2, 3, 4

Definition at line 1026 of file KV2Body.cpp.

◆ XSecRuthCM()

Double_t KV2Body::XSecRuthCM ( Double_t x,
Double_t par 
)
private

Calculate Rutherford cross-section (b/sr) in the CM as a function of projectile (OfNucleus=3) or target (OfNucleus=4) lab scattering angle

WARNING: in inverse kinematics, projectile lab angles generally have two corresponding CM angles. We only use the most forward (smallest) CM angle.

Definition at line 1194 of file KV2Body.cpp.

◆ XSecRuthCMVsThetaCM()

Double_t KV2Body::XSecRuthCMVsThetaCM ( Double_t x,
Double_t par 
)
private

Calculate CM Rutherford cross-section (b/sr) in the CM as a function of scattering angle in the CM frame for nucleus par[0]

Definition at line 1246 of file KV2Body.cpp.

◆ XSecRuthLab()

Double_t KV2Body::XSecRuthLab ( Double_t x,
Double_t par 
)
private

Calculate Rutherford cross-section (b/sr) in the Lab as a function of projectile (OfNucleus=3) or target (OfNucleus=4) lab scattering angle

WARNING: in inverse kinematics, projectile lab angles generally have two corresponding CM angles. We only use the most forward (smallest) CM angle.

Definition at line 1295 of file KV2Body.cpp.

◆ XSecRuthLabInt()

Double_t KV2Body::XSecRuthLabInt ( Double_t x,
Double_t par 
)
private

Rutherford cross-section (b/sr) function in the Lab as a function of projectile (OfNucleus=3) or target (OfNucleus=4) lab scattering angle x[0] including 'sin theta' factor needed for integrating over solid angles.

Definition at line 1325 of file KV2Body.cpp.

Member Data Documentation

◆ BCM

Double_t KV2Body::BCM
private

beta of centre of mass

Definition at line 171 of file KV2Body.h.

◆ EC

Double_t KV2Body::EC[5]
private

cm energies

Definition at line 177 of file KV2Body.h.

◆ fEDiss

Double_t KV2Body::fEDiss
private

dissipated energy, 0 means elastic scattering

Definition at line 168 of file KV2Body.h.

◆ fELabVsThetaCM

TF1* KV2Body::fELabVsThetaCM[5]
mutableprivate

Definition at line 197 of file KV2Body.h.

◆ fELabVsThetaLab

TF1* KV2Body::fELabVsThetaLab[5]
mutableprivate

Definition at line 198 of file KV2Body.h.

◆ fEqbmChargeState

TF1* KV2Body::fEqbmChargeState
mutableprivate

function equilibrium charge state of projectile vs. E/A projectile (Leon et al)

Definition at line 183 of file KV2Body.h.

◆ fEqbmChargeStateShGas

TF1* KV2Body::fEqbmChargeStateShGas
mutableprivate

function equilibrium charge state of projectile vs. E/A projectile (Shiwietz et al gas)

Definition at line 185 of file KV2Body.h.

◆ fEqbmChargeStateShSol

TF1* KV2Body::fEqbmChargeStateShSol
mutableprivate

function equilibrium charge state of projectile vs. E/A projectile (Shiwietz et al solid)

Definition at line 184 of file KV2Body.h.

◆ fIntPrec

Double_t KV2Body::fIntPrec
private

Precision of the TF1::Integral method.

Definition at line 206 of file KV2Body.h.

◆ fKoxReactionXSec

TF1* KV2Body::fKoxReactionXSec
mutableprivate

function Kox reaction cross-section [barns] vs. E/A projectile

Definition at line 182 of file KV2Body.h.

◆ fNuclei

std::vector<KVNucleus> KV2Body::fNuclei
private

nuclei involved in calculation

Definition at line 167 of file KV2Body.h.

◆ fSetOutgoing

Bool_t KV2Body::fSetOutgoing
private

= kTRUE if SetOutgoing is called before CalculateKinematics

Definition at line 203 of file KV2Body.h.

◆ fThetaLabVsThetaCM

TF1* KV2Body::fThetaLabVsThetaCM[5]
mutableprivate

Definition at line 196 of file KV2Body.h.

◆ fXSecRuthLab

TF1* KV2Body::fXSecRuthLab[5]
mutableprivate

Definition at line 201 of file KV2Body.h.

◆ fXSecRuthLabIntegral

TF1* KV2Body::fXSecRuthLabIntegral[5]
mutableprivate

Definition at line 200 of file KV2Body.h.

◆ K

Double_t KV2Body::K[5]
private

ratio of c.m. velocity to velocity of nucleus in c.m. v_cm/v_i_cm

Definition at line 178 of file KV2Body.h.

◆ TETAMAX

Double_t KV2Body::TETAMAX[5]
private

defined only for nuclei 3 et 4

Definition at line 179 of file KV2Body.h.

◆ TETAMIN

Double_t KV2Body::TETAMIN[5]
private

defined only for nuclei 3 et 4

Definition at line 180 of file KV2Body.h.

◆ VC

Double_t KV2Body::VC[5]
private

cm velocities

Definition at line 176 of file KV2Body.h.

◆ VCM

TVector3 KV2Body::VCM
private

velocity of centre of mass

Definition at line 170 of file KV2Body.h.

◆ WC

Double_t KV2Body::WC[5]
private

cm energy of each nucleus

Definition at line 174 of file KV2Body.h.

◆ WCT

Double_t KV2Body::WCT
private

total cm energy

Definition at line 173 of file KV2Body.h.

◆ WLT

Double_t KV2Body::WLT
private

total lab energy

Definition at line 172 of file KV2Body.h.


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