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