KaliVeda  1.12/06
Heavy-Ion Analysis Toolkit
KVedaLoss.h
Go to the documentation of this file.
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 
33 class KVedaLoss : public KVIonRangeTable {
36 
37  Bool_t init_materials() const;
39  {
40  if (!fMaterials) return init_materials();
41  return kTRUE;
42  };
45 
47 
48 public:
49  KVedaLoss();
50  virtual ~KVedaLoss();
51 
52 
53  void Print(Option_t* = "") const;
55 
56  static void SetIgnoreEnergyLimits(Bool_t yes = kTRUE);
57 
58  static void SetUseNewRangeInversion(Bool_t yes = kTRUE)
59  {
60  fgNewRangeInversion = yes;
61  }
63  {
64  return fgNewRangeInversion;
65  }
66 
67  Bool_t CheckIon(Int_t Z, Int_t A) const;
68  Bool_t ReadMaterials(const Char_t* path) const;
69 
71  Bool_t AddRANGEMaterial(const Char_t* name) const;
73  const Char_t* /*name*/, const Char_t* /* symbol */,
74  Int_t /* nelem */, Int_t* /* z */, Int_t* /* a */, Int_t* /* natoms */, Double_t /* density */ = -1.0) const;
76  const Char_t* /* name */, const Char_t* /* symbol */,
77  Int_t /* nelem */, Int_t* /* z */, Int_t* /* a */, Int_t* /* natoms */, Double_t* /* proportion */,
78  Double_t /* density */ = -1.0) const;
79  ClassDef(KVedaLoss, 1) //C++ implementation of VEDALOSS stopping power calculation
80 };
81 
82 #endif
int Int_t
char Char_t
bool Bool_t
double Double_t
const Bool_t kTRUE
const char Option_t
#define ClassDef(name, id)
Extended version of ROOT THashList.
Definition: KVHashList.h:28
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:33
KVIonRangeTableMaterial * AddCompoundMaterial(const Char_t *, const Char_t *, Int_t, Int_t *, Int_t *, Int_t *, Double_t=-1.0) const
Use the RANGE tables to generate a new compound material.
Definition: KVedaLoss.cpp:231
TObjArray * GetListOfMaterials()
Definition: KVedaLoss.cpp:325
Bool_t init_materials() const
Definition: KVedaLoss.cpp:100
KVIonRangeTableMaterial * GetMaterialWithNameOrType(const Char_t *material) const
Returns pointer to material of given name or type.
Definition: KVedaLoss.cpp:262
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:34
KVIonRangeTableMaterial * AddElementalMaterial(Int_t Z, Int_t A=0) const
Definition: KVedaLoss.cpp:197
TString fLocalMaterialsDirectory
Definition: KVedaLoss.h:35
void AddMaterial(KVIonRangeTableMaterial *) const
Definition: KVedaLoss.cpp:283
static void SetUseNewRangeInversion(Bool_t yes=kTRUE)
Definition: KVedaLoss.h:58
Bool_t ReadMaterials(const Char_t *path) const
Read and add range tables for materials in file.
Definition: KVedaLoss.cpp:138
static Bool_t IsUseNewRangeInversion()
Definition: KVedaLoss.h:62
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
Use the RANGE tables to generate a new mixed material.
Definition: KVedaLoss.cpp:246
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:214
static Bool_t fgNewRangeInversion
static flag for using new KVedaLossInverseRangeFunction
Definition: KVedaLoss.h:44
static void SetIgnoreEnergyLimits(Bool_t yes=kTRUE)
Definition: KVedaLoss.cpp:36
void Print(Option_t *="") const
Definition: KVedaLoss.cpp:311
Bool_t CheckMaterialsList() const
Definition: KVedaLoss.h:38