This class is responsible for keeping all the constraint information
on the shower evolution. In particular, it has the scale value at
which to stop the shower. Here "scale" can be either the mass scale or the
Q (ordering variable) scale: this class is also responsible for the
conversion between these two different scale definitions.
Furthermore, this class can also have a veto for emission above a certain
Pt scale, or a veto for emission below a certain Pt scale,
where Pt is the "resolution" variable.
This class has also two important switches: one for switching on/off
the multi-scale showering; and one for switching on/off the decay
of particles (mainly Susy ones) before showering. These two switches
are set by default, in Herwig++, to:
multi-scale shower 1 (ON) ; decay before shower 0 (OFF)
However, if you want the same behaviour as in Fortran Herwig, then set:
multi-scale shower 0 (OFF) ; decay before shower 1 (ON)
(in SimpleLEP.in : you do not need to modify this class).
In the case decay before shower is ON, the set of particles to be
decayed before showering are contained in the initialize() method:
you need to change this method if you want add/remove a particle.
Finally, this class has also three parameters to set the low energy
cutoff mass scales for respectively QCD, QED, EWK radiation.
The class provides also set/access to the upper scale for all
interaction types and events: it is supposed to be set, at
initialization time, by some other class, to the center of mass
energy of the beam-beam interaction, and used as upper scale value
for the numerically evaluation of Sudakov form factors.
Notice that:
- to be more general, one should define an abstract class
AbsShowerConstrainer, which has, exactly like the present
ShowerConstrainer class, the definition of all methods,
but only the following two, which are declared as pure virtual methods
without implementation:
virtual ... convertMassScaleToQScale(...) = 0;
virtual ... convertQScaleToMassScale(...) = 0;
because it is only here that specific choice must be made
on which ordering variable we want to use. Then, the concrete class
ShowerConstrainer inherits from AbsShowerConstrainer
and provides a definition for those virtual methods.
Therefore, if we wanted a different choice, we could define another class,
AlternativeShowerConstrainer, which also inherits from
AbsShowerConstrainer, but provides a different definition of those methods.
See
also:
namespace Herwig
CLASS
ShowerConstrainer:
Base class:
Public members:
inline ShowerConstrainer();
inline ShowerConstrainer(const ShowerConstrainer &);
virtual ~ShowerConstrainer();
Standard ctors and dtor.
inline int isMultiScaleShowerON() const;
Access the multi-scale showering mode switch: 0 (OFF), 1 (ON).
By choosing 0 (OFF), one gets a similar behaviour like in
Fortran Herwig, in which the showering is done in one go,
from the starting scale to the cutoff.
The default for Herwig++ is 1 (ON): multi-scale showering.
inline int isDecayBeforeShowerON() const;
Access the decay before shower mode switch: 0 (OFF), 1 (ON).
By choosing 1 (ON), one gets a similar behaviour like in
the Fortran Herwig, in which some particles (mainly Susy
particles like gluinos, squarks,...) decay before showering.
The default for Herwig++ is 0 (OFF): decay and shower intermixed.
inline bool hasToDecayBeforeShower(const long id) const;
It returns true if the particle with the specified id
is in the list of those that should be decayed before
showering. This method should be invoked only when the
decay before shower mode is 1 (ON).
Energy cutoffMassScale(const ShowerIndex::InteractionType interaction) const;
Energy cutoffQScale(const ShowerIndex::InteractionType interaction) const;
It returns the low energy cutoff mass/Q scale for the
interaction type specified in input.
inline Energy kinScale() const;
specifies a kinematic cutoff used in the parton shower phase space.
void reset();
It resets all the scales, and vetos.
inline Energy convertMassScaleToQScale(const Energy inputMassScale) const;
inline Energy convertQScaleToMassScale(const Energy inputQScale) const;
It does the conversion between mass scale <-> Q scale.
inline Energy stopShowerAtMassScale() const;
inline void stopShowerAtMassScale(const Energy inputStopShowerAtMassScale);
inline Energy stopShowerAtQScale() const;
inline void stopShowerAtQScale(const Energy inputStopShowerAtQScale);
Access/set the mass / Q (ordering variable) scale at which
to stop the showering.
inline Energy vetoAbovePtScale() const;
inline void vetoAbovePtScale(const Energy inputVetoAbovePtScale);
inline Energy vetoBelowPtScale() const;
inline void vetoBelowPtScale(const Energy inputVetoBelowMassScale);
Access/set the Veto in Pt (resolution) scale.
static Energy HUGEMASS; // Use to initialize some scales.
inline Energy largestPtQ() const;
inline void setLargestPtQ(const Energy pt);
inline Energy largestPtQbar() const;
inline void setLargestPtQbar(const Energy pt);
Access/set Pt of hardest emission so far.
Query the switch for Matrix Element Corrections.
inline bool MECOn() const;
Any ME correction?
inline bool hardMEC() const;
any hard ME correction?
inline bool softMEC() const;
any soft ME correction?
inline bool asyPS() const;
assign asymmetric initial condition to parton shower, random or
not? If not random, then quark gets larger initial scale.
inline bool rndPS() const;
asymmetric parton shower phase space, random choice for jet with
large initial scale?
void persistentOutput(PersistentOStream &) const;
void persistentInput(PersistentIStream &, int);
Standard functions for writing and reading from persistent streams.
static void Init();
Standard Init function used to initialize the interfaces.
Protected members:
inline virtual IBPtr clone() const;
inline virtual IBPtr fullclone() const;
Standard clone methods.
inline virtual void doupdate() throw(UpdateException);
inline virtual void doinit() throw(InitException);
inline virtual void dofinish();
Standard Interfaced virtual functions.
inline virtual void rebind(const TranslationMap & trans)
throw(RebindException);
Change all pointers to Interfaced objects to corresponding clones.
inline virtual IVector getReferences();
Return pointers to all Interfaced objects refered to by this.
Private members:
static ClassDescription<ShowerConstrainer> initShowerConstrainer;
Describe a concrete class with persistent data.
ShowerConstrainer & operator=(const ShowerConstrainer &);
Private and non-existent assignment operator.
void initialize();
Build the set of particles which should decay before shower
(only when the decay before shower mode is 1 (ON) )
int _multiScaleShowerMode; // The switch for on/off multi-scale shower
int _decayBeforeShowerMode; // The switch for on/off decay before shower
Energy _cutoffQCDMassScale; // Low-energy cutoff mass scale for QCD radiation
Energy _cutoffQEDMassScale; // Low-energy cutoff mass scale for QED radiation
Energy _cutoffEWKMassScale; // Low-energy cutoff mass scale for EWK radiation
Energy _kinCutoffScale; //shape the phase space
int _MECorrMode;
int _qqgPSMode;
Energy _stopShowerAtMassScale;
Energy _vetoAbovePtScale;
Energy _vetoBelowPtScale;
Energy _largestPtQ;
Energy _largestPtQbar;
set<long> _particlesDecayBeforeShower;
DEFINED MACROS
HERWIG_ShowerConstrainer_H
INCLUDED FILES
ThePEG/Handlers/HandlerBase.h
ShowerConfig.h
Herwig++/Utilities/GlobalParameters.h
ShowerIndex.h