Shadowing of variables corrected.
[u/mrichter/AliRoot.git] / PYTHIA6 / AliGenPythiaPlus.cxx
index 35ba99af340dcedfcf298793804bc7de8ad7b0f3..90e275e0579bbd68a51bb7e629242f4d72f84ee9 100644 (file)
@@ -224,7 +224,6 @@ AliGenPythiaPlus::AliGenPythiaPlus(AliPythiaBase* pythia)
     // Set random number generator 
     if (!AliPythiaRndm::GetPythiaRandom()) 
       AliPythiaRndm::SetPythiaRandom(GetRandom());
-    fParticles = new TClonesArray("TParticle",1000);
     SetNuclei(0,0);
  }
 
@@ -553,7 +552,7 @@ void AliGenPythiaPlus::Generate()
 //     printf("Calling hadronisation %d\n", fPythia->GetN());
 //     fPythia->HadronizeEvent();      
        fTrials++;
-       fPythia->GetParticles(fParticles);
+       fPythia->GetParticles(&fParticles);
        Boost();
 //
 //
@@ -561,7 +560,7 @@ void AliGenPythiaPlus::Generate()
        Int_t i;
        
        fNprimaries = 0;
-       Int_t np = fParticles->GetEntriesFast();
+       Int_t np = fParticles.GetEntriesFast();
        
        if (np == 0) continue;
 //
