Page MenuHomeHEPForge

No OneTemporary

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

Mime Type
text/x-diff
Expires
Tue, Nov 19, 8:13 PM (1 d, 7 h)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
3805987
Default Alt Text
(36 KB)

Event Timeline