Hi ,
I am using TPythia6 to control the decay of particles. For each
event I make decay one particle and I retrieve the information with the
function ImportParticles. This ImportParticle give me a list
"TClonesArray" of particles "TMCParticle". Of course, at the end of the
event I empty this list with the function Delete. But sometimes the
particles are not remove and I find in a new event a old particle....
as exemple...
in event 20843 we find the decay eta (221)-> gamma (22) + gamma (22)+
muon(13) !!!
but in fact this muon comes fron the event 20842 when eta (221) ->
muon(13) + antimuon (-13)+ gamma(22)
event 20842
(11, 221) <- 0, =>[ 2, 4]: p=( 4.443, 0.000, -2.227) ; E=
5.000 ; m= 0.547 ; V=(0,0,0); t=0, tau=0
( 1, 22) <- 1, =>[ 0, 0]: p=( 0.793, -0.098, -0.389) ; E=
0.889 ; m= 0.000 ; V=(0,0,0); t=0, tau=0
( 1, -13) <- 1, =>[ 0, 0]: p=( 3.053, 0.180, -1.446) ; E=
3.385 ; m= 0.106 ; V=(0,0,0); t=0, tau=0
( 1, 13) <- 1, =>[ 0, 0]: p=( 0.596, -0.082, -0.392) ; E=
0.726 ; m= 0.106 ; V=(0,0,0); t=0, tau=0
( 1, 22) <- 2, =>[ 0, 0]: p=( 0.962, -0.003, -0.605) ; E=
1.137 ; m= 0.000 ; V=(0.000730588,1.12372e-05,-0.000403107);
t=0.000836193, tau=0
20843
(11, 221) <- 0, =>[ 2, 3]: p=( 4.443, 0.000, -2.227) ; E=
5.000 ; m= 0.547 ; V=(0,0,0); t=0, tau=0
( 1, 22) <- 1, =>[ 0, 0]: p=( 3.982, -0.130, -2.103) ; E=
4.505 ; m= 0.000 ; V=(0,0,0); t=0, tau=0
( 1, 22) <- 1, =>[ 0, 0]: p=( 0.461, 0.130, -0.123) ; E=
0.495 ; m= 0.000 ; V=(0,0,0); t=0, tau=0
( 1, 13) <- 1, =>[ 0, 0]: p=( 0.596, -0.082, -0.392) ; E=
0.726 ; m= 0.106 ; V=(0,0,0); t=0, tau=0
I think that it is a TPhythia6 problem beacause if I create a new
TPythia6 object in each event, the problem with the old particles in new
event is still there. May be i'm doing something wrong....Do I need to
do some special thing to "reset" the pythia events?
I send my main program. I run ROOT Version 2.23/12 in Linux
Thank you in advance,
Maria MORA
//__________________________________________________________________________---
//
#ifndef __CINT__
#include "TROOT.h"
#include "TFile.h"
#include "TDirectory.h"
#include "TPythia6.h"
#include "TClonesArray.h"
#include "TMCParticle.h"
#include "TParticle.h"
#include "TMath.h"
#include "TStopwatch.h"
#include "TRandom.h"
#include <iostream.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <ctype.h>
extern "C" void py1ent_(Int_t&, Int_t&, Double_t&, Double_t&,
Double_t&);
extern void InitGui(); // loads the device dependent graphics system
VoidFuncPtr_t initfuncs[] = { InitGui, 0 };
TRandom Random01;
///////////////////////////////////////////////////////////////////////////////////////////////
void DecayParticle(TPythia6 *pythia, Int_t &idpart, Double_t &mom,
Double_t &theta,Double_t &phi)
{
Int_t temp = 0;
py1ent_(temp, idpart, mom, theta, phi);
}
///////////////////////////////////////////////////////////////////////////////////////////
int main(int argc, char *argv[])
{
TROOT root("pythia simul","PITHIA/SIMULATION", initfuncs);
#else
{
#endif
TPythia6 *pitia = new TPythia6() ;
TClonesArray * ParticleList = new TClonesArray() ;
TMCParticle *particle = new TMCParticle() ;
// Meson definition : identify number and mass(GeV)
Int_t IdEta = 221 ; Float_t MassEta = 0.5473;
// counter definition
Int_t i, cpar;
Int_t Entries, IdParticle ;
// Event Loop
for( i = 0; i<=50000; i++)
{
DecayParticle(pitia, IdEta, 5., 90., 0.) ;
ParticleList = (TClonesArray *)pitia->ImportParticles() ;
Entries = ParticleList->GetEntries() ;
// Loop in generated and decay particles
for(cpar=1; cpar<Entries; cpar++)
{
particle = (TMCParticle *) ParticleList->At(cpar) ;
IdParticle = particle->GetKF() ;
if(IdParticle == 13) // muon
{
cout<<i <<endl;
ParticleList->ls() ;
}
} // end of Loop in generated and decay particles
ParticleList->Delete() ;
}// End in Event Loop
return 1;
}
This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:29 MET