@@ -591,7 +590,7 @@ void AliGenPythiaPlus::Generate()
            fProcess != kPyBeautyppMNRwmi) {
            
            for (i = 0; i < np; i++) {
-               TParticle* iparticle = (TParticle *) fParticles->At(i);
+               TParticle* iparticle = (TParticle *) fParticles.At(i);
                Int_t ks = iparticle->GetStatusCode();
                kf = CheckPDGCode(iparticle->GetPdgCode());
 // No initial state partons
@@ -618,21 +617,21 @@ void AliGenPythiaPlus::Generate()
                if (kf >= fFlavorSelect && kf <= 6) {
                    Int_t idau = (fPythia->Version() == 6) ? (iparticle->GetFirstDaughter() - 1) :(iparticle->GetFirstDaughter());
                    if (idau > -1) {
-                       TParticle* daughter = (TParticle *) fParticles->At(idau);
+                       TParticle* daughter = (TParticle *) fParticles.At(idau);
                        Int_t pdgD = daughter->GetPdgCode();
                        if (pdgD == 91 || pdgD == 92) {
                            Int_t jmin = (fPythia->Version() == 6) ? (daughter->GetFirstDaughter() - 1) : (daughter->GetFirstDaughter());
                            Int_t jmax = (fPythia->Version() == 6) ? (daughter->GetLastDaughter() - 1)  : (daughter->GetLastDaughter());
 
-                           for (Int_t j = jmin; j <= jmax; j++)
-                               ((TParticle *) fParticles->At(j))->SetFirstMother(i+1);
+                           for (Int_t jp = jmin; jp <= jmax; jp++)
+                               ((TParticle *) fParticles.At(jp))->SetFirstMother(i+1);
                        } // is string or cluster
                    } // has daughter
                } // heavy quark
                
 
                if (ipa > -1) {
-                   TParticle *  mother = (TParticle *) fParticles->At(ipa);
+                   TParticle *  mother = (TParticle *) fParticles.At(ipa);
                    kfMo = TMath::Abs(mother->GetPdgCode());
                }
                
@@ -726,7 +725,7 @@ void AliGenPythiaPlus::Generate()
            if (nc > 0) {
                for (i = 0; i < np; i++) {
                    if (!pSelected[i]) continue;
-                   TParticle *  iparticle = (TParticle *) fParticles->At(i);
+                   TParticle *  iparticle = (TParticle *) fParticles.At(i);
                    kf = CheckPDGCode(iparticle->GetPdgCode());
                    Int_t ks = iparticle->GetStatusCode();  
                    p[0] = iparticle->Px();
@@ -807,13 +806,13 @@ Int_t  AliGenPythiaPlus::GenerateMB()
 //  converts from mm/c to s
     const Float_t kconv = 0.001 / 2.999792458e8;
     
-    Int_t np = (fHadronisation) ? fParticles->GetEntriesFast() : fNpartons;
+    Int_t np = (fHadronisation) ? fParticles.GetEntriesFast() : fNpartons;
     
     Int_t* pParent = new Int_t[np];
     for (i=0; i< np; i++) pParent[i] = -1;
     if (fProcess == kPyJets || fProcess == kPyDirectGamma) {
-       TParticle* jet1 = (TParticle *) fParticles->At(6);
-       TParticle* jet2 = (TParticle *) fParticles->At(7);
+       TParticle* jet1 = (TParticle *) fParticles.At(6);
+       TParticle* jet2 = (TParticle *) fParticles.At(7);
        if (!CheckTrigger(jet1, jet2)) {
          delete [] pParent;
          return 0;
@@ -830,11 +829,11 @@ Int_t  AliGenPythiaPlus::GenerateMB()
       else if (fPi0InCalo) pdg = 111 ; // Pi0
 
       for (i=0; i< np; i++) {
-       TParticle* iparticle = (TParticle *) fParticles->At(i);
+       TParticle* iparticle = (TParticle *) fParticles.At(i);
        if(iparticle->GetStatusCode()==1 && iparticle->GetPdgCode()==pdg && 
           iparticle->Pt() > fFragPhotonOrPi0MinPt){
            Int_t imother = (fPythia->Version() == 6) ? (iparticle->GetFirstMother() - 1) :(iparticle->GetFirstMother()) ;
-         TParticle* pmother = (TParticle *) fParticles->At(imother);
+         TParticle* pmother = (TParticle *) fParticles.At(imother);
          if(pdg == 111 || 
             (pdg == 22 && pmother->GetStatusCode() != 11))//No photon from hadron decay
            {
@@ -859,7 +858,7 @@ Int_t  AliGenPythiaPlus::GenerateMB()
       Int_t pdg  = 22; 
       Int_t iphcand = -1;
       for (i=0; i< np; i++) {
-        TParticle* iparticle = (TParticle *) fParticles->At(i);
+        TParticle* iparticle = (TParticle *) fParticles.At(i);
         Float_t phi = iparticle->Phi()*180./TMath::Pi(); //Convert to degrees
         Float_t eta =TMath::Abs(iparticle->Eta());//in calos etamin=-etamax 
         
@@ -888,7 +887,7 @@ Int_t  AliGenPythiaPlus::GenerateMB()
     if (fTriggerParticle) {
        Bool_t triggered = kFALSE;
        for (i = 0; i < np; i++) {
-           TParticle *  iparticle = (TParticle *) fParticles->At(i);
+           TParticle *  iparticle = (TParticle *) fParticles.At(i);
            kf = CheckPDGCode(iparticle->GetPdgCode());
            if (kf != fTriggerParticle) continue;
            if (iparticle->Pt() == 0.) continue;
@@ -911,7 +910,7 @@ Int_t  AliGenPythiaPlus::GenerateMB()
       Float_t yQ;  
       Int_t   pdgQ;
       for(i=0; i<np; i++) {
-       hvq = (TParticle*)fParticles->At(i);
+       hvq = (TParticle*)fParticles.At(i);
        pdgQ = hvq->GetPdgCode();  
        if(TMath::Abs(pdgQ) != fFlavorSelect) continue; 
        if(pdgQ>0) { theQ=kTRUE; } else { theQbar=kTRUE; }
@@ -941,7 +940,7 @@ Int_t  AliGenPythiaPlus::GenerateMB()
 
     for (i = 0; i < np; i++) {
        Int_t trackIt = 0;
-       TParticle *  iparticle = (TParticle *) fParticles->At(i);
+       TParticle *  iparticle = (TParticle *) fParticles.At(i);
        kf = CheckPDGCode(iparticle->GetPdgCode());
        Int_t ks = iparticle->GetStatusCode();
        Int_t km = iparticle->GetFirstMother();
@@ -1192,10 +1191,10 @@ Bool_t AliGenPythiaPlus::CheckKinematicsOnChild(){
     Int_t nPartAcc = 0; //number of particles in the acceptance range
     Int_t numberOfAcceptedParticles = 1;
     if (fNumberOfAcceptedParticles != 0) { numberOfAcceptedParticles = fNumberOfAcceptedParticles; }
-    Int_t npart = fParticles->GetEntriesFast();
+    Int_t npart = fParticles.GetEntriesFast();
     
     for (j = 0; j<npart; j++) {
-       TParticle *  jparticle = (TParticle *) fParticles->At(j);
+       TParticle *  jparticle = (TParticle *) fParticles.At(j);
        kcode = TMath::Abs( CheckPDGCode(jparticle->GetPdgCode()) );
        ks = jparticle->GetStatusCode();
        km = jparticle->GetFirstMother(); 
@@ -1333,19 +1332,19 @@ void AliGenPythiaPlus::RotatePhi(Int_t iphcand, Bool_t& okdd)
   Double_t phiPHOS = gRandom->Uniform(phiPHOSmin,phiPHOSmax);
   
   //calculate deltaphi
-  TParticle* ph = (TParticle *) fParticles->At(iphcand);
+  TParticle* ph = (TParticle *) fParticles.At(iphcand);
   Double_t phphi = ph->Phi();
   Double_t deltaphi = phiPHOS - phphi;
 
   
   
   //loop for all particles and produce the phi rotation
-  Int_t np = (fHadronisation) ? fParticles->GetEntriesFast() : fNpartons;
+  Int_t np = (fHadronisation) ? fParticles.GetEntriesFast() : fNpartons;
   Double_t oldphi, newphi;
   Double_t newVx, newVy, R, Vz, time; 
   Double_t newPx, newPy, pt, Pz, e;
   for(Int_t i=0; i< np; i++) {
-      TParticle* iparticle = (TParticle *) fParticles->At(i);
+      TParticle* iparticle = (TParticle *) fParticles.At(i);
       oldphi = iparticle->Phi();
       newphi = oldphi + deltaphi;
       if(newphi < 0) newphi = 2*TMath::Pi() + newphi; // correct angle