]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - FASTSIM/AliQuenchingWeights.h
No return in void function (Alpha)
[u/mrichter/AliRoot.git] / FASTSIM / AliQuenchingWeights.h
index d79d2af3de8a74f117850f7b068e18360bc2dc70..d2c71a98404aace15509d2887f18a14c0424c05f 100644 (file)
@@ -22,15 +22,17 @@ 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 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,8 +41,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 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"); 
@@ -89,7 +99,7 @@ class AliQuenchingWeights : public TObject {
     {return CalcQk(fK,I0,I1);} 
 
   Double_t CalcQk(Double_t k, Double_t I0, Double_t I1) const
-    {return I0*I0/2/I1/fgkConvFmToInvGeV/fgkConvFmToInvGeV*k;}
+    {return I0*I0/2./I1/fgkConvFmToInvGeV/fgkConvFmToInvGeV*k;}
 
   Double_t CalcLk(Double_t i0, Double_t i1) const
     {return 2.*i1/i0;}
@@ -116,23 +126,23 @@ class AliQuenchingWeights : public TObject {
 
   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;
@@ -146,7 +156,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]