Page Menu
Home
HEPForge
Search
Configure Global Search
Log In
Files
F7879391
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
36 KB
Subscribers
None
View Options
diff --git a/Models/General/ModelGenerator.cc b/Models/General/ModelGenerator.cc
--- a/Models/General/ModelGenerator.cc
+++ b/Models/General/ModelGenerator.cc
@@ -1,419 +1,418 @@
// -*- C++ -*-
//
// ModelGenerator.cc is a part of Herwig++ - A multi-purpose Monte Carlo event generator
// Copyright (C) 2002-2011 The Herwig Collaboration
//
// Herwig++ is licenced under version 2 of the GPL, see COPYING for details.
// Please respect the MCnet academic guidelines, see GUIDELINES for details.
//
//
// This is the implementation of the non-inlined, non-templated member
// functions of the ModelGenerator class.
//
#include "ModelGenerator.h"
#include "ThePEG/Interface/ClassDocumentation.h"
#include "ThePEG/Interface/Reference.h"
#include "ThePEG/Interface/RefVector.h"
#include "ThePEG/Interface/Switch.h"
#include "ThePEG/Interface/Parameter.h"
#include "ThePEG/Persistency/PersistentOStream.h"
#include "ThePEG/Persistency/PersistentIStream.h"
#include "ThePEG/PDT/DecayMode.h"
#include "ThePEG/Repository/CurrentGenerator.h"
#include "BSMWidthGenerator.h"
#include "Herwig++/PDT/GenericMassGenerator.h"
#include "ThePEG/Repository/BaseRepository.h"
using namespace Herwig;
IBPtr ModelGenerator::clone() const {
return new_ptr(*this);
}
IBPtr ModelGenerator::fullclone() const {
return new_ptr(*this);
}
void ModelGenerator::persistentOutput(PersistentOStream & os) const {
os << hardProcessConstructors_ << _theDecayConstructor << particles_
<< offshell_ << Offsel_ << BRnorm_
<< Npoints_ << Iorder_ << BWshape_ << brMin_ << decayOutput_;
}
void ModelGenerator::persistentInput(PersistentIStream & is, int) {
is >> hardProcessConstructors_ >> _theDecayConstructor >> particles_
>> offshell_ >> Offsel_ >> BRnorm_
>> Npoints_ >> Iorder_ >> BWshape_ >> brMin_ >> decayOutput_;
}
ClassDescription<ModelGenerator> ModelGenerator::initModelGenerator;
// Definition of the static class description member.
void ModelGenerator::Init() {
static ClassDocumentation<ModelGenerator> documentation
("This class controls the the use of BSM physics.",
"BSM physics was produced using the algorithm of "
"\\cite{Gigg:2007cr,Gigg:2008yc}",
"\\bibitem{Gigg:2007cr} M.~Gigg and P.~Richardson, \n"
"Eur.\\ Phys.\\ J.\\ C {\\bf 51} (2007) 989.\n"
"%%CITATION = EPHJA,C51,989;%%\n"
" %\\cite{Gigg:2008yc}\n"
"\\bibitem{Gigg:2008yc}\n"
" M.~A.~Gigg and P.~Richardson,\n"
" %``Simulation of Finite Width Effects in Physics Beyond the Standard Model,''\n"
" arXiv:0805.3037 [hep-ph].\n"
" %%CITATION = ARXIV:0805.3037;%%\n"
);
static RefVector<ModelGenerator,HardProcessConstructor>
interfaceHardProcessConstructors
("HardProcessConstructors",
"The objects to construct hard processes",
&ModelGenerator::hardProcessConstructors_, -1,
false, false, true, false, false);
static Reference<ModelGenerator,Herwig::DecayConstructor>
interfaceDecayConstructor
("DecayConstructor",
"Pointer to DecayConstructor helper class",
&ModelGenerator::_theDecayConstructor, false, false, true, false);
static RefVector<ModelGenerator,ThePEG::ParticleData> interfaceModelParticles
("DecayParticles",
"ParticleData pointers to the particles requiring spin correlation "
"decayers. If decay modes do not exist they will also be created.",
&ModelGenerator::particles_, -1, false, false, true, false);
static RefVector<ModelGenerator,ParticleData> interfaceOffshell
("Offshell",
"The particles to treat as off-shell",
&ModelGenerator::offshell_, -1, false, false, true, false);
static Switch<ModelGenerator,int> interfaceWhichOffshell
("WhichOffshell",
"A switch to determine which particles to create mass and width "
"generators for.",
&ModelGenerator::Offsel_, 0, false, false);
static SwitchOption interfaceWhichOffshellSelected
(interfaceWhichOffshell,
"Selected",
"Only create mass and width generators for the particles specified",
0);
static SwitchOption interfaceWhichOffshellAll
(interfaceWhichOffshell,
"All",
"Treat all particles specified in the DecayParticles "
"list as off-shell",
1);
static Switch<ModelGenerator,bool> interfaceBRNormalize
("BRNormalize",
"Whether to normalize the partial widths to BR*total width for an "
"on-shell particle",
&ModelGenerator::BRnorm_, true, false, false);
static SwitchOption interfaceBRNormalizeNormalize
(interfaceBRNormalize,
"Yes",
"Normalize the partial widths",
true);
static SwitchOption interfaceBRNormalizeNoNormalize
(interfaceBRNormalize,
"No",
"Do not normalize the partial widths",
false);
static Parameter<ModelGenerator,int> interfacePoints
("InterpolationPoints",
"Number of points to use for interpolation tables when needed",
&ModelGenerator::Npoints_, 50, 5, 1000,
false, false, true);
static Parameter<ModelGenerator,unsigned int>
interfaceInterpolationOrder
("InterpolationOrder", "The interpolation order for the tables",
&ModelGenerator::Iorder_, 1, 1, 5,
false, false, Interface::limited);
static Switch<ModelGenerator,int> interfaceBreitWignerShape
("BreitWignerShape",
"Controls the shape of the mass distribution generated",
&ModelGenerator::BWshape_, 0, false, false);
static SwitchOption interfaceBreitWignerShapeDefault
(interfaceBreitWignerShape,
"Default",
"Running width with q in numerator and denominator width factor",
0);
static SwitchOption interfaceBreitWignerShapeFixedWidth
(interfaceBreitWignerShape,
"FixedWidth",
"Use a fixed width",
1);
static SwitchOption interfaceBreitWignerShapeNoq
(interfaceBreitWignerShape,
"Noq",
"Use M rather than q in the numerator and denominator width factor",
2);
static SwitchOption interfaceBreitWignerShapeNoNumerator
(interfaceBreitWignerShape,
"NoNumerator",
"Neglect the numerator factors",
3);
static Parameter<ModelGenerator,double> interfaceMinimumBR
("MinimumBR",
"The minimum branching fraction to include",
&ModelGenerator::brMin_, 1e-6, 0.0, 1.0,
false, false, Interface::limited);
static Switch<ModelGenerator,unsigned int> interfaceDecayOutput
("DecayOutput",
"Option to control the output of the decay mode information",
&ModelGenerator::decayOutput_, 1, false, false);
static SwitchOption interfaceDecayOutputNone
(interfaceDecayOutput,
"None",
"No output",
0);
static SwitchOption interfaceDecayOutputPlain
(interfaceDecayOutput,
"Plain",
"Default plain text output",
1);
static SwitchOption interfaceDecayOutputSLHA
(interfaceDecayOutput,
"SLHA",
"Output in the Susy Les Houches Accord format",
2);
}
namespace {
/// Helper function for sorting by mass
inline bool massIsLess(tcPDPtr a, tcPDPtr b) {
return a->mass() < b->mass();
}
}
void ModelGenerator::doinit() {
useMe();
Interfaced::doinit();
// make sure the model is initialized
Ptr<Herwig::StandardModel>::pointer model
= dynamic_ptr_cast<Ptr<Herwig::StandardModel>::pointer>(generator()->standardModel());
model->init();
// and the vertices
for(size_t iv = 0; iv < model->numberOfVertices(); ++iv)
model->vertex(iv)->init();
// sort DecayParticles list by mass
sort(particles_.begin(),particles_.end(),
massIsLess);
//create mass and width generators for the requested particles
PDVector::iterator pit, pend;
if( Offsel_ == 0 ) {
pit = offshell_.begin();
pend = offshell_.end();
}
else {
pit = particles_.begin();
pend = particles_.end();
}
for(; pit != pend; ++pit)
createWidthGenerator(*pit);
//create decayers and decaymodes (if necessary)
if( _theDecayConstructor ) {
_theDecayConstructor->init();
_theDecayConstructor->createDecayers(particles_);
}
// write out decays with spin correlations
ostream & os = CurrentGenerator::current().misc();
ofstream ofs;
if ( decayOutput_ >1 ) {
string filename
= CurrentGenerator::current().filename() + "-BR.spc";
ofs.open(filename.c_str());
}
if(decayOutput_!=0) {
if(decayOutput_==1) {
os << "# The decay modes listed below will have spin\n"
<< "# correlations included when they are generated.\n#\n#";
}
else {
ofs << "# Herwig++ decay tables in SUSY Les Houches accord format\n";
ofs << "Block DCINFO # Program information\n";
ofs << "1 Herwig++ # Decay Calculator\n";
ofs << "2 " << generator()->strategy()->versionstring()
<< " # Version number\n";
}
}
pit = particles_.begin();
pend = particles_.end();
for( ; pit != pend; ++pit) {
tPDPtr parent = *pit;
// Check decays for ones where quarks cannot be put on constituent
// mass-shell
checkDecays(parent);
parent->reset();
parent->update();
if( parent->CC() ) parent->CC()->synchronize();
if( parent->decaySelector().empty() ) {
parent->stable(true);
parent->width(ZERO);
parent->massGenerator(tGenericMassGeneratorPtr());
parent->widthGenerator(tGenericWidthGeneratorPtr());
}
else {
if ( decayOutput_ == 2 )
writeDecayModes(ofs, parent);
else
writeDecayModes(os, parent);
}
if( parent->massGenerator() ) {
parent->widthCut(5.*parent->width());
parent->massGenerator()->reset();
if(decayOutput_==1)
os << "# " <<parent->PDGName() << " will be considered off-shell.\n#\n";
}
if( parent->widthGenerator() ) parent->widthGenerator()->reset();
}
//Now construct hard processes given that we know which
//objects have running widths
for(unsigned int ix=0;ix<hardProcessConstructors_.size();++ix) {
hardProcessConstructors_[ix]->init();
hardProcessConstructors_[ix]->constructDiagrams();
}
}
void ModelGenerator::checkDecays(PDPtr parent) {
if( parent->stable() ) return;
DecaySet::iterator dit = parent->decayModes().begin();
DecaySet::iterator dend = parent->decayModes().end();
Energy oldwidth(parent->width()), newwidth(ZERO);
bool rescalebrat(false);
double brsum(0.);
for(; dit != dend; ++dit ) {
if( !(**dit).on() ) continue;
Energy release((**dit).parent()->mass());
tPDVector::const_iterator pit = (**dit).orderedProducts().begin();
tPDVector::const_iterator pend =(**dit).orderedProducts().end();
for( ; pit != pend; ++pit ) {
release -= (**pit).constituentMass();
}
if( (**dit).brat() < brMin_ || release < ZERO ) {
if( release < ZERO )
cerr << "Warning: The shower cannot be generated using this decay "
<< (**dit).tag() << " because it is too close to threshold. It "
<< "will be switched off and the branching fractions of the "
<< "remaining modes rescaled.\n";
rescalebrat = true;
generator()->preinitInterface(*dit, "OnOff", "set", "Off");
generator()->preinitInterface(*dit, "BranchingRatio",
"set", "0.0");
}
else {
brsum += (**dit).brat();
newwidth += (**dit).brat()*oldwidth;
}
}
if( rescalebrat || (abs(brsum - 1.) > 1e-12) ) {
dit = parent->decayModes().begin();
dend = parent->decayModes().end();
double factor = oldwidth/newwidth;
brsum = 0.;
for( ; dit != dend; ++dit ) {
if( !(**dit).on() ) continue;
double newbrat = ((**dit).brat())*factor;
brsum += newbrat;
ostringstream brf;
brf << setprecision(13) << newbrat;
generator()->preinitInterface(*dit, "BranchingRatio",
"set", brf.str());
}
parent->width(newwidth);
if( newwidth > ZERO ) parent->cTau(hbarc/newwidth);
}
}
void ModelGenerator::writeDecayModes(ostream & os, tcPDPtr parent) const {
if(decayOutput_==1) {
os << " Parent: " << parent->PDGName() << " Mass (GeV): "
<< parent->mass()/GeV << " Total Width (GeV): "
<< parent->width()/GeV << endl;
os << std::left << std::setw(40) << '#'
<< std::left << std::setw(20) << "Partial Width/GeV"
- << "BR\n";
+ << "BR" << endl;
Selector<tDMPtr>::const_iterator dit = parent->decaySelector().begin();
Selector<tDMPtr>::const_iterator dend = parent->decaySelector().end();
for(; dit != dend; ++dit)
os << std::left << std::setw(40) << (*dit).second->tag()
<< std::left << std::setw(20) << (*dit).second->brat()*parent->width()/GeV
-// << (*dit).second->brat() << '\n';
- << '\n';
- os << "#\n#";
+ << (*dit).second->brat() << '\n';
+ os << endl;
}
else if(decayOutput_==2) {
os << "# \t PDG \t Width\n";
os << "DECAY\t" << parent->id() << "\t" << parent->width()/GeV << "\t # " << parent->PDGName() << "\n";
Selector<tDMPtr>::const_iterator dit = parent->decaySelector().begin();
Selector<tDMPtr>::const_iterator dend = parent->decaySelector().end();
for(; dit != dend; ++dit) {
os << "\t" << std::left << std::setw(10)
<< (*dit).second->brat() << "\t" << (*dit).second->orderedProducts().size()
<< "\t";
for(unsigned int ix=0;ix<(*dit).second->orderedProducts().size();++ix)
os << std::right << std::setw(10)
<< (*dit).second->orderedProducts()[ix]->id() ;
for(unsigned int ix=(*dit).second->orderedProducts().size();ix<4;++ix)
- os << "\t";
+ os << " ";
os << "# " << (*dit).second->tag() << "\n";
}
}
}
void ModelGenerator::createWidthGenerator(tPDPtr p) {
string wn = p->fullName() + string("-WGen");
string mn = p->fullName() + string("-MGen");
GenericMassGeneratorPtr mgen = dynamic_ptr_cast<GenericMassGeneratorPtr>
(generator()->preinitCreate("Herwig::GenericMassGenerator", mn));
BSMWidthGeneratorPtr wgen = dynamic_ptr_cast<BSMWidthGeneratorPtr>
(generator()->preinitCreate("Herwig::BSMWidthGenerator", wn));
//set the particle interface
generator()->preinitInterface(mgen, "Particle", "set", p->fullName());
generator()->preinitInterface(wgen, "Particle", "set", p->fullName());
//set the generator interfaces in the ParticleData object
generator()->preinitInterface(p, "Mass_generator","set", mn);
generator()->preinitInterface(p, "Width_generator","set", wn);
//allow the branching fraction of this particle type to vary
p->variableRatio(true);
if( p->CC() ) p->CC()->variableRatio(true);
//initialize the generators
generator()->preinitInterface(mgen, "Initialize", "set", "Yes");
generator()->preinitInterface(wgen, "Initialize", "set", "Yes");
string norm = BRnorm_ ? "Yes" : "No";
generator()->preinitInterface(wgen, "BRNormalize", "set", norm);
ostringstream os;
os << Npoints_;
generator()->preinitInterface(wgen, "InterpolationPoints", "set",
os.str());
os.str("");
os << Iorder_;
generator()->preinitInterface(wgen, "InterpolationOrder", "set",
os.str());
os.str("");
os << BWshape_;
generator()->preinitInterface(mgen, "BreitWignerShape", "set",
os.str());
}
diff --git a/src/LHC-MSSM.in b/src/LHC-MSSM.in
--- a/src/LHC-MSSM.in
+++ b/src/LHC-MSSM.in
@@ -1,69 +1,69 @@
##################################################
# Example generator for the MSSM
# The best way to use this is to make your own
# copy of this file and edit that as you require.
#
# The first section loads the model file which
# does not contain anything that users need to touch.
#
# The second section contains the user settings.
###################################################
read MSSM.model
cd /Herwig/NewPhysics
##################################################
#
# This section contains the user defined settings
#
##################################################
# --- Hard Process ----
# The particle name can be found in the relevant model file
# by searching for its PDG code and noting the text
# '/Herwig/Particles/###' where the hashes denote the name
# Switch to decide whether to include EW diagrams in the
# hard process (On by default)
set HPConstructor:IncludeEW No
# Example hard process: Incoming proton, outgoing squarks
insert HPConstructor:Incoming 0 /Herwig/Particles/g
insert HPConstructor:Incoming 1 /Herwig/Particles/u
insert HPConstructor:Incoming 2 /Herwig/Particles/ubar
insert HPConstructor:Incoming 3 /Herwig/Particles/d
insert HPConstructor:Incoming 4 /Herwig/Particles/dbar
insert HPConstructor:Outgoing 0 /Herwig/Particles/~u_L
insert HPConstructor:Outgoing 1 /Herwig/Particles/~u_Lbar
insert HPConstructor:Outgoing 2 /Herwig/Particles/~d_L
insert HPConstructor:Outgoing 3 /Herwig/Particles/~d_Lbar
# --- Perturbative Decays ---
# Read in the spectrum file and optional decay table.
# If a decay table is in a separate file
# then add another 'setup' line with that
# file as the argument. The provided
# spectrum file is an example using SPheno 2.2.3
setup MSSM/Model SPhenoSPS1a.spc
# To disable a particular decay mode, add it's tag to the DisableModes
# interface of the DecayConstructor object, i.e.
#insert DecayConstructor:DisableModes 0 ~u_L->~chi_20,u;
#insert DecayConstructor:DisableModes 1 ~chi_20->~e_R-,e+;
# etc ...
# To set a minimum allowed branching fraction (the default is shown)
-set NewModel:MinimumBR 1e-20
+#set NewModel:MinimumBR 1e-6
# Intrinsic pT tune extrapolated to LHC energy
set /Herwig/Shower/Evolver:IntrinsicPtGaussian 2.2*GeV
# Other parameters for run
cd /Herwig/Generators
set LHCGenerator:NumberOfEvents 10000000
set LHCGenerator:RandomNumberGenerator:Seed 31122001
set LHCGenerator:PrintEvent 10
set LHCGenerator:MaxErrors 10000
saverun LHC-MSSM LHCGenerator
diff --git a/src/MSSM.model b/src/MSSM.model
--- a/src/MSSM.model
+++ b/src/MSSM.model
@@ -1,401 +1,401 @@
##################################################
# Common setup for the MSSM
#
# See LHC-MSSM.in or ILC-MSSM.in for example usage
#
# This file does not contain anything that
# users need to touch. User settings are in
# ???-MSSM.in
#
###################################################
#
# Create particle content
#
###################################################
cd /Herwig/Particles
create ThePEG::ParticleData H0
setup H0 35 H0 500.0 0.0 0.0 0.0 0 0 1 0
create ThePEG::ParticleData A0
setup A0 36 A0 500.0 0.0 0.0 0.0 0 0 1 0
create ThePEG::ParticleData H+
setup H+ 37 H+ 500.0 0.0 0.0 0.0 3 0 1 0
create ThePEG::ParticleData H-
setup H- -37 H- 500.0 0.0 0.0 0.0 -3 0 1 0
makeanti H+ H-
create ThePEG::ParticleData ~d_L
setup ~d_L 1000001 ~d_L 500.0 0.0 0.0 0.0 -1 3 1 0
create ThePEG::ParticleData ~d_Lbar
setup ~d_Lbar -1000001 ~d_Lbar 500.0 0.0 0.0 0.0 1 -3 1 0
makeanti ~d_L ~d_Lbar
create ThePEG::ParticleData ~u_L
setup ~u_L 1000002 ~u_L 500.0 0.0 0.0 0.0 2 3 1 0
create ThePEG::ParticleData ~u_Lbar
setup ~u_Lbar -1000002 ~u_Lbar 500.0 0.0 0.0 0.0 -2 -3 1 0
makeanti ~u_L ~u_Lbar
create ThePEG::ParticleData ~s_L
setup ~s_L 1000003 ~s_L 500.0 0.0 0.0 0.0 -1 3 1 0
create ThePEG::ParticleData ~s_Lbar
setup ~s_Lbar -1000003 ~s_Lbar 500.0 0.0 0.0 0.0 1 -3 1 0
makeanti ~s_L ~s_Lbar
create ThePEG::ParticleData ~c_L
setup ~c_L 1000004 ~c_L 500.0 0.0 0.0 0.0 2 3 1 0
create ThePEG::ParticleData ~c_Lbar
setup ~c_Lbar -1000004 ~c_Lbar 500.0 0.0 0.0 0.0 -2 -3 1 0
makeanti ~c_L ~c_Lbar
create ThePEG::ParticleData ~b_1
setup ~b_1 1000005 ~b_1 500.0 0.0 0.0 0.0 -1 3 1 0
create ThePEG::ParticleData ~b_1bar
setup ~b_1bar -1000005 ~b_1bar 500.0 0.0 0.0 0.0 1 -3 1 0
makeanti ~b_1 ~b_1bar
create ThePEG::ParticleData ~t_1
setup ~t_1 1000006 ~t_1 500.0 0.0 0.0 0.0 2 3 1 0
create ThePEG::ParticleData ~t_1bar
setup ~t_1bar -1000006 ~t_1bar 500.0 0.0 0.0 0.0 -2 -3 1 0
makeanti ~t_1 ~t_1bar
create ThePEG::ParticleData ~e_L-
setup ~e_L- 1000011 ~e_L- 500.0 0.0 0.0 0.0 -3 0 1 0
create ThePEG::ParticleData ~e_L+
setup ~e_L+ -1000011 ~e_L+ 500.0 0.0 0.0 0.0 3 0 1 0
makeanti ~e_L- ~e_L+
create ThePEG::ParticleData ~nu_eL
setup ~nu_eL 1000012 ~nu_eL 500.0 0.0 0.0 0.0 0 0 1 0
create ThePEG::ParticleData ~nu_eLbar
setup ~nu_eLbar -1000012 ~nu_eLbar 500.0 0.0 0.0 0.0 0 0 1 0
makeanti ~nu_eL ~nu_eLbar
create ThePEG::ParticleData ~mu_L-
setup ~mu_L- 1000013 ~mu_L- 500.0 0.0 0.0 0.0 -3 0 1 0
create ThePEG::ParticleData ~mu_L+
setup ~mu_L+ -1000013 ~mu_L+ 500.0 0.0 0.0 0.0 3 0 1 0
makeanti ~mu_L- ~mu_L+
create ThePEG::ParticleData ~nu_muL
setup ~nu_muL 1000014 ~nu_muL 500.0 0.0 0.0 0.0 0 0 1 0
create ThePEG::ParticleData ~nu_muLbar
setup ~nu_muLbar -1000014 ~nu_muLbar 500.0 0.0 0.0 0.0 0 0 1 0
makeanti ~nu_muL ~nu_muLbar
create ThePEG::ParticleData ~tau_1-
setup ~tau_1- 1000015 ~tau_1- 500.0 0.0 0.0 0.0 -3 0 1 0
create ThePEG::ParticleData ~tau_1+
setup ~tau_1+ -1000015 ~tau_1+ 500.0 0.0 0.0 0.0 3 0 1 0
makeanti ~tau_1- ~tau_1+
create ThePEG::ParticleData ~nu_tauL
setup ~nu_tauL 1000016 ~nu_tauL 500.0 0.0 0.0 0.0 0 0 1 0
create ThePEG::ParticleData ~nu_tauLbar
setup ~nu_tauLbar -1000016 ~nu_tauLbar 500.0 0.0 0.0 0.0 0 0 1 0
makeanti ~nu_tauL ~nu_tauLbar
create ThePEG::ParticleData ~g
setup ~g 1000021 ~g 500.0 0.0 0.0 0.0 0 8 2 0
create ThePEG::ParticleData ~chi_10
setup ~chi_10 1000022 ~chi_10 500.0 0.0 0.0 0.0 0 0 2 0
create ThePEG::ParticleData ~chi_20
setup ~chi_20 1000023 ~chi_20 500.0 0.0 0.0 0.0 0 0 2 0
create ThePEG::ParticleData ~chi_1+
setup ~chi_1+ 1000024 ~chi_1+ 500.0 0.0 0.0 0.0 3 0 2 0
create ThePEG::ParticleData ~chi_1-
setup ~chi_1- -1000024 ~chi_1- 500.0 0.0 0.0 0.0 -3 0 2 0
makeanti ~chi_1+ ~chi_1-
create ThePEG::ParticleData ~chi_30
setup ~chi_30 1000025 ~chi_30 500.0 0.0 0.0 0.0 0 0 2 0
create ThePEG::ParticleData ~chi_40
setup ~chi_40 1000035 ~chi_40 500.0 0.0 0.0 0.0 0 0 2 0
create ThePEG::ParticleData ~chi_2+
setup ~chi_2+ 1000037 ~chi_2+ 500.0 0.0 0.0 0.0 3 0 2 0
create ThePEG::ParticleData ~chi_2-
setup ~chi_2- -1000037 ~chi_2- 500.0 0.0 0.0 0.0 -3 0 2 0
makeanti ~chi_2+ ~chi_2-
create ThePEG::ParticleData ~gravitino
setup ~gravitino 1000039 ~gravitino 500.0 0.0 0.000010 0.0 0 0 4 1
create ThePEG::ParticleData ~d_R
setup ~d_R 2000001 ~d_R 500.0 0.0 0.0 0.0 -1 3 1 0
create ThePEG::ParticleData ~d_Rbar
setup ~d_Rbar -2000001 ~d_Rbar 500.0 0.0 0.0 0.0 1 -3 1 0
makeanti ~d_R ~d_Rbar
create ThePEG::ParticleData ~u_R
setup ~u_R 2000002 ~u_R 500.0 0.0 0.0 0.0 2 3 1 0
create ThePEG::ParticleData ~u_Rbar
setup ~u_Rbar -2000002 ~u_Rbar 500.0 0.0 0.0 0.0 -2 -3 1 0
makeanti ~u_R ~u_Rbar
create ThePEG::ParticleData ~s_R
setup ~s_R 2000003 ~s_R 500.0 0.0 0.0 0.0 -1 3 1 0
create ThePEG::ParticleData ~s_Rbar
setup ~s_Rbar -2000003 ~s_Rbar 500.0 0.0 0.0 0.0 1 -3 1 0
makeanti ~s_R ~s_Rbar
create ThePEG::ParticleData ~c_R
setup ~c_R 2000004 ~c_R 500.0 0.0 0.0 0.0 2 3 1 0
create ThePEG::ParticleData ~c_Rbar
setup ~c_Rbar -2000004 ~c_Rbar 500.0 0.0 0.0 0.0 -2 -3 1 0
makeanti ~c_R ~c_Rbar
create ThePEG::ParticleData ~b_2
setup ~b_2 2000005 ~b_2 500.0 0.0 0.0 0.0 -1 3 1 0
create ThePEG::ParticleData ~b_2bar
setup ~b_2bar -2000005 ~b_2bar 500.0 0.0 0.0 0.0 1 -3 1 0
makeanti ~b_2 ~b_2bar
create ThePEG::ParticleData ~t_2
setup ~t_2 2000006 ~t_2 500.0 0.0 0.0 0.0 2 3 1 0
create ThePEG::ParticleData ~t_2bar
setup ~t_2bar -2000006 ~t_2bar 500.0 0.0 0.0 0.0 -2 -3 1 0
makeanti ~t_2 ~t_2bar
create ThePEG::ParticleData ~e_R-
setup ~e_R- 2000011 ~e_R- 500.0 0.0 0.0 0.0 -3 0 1 0
create ThePEG::ParticleData ~e_R+
setup ~e_R+ -2000011 ~e_R+ 500.0 0.0 0.0 0.0 3 0 1 0
makeanti ~e_R- ~e_R+
create ThePEG::ParticleData ~nu_eR
setup ~nu_eR 2000012 ~nu_eR 500.0 0.0 0.000010 0.0 0 0 1 1
create ThePEG::ParticleData ~nu_eRbar
setup ~nu_eRbar -2000012 ~nu_eRbar 500.0 0.0 0.000010 0.0 0 0 1 1
makeanti ~nu_eR ~nu_eRbar
create ThePEG::ParticleData ~mu_R-
setup ~mu_R- 2000013 ~mu_R- 500.0 0.0 0.0 0.0 -3 0 1 0
create ThePEG::ParticleData ~mu_R+
setup ~mu_R+ -2000013 ~mu_R+ 500.0 0.0 0.0 0.0 3 0 1 0
makeanti ~mu_R- ~mu_R+
create ThePEG::ParticleData ~nu_muR
setup ~nu_muR 2000014 ~nu_muR 500.0 0.0 0.000010 0.0 0 0 1 1
create ThePEG::ParticleData ~nu_muRbar
setup ~nu_muRbar -2000014 ~nu_muRbar 500.0 0.0 0.000010 0.0 0 0 1 1
makeanti ~nu_muR ~nu_muRbar
create ThePEG::ParticleData ~tau_2-
setup ~tau_2- 2000015 ~tau_2- 500.0 0.0 0.0 0.0 -3 0 1 0
create ThePEG::ParticleData ~tau_2+
setup ~tau_2+ -2000015 ~tau_2+ 500.0 0.0 0.0 0.0 3 0 1 0
makeanti ~tau_2- ~tau_2+
create ThePEG::ParticleData ~nu_tauR
setup ~nu_tauR 2000016 ~nu_tauR 500.0 0.0 0.000010 0.0 0 0 1 1
create ThePEG::ParticleData ~nu_tauRbar
setup ~nu_tauRbar -2000016 ~nu_tauRbar 500.0 0.0 0.000010 0.0 0 0 1 1
makeanti ~nu_tauR ~nu_tauRbar
###################################################
#
# Main directory and model object
#
###################################################
mkdir /Herwig/NewPhysics/MSSM
cd /Herwig/NewPhysics/MSSM
create Herwig::MSSM Model HwSusy.so
# SM couplings
set Model:QCD/RunningAlphaS /Herwig/AlphaS
set Model:EW/RunningAlphaEM /Herwig/AlphaEM
set Model:EW/CKM /Herwig/CKM
set Model:RunningMass /Herwig/RunningMass
###################################################
#
# Vertices
#
###################################################
# create MSSM vertices
mkdir /Herwig/Vertices/MSSM
cd /Herwig/Vertices/MSSM
# MSSM
library HwSusy.so
create Herwig::SSWSSVertex MSSM_WSS
create Herwig::SSNFSVertex MSSM_NFS
create Herwig::SSGFSVertex MSSM_GFS
create Herwig::SSHSFSFVertex MSSM_HSS
create Herwig::SSCFSVertex MSSM_CFS
create Herwig::SSGSSVertex MSSM_GSS
create Herwig::SSGNGVertex MSSM_GNG
create Herwig::SSGGSQSQVertex MSSM_GGSS
create Herwig::SSGSGSGVertex MSSM_GGOGO
create Herwig::SSNNZVertex MSSM_NNZ
create Herwig::SSNNPVertex MSSM_NNP
create Herwig::SSCCZVertex MSSM_CCZ
create Herwig::SSCNWVertex MSSM_CNW
create Herwig::SSFFHVertex MSSM_FFH
create Herwig::SSGOGOHVertex MSSM_GOGOH
create Herwig::SSWWHVertex MSSM_WWH
create Herwig::SSWHHVertex MSSM_WHH
create Herwig::SSHHHVertex MSSM_HHH
create Herwig::SSHGGVertex MSSM_HGG
create Herwig::SSHPPVertex MSSM_HPP
create Herwig::SSWWHHVertex MSSM_WWHH
create Herwig::SSNCTVertex MSSM_NCT
create Herwig::SSGVNHVertex MSSM_GVNH
create Herwig::SSGVFSVertex MSSM_GVFS
create Herwig::SSGVNVVertex MSSM_GVNV
cd /Herwig/NewPhysics/MSSM
# SM vertices
set Model:Vertex/FFZ /Herwig/Vertices/FFZVertex
set Model:Vertex/FFW /Herwig/Vertices/FFWVertex
set Model:Vertex/FFG /Herwig/Vertices/FFGVertex
set Model:Vertex/FFP /Herwig/Vertices/FFPVertex
set Model:Vertex/GGG /Herwig/Vertices/GGGVertex
set Model:Vertex/GGGG /Herwig/Vertices/GGGGVertex
set Model:Vertex/WWW /Herwig/Vertices/WWWVertex
set Model:Vertex/WWWW /Herwig/Vertices/WWWWVertex
# MSSM feynman rules
set Model:Vertex/WSFSF /Herwig/Vertices/MSSM/MSSM_WSS
set Model:Vertex/NFSF /Herwig/Vertices/MSSM/MSSM_NFS
set Model:Vertex/GFSF /Herwig/Vertices/MSSM/MSSM_GFS
set Model:Vertex/HSFSF /Herwig/Vertices/MSSM/MSSM_HSS
set Model:Vertex/CFSF /Herwig/Vertices/MSSM/MSSM_CFS
set Model:Vertex/GSFSF /Herwig/Vertices/MSSM/MSSM_GSS
set Model:Vertex/GGSQSQ /Herwig/Vertices/MSSM/MSSM_GGSS
set Model:Vertex/GSGSG /Herwig/Vertices/MSSM/MSSM_GGOGO
set Model:Vertex/GNG /Herwig/Vertices/MSSM/MSSM_GNG
set Model:Vertex/NNZ /Herwig/Vertices/MSSM/MSSM_NNZ
set Model:Vertex/NNP /Herwig/Vertices/MSSM/MSSM_NNP
set Model:Vertex/CCZ /Herwig/Vertices/MSSM/MSSM_CCZ
set Model:Vertex/CNW /Herwig/Vertices/MSSM/MSSM_CNW
set Model:Vertex/FFH /Herwig/Vertices/MSSM/MSSM_FFH
set Model:Vertex/GOGOH /Herwig/Vertices/MSSM/MSSM_GOGOH
set Model:Vertex/WWH /Herwig/Vertices/MSSM/MSSM_WWH
set Model:Vertex/SSWHH /Herwig/Vertices/MSSM/MSSM_WHH
set Model:Vertex/HHH /Herwig/Vertices/MSSM/MSSM_HHH
set Model:Vertex/HGG /Herwig/Vertices/MSSM/MSSM_HGG
set Model:Vertex/HPP /Herwig/Vertices/MSSM/MSSM_HPP
set Model:Vertex/WWHH /Herwig/Vertices/MSSM/MSSM_WWHH
set Model:Vertex/NCT /Herwig/Vertices/MSSM/MSSM_NCT
set Model:Vertex/GVNH /Herwig/Vertices/MSSM/MSSM_GVNH
set Model:Vertex/GVFS /Herwig/Vertices/MSSM/MSSM_GVFS
set Model:Vertex/GVNV /Herwig/Vertices/MSSM/MSSM_GVNV
###################################################
#
# Set up spin correlation Decayers
#
###################################################
cd /Herwig/NewPhysics
-set TwoBodyDC:CreateDecayModes Yes
-set ThreeBodyDC:CreateDecayModes Yes
-set WeakDecayConstructor:CreateDecayModes Yes
+set TwoBodyDC:CreateDecayModes No
+set ThreeBodyDC:CreateDecayModes No
+set WeakDecayConstructor:CreateDecayModes No
# switch on decays via weak current
insert DecayConstructor:NBodyDecayConstructors 0 WeakDecayConstructor
# exclude gravitino and effective vertices from three body decays
insert ThreeBodyDC:ExcludedVertices 0 /Herwig/Vertices/MSSM/MSSM_GVNH
insert ThreeBodyDC:ExcludedVertices 0 /Herwig/Vertices/MSSM/MSSM_GVFS
insert ThreeBodyDC:ExcludedVertices 0 /Herwig/Vertices/MSSM/MSSM_GVNV
insert ThreeBodyDC:ExcludedVertices 0 /Herwig/Vertices/MSSM/MSSM_HGG
insert ThreeBodyDC:ExcludedVertices 0 /Herwig/Vertices/MSSM/MSSM_HPP
insert ThreeBodyDC:ExcludedVertices 0 /Herwig/Vertices/MSSM/MSSM_NNP
insert ThreeBodyDC:ExcludedVertices 0 /Herwig/Vertices/MSSM/MSSM_GNG
insert ThreeBodyDC:ExcludedVertices 0 /Herwig/Vertices/MSSM/MSSM_NCT
# and hard processes
insert HPConstructor:ExcludedVertices 0 /Herwig/Vertices/MSSM/MSSM_GVNH
insert HPConstructor:ExcludedVertices 0 /Herwig/Vertices/MSSM/MSSM_GVFS
insert HPConstructor:ExcludedVertices 0 /Herwig/Vertices/MSSM/MSSM_GVNV
insert HPConstructor:ExcludedVertices 0 /Herwig/Vertices/MSSM/MSSM_HGG
insert HPConstructor:ExcludedVertices 0 /Herwig/Vertices/MSSM/MSSM_HPP
insert HPConstructor:ExcludedVertices 0 /Herwig/Vertices/MSSM/MSSM_NNP
insert HPConstructor:ExcludedVertices 0 /Herwig/Vertices/MSSM/MSSM_GNG
insert HPConstructor:ExcludedVertices 0 /Herwig/Vertices/MSSM/MSSM_NCT
insert NewModel:DecayParticles 0 /Herwig/Particles/~d_L
insert NewModel:DecayParticles 1 /Herwig/Particles/~u_L
insert NewModel:DecayParticles 2 /Herwig/Particles/~s_L
insert NewModel:DecayParticles 3 /Herwig/Particles/~c_L
insert NewModel:DecayParticles 4 /Herwig/Particles/~b_1
insert NewModel:DecayParticles 5 /Herwig/Particles/~t_1
insert NewModel:DecayParticles 6 /Herwig/Particles/~d_R
insert NewModel:DecayParticles 7 /Herwig/Particles/~u_R
insert NewModel:DecayParticles 8 /Herwig/Particles/~s_R
insert NewModel:DecayParticles 9 /Herwig/Particles/~c_R
insert NewModel:DecayParticles 10 /Herwig/Particles/~b_2
insert NewModel:DecayParticles 11 /Herwig/Particles/~t_2
insert NewModel:DecayParticles 12 /Herwig/Particles/~e_L-
insert NewModel:DecayParticles 13 /Herwig/Particles/~nu_eL
insert NewModel:DecayParticles 14 /Herwig/Particles/~mu_L-
insert NewModel:DecayParticles 15 /Herwig/Particles/~nu_muL
insert NewModel:DecayParticles 16 /Herwig/Particles/~tau_1-
insert NewModel:DecayParticles 17 /Herwig/Particles/~nu_tauL
insert NewModel:DecayParticles 18 /Herwig/Particles/~e_R-
insert NewModel:DecayParticles 19 /Herwig/Particles/~mu_R-
insert NewModel:DecayParticles 20 /Herwig/Particles/~tau_2-
insert NewModel:DecayParticles 21 /Herwig/Particles/~g
insert NewModel:DecayParticles 22 /Herwig/Particles/~chi_10
insert NewModel:DecayParticles 23 /Herwig/Particles/~chi_20
insert NewModel:DecayParticles 24 /Herwig/Particles/~chi_30
insert NewModel:DecayParticles 25 /Herwig/Particles/~chi_40
insert NewModel:DecayParticles 26 /Herwig/Particles/~chi_1+
insert NewModel:DecayParticles 27 /Herwig/Particles/~chi_2+
insert NewModel:DecayParticles 28 /Herwig/Particles/h0
insert NewModel:DecayParticles 29 /Herwig/Particles/H0
insert NewModel:DecayParticles 30 /Herwig/Particles/A0
insert NewModel:DecayParticles 31 /Herwig/Particles/H+
###################################################
#
# Shower stuff for coloured sparticles
#
###################################################
cd /Herwig/Shower
create Herwig::ZeroZeroOneSplitFn PhitoPhiGSplitFn
set PhitoPhiGSplitFn:InteractionType QCD
set PhitoPhiGSplitFn:ColourStructure TripletTripletOctet
create Herwig::HalfHalfOneSplitFn GluinotoGluinoGSplitFn
set GluinotoGluinoGSplitFn:InteractionType QCD
set GluinotoGluinoGSplitFn:ColourStructure OctetOctetOctet
cp SudakovCommon PhitoPhiGSudakov
set PhitoPhiGSudakov:SplittingFunction PhitoPhiGSplitFn
cp SudakovCommon GluinotoGluinoGSudakov
set GluinotoGluinoGSudakov:SplittingFunction GluinotoGluinoGSplitFn
do SplittingGenerator:AddFinalSplitting ~u_L->~u_L,g; PhitoPhiGSudakov
do SplittingGenerator:AddFinalSplitting ~d_L->~d_L,g; PhitoPhiGSudakov
do SplittingGenerator:AddFinalSplitting ~s_L->~s_L,g; PhitoPhiGSudakov
do SplittingGenerator:AddFinalSplitting ~c_L->~c_L,g; PhitoPhiGSudakov
do SplittingGenerator:AddFinalSplitting ~b_1->~b_1,g; PhitoPhiGSudakov
do SplittingGenerator:AddFinalSplitting ~t_1->~t_1,g; PhitoPhiGSudakov
do SplittingGenerator:AddFinalSplitting ~u_R->~u_R,g; PhitoPhiGSudakov
do SplittingGenerator:AddFinalSplitting ~d_R->~d_R,g; PhitoPhiGSudakov
do SplittingGenerator:AddFinalSplitting ~s_R->~s_R,g; PhitoPhiGSudakov
do SplittingGenerator:AddFinalSplitting ~c_R->~c_R,g; PhitoPhiGSudakov
do SplittingGenerator:AddFinalSplitting ~b_2->~b_2,g; PhitoPhiGSudakov
do SplittingGenerator:AddFinalSplitting ~t_2->~t_2,g; PhitoPhiGSudakov
do SplittingGenerator:AddFinalSplitting ~g->~g,g; GluinotoGluinoGSudakov
###################################################
# Set up the bsm framework
###################################################
cd /Herwig/NewPhysics
set MSSM/Model:ModelGenerator NewModel
###################################################
#
# Choose MSSM over SM
#
###################################################
cd /Herwig/Generators
set LEPGenerator:StandardModelParameters /Herwig/NewPhysics/MSSM/Model
set LHCGenerator:StandardModelParameters /Herwig/NewPhysics/MSSM/Model
###################################################
#
# Get Shower to decay SUSY particles
#
###################################################
insert /Herwig/Shower/ShowerHandler:DecayInShower 0 1000001 # SUSY_d_L
insert /Herwig/Shower/ShowerHandler:DecayInShower 0 1000002 # SUSY_u_L
insert /Herwig/Shower/ShowerHandler:DecayInShower 0 1000003 # SUSY_s_L
insert /Herwig/Shower/ShowerHandler:DecayInShower 0 1000004 # SUSY_c_L
insert /Herwig/Shower/ShowerHandler:DecayInShower 0 1000005 # SUSY_b_1
insert /Herwig/Shower/ShowerHandler:DecayInShower 0 1000006 # SUSY_t_1
insert /Herwig/Shower/ShowerHandler:DecayInShower 0 1000011 # SUSY_e_Lminus
insert /Herwig/Shower/ShowerHandler:DecayInShower 0 1000012 # SUSY_nu_eL
insert /Herwig/Shower/ShowerHandler:DecayInShower 0 1000013 # SUSY_mu_Lminus
insert /Herwig/Shower/ShowerHandler:DecayInShower 0 1000014 # SUSY_nu_muL
insert /Herwig/Shower/ShowerHandler:DecayInShower 0 1000015 # SUSY_tau_1minus
insert /Herwig/Shower/ShowerHandler:DecayInShower 0 1000016 # SUSY_nu_tauL
insert /Herwig/Shower/ShowerHandler:DecayInShower 0 1000021 # SUSY_g
insert /Herwig/Shower/ShowerHandler:DecayInShower 0 1000022 # SUSY_chi_10
insert /Herwig/Shower/ShowerHandler:DecayInShower 0 1000023 # SUSY_chi_20
insert /Herwig/Shower/ShowerHandler:DecayInShower 0 1000024 # SUSY_chi_1plus
insert /Herwig/Shower/ShowerHandler:DecayInShower 0 1000025 # SUSY_chi_30
insert /Herwig/Shower/ShowerHandler:DecayInShower 0 1000035 # SUSY_chi_40
insert /Herwig/Shower/ShowerHandler:DecayInShower 0 1000037 # SUSY_chi_2plus
insert /Herwig/Shower/ShowerHandler:DecayInShower 0 1000039 # SUSY_gravitino
insert /Herwig/Shower/ShowerHandler:DecayInShower 0 2000001 # SUSY_d_R
insert /Herwig/Shower/ShowerHandler:DecayInShower 0 2000002 # SUSY_u_R
insert /Herwig/Shower/ShowerHandler:DecayInShower 0 2000003 # SUSY_s_R
insert /Herwig/Shower/ShowerHandler:DecayInShower 0 2000004 # SUSY_c_R
insert /Herwig/Shower/ShowerHandler:DecayInShower 0 2000005 # SUSY_b_2
insert /Herwig/Shower/ShowerHandler:DecayInShower 0 2000006 # SUSY_t_2
insert /Herwig/Shower/ShowerHandler:DecayInShower 0 2000011 # SUSY_e_Rminus
insert /Herwig/Shower/ShowerHandler:DecayInShower 0 2000012 # SUSY_nu_eR
insert /Herwig/Shower/ShowerHandler:DecayInShower 0 2000013 # SUSY_mu_Rminus
insert /Herwig/Shower/ShowerHandler:DecayInShower 0 2000014 # SUSY_nu_muR
insert /Herwig/Shower/ShowerHandler:DecayInShower 0 2000015 # SUSY_tau_2minus
insert /Herwig/Shower/ShowerHandler:DecayInShower 0 2000016 # SUSY_nu_tauR
insert /Herwig/Shower/ShowerHandler:DecayInShower 0 35 # H0
insert /Herwig/Shower/ShowerHandler:DecayInShower 0 36 # A0
insert /Herwig/Shower/ShowerHandler:DecayInShower 0 37 # H+
\ No newline at end of file
File Metadata
Details
Attached
Mime Type
text/x-diff
Expires
Tue, Nov 19, 8:13 PM (1 d, 5 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3805987
Default Alt Text
(36 KB)
Attached To
rHERWIGHG herwighg
Event Timeline
Log In to Comment