Re: [ROOT] small requests for TParticle, TParticlePDG and TMCParticle

From: Rene Brun (Rene.Brun@cern.ch)
Date: Thu Nov 18 2004 - 09:32:35 MET


Hi Costas,

I agree with your comment about Lifetime. I am passing your mail to
Pasha Murat and Andreas Morsch who had some discussions about it 
when the class was introduced. If I remember correctly, the idea was to go via
TPythia/TPythia6 to get this info (via the pdg code).

Concerning TParticle/TParticlePDG, you can add new TParticlePDG definitions
with your pdg code to the TDatabasePDG.

For attributes like "fIsExcitedState" you can store this attribute using
one of the TObject bits of TParticle, eg
 with an enum like kIsExcitedState = 1<<17;
 myparticle->SetBit(kIsExcitesState);
 Bool_t isexcited = myparticle->TestBit(kIsExcitedState);

This has the advantage that it does not require any changes to TParticle
and the attributes set via the bits are I/O persistent.

Concerning TParticle and TLorentzVector, this functionality is already included 
in TParticle. see
  void Momentum(TLorentzVector &v) const { v.SetPxPyPzE(fPx,fPy,fPz,fE);}
  void ProductionVertex(TLorentzVector &v) const { v.SetXYZT(fVx,fVy,fVz,fVt);}

Rene Brun



Costas Andreopoulos wrote:
> 
> Hello,
> 
> I am working on a ROOT-based neutrino event generator
> http://hepunx.rl.ac.uk/~candreop/generators/GENIE/
> for the MINOS experiment.
> 
> Some small requests:
> 
> <TParticlePDG/>
> 
> TParticlePDG's Lifetime() always returns 0.
> (I do run TDatabasePDG::ReadPDGTable("...") first).
> This leads to some nastiness when I am trying to
> figure out which of the particles in the event record
> should be passed to a particle decayer. I only need
> to decay the particles with very small lifetimes:
> eg a pi^0 but not a pi^+.
> It would be great if TParticlePDG's Lifetime() was
> fixed so that I could base my decision on that.
> 
> <TParticle/>
> 
> The essence of the generated event record is that it is
> a TClonesArray of TParticles. However, some of the particles
> involved in the interaction are nuclei that do not fit very
> well in a TParticle.  Internally, I do have some specialized
> classes that hold a nuclei and look up nuclear physics tables
> for getting the nuclear properties. But, for passing my event
> records to the outside world it would be very usefull if TParticle
> could hold a nucleus (eg by having a special pdg-code and some
> methods for setting/getting Z,A - and possibly a couple of methods
> to set/get some very basic additional properties like a
> 'bool fIsExcitedState'...
> 
> <TLorentzVector/>
> 
> Things would be a little bit easier for me if TParticle & TMCParticle
> had a consistent interface for getting the 4-momentum and, specifically,
> something that involves returning a TLorentzVector rather than
> individual components.
> 
> cheers,
>       Costas
> 
> --
> Dr. Constantinos Andreopoulos, CCLRC - Rutherford Lab.
> http://hepunx.rl.ac.uk/~candreop



This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:10 MET