]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PYTHIA6/AliGenPythia.cxx
New quenching algorithm.
[u/mrichter/AliRoot.git] / PYTHIA6 / AliGenPythia.cxx
index 346e299a2b8742e4b4acd79b999820194ed13867..3406499d1098e1e9031c77964c8520d3a98ff44a 100644 (file)
@@ -153,7 +153,6 @@ void AliGenPythia::Init()
     
     SetMC(AliPythia::Instance());
     fPythia=(AliPythia*) fMCEvGen;
-    printf("Pythia Init %p", fPythia);
     
 //
     fParentWeight=1./Float_t(fNpart);
@@ -299,23 +298,17 @@ void AliGenPythia::Generate()
     Int_t jev=0;
     Int_t j, kf;
     fTrials=0;
+    
 
     //  Set collision vertex position 
-    if(fVertexSmear==kPerEvent) {
-       fPythia->SetMSTP(151,1);
-       for (j=0;j<3;j++) {
-           fPythia->SetPARP(151+j, fOsigma[j]*10.);
-       }
-    } else if (fVertexSmear==kPerTrack) {
-       fPythia->SetMSTP(151,0);
-    }
+    if (fVertexSmear == kPerEvent) Vertex();
+    
 //  event loop    
     while(1)
     {
        if (fQuench) {
            fPythia->SetMSTJ(1, 0);
        }
-       printf("Pythia pyevnt %p", fPythia);
        fPythia->Pyevnt();
 
        if (fQuench) {
@@ -330,7 +323,6 @@ void AliGenPythia::Generate()
        }
        
        fTrials++;
-       printf("Pythia import t %p %p ", fPythia, fParticles);
        fPythia->ImportParticles(fParticles,"All");
 
        Boost();
@@ -341,14 +333,8 @@ void AliGenPythia::Generate()
        
        Int_t np = fParticles->GetEntriesFast();
        if (np == 0 ) continue;
-// Get event vertex and discard the event if the Z coord. is too big   
-       TParticle *iparticle = (TParticle *) fParticles->At(0);
-       Float_t distz = iparticle->Vz()/10.;
-       if(TMath::Abs(distz)>fCutVertexZ*fOsigma[2]) continue;
 //
-       fVertex[0] = iparticle->Vx()/10.+fOrigin.At(0);
-       fVertex[1] = iparticle->Vy()/10.+fOrigin.At(1);
-       fVertex[2] = iparticle->Vz()/10.+fOrigin.At(2);
+       
 //
        Int_t* pParent   = new Int_t[np];
        Int_t* pSelected = new Int_t[np];
@@ -367,7 +353,7 @@ void AliGenPythia::Generate()
            fProcess != kPyMbNonDiffr) {
            
            for (i = 0; i<np; i++) {
-               iparticle = (TParticle *) fParticles->At(i);
+               TParticle* iparticle = (TParticle *) fParticles->At(i);
                Int_t ks = iparticle->GetStatusCode();
                kf = CheckPDGCode(iparticle->GetPdgCode());
 // No initial state partons
@@ -488,9 +474,10 @@ void AliGenPythia::Generate()
                    p[2] = iparticle->Pz();
                    p[3] = iparticle->Energy();
                    
-                   origin[0] = fOrigin[0]+iparticle->Vx()/10.;
-                   origin[1] = fOrigin[1]+iparticle->Vy()/10.;
-                   origin[2] = fOrigin[2]+iparticle->Vz()/10.;
+                   origin[0] = fVertex[0]+iparticle->Vx()/10; // [cm]
+                   origin[1] = fVertex[1]+iparticle->Vy()/10; // [cm]
+                   origin[2] = fVertex[2]+iparticle->Vz()/10; // [cm]
+                   
                    Float_t tof   = kconv*iparticle->T();
                    Int_t ipa     = iparticle->GetFirstMother()-1;
                    Int_t iparent = (ipa > -1) ? pParent[ipa] : -1;
@@ -555,7 +542,7 @@ Int_t  AliGenPythia::GenerateMB()
 //
     Int_t i, kf, nt, iparent;
     Int_t nc = 0;
-    Float_t p[3];
+    Float_t p[4];
     Float_t polar[3]   =   {0,0,0};
     Float_t origin[3]  =   {0,0,0};
 //  converts from mm/c to s
@@ -592,9 +579,10 @@ Int_t  AliGenPythia::GenerateMB()
            p[2] = iparticle->Pz();
            p[3] = iparticle->Energy();
            
-           origin[0] = fOrigin[0]+iparticle->Vx()/10.;
-           origin[1] = fOrigin[1]+iparticle->Vy()/10.;
-           origin[2] = fOrigin[2]+iparticle->Vz()/10.;
+           origin[0] = fVertex[0]+iparticle->Vx()/10; // [cm]
+           origin[1] = fVertex[1]+iparticle->Vy()/10; // [cm]
+           origin[2] = fVertex[2]+iparticle->Vz()/10; // [cm]
+           
            Float_t tof=kconv*iparticle->T();
 
            PushTrack(fTrackIt*trackIt, iparent, kf,