]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - EVGEN/AliGenHIJINGparaBa.cxx
Fix for coverity (AdC)
[u/mrichter/AliRoot.git] / EVGEN / AliGenHIJINGparaBa.cxx
index 48d609f3409efd225ba62e61d8239c20b42966e2..9d80934fed10d350929d1269c91694954753822d 100644 (file)
@@ -35,7 +35,7 @@
 ClassImp(AliGenHIJINGparaBa)
 
 
-static Double_t ptpi(Double_t *px, Double_t *)
+static Double_t ptpi(const Double_t *px, const Double_t *)
 {
   //
   //     PT-PARAMETERIZATION CDF, PRL 61(88) 1819
@@ -143,38 +143,38 @@ static Double_t etakac( Double_t *py, Double_t *)
 {
 // eta-distribution
 //____________________________________________________________
-    const Float_t p0 =  1.10343e+02;
-    const Float_t p1 =  1.73247e+01;
-    const Float_t p2 = -7.23808e+00;
-    const Float_t p3 =  4.48334e-01;
-    const Double_t y = TMath::Abs(*py);
+    const Float_t  kp0 =  1.10343e+02;
+    const Float_t  kp1 =  1.73247e+01;
+    const Float_t  kp2 = -7.23808e+00;
+    const Float_t  kp3 =  4.48334e-01;
+    const Double_t ky = TMath::Abs(*py);
 //
-    return (p0+p1*y+p2*y*y+p3*y*y*y)/20.;
+    return (kp0+kp1*ky+kp2*ky*ky+kp3*ky*ky*ky)/20.;
 }
 
 AliGenHIJINGparaBa::AliGenHIJINGparaBa()
-  :AliGenHIJINGpara()
+    :AliGenHIJINGpara(),
+     fPtba(0),
+     fETAba(0)
 {
     //
     // Default constructor
     //
     fName="HIGINGparaBa";
     fTitle="HIJING Parametrisation Particle Generator with Baryons";
-    fETAba = 0;
-    fPtba  = 0;
 }
 
 //_____________________________________________________________________________
 AliGenHIJINGparaBa::AliGenHIJINGparaBa(Int_t npart)
-  :AliGenHIJINGpara(npart)
+  :AliGenHIJINGpara(npart),
+     fPtba(0),
+     fETAba(0)
 {
   // 
   // Standard constructor
   //
     fName="HIGINGparaBa";
     fTitle="HIJING Parametrisation Particle Generator with Baryons";
-    fETAba = 0;
-    fPtba  = 0;
 }
 
 //_____________________________________________________________________________
@@ -204,35 +204,35 @@ void AliGenHIJINGparaBa::Init()
     fETAkac = new TF1("etakac",&etakac,etaMin,etaMax,0);
     fETAba  = new TF1("etabaryon",&etabaryon,etaMin,etaMax,0);
 
-    TF1 *etaPic0 = new TF1("etapic",&etapic,    -7, 7, 0);
-    TF1 *etaKac0 = new TF1("etakac",&etakac,    -7, 7, 0);
-    TF1 *etaBar0 = new TF1("etabar",&etabaryon, -7, 7, 0);
+    TF1 etaPic0("etapic(-7,7)",&etapic,    -7, 7, 0);
+    TF1 etaKac0("etakac(-7,7)",&etakac,    -7, 7, 0);
+    TF1 etaBar0("etabar(-7,7)",&etabaryon, -7, 7, 0);
     
-    TF1 *ptPic0  = new TF1("ptpi",  &ptpi,     0., 15., 0);
-    TF1 *ptKac0  = new TF1("ptka",  &ptka,     0., 15., 0);
-    TF1 *ptBar0  = new TF1("ptbar", &ptbaryon, 0., 15., 0);
+    TF1 ptPic0("ptpi(0,15)",  &ptpi,     0., 15., 0);
+    TF1 ptKac0("ptka(0,15)",  &ptka,     0., 15., 0);
+    TF1 ptBar0("ptbar(0,15)", &ptbaryon, 0., 15., 0);
 
-    Float_t intETApi  = etaPic0->Integral(-0.5, 0.5);
-    Float_t intETAka  = etaKac0->Integral(-0.5, 0.5);
-    Float_t intETAba  = etaBar0->Integral(-0.5, 0.5);
+    Float_t intETApi  = etaPic0.Integral(-0.5, 0.5);
+    Float_t intETAka  = etaKac0.Integral(-0.5, 0.5);
+    Float_t intETAba  = etaBar0.Integral(-0.5, 0.5);
 
     Float_t scalePi   = 6979./(intETApi/1.5);
     Float_t scaleKa   =  657./(intETAka/2.0);
     Float_t scaleBa   =  364./(intETAba/2.0);
 
 //  Fraction of events corresponding to the selected pt-range    
-    Float_t intPt    = (0.837*ptPic0->Integral(0, 15)+
-                       0.105*ptKac0->Integral(0, 15)+
-                        0.058*ptBar0->Integral(0, 15));
-    Float_t intPtSel = (0.837*ptPic0->Integral(fPtMin, fPtMax)+
-                       0.105*ptKac0->Integral(fPtMin, fPtMax)+
-                       0.058*ptBar0->Integral(fPtMin, fPtMax));
+    Float_t intPt    = (0.837*ptPic0.Integral(0, 15)+
+                       0.105*ptKac0.Integral(0, 15)+
+                        0.058*ptBar0.Integral(0, 15));
+    Float_t intPtSel = (0.837*ptPic0.Integral(fPtMin, fPtMax)+
+                       0.105*ptKac0.Integral(fPtMin, fPtMax)+
+                       0.058*ptBar0.Integral(fPtMin, fPtMax));
     Float_t ptFrac   = intPtSel/intPt;
 
 //  Fraction of events corresponding to the selected eta-range    
-    Float_t intETASel  = (scalePi*etaPic0->Integral(etaMin, etaMax)+
-                         scaleKa*etaKac0->Integral(etaMin, etaMax)+
-                         scaleBa*etaBar0->Integral(etaMin, etaMax));
+    Float_t intETASel  = (scalePi*etaPic0.Integral(etaMin, etaMax)+
+                         scaleKa*etaKac0.Integral(etaMin, etaMax)+
+                         scaleBa*etaBar0.Integral(etaMin, etaMax));
 //  Fraction of events corresponding to the selected phi-range    
     Float_t phiFrac    = (fPhiMax-fPhiMin)/2/TMath::Pi();
 
@@ -269,6 +269,7 @@ void AliGenHIJINGparaBa::Generate()
     const Int_t kBaryons[4] = {kProton, kProtonBar, kNeutron, kNeutronBar};
     //
     Float_t origin[3];
+    Float_t time;
     Float_t pt, pl, ptot;
     Float_t phi, theta;
     Float_t p[3];
@@ -280,6 +281,7 @@ void AliGenHIJINGparaBa::Generate()
     Float_t random[6];
     //
     for (j=0;j<3;j++) origin[j]=fOrigin[j];
+    time = fTimeOrigin;
 
     if(fVertexSmear == kPerEvent) {
        Float_t dv[3];
@@ -292,12 +294,18 @@ void AliGenHIJINGparaBa::Generate()
            }
        }
        for (j=0; j < 3; j++) origin[j] += dv[j];
