KaliVeda
Toolkit for HIC analysis
Loading...
Searching...
No Matches
KV2Body Class Reference

Detailed Description

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:

  • centre of mass recoil velocity and available energy
  • laboratory grazing angle of projectile and target
  • maximum laboratory scattering angles
  • Q-values
  • CM and laboratory Rutherford cross-sections for elastic scattering
  • CM and laboratory angles of ejectiles after elastic or inelastic scattering
  • reaction cross-sections from systematics
  • equilibrium charge states from systematics

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:61
Description of properties and kinematics of atomic nuclei.
Definition KVNucleus.h:126

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:314
void SetEDiss(Double_t ex)
Definition KV2Body.h:246
void SetExcitEnergy(Double_t ex)
Definition KV2Body.h:235
void SetProjectile(const KVNucleus &)
Set projectile for reaction.
Definition KV2Body.cpp:339

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:397

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:677

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:813
Examples
ExampleFilteredSimDataAnalysis.cpp, and ExampleINDRAAnalysis.cpp.

Definition at line 166 of file KV2Body.h.

#include <KV2Body.h>

Inheritance diagram for KV2Body:

Public Member Functions

 KV2Body ()
 default ctor
 
 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.
 
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.
 
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)
 
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.
 
Double_t GetQReaction () const
 Calculate Q-value for reaction, including dissipated (excitation) energy.
 
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
 
TF1GetXSecRuthCMFunc (Int_t OfNucleus=3, Double_t theta_cm_min=1., Double_t theta_cm_max=179.) 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.
 
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.
 
void SetProjectile (Int_t z, Int_t a=0)
 Set projectile for reaction.
 
void SetTarget (const KVNucleus &)
 Set target for reaction.
 
void SetTarget (Int_t z, Int_t a=0)
 Set target for reaction.
 
- Public Member Functions inherited from KVBase
 KVBase ()
 Default constructor.
 
 KVBase (const Char_t *name, const Char_t *title="")
 Ctor for object with given name and type.
 
 KVBase (const KVBase &)
 copy ctor
 
virtual ~KVBase ()
 
virtual void Clear (Option_t *opt="")
 Clear object properties : name, type/title, number, label.
 
virtual void Copy (TObject &) const
 Make a copy of this object.
 
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
 
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 ()
 
void Clear (Option_t *option="") override
 
TObjectClone (const char *newname="") const override
 
Int_t Compare (const TObject *obj) const override
 
void Copy (TObject &named) const override
 
virtual void FillBuffer (char *&buffer)
 
const char * GetName () const override
 
const char * GetTitle () const override
 
ULong_t Hash () const override
 
TClassIsA () const override
 
Bool_t IsSortable () const override
 
void ls (Option_t *option="") const override
 
TNamedoperator= (const TNamed &rhs)
 
void Print (Option_t *option="") const override
 
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
 
void Streamer (TBuffer &) override
 
void StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b)
 
- 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=nullptr)
 
virtual void Execute (TMethod *method, TObjArray *params, Int_t *error=nullptr)
 
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)
 
Bool_t IsDestructed () const
 
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, void *vp)
 
void operator delete[] (void *ptr)
 
void operator delete[] (void *ptr, void *vp)
 
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)
 
void StreamerNVirtual (TBuffer &ClassDef_StreamerNVirtual_b)
 
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=nullptr, Int_t option=0, Int_t bufsize=0)
 
virtual Int_t Write (const char *name=nullptr, 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.
 
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.)
 
static const Char_tGetINCDIRFilePath (const Char_t *namefile="")
 
static const Char_tGetKVBuildDate ()
 Returns KaliVeda build date.
 
static const Char_tGetKVBuildDir ()
 Returns top-level directory used for build.
 
static const Char_tGetKVBuildTime ()
 Returns KaliVeda build time.
 
static const Char_tGetKVBuildType ()
 Returns KaliVeda build type (cmake build: Release, Debug, RelWithDebInfo, ...)
 
static const Char_tGetKVBuildUser ()
 Returns username of person who performed build.
 
static const Char_tGetKVSourceDir ()
 Returns top-level directory of source tree used for build.
 
static const Char_tGetKVVersion ()
 Returns KaliVeda version string.
 
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.
 
static const Char_tgitCommit ()
 Returns last git commit of sources.
 
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.
 
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 TNamed
static TClassClass ()
 
static const char * Class_Name ()
 
static constexpr Version_t Class_Version ()
 
static const char * DeclFileName ()
 
- Static Public Member Functions inherited from TObject
static TClassClass ()
 
