StRoot
1
Main Page
Related Pages
Modules
Namespaces
Classes
Files
Examples
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Groups
Pages
StarGenerator
Pythia8_1_62
include
HiddenValleyFragmentation.h
1
// HiddenValleyFragmentation.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 classes for Hidden-Valley fragmentation.
7
8
#ifndef Pythia8_HiddenValleyFragmentation_H
9
#define Pythia8_HiddenValleyFragmentation_H
10
11
#include "Basics.h"
12
#include "Event.h"
13
#include "FragmentationFlavZpT.h"
14
#include "FragmentationSystems.h"
15
#include "Info.h"
16
#include "MiniStringFragmentation.h"
17
#include "ParticleData.h"
18
#include "PythiaStdlib.h"
19
#include "Settings.h"
20
#include "StringFragmentation.h"
21
22
namespace
Pythia8 {
23
24
//==========================================================================
25
26
// The HVStringFlav class is used to select HV-quark and HV-hadron flavours.
27
28
class
HVStringFlav
:
public
StringFlav
{
29
30
public
:
31
32
// Constructor.
33
HVStringFlav
() {}
34
35
// Destructor.
36
~
HVStringFlav
() {}
37
38
// Initialize data members.
39
void
init(
Settings
& settings,
Rndm
* rndmPtrIn);
40
41
// Pick a new flavour (including diquarks) given an incoming one.
42
FlavContainer
pick(
FlavContainer
& flavOld);
43
44
// Combine two flavours (including diquarks) to produce a hadron.
45
int
combine(
FlavContainer
& flav1,
FlavContainer
& flav2);
46
47
private
:
48
49
// Initialization data, to be read from Settings.
50
int
nFlav;
51
double
probVector;
52
53
};
54
55
//==========================================================================
56
57
// The HVStringPT class is used to select select HV transverse momenta.
58
59
class
HVStringPT
:
public
StringPT
{
60
61
public
:
62
63
// Constructor.
64
HVStringPT
() {}
65
66
// Destructor.
67
~
HVStringPT
() {}
68
69
// Initialize data members.
70
void
init(
Settings
& settings,
ParticleData
& particleData,
Rndm
* rndmPtrIn);
71
72
};
73
74
//==========================================================================
75
76
// The HVStringZ class is used to sample the HV fragmentation function f(z).
77
78
class
HVStringZ
:
public
StringZ
{
79
80
public
:
81
82
// Constructor.
83
HVStringZ
() {}
84
85
// Destructor.
86
~
HVStringZ
() {}
87
88
// Initialize data members.
89
void
init(
Settings
& settings,
ParticleData
& particleData,
Rndm
* rndmPtrIn);
90
91
// Fragmentation function: top-level to determine parameters.
92
double
zFrag(
int
idOld,
int
idNew = 0,
double
mT2 = 1.);
93
94
// Parameters for stopping in the middle; for now hardcoded.
95
virtual
double
stopMass() {
return
1.5 * mhvMeson;}
96
virtual
double
stopNewFlav() {
return
2.0;}
97
virtual
double
stopSmear() {
return
0.2;}
98
99
private
:
100
101
// Initialization data, to be read from Settings and ParticleData.
102
double
mqv2, bmqv2, rFactqv, mhvMeson;
103
104
};
105
106
//==========================================================================
107
108
// The HiddenValleyFragmentation class contains the routines
109
// to fragment a Hidden Valley partonic system.
110
111
class
HiddenValleyFragmentation
{
112
113
public
:
114
115
// Constructor.
116
HiddenValleyFragmentation
() : hvFlavSelPtr(NULL), hvPTSelPtr(NULL),
117
hvZSelPtr(NULL) {}
118
119
// Destructor.
120
~
HiddenValleyFragmentation
() {
if
(doHVfrag) {
121
if
(hvZSelPtr)
delete
hvZSelPtr;
if
(hvPTSelPtr)
delete
hvPTSelPtr;
122
if
(hvFlavSelPtr)
delete
hvFlavSelPtr;} }
123
124
// Initialize and save pointers.
125
bool
init(
Info
* infoPtrIn,
Settings
& settings,
126
ParticleData
* particleDataPtrIn,
Rndm
* rndmPtrIn);
127
128
// Do the fragmentation: driver routine.
129
bool
fragment(
Event
& event);
130
131
private
:
132
133
// Pointer to various information on the generation.
134
Info
* infoPtr;
135
136
// Pointer to the particle data table.
137
ParticleData
* particleDataPtr;
138
139
// Pointer to the random number generator.
140
Rndm
* rndmPtr;
141
142
// Data mambers.
143
bool
doHVfrag;
144
int
nFlav, hvOldSize, hvNewSize;
145
double
mhvMeson, mSys;
146
vector<int> ihvParton;
147
148
// Configuration of colour-singlet systems.
149
ColConfig
hvColConfig;
150
151
// Temporary event record for the Hidden Valley system.
152
Event
hvEvent;
153
154
// The generator class for Hidden Valley string fragmentation.
155
StringFragmentation
hvStringFrag;
156
157
// The generator class for special low-mass HV string fragmentation.
158
MiniStringFragmentation
hvMinistringFrag;
159
160
// Pointers to classes for flavour, pT and z generation in HV sector.
161
StringFlav
* hvFlavSelPtr;
162
StringPT
* hvPTSelPtr;
163
StringZ
* hvZSelPtr;
164
165
// Extract HV-particles from event to hvEvent. Assign HV-colours.
166
bool
extractHVevent(
Event
& event);
167
168
// Collapse of low-mass system to one HV-meson.
169
bool
collapseToMeson();
170
171
// Insert HV particles from hvEvent to event.
172
bool
insertHVevent(
Event
& event);
173
174
};
175
176
//==========================================================================
177
178
}
// end namespace Pythia8
179
180
#endif // Pythia8_HiddenValleyFragmentation_H
Pythia8::HVStringFlav
Definition:
HiddenValleyFragmentation.h:28
Pythia8::Info
Definition:
Info.h:25
Pythia8::Event
Definition:
Event.h:355
Pythia8::StringPT
Definition:
FragmentationFlavZpT.h:172
Pythia8::StringFragmentation
Definition:
StringFragmentation.h:84
Pythia8::StringZ
Definition:
FragmentationFlavZpT.h:124
Pythia8::Rndm
Definition:
Basics.h:46
Pythia8::HVStringZ
Definition:
HiddenValleyFragmentation.h:78
Pythia8::HiddenValleyFragmentation
Definition:
HiddenValleyFragmentation.h:111
Pythia8::ColConfig
Definition:
FragmentationSystems.h:59
Pythia8::HVStringPT
Definition:
HiddenValleyFragmentation.h:59
Pythia8::FlavContainer
Definition:
FragmentationFlavZpT.h:31
Pythia8::StringFlav
Definition:
FragmentationFlavZpT.h:69
Pythia8::MiniStringFragmentation
Definition:
MiniStringFragmentation.h:29
Pythia8::ParticleData
Definition:
ParticleData.h:332
Pythia8::Settings
Definition:
Settings.h:106
Generated by
1.8.5