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