Addition of gaussian truncated at different left and right distances (useful for...
authorrgrosso <rgrosso@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 12 Nov 2008 18:48:03 +0000 (18:48 +0000)
committerrgrosso <rgrosso@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 12 Nov 2008 18:48:03 +0000 (18:48 +0000)
STEER/AliMathBase.cxx
STEER/AliMathBase.h

index 79cb3c2..cb9fd41 100644 (file)
@@ -739,3 +739,15 @@ Double_t AliMathBase::TruncatedGaus(Double_t mean, Double_t sigma, Double_t cuta
   }while(TMath::Abs(value-mean)>cutat);
   return value;
 }
+
+Double_t AliMathBase::TruncatedGaus(Double_t mean, Double_t sigma, Double_t leftCut, Double_t rightCut)
+{
+  // return number generated according to a gaussian distribution N(mean,sigma)
+  // truncated at leftCut and rightCut
+  //
+  Double_t value;
+  do{
+    value=gRandom->Gaus(mean,sigma);
+  }while((value-mean)<-leftCut || (value-mean)>rightCut);
+  return value;
+}
index ba1d50b..8716bb8 100644 (file)
@@ -30,6 +30,7 @@ class AliMathBase : public TObject
   static Float_t  GetCOG(Short_t *arr, Int_t nBins, Float_t xMin, Float_t xMax, Float_t *rms=0, Float_t *sum=0);
 
   static Double_t TruncatedGaus(Double_t mean, Double_t sigma, Double_t cutat);
+  static Double_t TruncatedGaus(Double_t mean, Double_t sigma, Double_t leftCut, Double_t rightCut);
 
   static TGraph2D *  MakeStat2D(TH3 * his, Int_t delta0, Int_t delta1, Int_t type);
   static TGraph *  MakeStat1D(TH3 * his, Int_t delta1, Int_t type);