]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - FASTSIM/AliQuenchingWeights.cxx
Remove unnecessary log messages
[u/mrichter/AliRoot.git] / FASTSIM / AliQuenchingWeights.cxx
index 0534e938bc8b78a6336845d56b2b264ef186f8a0..e1e06c04c31b656d2260bfade04591a37a607f40 100644 (file)
 
 /* $Id$ */
 
-//----------------------------------------------------------------------------
-//     Implementation of the class to calculate the parton energy loss
-//  Based on the "BDMPS" quenching weights by C.A.Salgado and U.A.Wiedemann
-//
-//  References:
-//   C.A.Salgado and U.A.Wiedemann, Phys.Rev.D68 (2003) 014008 [hep-ph/0302184]
-//   A.Dainese, Eur.Phys.J.C, in press, [nucl-ex/0312005]             
+
+// Implementation of the class to calculate the parton energy loss
+// Based on the "BDMPS" quenching weights by C.A.Salgado and U.A.Wiedemann
+// References:
+// C.A.Salgado and U.A.Wiedemann, Phys.Rev.D68 (2003) 014008 [hep-ph/0302184]
+// A.Dainese, Eur.Phys.J.C, in press, [nucl-ex/0312005]             
 //
 //
 //            Origin:  C. Loizides   constantinos.loizides@cern.ch
@@ -29,8 +28,8 @@
 //
 //=================== Added by C. Loizides 27/03/04 ===========================
 //
-//  Added support for k-Quenching, where wc=I1*k and R=2I1^2/I0*k
-//  (see the AliFastGlauber class for definition of I0/I1)
+// Added support for k-Quenching, where wc=I1*k and R=2I1^2/I0*k
+// (see the AliFastGlauber class for definition of I0/I1)
 //-----------------------------------------------------------------------------
 
 #include <Riostream.h>
@@ -61,20 +60,20 @@ Int_t AliQuenchingWeights::fgCounter = 0;
 
 
 AliQuenchingWeights::AliQuenchingWeights() 
-                   : TObject()
+    : TObject(),
+      fInstanceNumber(fgCounter++),
+      fMultSoft(kTRUE), 
+      fECMethod(kDefault),
+      fQTransport(1.),
+      fMu(1.),
+      fK(4.e5),
+      fLengthMax(20),
+      fLengthMaxOld(0),
+      fHistos(0),
+      fHisto(0),
+      fTablesLoaded(kFALSE)
 {
   //default constructor 
-
-  fTablesLoaded=kFALSE;
-  fMultSoft=kTRUE; 
-  fHistos=0;
-  SetMu();
-  SetQTransport();
-  SetK();
-  fECMethod=kDefault; 
-  SetLengthMax();
-  fLengthMaxOld=0;
-  fInstanceNumber=fgCounter++;
   Char_t name[100];
   sprintf(name,"hhistoqw_%d",fInstanceNumber);
   fHisto = new TH1F(name,"",fgkBins,0.,fgkMaxBin);
@@ -83,7 +82,18 @@ AliQuenchingWeights::AliQuenchingWeights()
 }
 
 AliQuenchingWeights::AliQuenchingWeights(const AliQuenchingWeights& a) 