static const char * Class_Name ()
 
static constexpr Version_t Class_Version ()
 
static const char * DeclFileName ()
 
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].
 
Double_t ELabVsThetaLab (Double_t *, Double_t *)
 Function calculating lab energy of nucleus par[0] for any lab angle x[0].
 
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
 
Double_t EC [5]
 cm energies
 
Double_t fEDiss
 dissipated energy, 0 means elastic scattering
 
TF1fELabVsThetaCM [5]
 
TF1fELabVsThetaLab [5]
 
TF1fEqbmChargeState
 function equilibrium charge state of projectile vs. E/A projectile (Leon et al)
 
TF1fEqbmChargeStateShGas
 function equilibrium charge state of projectile vs. E/A projectile (Shiwietz et al gas)
 
TF1fEqbmChargeStateShSol
 function equilibrium charge state of projectile vs. E/A projectile (Shiwietz et al solid)
 
Double_t fIntPrec
 Precision of the TF1::Integral method.
 
TF1fKoxReactionXSec
 function Kox reaction cross-section [barns] vs. E/A projectile
 
std::vector< KVNucleusfNuclei
 nuclei involved in calculation
 
Bool_t fSetOutgoing
 = kTRUE if SetOutgoing is called before CalculateKinematics
 
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
 
Double_t TETAMAX [5]
 defined only for nuclei 3 et 4
 
Double_t TETAMIN [5]
 defined only for nuclei 3 et 4
 
Double_t VC [5]
 cm velocities
 
TVector3 VCM
 velocity of centre of mass
 
Double_t WC [5]
 cm energy of each nucleus
 
Double_t WCT
 total cm energy
 
Double_t WLT
 total lab energy
 

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 TNamed
TString fName
 
TString fTitle
 
- Protected Attributes inherited from TObject
 kOnlyPrepStep
 

Constructor & Destructor Documentation

◆ KV2Body() [1/6]

KV2Body::KV2Body ( )

default ctor

Definition at line 61 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 87 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:166

Definition at line 196 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 242 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 282 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 152 of file KV2Body.cpp.

◆ ~KV2Body()

KV2Body::~KV2Body ( )
virtual

Definition at line 362 of file KV2Body.cpp.

Member Function Documentation

◆ BassIntBarrier()

Double_t KV2Body::BassIntBarrier ( )

calculate Bass interaction barrier B_int

r0 = 1.07 fm

Definition at line 1463 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 677 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 1006 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 989 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 1787 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 1727 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 1635 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 1944 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 1549 of file KV2Body.cpp.

◆ GetCMEnergy() [1/2]

Double_t KV2Body::GetCMEnergy ( ) const

Return available kinetic energy in centre of mass.

Definition at line 522 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 795 of file KV2Body.cpp.

◆ GetCMGamma()

Double_t KV2Body::GetCMGamma ( ) const
inline

Definition at line 269 of file KV2Body.h.

◆ GetCMVelocity() [1/2]

TVector3 KV2Body::GetCMVelocity ( ) const

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

Definition at line 572 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 587 of file KV2Body.cpp.

◆ GetEDiss()

Double_t KV2Body::GetEDiss ( ) const
inline

Definition at line 251 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 291 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 945 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 1044 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 1064 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 1698 of file KV2Body.cpp.

◆ GetExcitEnergy()

Double_t KV2Body::GetExcitEnergy ( ) const
inline

Definition at line 241 of file KV2Body.h.

◆ GetIntegralPrecision()

Double_t KV2Body::GetIntegralPrecision ( )
inline

Precision of the TF1::Integral() method

Definition at line 337 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 1568 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 1387 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 1587 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 603 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 536 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 554 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

If theta>max lab angle for nucleus, returns -1.0

Definition at line 1224 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 456 of file KV2Body.cpp.

◆ GetQGroundStates()

Double_t KV2Body::GetQGroundStates ( ) const

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

Definition at line 499 of file KV2Body.cpp.

◆ GetQReaction()

Double_t KV2Body::GetQReaction ( ) const

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

Definition at line 480 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 1819 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 1758 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 1528 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 972 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 297 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 286 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 1117 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 1149 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 380 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 1088 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 1172 of file KV2Body.cpp.

◆ GetXSecRuthCMFunc()

