4 #include "KVedaLossRangeFitter.h" 
   18    0.1, .2, 0.5, 1, 2, 5, 10, 25, 50, 100, 250, 500, -1
 
   30    for (
int i = 4; i >= 0; --i) lr = 
e[0] * lr + 
a[i];
 
   69    TIter next(mats.get());
 
   70    while ((mat = (
TNamed*)next())) {
 
   79    Info(
"SetMaterial", 
"Initial fit parameters will be taken from:");
 
   94    std::vector<Double_t> pars;
 
   97    for (
int i = 0; i < npar; ++i) {
 
  118    r->SetMarkerStyle(24);
 
  119    r->SetTitle(
Form(
"Z = %d", Z));
 
  122       if (energy[i] < 0.) 
break;
 
  126          r->SetPoint(ip++, logE, 
log(
R));
 
  146    r->SetMarkerStyle(20);
 
  148    r->SetTitle(
Form(
"VEDA Z = %d", Z));
 
  151       if (energy[i] < 0.) 
break;
 
  155          r->SetPoint(ip++, logE, 
log(
R));
 
  188    ofstream results(output_file.
Data());
 
  191    for (
int Z = Zmin; Z <= Zmax; Z++) {
 
  201       printf(
"Z = %d : fit status ", Z);
 
  202       if (fitStatus == 0) {
 
  206          printf(
"PROBLEM (%d)\n", fitStatus);
 
  221    output << setw(4) << Z << 
"." << setw(4) << 
Aref << 
". ";
 
  224    output << endl << 
"           ";
 
  280    else output << 
" 0. 0." << endl;
 
  282    output << 
"Z = 1,2     0.1 < E/A  <  400 MeV" << endl << 
"Z = 3,100   0.1 < E/A  <  250 MeV" << endl;
 
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 g
 
char * Form(const char *fmt,...)
 
R__EXTERN TSystem * gSystem
 
virtual const Char_t * GetType() const
 
Material for use in energy loss & range calculations.
 
void Print(Option_t *="") const override
 
Double_t GetMoleWt() const
 
void PrintComposition(std::ostream &) const
Print to stream the composition of this material, in a format compatible with the VEDALOSS parameter ...
 
Double_t GetDensity() const
 
virtual Double_t GetRangeOfIon(Int_t Z, Int_t A, Double_t E, Double_t isoAmat=0.)
 
KVIonRangeTableMaterial * GetMaterial(const Char_t *material) const
Returns pointer to material of given name or type.
 
Description of material in the KVedaLoss range table.
 
Double_t GetRangeOfIon(Int_t Z, Int_t A, Double_t E, Double_t isoAmat=0.) override
 
void GetParameters(Int_t Zion, Int_t &Aion, std::vector< Double_t > &rangepar)
 
Fit a range table using the VEDALOSS functional.
 
TGraph * GenerateRangeTable(Int_t Z)
 
void PrintFitParameters(Int_t, std::ostream &)
 
KVIonRangeTableMaterial * fMaterial
range table to fit
 
void SetMaterial(KVIonRangeTableMaterial *m)
Sets range table to fit. Also finds material with closest Z in VEDALOSS library.
 
KVedaLossRangeFitter()
Default constructor.
 
void DoFits(TString output_file, Int_t Zmin=1, Int_t Zmax=100)
Perform fits to range tables for elements from Zmin to Zmax.
 
TGraph * GenerateVEDALOSSRangeTable(Int_t Z)
 
virtual ~KVedaLossRangeFitter()
Destructor.
 
void PrintFitHeader(std::ostream &)
 
KVedaLossMaterial * fClosestVedaMat
closest known VEDALOSS material
 
void SetInitialParameters(Int_t Z)
 
Int_t FitRangeTable(TGraph *)
 
Double_t range(Double_t *, Double_t *)
express logR as a polynomial of log(E/A)
 
TObjArray * GetListOfMaterials() override
 
virtual Double_t GetParameter(const TString &name) const
 
virtual Int_t GetNpar() const
 
virtual void SetParameter(const TString &name, Double_t value)
 
const char * GetName() const override
 
virtual void Info(const char *method, const char *msgfmt,...) const
 
const char * Data() const
 
virtual void Sleep(UInt_t milliSec)
 
RVec< PromoteType< T > > log(const RVec< T > &v)