X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=FASTSIM%2FAliQuenchingWeights.h;h=0f5d088afe7f7a1aff1f552ae200eeba9c6f97f5;hb=95ad101844ea7ffc2d642e8335875db778037ec9;hp=ca8af435104dde64f9c728a2fbca38a8f2bd2f6c;hpb=cc885e3674adfb204aa292943ce994842bcdf55f;p=u%2Fmrichter%2FAliRoot.git diff --git a/FASTSIM/AliQuenchingWeights.h b/FASTSIM/AliQuenchingWeights.h index ca8af435104..0f5d088afe7 100644 --- a/FASTSIM/AliQuenchingWeights.h +++ b/FASTSIM/AliQuenchingWeights.h @@ -17,20 +17,23 @@ // A. Dainese andrea.dainese@pd.infn.it //---------------------------------------------------------------------------- +#include #include class TH1F; class AliQuenchingWeights : public TObject { public: - enum kECMethod {kDefault=0,kReweight=1}; + enum kECMethod {kDefault=0,kReweight=1,kReweightCont=2}; AliQuenchingWeights(); AliQuenchingWeights(const AliQuenchingWeights& a); + AliQuenchingWeights& operator=(const AliQuenchingWeights& a) + {a.Copy(*this); return(*this);} virtual ~AliQuenchingWeights(); - + void Init(); void Reset(); Int_t SampleEnergyLoss(); - Int_t SampleEnergyLoss(Int_t ipart, Double_t R); + Int_t SampleEnergyLoss(Int_t ipart, Double_t r); Double_t GetELossRandom(Int_t ipart, Double_t length, Double_t e=1.e10) const; Double_t CalcQuenchedEnergy(Int_t ipart, Double_t length, Double_t e) const; @@ -39,9 +42,16 @@ class AliQuenchingWeights : public TObject { Double_t GetELossRandomK(Int_t ipart, Double_t I0, Double_t I1, Double_t e=1.e10); Double_t CalcQuenchedEnergyK(Int_t ipart, Double_t I0, Double_t I1, Double_t e); Double_t GetELossRandomKFast(Int_t ipart, Double_t I0, Double_t I1, Double_t e=1.e10); - Double_t GetELossRandomKFastR(Int_t ipart, Double_t R, Double_t wc, Double_t e=1.e10); + Double_t GetELossRandomKFastR(Int_t ipart, Double_t r, Double_t wc, Double_t e=1.e10); Double_t CalcQuenchedEnergyKFast(Int_t ipart, Double_t I0, Double_t I1, Double_t e); + Double_t GetDiscreteWeight(Int_t ipart, Double_t I0, Double_t I1); + Double_t GetDiscreteWeightR(Int_t ipart, Double_t r); + void GetZeroLossProb(Double_t &p,Double_t &prw,Double_t &prwcont, + Int_t ipart,Double_t I0,Double_t I1,Double_t e=1.e10); + void GetZeroLossProbR(Double_t &p,Double_t &prw, Double_t &prwcont, + Int_t ipart,Double_t r,Double_t wc,Double_t e=1.e10); + //multiple soft scattering approximation Int_t InitMult(const Char_t *contall="$(ALICE_ROOT)/FASTSIM/data/cont_mult.all", const Char_t *discall="$(ALICE_ROOT)/FASTSIM/data/disc_mult.all"); @@ -110,30 +120,30 @@ class AliQuenchingWeights : public TObject { Float_t GetMu() const {return fMu;} Float_t GetQTransport() const {return fQTransport;} Float_t GetK() const {return fK;} - Bool_t GetECMethod() const {return fECMethod;} + kECMethod GetECMethod() const {return fECMethod;} Bool_t GetTablesLoaded() const {return fTablesLoaded;} Bool_t GetMultSoft() const {return fMultSoft;} Int_t GetLengthMax() const {return fLengthMax;} TH1F* ComputeQWHisto (Int_t ipart,Double_t medval,Double_t length) const; TH1F* ComputeQWHistoX(Int_t ipart,Double_t medval,Double_t length) const; - TH1F* ComputeQWHistoX(Int_t ipart,Double_t R) const; + TH1F* ComputeQWHistoX(Int_t ipart,Double_t r) const; TH1F* ComputeELossHisto(Int_t ipart,Double_t medval,Double_t l,Double_t e=1.e10) const; TH1F* ComputeELossHisto(Int_t ipart,Double_t medval,TH1F *hEll,Double_t e=1.e10) const; - TH1F* ComputeELossHisto(Int_t ipart,Double_t R) const; + TH1F* ComputeELossHisto(Int_t ipart,Double_t r) const; Double_t GetMeanELoss(Int_t ipart,Double_t medval,Double_t l) const; Double_t GetMeanELoss(Int_t ipart,Double_t medval,TH1F *hEll) const; - Double_t GetMeanELoss(Int_t ipart,Double_t R) const; + Double_t GetMeanELoss(Int_t ipart,Double_t r) const; - void PlotDiscreteWeights(Double_t len=4) const; - void PlotContWeights(Int_t itype,Double_t len) const; - void PlotContWeightsVsL(Int_t itype,Double_t medval) const; - void PlotAvgELoss(Double_t len ,Double_t e=1.e10) const; - void PlotAvgELoss(TH1F *hEll,Double_t e=1.e10) const; - void PlotAvgELossVsL(Double_t e=1.e10) const; - void PlotAvgELossVsPt(Double_t medval,Double_t len) const; - void PlotAvgELossVsPt(Double_t medval,TH1F *hEll) const; + void PlotDiscreteWeights(Double_t len=4,Double_t qm=5) const; + void PlotContWeights(Int_t itype,Double_t len) const; + void PlotContWeightsVsL(Int_t itype,Double_t medval) const; + void PlotAvgELoss(Double_t len,Double_t qm=5,Double_t e=1.e10) const; + void PlotAvgELoss(TH1F *hEll,Double_t e=1.e10) const; + void PlotAvgELossVsL(Double_t e=1.e10) const; + void PlotAvgELossVsPt(Double_t medval,Double_t len) const; + void PlotAvgELossVsPt(Double_t medval,TH1F *hEll) const; protected: Int_t GetIndex(Double_t len) const; @@ -147,7 +157,7 @@ class AliQuenchingWeights : public TObject { Int_t fInstanceNumber; //instance number of class Bool_t fMultSoft; //approximation type - Bool_t fECMethod; //energy constraint method + kECMethod fECMethod; //energy constraint method Double_t fQTransport; //transport coefficient [GeV^2/fm]] Double_t fMu; //Debye screening mass Double_t fK; //proportional constant [fm]