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 {
33 HVStringFlav() : nFlav(), probVector() {}
42 FlavContainer pick(FlavContainer& flavOld,
double,
double,
bool);
45 int combine(FlavContainer& flav1, FlavContainer& flav2);
59 class HVStringPT :
public StringPT {
78 class HVStringZ :
public StringZ {
83 HVStringZ() : mqv2(), bmqv2(), rFactqv(), mhvMeson() {}
86 virtual ~HVStringZ() {}
92 double zFrag(
int idOld,
int idNew = 0,
double mT2 = 1.);
95 virtual double stopMass() {
return 1.5 * mhvMeson;}
96 virtual double stopNewFlav() {
return 2.0;}
97 virtual double stopSmear() {
return 0.2;}
102 double mqv2, bmqv2, rFactqv, mhvMeson;
111 class HiddenValleyFragmentation :
public PhysicsBase {
116 HiddenValleyFragmentation() : doHVfrag(false), nFlav(), hvOldSize(),
117 hvNewSize(), mhvMeson(), mSys() {}
123 bool fragment(
Event& event);
127 virtual void onInitInfoPtr()
override {
128 registerSubObject(hvStringFrag);
129 registerSubObject(hvMinistringFrag);
130 registerSubObject(hvFlavSel);
131 registerSubObject(hvPTSel);
132 registerSubObject(hvZSel);
139 int nFlav, hvOldSize, hvNewSize;
140 double mhvMeson, mSys;
141 vector<int> ihvParton;
144 ColConfig hvColConfig;
150 StringFragmentation hvStringFrag;
153 MiniStringFragmentation hvMinistringFrag;
156 StringFlav hvFlavSel;
161 bool extractHVevent(
Event& event);
164 bool collapseToMeson();
167 bool insertHVevent(
Event& event);
175 #endif // Pythia8_HiddenValleyFragmentation_H