-                   : TObject()
+    : TObject(),
+      fInstanceNumber(fgCounter++),
+      fMultSoft(kTRUE), 
+      fECMethod(kDefault),
+      fQTransport(1.),
+      fMu(1.),
+      fK(4.e5),
+      fLengthMax(20),
+      fLengthMaxOld(0),
+      fHistos(0),
+      fHisto(0),
+      fTablesLoaded(kFALSE)
 {
   // copy constructor 
 
@@ -816,15 +826,15 @@ Int_t AliQuenchingWeights::CalcSingleHard(Int_t ipart,
 
 Double_t AliQuenchingWeights::CalcR(Double_t wc, Double_t l) const 
 { 
-  //calculate R value and 
+  //calculate r value and 
   //check if it is less then maximum
 
-  Double_t R = wc*l*fgkConvFmToInvGeV;
-  if(R>=fgkRMax) {
-    Warning("CalcR","Value of R = %.2f; should be less than %.2f",R,fgkRMax);
+  Double_t r = wc*l*fgkConvFmToInvGeV;
+  if(r >= fgkRMax) {
+    Warning("CalcR","Value of r = %.2f; should be less than %.2f", r, fgkRMax);
     return fgkRMax-1;
   }  
-  return R;
+  return r;
 }
 
 Double_t AliQuenchingWeights::CalcRk(Double_t k, Double_t I0, Double_t I1) const
@@ -832,14 +842,14 @@ Double_t AliQuenchingWeights::CalcRk(Double_t k, Double_t I0, Double_t I1) const
   //calculate R value and 
   //check if it is less then maximum
 
-  Double_t R = fgkRMax-1;
+  Double_t r = fgkRMax-1;
   if(I0>0)
-    R = 2*I1*I1/I0*k;
-  if(R>=fgkRMax) {
-    Warning("CalcRk","Value of R = %.2f; should be less than %.2f",R,fgkRMax);
+    r = 2*I1*I1/I0*k;
+  if(r>=fgkRMax) {
+    Warning("CalcRk","Value of r = %.2f; should be less than %.2f",r,fgkRMax);
     return fgkRMax-1;
   }  
-  return R;
+  return r;
 }
 
 Double_t AliQuenchingWeights::GetELossRandom(Int_t ipart, Double_t length, Double_t e) const
@@ -1030,13 +1040,13 @@ Double_t AliQuenchingWeights::GetELossRandomKFastR(Int_t ipart, Double_t r, Doub
   if(kbinmax==1) return e; //maximum energy loss
 
   if(fMultSoft) {
-    for(Int_t bin=2; bin<=kbinmax; bin++) {
+    for(bin=2; bin<=kbinmax; bin++) {
       xxxx = fHisto->GetBinCenter(bin);
       CalcMult(ipart,r,xxxx,continuous,discrete);
       fHisto->SetBinContent(bin,continuous);
     }
   } else {
-    for(Int_t bin=2; bin<=kbinmax; bin++) {
+    for(bin=2; bin<=kbinmax; bin++) {
       xxxx = fHisto->GetBinCenter(bin);
       CalcSingleHard(ipart,r,xxxx,continuous,discrete);
       fHisto->SetBinContent(bin,continuous);
@@ -1057,7 +1067,7 @@ Double_t AliQuenchingWeights::GetELossRandomKFastR(Int_t ipart, Double_t r, Doub
     fHisto->Fill(0.,val);
     fHisto->SetBinContent(kbinmax+1,(1-discrete)*fgkBins/fgkMaxBin-kdelta);
   }
-  for(Int_t bin=kbinmax+2; bin<=fgkBins; bin++) {
+  for(bin=kbinmax+2; bin<=fgkBins; bin++) {
     fHisto->SetBinContent(bin,0);
   }
   //cout << kbinmax << " " << discrete << " " << fHisto->Integral() << endl;
@@ -1277,13 +1287,13 @@ Int_t AliQuenchingWeights::SampleEnergyLoss(Int_t ipart, Double_t r)
 
   if(discrete>=1.) {
     fHisto->SetBinContent(1,1.);
-    for(Int_t bin=2;bin<=fgkBins;bin++) 
+    for(bin=2;bin<=fgkBins;bin++) 
       fHisto->SetBinContent(bin,0.);
     return 0;
   }
 
   fHisto->SetBinContent(bin,continuous);
-  for(Int_t bin=2; bin<=fgkBins; bin++) {
+  for(bin=2; bin<=fgkBins; bin++) {
     xxxx = fHisto->GetBinCenter(bin);
     if(fMultSoft)
       CalcMult(ipart,r,xxxx,continuous,discrete);
@@ -1598,7 +1608,7 @@ Double_t  AliQuenchingWeights::GetMeanELoss(Int_t ipart,Double_t r) const
   return ret;
 }
 
-void AliQuenchingWeights::PlotDiscreteWeights(Double_t len) const
+void AliQuenchingWeights::PlotDiscreteWeights(Double_t len,Double_t qm) const
 {
   // plot discrete weights for given length
 
@@ -1609,50 +1619,58 @@ void AliQuenchingWeights::PlotDiscreteWeights(Double_t len) const
     c = new TCanvas("cdiscsh","Discrete Weight for Single Hard Scattering",0,0,500,400);
   c->cd();
 
-  TH2F *hframe = new TH2F("hdisc","",2,0,5.1,2,0,1);
+  TH2F *hframe = new TH2F("hdisc","",2,0,qm+.1,2,0,1.25);
   hframe->SetStats(0);
   if(fMultSoft) 
     hframe->SetXTitle("#hat{q} [GeV^{2}/fm]");
   else
     hframe->SetXTitle("#mu [GeV]");
-  hframe->SetYTitle("Probability #Delta E = 0 , p_{0}");
+  //hframe->SetYTitle("Probability #Delta E = 0 , p_{0}");
+  hframe->SetYTitle("p_{0} (discrete weight)");
   hframe->Draw();
 
-  TGraph *gq=new TGraph(20);
+  Int_t points=(Int_t)qm*4;
+  TGraph *gq=new TGraph(points);
   Int_t i=0;
   if(fMultSoft) {
-    for(Double_t q=0.05;q<=5.05;q+=0.25){
+    for(Double_t q=0.05;q<=qm+.05;q+=0.25){
       Double_t disc,cont;
       CalcMult(1,1.0,q,len,cont,disc);
       gq->SetPoint(i,q,disc);i++;
     }
   } else {
-    for(Double_t m=0.05;m<=5.05;m+=0.25){
+    for(Double_t m=0.05;m<=qm+.05;m+=0.25){
       Double_t disc,cont;
       CalcSingleHard(1,1.0,m,len,cont, disc);
       gq->SetPoint(i,m,disc);i++;
     }
   }
   gq->SetMarkerStyle(20);
-  gq->Draw("pl");
+  gq->SetMarkerColor(1);
+  gq->SetLineStyle(1);
+  gq->SetLineColor(1);
+  gq->Draw("l");
 
-  TGraph *gg=new TGraph(20);
+  TGraph *gg=new TGraph(points);
   i=0;
   if(fMultSoft){
-    for(Double_t q=0.05;q<=5.05;q+=0.25){
+    for(Double_t q=0.05;q<=qm+.05;q+=0.25){
       Double_t disc,cont;
       CalcMult(2,1.0,q,len,cont,disc);
       gg->SetPoint(i,q,disc);i++;
     }
   } else {
-    for(Double_t m=0.05;m<=5.05;m+=0.25){
+    for(Double_t m=0.05;m<=qm+.05;m+=0.25){
       Double_t disc,cont;
       CalcSingleHard(2,1.0,m,len,cont,disc);
       gg->SetPoint(i,m,disc);i++;
     }
   }
   gg->SetMarkerStyle(24);
-  gg->Draw("pl");
+  gg->SetMarkerColor(2);
+  gg->SetLineStyle(2);
+  gg->SetLineColor(2);
+  gg->Draw("l");
 
   TLegend *l1a = new TLegend(0.5,0.6,.95,0.8);
   l1a->SetFillStyle(0);
@@ -1660,8 +1678,8 @@ void AliQuenchingWeights::PlotDiscreteWeights(Double_t len) const
   Char_t label[100];
   sprintf(label,"L = %.1f fm",len);
   l1a->AddEntry(gq,label,"");
-  l1a->AddEntry(gq,"quark","pl");
-  l1a->AddEntry(gg,"gluon","pl");
+  l1a->AddEntry(gq,"quark projectile","l");
+  l1a->AddEntry(gg,"gluon projectile","l");
   l1a->Draw();
 
   c->Update();
@@ -1793,7 +1811,7 @@ void AliQuenchingWeights::PlotContWeightsVsL(Int_t itype,Double_t medval) const
   c->Update();
 }
 
-void AliQuenchingWeights::PlotAvgELoss(Double_t len,Double_t e)  const
+void AliQuenchingWeights::PlotAvgELoss(Double_t len,Double_t qm,Double_t e) const
 {
   // plot average energy loss for given length
   // and parton energy 
@@ -1815,7 +1833,7 @@ void AliQuenchingWeights::PlotAvgELoss(Double_t len,Double_t e)  const
 
   TCanvas *c = new TCanvas(name,title,0,0,500,400);
   c->cd();
-  TH2F *hframe = new TH2F("avgloss",title,2,0,5.1,2,0,100);
+  TH2F *hframe = new TH2F("avgloss","",2,0,qm+.1,2,0,100);
   hframe->SetStats(0);
   if(fMultSoft) 
     hframe->SetXTitle("#hat{q} [GeV^{2}/fm]");
@@ -1826,28 +1844,30 @@ void AliQuenchingWeights::PlotAvgELoss(Double_t len,Double_t e)  const
 
   TGraph *gq=new TGraph(20);
   Int_t i=0;
-  for(Double_t v=0.05;v<=5.05;v+=0.25){
+  for(Double_t v=0.05;v<=qm+.05;v+=0.25){
     TH1F *dummy=ComputeELossHisto(1,v,len,e);
     Double_t avgloss=dummy->GetMean();
     gq->SetPoint(i,v,avgloss);i++;
     delete dummy;
   }
-  gq->SetMarkerStyle(20);
+  gq->SetMarkerStyle(21);
   gq->Draw("pl");
 
-  TGraph *gg=new TGraph(20);
+  Int_t points=(Int_t)qm*4;
+  TGraph *gg=new TGraph(points);
   i=0;
-  for(Double_t v=0.05;v<=5.05;v+=0.25){
+  for(Double_t v=0.05;v<=qm+.05;v+=0.25){
     TH1F *dummy=ComputeELossHisto(2,v,len,e);
     Double_t avgloss=dummy->GetMean();
     gg->SetPoint(i,v,avgloss);i++;
     delete dummy;
   }
-  gg->SetMarkerStyle(24);
+  gg->SetMarkerStyle(20);
+  gg->SetMarkerColor(2);
   gg->Draw("pl");
 
-  TGraph *gratio=new TGraph(20);
-  for(Int_t i=0;i<20;i++){
+  TGraph *gratio=new TGraph(points);
+  for(i=0;i<points;i++){
     Double_t x,y,x2,y2;
     gg->GetPoint(i,x,y);
     gq->GetPoint(i,x2,y2);
@@ -1857,14 +1877,14 @@ void AliQuenchingWeights::PlotAvgELoss(Double_t len,Double_t e)  const
   }
   gratio->SetLineStyle(4);
   gratio->Draw();
-  TLegend *l1a = new TLegend(0.5,0.6,.95,0.8);
+  TLegend *l1a = new TLegend(0.15,0.60,0.50,0.90);
   l1a->SetFillStyle(0);
   l1a->SetBorderSize(0);
   Char_t label[100];
   sprintf(label,"L = %.1f fm",len);
   l1a->AddEntry(gq,label,"");
-  l1a->AddEntry(gq,"quark","pl");
-  l1a->AddEntry(gg,"gluon","pl");
+  l1a->AddEntry(gq,"quark projectile","pl");
+  l1a->AddEntry(gg,"gluon projectile","pl");
   l1a->AddEntry(gratio,"gluon/quark/2.25*10","pl");
   l1a->Draw();
 
@@ -1925,7 +1945,7 @@ void AliQuenchingWeights::PlotAvgELoss(TH1F *hEll,Double_t e) const
   gg->Draw("pl");
 
   TGraph *gratio=new TGraph(20);
-  for(Int_t i=0;i<20;i++){
+  for(i=0;i<20;i++){
     Double_t x,y,x2,y2;
     gg->GetPoint(i,x,y);
     gq->GetPoint(i,x2,y2);
@@ -1934,7 +1954,7 @@ void AliQuenchingWeights::PlotAvgELoss(TH1F *hEll,Double_t e) const
     else gratio->SetPoint(i,x,0);
   }
   gratio->SetLineStyle(4);
-  gratio->Draw();
+  //gratio->Draw();
 
   TLegend *l1a = new TLegend(0.5,0.6,.95,0.8);
   l1a->SetFillStyle(0);
@@ -1944,7 +1964,7 @@ void AliQuenchingWeights::PlotAvgELoss(TH1F *hEll,Double_t e) const
   l1a->AddEntry(gq,label,"");
   l1a->AddEntry(gq,"quark","pl");
   l1a->AddEntry(gg,"gluon","pl");
-  l1a->AddEntry(gratio,"gluon/quark/2.25*10","pl");
+  //l1a->AddEntry(gratio,"gluon/quark/2.25*10","pl");
   l1a->Draw();
 
   c->Update();
@@ -2003,7 +2023,7 @@ void AliQuenchingWeights::PlotAvgELossVsL(Double_t e)  const
   gg->Draw("pl");
 
   TGraph *gratio=new TGraph((Int_t)fLengthMax*4);
-  for(Int_t i=0;i<=(Int_t)fLengthMax*4;i++){
+  for(i=0;i<=(Int_t)fLengthMax*4;i++){
     Double_t x,y,x2,y2;
     gg->GetPoint(i,x,y);
     gq->GetPoint(i,x2,y2);