From: morsch Date: Wed, 6 Sep 2000 14:35:44 +0000 (+0000) Subject: Use AliDecayerPythia for particle decays. X-Git-Url: http://git.uio.no/git/?p=u%2Fmrichter%2FAliRoot.git;a=commitdiff_plain;h=fa4803687be142ee84c0dd80618a71137c6ba19c Use AliDecayerPythia for particle decays. --- diff --git a/EVGEN/AliGenParam.cxx b/EVGEN/AliGenParam.cxx index 13f4af9cf0b..86aaaadb0c5 100644 --- a/EVGEN/AliGenParam.cxx +++ b/EVGEN/AliGenParam.cxx @@ -15,6 +15,9 @@ /* $Log$ +Revision 1.19 2000/07/11 18:24:56 fca +Coding convention corrections + few minor bug fixes + Revision 1.18 2000/06/29 21:08:27 morsch All paramatrisation libraries derive from the pure virtual base class AliGenLib. This allows to pass a pointer to a library directly to AliGenParam and avoids the @@ -47,10 +50,15 @@ Introduction of the Copyright and cvs Log */ #include "AliGenParam.h" +#include "AliDecayerPythia.h" #include "AliGenMUONlib.h" #include "AliRun.h" #include "AliPythia.h" #include +#include +#include +#include + #include ClassImp(AliGenParam) @@ -176,9 +184,8 @@ AliGenParam::~AliGenParam() void AliGenParam::Init() { // Initialisation - SetMC(new AliPythia()); - fPythia= (AliPythia*) fgMCEvGen; - + + fDecayer = new AliDecayerPythia(); //Begin_Html /* @@ -218,9 +225,9 @@ void AliGenParam::Init() } // // particle decay related initialization - fPythia->DefineParticles(); + fDecayer->Init(); // semimuonic decays of charm and beauty - fPythia->ForceDecay(fForceDecay); + fDecayer->ForceDecay(fForceDecay); // switch (fForceDecay) { @@ -277,6 +284,9 @@ void AliGenParam::Generate() static TClonesArray *particles; // if(!particles) particles=new TClonesArray("TParticle",1000); + + static TDatabasePDG *DataBase = new TDatabasePDG(); + if(!DataBase) DataBase = new TDatabasePDG(); // Float_t random[6]; @@ -296,8 +306,10 @@ void AliGenParam::Generate() // // particle type Int_t iPart = fIpParaFunc(); - fChildWeight=(fPythia->GetBraPart(iPart))*fParentWeight; - Float_t am=fPythia->GetPMAS(fPythia->Lucomp(iPart),1); + fChildWeight=(fDecayer->GetPartialBranchingRatio(iPart))*fParentWeight; + TParticlePDG *particle = DataBase->GetParticle(iPart); + Float_t am = particle->Mass(); + gMC->Rndm(random,2); // // phi @@ -347,10 +359,11 @@ void AliGenParam::Generate() if (fForceDecay != nodecay) { // Using lujet to decay particle Float_t energy=TMath::Sqrt(ptot*ptot+am*am); - fPythia->DecayParticle(iPart,energy,theta,phi); + TLorentzVector pmom(p[0], p[1], p[2], energy); + fDecayer->Decay(iPart,&pmom); // // select decay particles - Int_t np=fPythia->ImportParticles(particles,"All"); + Int_t np=fDecayer->ImportParticles(particles); Int_t ncsel=0; for (i = 1; iAt(i); diff --git a/EVGEN/AliGenParam.h b/EVGEN/AliGenParam.h index 7a10951650e..d192cb85f88 100644 --- a/EVGEN/AliGenParam.h +++ b/EVGEN/AliGenParam.h @@ -6,6 +6,7 @@ /* $Id$ */ #include "AliGenerator.h" +#include "AliDecayer.h" #include "GenTypeDefs.h" #include @@ -74,7 +75,7 @@ class AliGenParam : public AliGenerator Float_t fChildThetaMax;// Children maximum theta Float_t fDeltaPt; // pT sampling in steps of fDeltaPt TArrayI fChildSelect; // Children to be selected from decay products - AliPythia *fPythia; // Pointer to pythia object for decays + AliDecayer *fDecayer; // Pointer to pythia object for decays private: // check if particle is selected as child Bool_t ChildSelected(Int_t ip);