]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - FASTSIM/AliQuenchingWeights.cxx
DQM configure file
[u/mrichter/AliRoot.git] / FASTSIM / AliQuenchingWeights.cxx
index ac3f72bbe25ae4f21cd400af309b1bbac533cdd3..c3c1057fce5535c28a81cfa0aab70d5d442a12ee 100644 (file)
@@ -44,6 +44,8 @@
 #include <TLegend.h>
 #include "AliQuenchingWeights.h"
 
+using std::fstream;
+using std::ios;
 ClassImp(AliQuenchingWeights)
 
 // conversion from fm to GeV^-1: 1 fm = fmGeV GeV^-1
@@ -75,9 +77,7 @@ AliQuenchingWeights::AliQuenchingWeights()
       fTablesLoaded(kFALSE)
 {
   //default constructor 
-  fHisto = new TH1F(Form("hhistoqw_%d",fInstanceNumber),"",fgkBins,0.,fgkMaxBin);
-  for(Int_t bin=1;bin<=fgkBins;bin++) 
-    fHisto->SetBinContent(bin,0.);
+
 }
 
 AliQuenchingWeights::AliQuenchingWeights(const AliQuenchingWeights& a) 
@@ -122,6 +122,15 @@ AliQuenchingWeights::~AliQuenchingWeights()
   delete fHisto;
 }
 
+void AliQuenchingWeights::Init()
+{
+//    Initialization
+    if (fHisto) return;
+    fHisto = new TH1F(Form("hhistoqw_%d",fInstanceNumber),"",fgkBins,0.,fgkMaxBin);
+    for(Int_t bin=1;bin<=fgkBins;bin++) 
+       fHisto->SetBinContent(bin,0.);
+}
+
 void AliQuenchingWeights::Reset()
 {
   //reset tables if there were used
@@ -877,7 +886,7 @@ Double_t AliQuenchingWeights::GetELossRandom(Int_t ipart, Double_t length, Doubl
       ret=fHistos[ipart-1][l-1]->GetRandom(); 
       if(++ws==1e6){
        Warning("GetELossRandom",
-                "Aborted reweighting; maximum loss assigned after 1e6 trials.");
+                "Stopping reweighting; maximum loss assigned after 1e6 trials.");
        return e;
       }
     }
@@ -961,7 +970,7 @@ Double_t AliQuenchingWeights::GetELossRandomK(Int_t ipart, Double_t I0, Double_t
       ret=fHisto->GetRandom(); 
       if(++ws==1e6){
        Warning("GetELossRandomK",
-                "Aborted reweighting; maximum loss assigned after 1e6 trials.");
+                "Stopping reweighting; maximum loss assigned after 1e6 trials.");
        return e;
       }
     }
@@ -1032,7 +1041,8 @@ Double_t AliQuenchingWeights::GetELossRandomKFastR(Int_t ipart, Double_t r, Doub
   if(discrete>=1.0) {
     return 0.; //no energy loss
   }
-
+  if (!fHisto) Init();
+  
   fHisto->SetBinContent(bin,continuous);
   Int_t kbinmax=fHisto->FindBin(e/wc);
   if(kbinmax>=fgkBins) kbinmax=fgkBins-1;
@@ -1142,7 +1152,7 @@ void AliQuenchingWeights::GetZeroLossProbR(Double_t &p,Double_t &prw,Double_t &p
 
   Double_t discrete=0.;
   Double_t continuous=0.;
-
+  if (!fHisto) Init();
   Int_t kbinmax=fHisto->FindBin(e/wc);
   if(kbinmax>=fgkBins) kbinmax=fgkBins-1;
   if(fMultSoft) {
@@ -1278,6 +1288,7 @@ Int_t AliQuenchingWeights::SampleEnergyLoss(Int_t ipart, Double_t r)
   Double_t discrete=0.;
   Double_t continuous=0;;
   Int_t bin=1;
+  if (!fHisto) Init();
   Double_t xxxx = fHisto->GetBinCenter(bin);
   if(fMultSoft)
     CalcMult(ipart,r,xxxx,continuous,discrete);