Keep correct id of mother particles
authorakisiel <akisiel@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 23 Apr 2008 13:26:52 +0000 (13:26 +0000)
committerakisiel <akisiel@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 23 Apr 2008 13:26:52 +0000 (13:26 +0000)
TTherminator/AliGenTherminator.cxx

index 6f95dd3..45ab103 100644 (file)
@@ -100,6 +100,9 @@ void AliGenTherminator::Generate()
   Int_t np = fParticles.GetEntriesFast();
   AliWarning(Form("Imported %d particles", np));
 
+  Int_t *idsOnStack;
+  idsOnStack = new Int_t[np];
+
   TParticle *iparticle;
   Double_t evrot = gRandom->Rndm()*TMath::Pi();
   
@@ -146,6 +149,7 @@ void AliGenTherminator::Generate()
                origin[0],origin[1],origin[2],iparticle->T(),
                polar[0],polar[1],polar[2],
                hasMother ? kPDecay:kPNoProcess,nt);
+      idsOnStack[i] = nt;
       fNprimaries++;
       KeepTrack(nt);
     }
@@ -184,12 +188,14 @@ void AliGenTherminator::Generate()
       } // if has mother   
       Bool_t tFlag = (hasDaughter);
       
-      printf("Pushing Track %d with status %d mother %d\n", kf, tFlag, imo);
+      printf("Found mother %i with true id %i\n", imo, idsOnStack[imo]);
+      printf("Pushing Track %d with status %d mother %d\n", kf, tFlag, idsOnStack[imo]);
       PushTrack(tFlag,imo,kf,
                p[0],p[1],p[2],energy,
                origin[0],origin[1],origin[2],iparticle->T(),
                polar[0],polar[1],polar[2],
                hasMother ? kPDecay:kPNoProcess,nt);
+      idsOnStack[i] = nt;
       fNprimaries++;
       KeepTrack(nt);
 
@@ -198,7 +204,7 @@ void AliGenTherminator::Generate()
       origin[2] = origin0[2]+iparticle->Vz();
 
       imo = nt;
-      mother = (TParticle *) fParticles.At(nt);
+      //      mother = (TParticle *) fParticles.At(nt);
       tFlag = (!hasDaughter);
       
       printf("Pushing Track %d with status %d mother %d\n", kf, tFlag, imo);
@@ -212,6 +218,8 @@ void AliGenTherminator::Generate()
     }
   }
 
+
+
   SetHighWaterMark(fNprimaries);
 
   TArrayF eventVertex;
@@ -270,6 +278,8 @@ void AliGenTherminator::Generate()
   AddHeader(header);
   fCollisionGeometry = (AliGenHijingEventHeader*)  header;
 
+  delete idsOnStack;
+
   //  gAlice->SetGenEventHeader(header); 
 }