dd43e5f5ebcf16fc17603e818aa295b8592bb4d2
[u/mrichter/AliRoot.git] / PYTHIA8 / pythia8130 / include / MiniStringFragmentation.h
1 // MiniStringFragmentation.h is a part of the PYTHIA event generator.
2 // Copyright (C) 2008 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, StringFlav* flavSelPtrIn);
38
39   // Do the fragmentation: driver routine.
40   bool fragment( int iSub, ColConfig& colConfig, Event& event, 
41     bool isDiff = false);
42
43 private: 
44
45   // Constants: could only be changed in the code itself.
46   static const int    NTRYDIFFRACTIVE, NTRYLASTRESORT, NTRYFLAV;
47   static const double SIGMAMIN;
48
49   // Pointer to various information on the generation.
50   Info*       infoPtr;
51
52   // Pointer to class for flavour generation.
53   StringFlav* flavSelPtr;
54
55   // Initialization data, read from Settings.
56   int    nTryMass;
57   double sigma, sigma2Had, bLund;
58
59   // Data members.
60   bool   isClosed;
61   double mSum, m2Sum;
62   Vec4   pSum;
63   vector<int> iParton;
64   FlavContainer flav1, flav2;
65
66   // Attempt to produce two particles from a cluster.
67   bool ministring2two( int nTry, Event& event);
68
69   // Attempt to produce one particle from a cluster.
70   bool ministring2one( int iSub, ColConfig& colConfig, Event& event);
71
72 };
73
74 //**************************************************************************
75
76 } // end namespace Pythia8
77
78 #endif // Pythia8_MiniStringFragmentation_H