]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PYTHIA8/pythia8140/include/MiniStringFragmentation.h
coverity
[u/mrichter/AliRoot.git] / PYTHIA8 / pythia8140 / include / MiniStringFragmentation.h
CommitLineData
b584e2f5 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
21namespace 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
29class MiniStringFragmentation {
30
31public:
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
45private:
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