Re: [ROOT] TPythia problems

From: Rene Brun (Rene.Brun@cern.ch)
Date: Fri Jul 26 2002 - 23:18:21 MEST


Hi Joe,

By default, TPythia::GenerateEvent produces TMCParticle not TParticle.
See example below to access the TPCParticle data.

Rene Brun

{
   // dynamically link the shared libraries
   gSystem->Load("$PYTHIA/libPythia.so");  // Pythia library
   gSystem->Load("libEG.so");              // Root Event Generator
interface
   gSystem->Load("libEGPythia.so");        // Root interface to Pythia

   TPythia *myPythia = new TPythia();
   TMCParticle *myParticle;

   // Assume I've completed all initialization

   myPythia->Initialize("CMS","p","p",14000);
   myPythia.GenerateEvent();
   int numParticles = myPythia.GetNumberOfParticles();
   TObjArray *particles = myPythia.GetListOfParticles();
   for(int i = 0; i < numParticles; i++) {
      myParticle = (TMCParticle*)particles->At(i);
      int KS   = myParticle->GetKS();
      float px = myParticle->GetPx();
      float py = myParticle->GetPy();
      float pz = myParticle->GetPz();
      printf("i=%4d, KS=%d, px=%g, py=%g, pz=%g\n",i,KS,px,py,pz);
   }
}


On Fri, 26 Jul 2002, Joseph Tuggle wrote:

> Hi,
> 
> When I use the TPythia class to generate events, I seem to get 
> uninitialized variables instead of actual values. Here is an example...
> 
> TPythia myPythia;
> TParticle *myParticle;
> 
> // Assume I've completed all initialization
> 
> myPythia.GenerateEvent();
> int numParticles = myPythia.GetNumberOfParticles();
> for(int i = 0; i < numParticles; i++) {
>   myParticle = myPythia.GetParticle(i);
>   float px = myParticle->Px();
> }
> 
> Now, if I look at px, py, pz, etc, they all seem to be uninitialized. 
> Same for Vx, Vy, Vz, and so on. Is there something simple I'm missing?
> 
> Thanks,
> Joe
> 
> 



This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:51:01 MET