]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - EVGEN/AliGenHIJINGparaBa.cxx
#100372: Request to port code to allow for event selection from ZDC timing info at...
[u/mrichter/AliRoot.git] / EVGEN / AliGenHIJINGparaBa.cxx
index 5d584a688ae28a9cfa4cd57aaead8559120f11f9..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
@@ -177,15 +177,6 @@ AliGenHIJINGparaBa::AliGenHIJINGparaBa(Int_t npart)
     fTitle="HIJING Parametrisation Particle Generator with Baryons";
 }
 
-AliGenHIJINGparaBa::AliGenHIJINGparaBa(const AliGenHIJINGparaBa& para) : 
-    AliGenHIJINGpara(para),
-    fPtba(0),
-    fETAba(0)                                                                  
-{
-// Copy constructor
-    para.Copy(*this);
-}
-
 //_____________________________________________________________________________
 AliGenHIJINGparaBa::~AliGenHIJINGparaBa()
 {
@@ -278,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];
@@ -289,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];
@@ -301,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) {
@@ -341,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
@@ -350,6 +354,7 @@ void AliGenHIJINGparaBa::Generate()
     AliGenEventHeader* header = new AliGenEventHeader("HIJINGparam");
 // Event Vertex
     header->SetPrimaryVertex(eventVertex);
+    header->SetInteractionTime(eventTime);
     gAlice->SetGenEventHeader(header); 
 }