8 #ifndef Pythia8_HiddenValleyFragmentation_H
9 #define Pythia8_HiddenValleyFragmentation_H
11 #include "Pythia8/Basics.h"
12 #include "Pythia8/Event.h"
13 #include "Pythia8/FragmentationFlavZpT.h"
14 #include "Pythia8/FragmentationSystems.h"
15 #include "Pythia8/Info.h"
16 #include "Pythia8/MiniStringFragmentation.h"
17 #include "Pythia8/ParticleData.h"
18 #include "Pythia8/PythiaStdlib.h"
19 #include "Pythia8/Settings.h"
20 #include "Pythia8/StringFragmentation.h"
28 class HVStringFlav :
public StringFlav {
39 void init(Settings& settings, ParticleData* particleDataPtrIn,
40 Rndm* rndmPtrIn, Info* infoPtrIn);
43 FlavContainer pick(FlavContainer& flavOld,
double,
double);
46 int combine(FlavContainer& flav1, FlavContainer& flav2);
60 class HVStringPT :
public StringPT {
71 void init(Settings& settings, ParticleData* particleDataPtrIn,
72 Rndm* rndmPtrIn, Info* infoPtrIn);
80 class HVStringZ :
public StringZ {
91 void init(Settings& settings, ParticleData& particleData,
92 Rndm* rndmPtrIn, Info* infoPtrIn);
95 double zFrag(
int idOld,
int idNew = 0,
double mT2 = 1.);
98 virtual double stopMass() {
return 1.5 * mhvMeson;}
99 virtual double stopNewFlav() {
return 2.0;}
100 virtual double stopSmear() {
return 0.2;}
105 double mqv2, bmqv2, rFactqv, mhvMeson;
114 class HiddenValleyFragmentation {
119 HiddenValleyFragmentation() : doHVfrag(false), hvFlavSelPtr(NULL),
120 hvPTSelPtr(NULL), hvZSelPtr(NULL) {}
123 ~HiddenValleyFragmentation() {
if (doHVfrag) {
124 if (hvZSelPtr)
delete hvZSelPtr;
125 if (hvPTSelPtr)
delete hvPTSelPtr;
126 if (hvFlavSelPtr)
delete hvFlavSelPtr;} }
129 bool init(Info* infoPtrIn, Settings& settings,
130 ParticleData* particleDataPtrIn, Rndm* rndmPtrIn);
133 bool fragment(
Event& event);
141 ParticleData* particleDataPtr;
148 int nFlav, hvOldSize, hvNewSize;
149 double mhvMeson, mSys;
150 vector<int> ihvParton;
153 ColConfig hvColConfig;
159 StringFragmentation hvStringFrag;
162 MiniStringFragmentation hvMinistringFrag;
165 StringFlav* hvFlavSelPtr;
166 StringPT* hvPTSelPtr;
170 bool extractHVevent(
Event& event);
173 bool collapseToMeson();
176 bool insertHVevent(
Event& event);
184 #endif // Pythia8_HiddenValleyFragmentation_H