+
+       Rndm(random,2);
+       time += fOsigma[2]/TMath::Ccgs()*
+         TMath::Cos(2*random[0]*TMath::Pi())*
+         TMath::Sqrt(-2*TMath::Log(random[1]));
     } // if kPerEvent
     TArrayF eventVertex;
     eventVertex.Set(3);
     eventVertex[0] = origin[0];
     eventVertex[1] = origin[1];
     eventVertex[2] = origin[2];
+    Float_t eventTime = time;
 
     for(i=0;i<fNpart;i++) {
        while(1) {
@@ -332,8 +340,13 @@ void AliGenHIJINGparaBa::Generate()
                    origin[j]=fOrigin[j]+fOsigma[j]*TMath::Cos(2*random[2*j]*TMath::Pi())*
                        TMath::Sqrt(-2*TMath::Log(random[2*j+1]));
                }
+
+               Rndm(random,2);
+               time = fTimeOrigin + fOsigma[2]/TMath::Ccgs()*
+                 TMath::Cos(2*random[0]*TMath::Pi())*
+                 TMath::Sqrt(-2*TMath::Log(random[1]));
            }
-           PushTrack(fTrackIt,-1,part,p,origin,polar,0,kPPrimary,nt,fParentWeight);
+           PushTrack(fTrackIt,-1,part,p,origin,polar,time,kPPrimary,nt,fParentWeight);
            break;
        } // while(1)
     } // Particle loop
@@ -341,6 +354,7 @@ void AliGenHIJINGparaBa::Generate()
     AliGenEventHeader* header = new AliGenEventHeader("HIJINGparam");
 // Event Vertex
     header->SetPrimaryVertex(eventVertex);
+    header->SetInteractionTime(eventTime);
     gAlice->SetGenEventHeader(header); 
 }