/*
$Log$
+Revision 1.27 2002/11/15 00:39:37 morsch
+- Correct initialisation of sRandom.
+- QCD Jets with initial and final state gluon radiation is default
+- pt kick for jets default
+- Interface to Pyclus added.
+
+Revision 1.26 2002/11/14 00:37:32 morsch
+Warning message for kPyJets added.
+
+Revision 1.25 2002/10/14 14:55:35 hristov
+Merging the VirtualMC branch to the main development branch (HEAD)
+
+Revision 1.20.6.1 2002/06/10 14:57:41 hristov
+Merged with v3-08-02
+
+Revision 1.24 2002/05/22 13:22:53 morsch
+Process kPyMbNonDiffr added.
+
+Revision 1.23 2002/05/06 07:17:29 morsch
+Pyr gives random number r in interval 0 < r < 1.
+
+Revision 1.22 2002/04/26 10:28:48 morsch
+Option kPyBeautyPbMNR added (N. Carrer).
+
Revision 1.21 2002/03/25 14:46:16 morsch
Case kPyD0PbMNR added (N. Carrer).
ClassImp(AliPythia)
+#ifndef WIN32
+# define pyclus pyclus_
+# define pycell pycell_
+# define type_of_call
+#else
+# define pyclus PYCLUS
+# define pycell PYCELL
+# define type_of_call _stdcall
+#endif
+
+extern "C" void type_of_call pyclus(Int_t & );
+extern "C" void type_of_call pycell(Int_t & );
+
//_____________________________________________________________________________
AliPythia* AliPythia::fgAliPythia=NULL;
void AliPythia::ProcInit(Process_t process, Float_t energy, StrucFunc_t strucfunc)
{
// Initialise the process to generate
+ if (!sRandom) sRandom = gRandom;
+
fProcess = process;
fEcms = energy;
fStrucFunc = strucfunc;
SetPARP(82,3.47); // set value pT_0 for turn-off of the cross section of
// multiple interaction at a reference energy = 14000 GeV
SetPARP(89,14000.); // reference energy for the above parameter
- SetPARP(90,0.174); // set exponent for energy dependence of pT_0
+ SetPARP(90,0.174); // set exponent for energy dependence of pT_0
+ case kPyMbNonDiffr:
+// Minimum Bias pp-Collisions
+//
+//
+// select Pythia min. bias model
+ SetMSEL(0);
+ SetMSUB(95,1); // low pt production
+ SetMSTP(81,1); // multiple interactions switched on
+ SetMSTP(82,3); // model with varying impact param. & a single Gaussian
+ SetPARP(82,3.47); // set value pT_0 for turn-off of the cross section of
+ // multiple interaction at a reference energy = 14000 GeV
+ SetPARP(89,14000.); // reference energy for the above parameter
+ SetPARP(90,0.174); // set exponent for energy dependence of pT_0
+
break;
case kPyJets:
+//
+// QCD Jets
+//
SetMSEL(1);
-// no initial state radiation
- SetMSTP(61,0);
-// no final state radiation
- SetMSTP(71,0);
-// no primordial pT
- SetMSTP(91,0);
-// SetMSTP(111,0);
- SetMSTU(16,1);
- SetMSTJ(1,1);
-
break;
case kPyDirectGamma:
SetMSEL(10);
for (i = 1; i < 2001; i++) fDefMDME[i] = GetMDME(i,1);
}
+void AliPythia::Pyclus(Int_t& njet)
+{
+// Call Pythia clustering algorithm
+//
+ pyclus(njet);
+}
+
+void AliPythia::Pycell(Int_t& njet)
+{
+// Call Pythia jet reconstruction algorithm
+//
+ pycell(njet);
+}
+
+
#ifndef WIN32
#define pyr pyr_
#define pyrset pyrset_
#define pyrget pyrget_
+#define pyclus pyclus_
+#define pycell pycell_
#else
#define pyr PYR
#define pyrset PYRSET
#define pyrget PYRGET
+#define pyclus PYCLUS
+#define pycell PYCELL
#endif
extern "C" {
- Double_t pyr(Int_t*) {return sRandom->Rndm();}
+ Double_t pyr(Int_t*)
+{
+ Float_t r;
+ do r=sRandom->Rndm(); while(0 >= r || r >= 1);
+ return r;
+}
void pyrset(Int_t*,Int_t*) {}
void pyrget(Int_t*,Int_t*) {}
}
+