10#ifndef HALFEMTOSOURCEMODEL_H_
11#define HALFEMTOSOURCEMODEL_H_
20 class FemtoSourceDensity;
30 const Int_t fParametersNo;
31 Double_t* fParams = {
nullptr};
35 TString* fParameterNames = {
nullptr};
61 void SetParName(Int_t no, TString name) { fParameterNames[no] = name; };
64 enum class ENumProperty { kNonAnalytical, kAnalytical1d, kAnalytical3d, kFullyAnalytical };
99 inline void SetParameter(Int_t par_no, Double_t par_val) { fParams[par_no] = par_val; };
120 Int_t
GetNpar()
const {
return fParametersNo; };
133 virtual Bool_t Init() {
return kTRUE; }
134 virtual void Print(Option_t* option =
"")
const;
void SetRadius(Double_t radii)
virtual FemtoSourceModel * MakeCopy() const =0
void SetSideRadius(Double_t side)
virtual void SetRadius(Double_t radii)
void SetLongRadius(Double_t longr)
void SetOutRadius(Double_t out)
virtual FemtoSourceModel * MakeCopy() const =0
virtual void SetRadius(Double_t)
void SetParameter(Int_t par_no, Double_t par_val)
virtual FemtoSourceModel * MakeCopy() const =0
FemtoSourceDensity * GetDensityProb() const
virtual Package * Report() const
Double_t GetParameter(Int_t n) const
void SetParameterByName(TString name, Double_t par)
Double_t GetRLong() const
virtual void GenerateCoordinates(FemtoPair *Pair)=0
ENumProperty GetModelNumProp() const
Double_t GetRSide() const
FemtoSourceModel(Int_t nparams=1)
void SetSeed(UInt_t seed)
TString GetParamName(Int_t n) const
FemtoSourceDensity * fDensity