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

From: Pasha Murat (murat@fnal.gov)
Date: Thu Nov 18 2004 - 18:54:58 MET


On Thu, 18 Nov 2004 09:32:35 +0100
Rene Brun <Rene.Brun@cern.ch> wrote:

> 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).

	Hi All, ::Lifetime issue is obviously a bug due to missing data
        in the DB. I'll look into it.
> 
> 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);

	all the quantum numbers are encoded in PDG code of the particle,
	so I can see how one can get around even w/o adding anything.
	TParticle is a class mapped onto a definition of MC particle
	used by the particle generators used in HEP(Pythia, Herwig, Isajet, 
	Madgrapf, Comphep etc). A nucleus is a very different object and an 
	attempt to extend definition of a particle to accomodate for a 
	definition of a nucleus will sooner or later break - ths is why
	we're using different words for them (a particle and a nucleus).

	So, Costas, I think it would be better for you to implement a new 	
	class and explicitly map it onto a definition of a nucleus you're 
	working with.
						-best, Pasha
	
> 
> 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