KaliVeda
Toolkit for HIC analysis
KVedaLoss.h
1 
4 #ifndef __KVEDALOSS_H
5 #define __KVEDALOSS_H
6 
7 #include "KVIonRangeTable.h"
8 #include "KVHashList.h"
9 
10 class KVedaLossMaterial;
11 class TGeoMaterial;
12 
63 class KVedaLoss : public KVIonRangeTable {
66 
67  Bool_t init_materials() const;
69  {
70  if (!fMaterials) return init_materials();
71  return kTRUE;
72  };
75 
77 
78 public:
79  KVedaLoss();
80  virtual ~KVedaLoss();
81 
82 
83  void Print(Option_t* = "") const;
85 
86  static void SetIgnoreEnergyLimits(Bool_t yes = kTRUE);
87 
88  static void SetUseNewRangeInversion(Bool_t yes = kTRUE)
89  {
90  fgNewRangeInversion = yes;
91  }
93  {
94  return fgNewRangeInversion;
95  }
96 
97  Bool_t CheckIon(Int_t Z, Int_t A) const;
98  Bool_t ReadMaterials(const Char_t* path) const;
99 
101  Bool_t AddRANGEMaterial(const Char_t* name) const;
103  const Char_t* /*name*/, const Char_t* /* symbol */,
104  Int_t /* nelem */, Int_t* /* z */, Int_t* /* a */, Int_t* /* natoms */, Double_t /* density */ = -1.0) const;
106  const Char_t* /* name */, const Char_t* /* symbol */,
107  Int_t /* nelem */, Int_t* /* z */, Int_t* /* a */, Int_t* /* natoms */, Double_t* /* proportion */,
108  Double_t /* density */ = -1.0) const;
109  ClassDef(KVedaLoss, 1) //C++ implementation of VEDALOSS stopping power calculation
110 };
111 
112 #endif
int Int_t
bool Bool_t
char Char_t
double Double_t
constexpr Bool_t kTRUE
const char Option_t
#define ClassDef(name, id)
Extended version of ROOT THashList.
Definition: KVHashList.h:29
Material for use in energy loss & range calculations.
Abstract base class for calculation of range & energy loss of charged particles in matter.
Description of material in the KVedaLoss range table.
C++ implementation of VEDALOSS stopping power calculation.
Definition: KVedaLoss.h:63
KVIonRangeTableMaterial * AddCompoundMaterial(const Char_t *, const Char_t *, Int_t, Int_t *, Int_t *, Int_t *, Double_t=-1.0) const
Definition: KVedaLoss.cpp:252
TObjArray * GetListOfMaterials()
Definition: KVedaLoss.cpp:372
Bool_t init_materials() const
Definition: KVedaLoss.cpp:99
KVIonRangeTableMaterial * GetMaterialWithNameOrType(const Char_t *material) const
Returns pointer to material of given name or type.
Definition: KVedaLoss.cpp:309
KVedaLoss()
Default constructor.
Definition: KVedaLoss.cpp:69
virtual ~KVedaLoss()
Destructor.
Definition: KVedaLoss.cpp:86
static KVHashList * fMaterials
static list of all known materials
Definition: KVedaLoss.h:64
KVIonRangeTableMaterial * AddElementalMaterial(Int_t Z, Int_t A=0) const
Definition: KVedaLoss.cpp:204
TString fLocalMaterialsDirectory
Definition: KVedaLoss.h:65
void AddMaterial(KVIonRangeTableMaterial *) const
Definition: KVedaLoss.cpp:330
static void SetUseNewRangeInversion(Bool_t yes=kTRUE)
Definition: KVedaLoss.h:88
Bool_t ReadMaterials(const Char_t *path) const
Read and add range tables for materials in file.
Definition: KVedaLoss.cpp:136
static Bool_t IsUseNewRangeInversion()
Definition: KVedaLoss.h:92
Bool_t CheckIon(Int_t Z, Int_t A) const
Definition: KVedaLoss.cpp:59
KVIonRangeTableMaterial * AddMixedMaterial(const Char_t *, const Char_t *, Int_t, Int_t *, Int_t *, Int_t *, Double_t *, Double_t=-1.0) const
Definition: KVedaLoss.cpp:284
Bool_t AddRANGEMaterial(const Char_t *name) const
If the given material is defined in the RANGE tables, import it into VEDALOSS.
Definition: KVedaLoss.cpp:227
static Bool_t fgNewRangeInversion
static flag for using new KVedaLossInverseRangeFunction
Definition: KVedaLoss.h:74
static void SetIgnoreEnergyLimits(Bool_t yes=kTRUE)
Definition: KVedaLoss.cpp:36
void Print(Option_t *="") const
Definition: KVedaLoss.cpp:358
Bool_t CheckMaterialsList() const
Definition: KVedaLoss.h:68