KaliVeda
Toolkit for HIC analysis
KVRangeYanezMaterial.h
1 
4 #ifndef __KVRANGEYANEZMATERIAL_H
5 #define __KVRANGEYANEZMATERIAL_H
15 #include "KVIonRangeTableMaterial.h"
16 
17 class range; // PIMPL C++ implementation of range library
18 
20  Int_t fTableType;
21 
22  Int_t fNelem;
23  Int_t iabso;
24  struct Elem {
25  Double_t w;
26  Int_t z;
27  Int_t a;
28  } fAbsorb[10];
29  Double_t thickness;
30  Int_t Zp, Ap;
31  Double_t error;
32 
33  std::unique_ptr<range> range_lib;
34 protected:
35  void PrepareRangeLibVariables(Int_t Z, Int_t A);
36  Double_t DeltaEFunc(Double_t*, Double_t*);
37  Double_t RangeFunc(Double_t*, Double_t*);
38  Double_t EResFunc(Double_t*, Double_t*);
39 
40  void MakeFunctionObjects();
41 
42 public:
46  KVRangeYanezMaterial(const KVIonRangeTable* t, const Char_t* name, const Char_t* symbol, const Char_t* state,
47  Double_t density = -1, Int_t Z = -1, Int_t A = -1);
48 
49  void Copy(TObject&) const override;
50  void Initialize() override;
51 
52  TF1* GetDeltaEFunction(Double_t e, Int_t Z, Int_t A, Double_t isoAmat = 0) override;
53  TF1* GetRangeFunction(Int_t Z, Int_t A, Double_t isoAmat = 0) override;
54  TF1* GetEResFunction(Double_t e, Int_t Z, Int_t A, Double_t isoAmat = 0) override;
56  {
57  KVError::Warning(this, "GetStoppingFunction", "Not available for Yanez Range tables");
58  return 0;
59  };
60  void SetTableType(int type)
61  {
62  fTableType = type;
63  };
64 
65  Double_t GetEIncFromEResOfIon(Int_t Z, Int_t A, Double_t Eres, Double_t e, Double_t isoAmat = 0.) override;
66 
67  Int_t GetNElem() const
68  {
69  return fNelem;
70  }
71  void SaveMaterial(std::ofstream& matfile);
72 
73  ClassDefOverride(KVRangeYanezMaterial, 1) //Description of absorber for the Range dE/dx and range library (Ricardo Yanez)
74 };
75 
76 #endif
int Int_t
char Char_t
double Double_t
#define ClassDefOverride(name, id)
winID w
Option_t Option_t TPoint TPoint const char GetTextMagnitude GetFillStyle GetLineColor GetLineWidth GetMarkerStyle GetTextAlign GetTextColor GetTextSize void char Point_t Rectangle_t WindowAttributes_t Float_t Float_t Float_t Int_t Int_t UInt_t UInt_t Rectangle_t Int_t Int_t Window_t TString Int_t GCValues_t GetPrimarySelectionOwner GetDisplay GetScreen GetColormap GetNativeEvent const char const char dpyName wid window const char font_name cursor keysym reg const char only_if_exist regb h Point_t winding char text const char depth char const char Int_t count const char ColorStruct_t color const char Pixmap_t Pixmap_t PictureAttributes_t attr const char char ret_data h unsigned char height h Atom_t Int_t ULong_t ULong_t unsigned char prop_list Atom_t Atom_t Atom_t Time_t type
Material for use in energy loss & range calculations.
Abstract base class for calculation of range & energy loss of charged particles in matter.
Description of absorber for the Range dE/dx and range library.
TF1 * GetRangeFunction(Int_t Z, Int_t A, Double_t isoAmat=0) override
TF1 * GetStoppingFunction(Int_t, Int_t, Double_t=0) override
TF1 * GetDeltaEFunction(Double_t e, Int_t Z, Int_t A, Double_t isoAmat=0) override
KVRangeYanezMaterial()
Default constructor.
void Copy(TObject &) const override
Double_t GetEIncFromEResOfIon(Int_t Z, Int_t A, Double_t Eres, Double_t e, Double_t isoAmat=0.) override
TF1 * GetEResFunction(Double_t e, Int_t Z, Int_t A, Double_t isoAmat=0) override
void SaveMaterial(std::ofstream &matfile)
void Warning(UserClass p, const char *location, const char *va_(fmt),...)
Definition: KVError.h:125
TArc a