]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EVGEN/AliPythia.cxx
Minor corrections needed on alpha
[u/mrichter/AliRoot.git] / EVGEN / AliPythia.cxx
1 /**************************************************************************
2  * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3  *                                                                        *
4  * Author: The ALICE Off-line Project.                                    *
5  * Contributors are mentioned in the code where appropriate.              *
6  *                                                                        *
7  * Permission to use, copy, modify and distribute this software and its   *
8  * documentation strictly for non-commercial purposes is hereby granted   *
9  * without fee, provided that the above copyright notice appears in all   *
10  * copies and that both the copyright notice and this permission notice   *
11  * appear in the supporting documentation. The authors make no claims     *
12  * about the suitability of this software for any purpose. It is          *
13  * provided "as is" without express or implied warranty.                  *
14  **************************************************************************/
15
16 /*
17 $Log$
18 Revision 1.7  2000/06/09 20:34:50  morsch
19 All coding rule violations except RS3 corrected
20
21 Revision 1.6  1999/11/09 07:38:48  fca
22 Changes for compatibility with version 2.23 of ROOT
23
24 Revision 1.5  1999/11/03 17:43:20  fca
25 New version from G.Martinez & A.Morsch
26
27 Revision 1.4  1999/09/29 09:24:14  fca
28 Introduction of the Copyright and cvs Log
29
30 */
31
32
33 #include "AliPythia.h"
34 #include "AliRun.h"
35
36 ClassImp(AliPythia)
37
38 //_____________________________________________________________________________
39
40 AliPythia* AliPythia::fgAliPythia=NULL;
41
42 AliPythia::AliPythia()
43 {
44 // Default Constructor
45 }
46
47 void AliPythia::ProcInit(Process_t process, Float_t energy, StrucFunc_t strucfunc)
48 {
49 // Initialise the process to generate 
50     fProcess = process;
51     fEcms = energy;
52     fStrucFunc = strucfunc;
53 //  don't decay p0
54     SetMDCY(Pycomp(111),1,0);
55 //  select structure function 
56     SetMSTP(52,2);
57     SetMSTP(51,strucfunc);
58 //
59 // Pythia initialisation for selected processes//
60 //
61 // Make MSEL clean
62 //
63     for (Int_t i=1; i<= 200; i++) {
64         SetMSUB(i,0);
65     }
66 //  select charm production
67     switch (process) 
68     {
69     case charm:
70         SetMSEL(4);
71 //
72 //  heavy quark masses
73
74         SetPMAS(4,1,1.2);
75
76 //
77 //    primordial pT
78         SetMSTP(91,1);
79         SetPARP(91,1);
80         SetPARP(93,3);
81 //
82         break;
83     case beauty:
84         SetMSEL(5);
85         SetPMAS(5,1,4.75);
86         break;
87     case jpsi:
88         SetMSEL(0);
89 // gg->J/Psi g
90         SetMSUB(86,1);
91         break;
92     case jpsi_chi:
93         SetMSEL(0);
94 // gg->J/Psi g
95         SetMSUB(86,1);
96 // gg-> chi_0c g
97         SetMSUB(87,1);
98 // gg-> chi_1c g
99         SetMSUB(88,1);
100 // gg-> chi_2c g
101         SetMSUB(89,1);  
102     case charm_unforced:
103         SetMSEL(0);
104 // gq->qg   
105         SetMSUB(28,1);
106 // gg->qq
107         SetMSUB(53,1);
108 // gg->gg
109         SetMSUB(68,1);
110     case beauty_unforced:
111         SetMSEL(0);
112 // gq->qg   
113         SetMSUB(28,1);
114 // gg->qq
115         SetMSUB(53,1);
116 // gg->gg
117         SetMSUB(68,1);
118         break;
119     case mb:
120 // Minimum Bias pp-Collisions
121 //
122 // Tuning of parameters descibed in G. Ciapetti and A. Di Ciaccio
123 // Proc. of the LHC Workshop, Aachen 1990, Vol. II p. 155
124 //   
125 //      select Pythia min. bias model
126         SetMSEL(2);
127         SetMSUB(92,1);
128         SetMSUB(93,1);
129         SetMSUB(94,1);
130         SetMSUB(95,1);  
131 //      Multiple interactions switched on
132         SetMSTP(81,1);
133         SetMSTP(82,1);
134 //      Low-pT cut-off for hard scattering
135         SetPARP(81,1.9);
136 //      model for subsequent non-hardest interaction
137 //      90% gg->gg 10% gg->qq
138         SetPARP(86,0.9);
139 //      90% of gluon interactions have minimum string length
140         SetPARP(85,0.9);
141     }
142 //
143 //  Initialize PYTHIA
144     SetMSTP(41,1);
145
146     Initialize("CMS","p","p",fEcms);
147 }
148
149 Int_t AliPythia::CheckedLuComp(Int_t kf)
150 {
151 // Check Lund particle code (for debugging)
152     Int_t kc=Pycomp(kf);
153     printf("\n Lucomp kf,kc %d %d",kf,kc);
154     return kc;
155 }
156
157 AliPythia* AliPythia::Instance()
158 {
159     if (fgAliPythia) {
160         return fgAliPythia;
161     } else {
162         fgAliPythia = new AliPythia();
163         return fgAliPythia;
164     }
165 }
166 void AliPythia::Streamer(TBuffer &R__b) {} 
167
168
169
170
171
172
173