]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - LHC/AliLhcProcessIBS.cxx
change print out info
[u/mrichter/AliRoot.git] / LHC / AliLhcProcessIBS.cxx
index 06d35810bd4069019929e688c5d4ccd4bc7fee60..a5263d22cf3a03602eb7d1129415bf8fd1c823b4 100644 (file)
  * provided "as is" without express or implied warranty.                  *
  **************************************************************************/
 
-/*
-$Log$
-*/
+/* $Id$ */
 
-#include "AliLhcProcessIBS.h"
-#include "AliLHC.h"
-#include "AliLhcIRegion.h"
-#include "AliLhcBeam.h"
+//
+// Realisation of AliLhcProcess for the fast simulation of the
+// Intra Beam Scattering process
+// in transverse and longitudinal direction.
+// Author: Andreas Morsch
+// andreas.morsch@cern.ch
+//
 
-#include <TF1.h>
-#include <TMath.h>
 #include <TCanvas.h>
+#include <TF1.h>
 #include <TGraph.h>
+#include <TH1F.h>
+#include <TMath.h>
 #include <TMultiGraph.h>
 
+#include "AliLhcProcessIBS.h"
+#include "AliLHC.h"
+#include "AliLhcIRegion.h"
+#include "AliLhcBeam.h"
+
 ClassImp(AliLhcProcessIBS)
 
   Double_t func(Double_t *x, Double_t *par);
 
 AliLhcProcessIBS::AliLhcProcessIBS(AliLHC* lhc, const char* name, const char* title)
-    :AliLhcProcess(lhc,name,title)
+    :AliLhcProcess(lhc,name,title),
+     fCrossSection(0.),
+     fIRegions(0),
+     fTaux(0.),
+     fTaue(0.),
+     fTauxArray(0),
+     fTaueArray(0)
 {
 // Constructor
 }
 
+AliLhcProcessIBS::AliLhcProcessIBS(const AliLhcProcessIBS& ibs):
+    AliLhcProcess(ibs),
+    fCrossSection(0.),
+    fIRegions(0),
+    fTaux(0.),
+    fTaue(0.),
+    fTauxArray(0),
+    fTaueArray(0)
+{
+// Copy Constructor
+}
+
 
 AliLhcProcessIBS::~AliLhcProcessIBS()
 {
@@ -64,6 +89,8 @@ void AliLhcProcessIBS::Init()
 
 void AliLhcProcessIBS::Evolve(Float_t dt)
 {
+//
+// Evolve by one time step dt
   printf("\n Here process %s %f:", GetName(), dt);
    for (Int_t i=0; i<2; i++) {
      // Density
@@ -87,9 +114,9 @@ void AliLhcProcessIBS::Evolve(Float_t dt)
      // impact parameter
      Float_t d    = sige*avd/sigx;
      // 
-     Float_t at = sige*TMath::Sqrt(1.-d*d)/(gamma*ssigx);
-     Float_t bt = sige*TMath::Sqrt(1.-d*d)/(gamma*ssigy);
-     Float_t ct = sige*TMath::Sqrt(1.-d*d)*TMath::Sqrt(4.*sigy/fR[i]);
+     Float_t at = sige*TMath::Sqrt((1.-d)*(1.+d))/(gamma*ssigx);
+     Float_t bt = sige*TMath::Sqrt((1.-d)*(1.+d))/(gamma*ssigy);
+     Float_t ct = sige*TMath::Sqrt((1.-d)*(1.+d))*TMath::Sqrt(4.*sigy/fR[i]);
      //
      Double_t par[3];
      par[0] = at;
@@ -100,8 +127,9 @@ void AliLhcProcessIBS::Evolve(Float_t dt)
      Float_t f = (Float_t) 8.0*TMath::Pi()*
         fct->Integral(0., 1., par, 1.e-5);
      //
-     fTaux =  1./(asd*f*(d*d-at*at/2.));
-     fTaue =  1./(asd*f*(1.-d*d));
+     const Double_t osq2=1./TMath::Sqrt(2.);
+     fTaux =  1./(asd*f*(d-osq2*at)*(d+osq2*at)); 
+     fTaue =  1./(asd*f*((1.-d)*(1.+d)));
      //     printf("\n taux, taue %f %f", taux, taue);
      //     Float_t tauy = -2./at*at/asd/f;
      fBeam[i]->IncreaseEmittance(dt/fTaux, dt/fTaue);
@@ -169,7 +197,7 @@ void AliLhcProcessIBS::DrawPlots()
 
 
 
-AliLhcProcessIBS& AliLhcProcessIBS::operator=(const  AliLhcProcessIBS & rhs)
+AliLhcProcessIBS& AliLhcProcessIBS::operator=(const  AliLhcProcessIBS & /*rhs*/)
 {
 // Assignment operator
     return *this;
@@ -181,12 +209,12 @@ Double_t func(Double_t *x, Double_t *par)
   Double_t b  = par[1];
   Double_t cc = par[2];
 
-  const Double_t bc = 0.5772;
+  const Double_t kbc = 0.5772;
   Double_t xx = x[0];
   Double_t x2=xx*xx;
   Double_t x1=1.0-x2;
   Double_t p=1.0/TMath::Sqrt(x2+a*a*x1);
   Double_t q=1.0/TMath::Sqrt(x2+b*b*x1);
-  return (1.0-3.0*x2)*p*q*(2.0*TMath::Log(0.5*cc*(p+q))-bc);
+  return (1.0-3.0*x2)*p*q*(2.0*TMath::Log(0.5*cc*(p+q))-kbc);
 }