/*
$Log$
+Revision 1.34 2001/02/14 15:50:40 hristov
+The last particle in event marked using SetHighWaterMark
+
Revision 1.33 2001/01/30 09:23:12 hristov
Streamers removed (R.Brun)
// Parent and Children Selection
switch (fProcess)
{
- case charm:
-
+ case kPyCharm:
fParentSelect[0]=411;
fParentSelect[1]=421;
fParentSelect[2]=431;
fParentSelect[3]=4122;
break;
- case charm_unforced:
-
+ case kPyCharmUnforced:
fParentSelect[0]=411;
fParentSelect[1]=421;
fParentSelect[2]=431;
fParentSelect[3]=4122;
break;
- case beauty:
+ case kPyBeauty:
fParentSelect[0]=511;
fParentSelect[1]=521;
fParentSelect[2]=531;
fParentSelect[3]=5122;
break;
- case beauty_unforced:
+ case kPyBeautyUnforced:
fParentSelect[0]=511;
fParentSelect[1]=521;
fParentSelect[2]=531;
fParentSelect[3]=5122;
break;
- case jpsi_chi:
- case jpsi:
+ case kPyJpsiChi:
+ case kPyJpsi:
fParentSelect[0]=443;
break;
- case mb:
+ case kPyMb:
+ case kPyJets:
+ case kPyDirectGamma:
break;
}
switch (fForceDecay)
{
- case semielectronic:
- case dielectron:
- case b_jpsi_dielectron:
- case b_psip_dielectron:
+ case kSemiElectronic:
+ case kDiElectron:
+ case kBJpsiDiElectron:
+ case kBPsiPrimeDiElectron:
fChildSelect[0]=kElectron;
break;
- case semimuonic:
- case dimuon:
- case b_jpsi_dimuon:
- case b_psip_dimuon:
- case pitomu:
- case katomu:
+ case kSemiMuonic:
+ case kDiMuon:
+ case kBJpsiDiMuon:
+ case kBPsiPrimeDiMuon:
+ case kPiToMu:
+ case kKaToMu:
fChildSelect[0]=kMuonMinus;
break;
- case hadronicD:
+ case kHadronicD:
fChildSelect[0]=kPiPlus;
fChildSelect[1]=kKPlus;
break;
- case all:
- case nodecay:
+ case kAll:
+ case kNoDecay:
break;
}
}
printf("\n **************************************************%d\n",np);
Int_t nc=0;
if (np == 0 ) continue;
- if (fProcess != mb) {
+ if (fProcess != kPyMb && fProcess != kPyJets && fProcess != kPyDirectGamma) {
for (Int_t i = 0; i<np-1; i++) {
TParticle * iparticle = (TParticle *) particles->At(i);
Int_t ks = iparticle->GetStatusCode();
Int_t ifch=iparticle->GetFirstDaughter();
Int_t ilch=iparticle->GetLastDaughter();
- if ((ifch !=0 && ilch !=0) || fForceDecay == nodecay) {
+ if ((ifch !=0 && ilch !=0) || fForceDecay == kNoDecay) {
Int_t trackit=0;
- if (fForceDecay == nodecay) trackit = 1;
+ if (fForceDecay == kNoDecay) trackit = 1;
gAlice->SetTrack(trackit,ntP,kf,
p,origin,polar,
0,kPPrimary,nt,fParentWeight);
Int_t iparent = nt;
//
// Children
- if (fForceDecay != nodecay) {
+ if (fForceDecay != kNoDecay) {
for (j=ifch; j<=ilch; j++)
{
TParticle * ichild =
Bool_t AliGenPythia::ChildSelected(Int_t ip)
{
// True if particle is in list of decay products to be selected
- if (fForceDecay == all) return kTRUE;
+ if (fForceDecay == kAll) return kTRUE;
for (Int_t i=0; i<5; i++)
{
#include "AliGenerator.h"
-#include "GenTypeDefs.h"
+#include "AliPythia.h"
+#include "AliDecayer.h"
#include <TArrayI.h>
-class AliDecayer;
class AliPythia;
class TParticle;
virtual void Generate();
virtual void Init();
// select process type
- virtual void SetProcess(Process_t proc=charm) {fProcess=proc;}
+ virtual void SetProcess(Process_t proc = kPyCharm) {fProcess = proc;}
// select structure function
- virtual void SetStrucFunc(StrucFunc_t func=GRV_HO) {fStrucFunc=func;}
+ virtual void SetStrucFunc(StrucFunc_t func = kGRV_HO) {fStrucFunc = func;}
// select pt of hard scattering
- virtual void SetPtHard(Float_t ptmin=0, Float_t ptmax=1.e10)
- {fPtHardMin=ptmin; fPtHardMax=ptmax; }
+ virtual void SetPtHard(Float_t ptmin = 0, Float_t ptmax = 1.e10)
+ {fPtHardMin = ptmin; fPtHardMax = ptmax; }
// set centre of mass energy
- virtual void SetEnergyCMS(Float_t energy=5500) {fEnergyCMS=energy;}
+ virtual void SetEnergyCMS(Float_t energy = 5500) {fEnergyCMS = energy;}
// force decay type
- virtual void SetForceDecay(Decay_t decay=semimuonic) {fForceDecay=decay;}
+ virtual void SetForceDecay(Decay_t decay = kSemiMuonic) {fForceDecay = decay;}
// treat protons as inside nuclei
virtual void SetNuclei(Int_t a1, Int_t a2);
// get cross section of process
virtual Float_t GetXsection() {return fXsection;}
// Check PDG code
- virtual Int_t CheckPDGCode(Int_t pdgcode);
+ virtual Int_t CheckPDGCode(Int_t pdgcode);
// Assignment Operator
AliGenPythia & operator=(const AliGenPythia & rhs);
protected:
Float_t fPtHardMax; // higher pT-hard cut
Int_t fNucA1; // mass number nucleus side 1
Int_t fNucA2; // mass number nucleus side 2
-
+ Bool_t fFullEvent; // Write Full event if true
AliDecayer *fDecayer; // ! pointer to the decayer instance
private:
// check if particle is selected as parent particle
/*
$Log$
+Revision 1.13 2000/12/18 08:55:35 morsch
+Make AliPythia dependent generartors work with new scheme of random number generation
+
Revision 1.12 2000/11/30 07:12:50 alibrary
Introducing new Rndm and QA classes
// select charm production
switch (process)
{
- case charm:
+ case kPyCharm:
SetMSEL(4);
//
// heavy quark masses
SetPARP(93,5.);
//
break;
- case beauty:
+ case kPyBeauty:
SetMSEL(5);
SetPMAS(5,1,4.75);
break;
- case jpsi:
+ case kPyJpsi:
SetMSEL(0);
// gg->J/Psi g
SetMSUB(86,1);
break;
- case jpsi_chi:
+ case kPyJpsiChi:
SetMSEL(0);
// gg->J/Psi g
SetMSUB(86,1);
SetMSUB(88,1);
// gg-> chi_2c g
SetMSUB(89,1);
- case charm_unforced:
+ case kPyCharmUnforced:
SetMSEL(0);
// gq->qg
SetMSUB(28,1);
SetMSUB(53,1);
// gg->gg
SetMSUB(68,1);
- case beauty_unforced:
+ case kPyBeautyUnforced:
SetMSEL(0);
// gq->qg
SetMSUB(28,1);
// gg->gg
SetMSUB(68,1);
break;
- case mb:
+ case kPyMb:
// Minimum Bias pp-Collisions
//
// Tuning of parameters descibed in G. Ciapetti and A. Di Ciaccio
SetPARP(86,0.9);
// 90% of gluon interactions have minimum string length
SetPARP(85,0.9);
+ break;
+ case kPyJets:
+ SetMSEL(1);
+ break;
+ case kPyDirectGamma:
+ SetMSEL(10);
+ break;
}
//
// Initialize PYTHIA
#include <TPythia6.h>
#include <AliRndm.h>
-#include "GenTypeDefs.h"
+
+typedef enum
+{kPyCharm, kPyBeauty, kPyCharmUnforced, kPyBeautyUnforced, kPyJpsi, kPyJpsiChi, kPyMb, kPyJets, kPyDirectGamma}
+Process_t;
+
+typedef enum
+{
+ kDO_Set_1=1006,
+ kGRV_LO=5005,
+ kGRV_HO=5006,
+ kMRS_D_minus=3031,
+ kMRS_D0=3030,
+ kMRS_G=3041,
+ kCTEQ_2pM=4024,
+ kCTEQ_4M=4034
+}
+StrucFunc_t;
class AliPythia : public TPythia6, public AliRndm
{
+
public:
virtual ~AliPythia(){;}
// convert to compressed code and print result (for debugging only)