~ubuntu-branches/ubuntu/trusty/pythia8/trusty-proposed

« back to all changes in this revision

Viewing changes to include/MiniStringFragmentation.h

  • Committer: Package Import Robot
  • Author(s): Lifeng Sun
  • Date: 2012-05-22 11:43:00 UTC
  • Revision ID: package-import@ubuntu.com-20120522114300-0jvsv2vl4o2bo435
Tags: upstream-8.1.65
ImportĀ upstreamĀ versionĀ 8.1.65

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
// MiniStringFragmentation.h is a part of the PYTHIA event generator.
 
2
// Copyright (C) 2012 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, StringPT* pTSelPtrIn, StringZ* zSelPtrIn);
 
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
 
 
50
  // Pointer to various information on the generation.
 
51
  Info*         infoPtr;
 
52
 
 
53
  // Pointer to the particle data table.
 
54
  ParticleData* particleDataPtr;
 
55
 
 
56
  // Pointer to the random number generator.
 
57
  Rndm*         rndmPtr;
 
58
 
 
59
  // Pointers to classes for flavour, pT and z generation.
 
60
  StringFlav*   flavSelPtr;
 
61
  StringPT*     pTSelPtr;
 
62
  StringZ*      zSelPtr;
 
63
 
 
64
  // Initialization data, read from Settings.
 
65
  int    nTryMass;
 
66
  double bLund;
 
67
 
 
68
  // Data members.
 
69
  bool   isClosed;
 
70
  double mSum, m2Sum;
 
71
  Vec4   pSum;
 
72
  vector<int> iParton;
 
73
  FlavContainer flav1, flav2;
 
74
 
 
75
  // Attempt to produce two particles from a cluster.
 
76
  bool ministring2two( int nTry, Event& event);
 
77
 
 
78
  // Attempt to produce one particle from a cluster.
 
79
  bool ministring2one( int iSub, ColConfig& colConfig, Event& event);
 
80
 
 
81
};
 
82
 
 
83
//==========================================================================
 
84
 
 
85
} // end namespace Pythia8
 
86
 
 
87
#endif // Pythia8_MiniStringFragmentation_H