]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PYTHIA8/pythia8145/include/MiniStringFragmentation.h
New pythia8 version
[u/mrichter/AliRoot.git] / PYTHIA8 / pythia8145 / include / MiniStringFragmentation.h
1 // MiniStringFragmentation.h is a part of the PYTHIA event generator.
2 // Copyright (C) 2010 Torbjorn Sjostrand.
3 // PYTHIA is licenced under the GNU GPL version 2, see COPYING for details.
4 // Please respect the MCnet Guidelines, see GUIDELINES for details.
5
6 // This file contains the class for "cluster" fragmentation.
7 // MiniStringFragmentation: handle the fragmentation of low-mass systems.
8
9 #ifndef Pythia8_MiniStringFragmentation_H
10 #define Pythia8_MiniStringFragmentation_H
11
12 #include "Basics.h"
13 #include "Event.h"
14 #include "FragmentationFlavZpT.h"
15 #include "FragmentationSystems.h"
16 #include "Info.h"
17 #include "ParticleData.h"
18 #include "PythiaStdlib.h"
19 #include "Settings.h"
20
21 namespace Pythia8 {
22
23 //==========================================================================
24
25 // The MiniStringFragmentation class contains the routines to fragment 
26 // occasional low-mass colour singlet partonic systems, where the string 
27 // approach is not directly applicable (for technical reasons).
28
29 class MiniStringFragmentation {
30
31 public:
32
33   // Constructor. 
34   MiniStringFragmentation() {}
35
36   // Initialize and save pointers.
37   void init(Info* infoPtrIn, Settings& settings,  
38     ParticleData* particleDataPtrIn, Rndm* rndmPtrIn, 
39     StringFlav* flavSelPtrIn);
40
41   // Do the fragmentation: driver routine.
42   bool fragment( int iSub, ColConfig& colConfig, Event& event, 
43     bool isDiff = false);
44
45 private: 
46
47   // Constants: could only be changed in the code itself.
48   static const int    NTRYDIFFRACTIVE, NTRYLASTRESORT, NTRYFLAV;
49   static const double SIGMAMIN;
50
51   // Pointer to various information on the generation.
52   Info*         infoPtr;
53
54   // Pointer to the particle data table.
55   ParticleData* particleDataPtr;
56
57   // Pointer to the random number generator.
58   Rndm*         rndmPtr;
59
60   // Pointer to class for flavour generation.
61   StringFlav*   flavSelPtr;
62
63   // Initialization data, read from Settings.
64   int    nTryMass;
65   double sigma, sigma2Had, bLund;
66
67   // Data members.
68   bool   isClosed;
69   double mSum, m2Sum;
70   Vec4   pSum;
71   vector<int> iParton;
72   FlavContainer flav1, flav2;
73
74   // Attempt to produce two particles from a cluster.
75   bool ministring2two( int nTry, Event& event);
76
77   // Attempt to produce one particle from a cluster.
78   bool ministring2one( int iSub, ColConfig& colConfig, Event& event);
79
80 };
81
82 //==========================================================================
83
84 } // end namespace Pythia8
85
86 #endif // Pythia8_MiniStringFragmentation_H