TF1 * KV2Body::GetXSecRuthCMFunc ( Int_t  OfNucleus = 3,
Double_t  theta_cm_min = 1.,
Double_t  theta_cm_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 CM as a function of projectile (OfNucleus=3) or target (OfNucleus=4) CM scattering angle By default, theta_min = 1 degree & theta_max = 179 degrees

Definition at line 1428 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 1279 of file KV2Body.cpp.

◆ GetXSecRuthLabFunc()

TF1 * KV2Body::GetXSecRuthLabFunc ( 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 By default, theta_min = 1 degree & theta_max = 179 degrees

Definition at line 1850 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 1896 of file KV2Body.cpp.

◆ init()

void KV2Body::init ( )

Default initialisations.

Definition at line 32 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 1490 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 813 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 422 of file KV2Body.cpp.

◆ SetEDiss()

void KV2Body::SetEDiss ( Double_t  ex)
inline

Definition at line 246 of file KV2Body.h.

◆ SetExcitEnergy()

void KV2Body::SetExcitEnergy ( Double_t  ex)
inline

Definition at line 235 of file KV2Body.h.

◆ SetIntegralPrecision()

void KV2Body::SetIntegralPrecision ( Double_t  precision)
inline

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

Definition at line 342 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 397 of file KV2Body.cpp.

◆ SetProjectile() [1/2]

void KV2Body::SetProjectile ( const KVNucleus proj)

Set projectile for reaction.

Definition at line 339 of file KV2Body.cpp.

◆ SetProjectile() [2/2]

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

Set projectile for reaction.

Definition at line 351 of file KV2Body.cpp.

◆ SetTarget() [1/2]

void KV2Body::SetTarget ( const KVNucleus targ)

Set target for reaction.

Definition at line 314 of file KV2Body.cpp.

◆ SetTarget() [2/2]

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

Set target for reaction.

Definition at line 326 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 1025 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 1193 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 1251 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 1300 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 1333 of file KV2Body.cpp.

Member Data Documentation

◆ BCM

Double_t KV2Body::BCM
private

beta of centre of mass

Definition at line 172 of file KV2Body.h.

◆ EC

Double_t KV2Body::EC[5]
private

cm energies

Definition at line 178 of file KV2Body.h.

◆ fEDiss

Double_t KV2Body::fEDiss
private

dissipated energy, 0 means elastic scattering

Definition at line 169 of file KV2Body.h.

◆ fELabVsThetaCM

TF1* KV2Body::fELabVsThetaCM[5]
mutableprivate

Definition at line 198 of file KV2Body.h.

◆ fELabVsThetaLab

TF1* KV2Body::fELabVsThetaLab[5]
mutableprivate

Definition at line 199 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 184 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 186 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 185 of file KV2Body.h.

◆ fIntPrec

Double_t KV2Body::fIntPrec
private

Precision of the TF1::Integral method.

Definition at line 207 of file KV2Body.h.

◆ fKoxReactionXSec

TF1* KV2Body::fKoxReactionXSec
mutableprivate

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

Definition at line 183 of file KV2Body.h.

◆ fNuclei

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

nuclei involved in calculation

Definition at line 168 of file KV2Body.h.

◆ fSetOutgoing

Bool_t KV2Body::fSetOutgoing
private

= kTRUE if SetOutgoing is called before CalculateKinematics

Definition at line 204 of file KV2Body.h.

◆ fThetaLabVsThetaCM

TF1* KV2Body::fThetaLabVsThetaCM[5]
mutableprivate

Definition at line 197 of file KV2Body.h.

◆ fXSecRuthLab

TF1* KV2Body::fXSecRuthLab[5]
mutableprivate

Definition at line 202 of file KV2Body.h.

◆ fXSecRuthLabIntegral

TF1* KV2Body::fXSecRuthLabIntegral[5]
mutableprivate

Definition at line 201 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 179 of file KV2Body.h.

◆ TETAMAX

Double_t KV2Body::TETAMAX[5]
private

defined only for nuclei 3 et 4

Definition at line 180 of file KV2Body.h.

◆ TETAMIN

Double_t KV2Body::TETAMIN[5]
private

defined only for nuclei 3 et 4

Definition at line 181 of file KV2Body.h.

◆ VC

Double_t KV2Body::VC[5]
private

cm velocities

Definition at line 177 of file KV2Body.h.

◆ VCM

TVector3 KV2Body::VCM
private

velocity of centre of mass

Definition at line 171 of file KV2Body.h.

◆ WC

Double_t KV2Body::WC[5]
private

cm energy of each nucleus

Definition at line 175 of file KV2Body.h.

◆ WCT

Double_t KV2Body::WCT
private

total cm energy

Definition at line 174 of file KV2Body.h.

◆ WLT

Double_t KV2Body::WLT
private

total lab energy

Definition at line 173 of file KV2Body.h.