10 #ifndef Pythia8_ParticleDecays_H    11 #define Pythia8_ParticleDecays_H    13 #include "Pythia8/Basics.h"    14 #include "Pythia8/Event.h"    15 #include "Pythia8/FragmentationFlavZpT.h"    16 #include "Pythia8/Info.h"    17 #include "Pythia8/ParticleData.h"    18 #include "Pythia8/PhysicsBase.h"    19 #include "Pythia8/PythiaStdlib.h"    20 #include "Pythia8/Settings.h"    21 #include "Pythia8/TimeShower.h"    22 #include "Pythia8/TauDecays.h"    40   virtual bool decay(vector<int>& , vector<double>& , vector<Vec4>& ,
    41    int , 
const Event& ) {
return false;}
    45   virtual bool chainDecay(vector<int>& , vector<int>& , vector<double>& ,
    46     vector<Vec4>& , 
int , 
const Event& ) {
return false;}
    63     limitTau0(), limitTau(),
    64     limitRadius(), limitCylinder(), limitDecay(), mixB(), doFSRinDecays(),
    65     doGammaRad(), tauMode(), mSafety(), tau0Max(), tauMax(), rMax(), xyMax(),
    66     zMax(), xBdMix(), xBsMix(), sigmaSoft(), multIncrease(),
    67     multIncreaseWeak(), multRefMass(), multGoffset(), colRearrange(),
    68     stopMass(), sRhoDal(), wRhoDal(), hasPartons(), keepPartons(), idDec(),
    69     meMode(), mult(), scale(), decDataPtr() {}
    72   void init(TimeShowerPtr timesDecPtrIn, 
StringFlav* flavSelPtrIn,
    79   bool decayAll(
Event& event, 
double minWidth = 0.);
    82   bool moreToDo()
 const {
return hasPartons && keepPartons;}
    87     registerSubObject(tauDecayer); }
    92   static const int    NTRYDECAY, NTRYPICK, NTRYMEWT, NTRYDALITZ;
    93   static const double MSAFEDALITZ, WTCORRECTION[11];
    96   TimeShowerPtr timesDecPtr;
   102   DecayHandlerPtr decayHandlePtr;
   105   bool   limitTau0, limitTau, limitRadius, limitCylinder, limitDecay,
   106          mixB, doFSRinDecays, doGammaRad;
   108   double mSafety, tau0Max, tauMax, rMax, xyMax, zMax, xBdMix, xBsMix,
   109          sigmaSoft, multIncrease, multIncreaseWeak, multRefMass, multGoffset,
   110          colRearrange, stopMass, sRhoDal, wRhoDal;
   113   bool   hasPartons, keepPartons;
   114   int    idDec, meMode, mult;
   116   vector<int>    iProd, idProd, motherProd, cols, acols, idPartons;
   117   vector<double> mProd, mInv, rndmOrd;
   118   vector<Vec4>   pInv, pProd;
   119   vector<FlavContainer> flavEnds;
   128   bool checkVertex(
Particle& decayer);
   134   bool oneBody(
Event& event);
   137   bool twoBody(
Event& event);
   140   bool threeBody(
Event& event);
   143   bool mGenerator(
Event& event);
   149   bool dalitzKinematics(
Event& event);
   155   bool setColours(
Event& event);
 virtual void onInitInfoPtr() override
Definition: ParticleDecays.h:86
 
virtual ~DecayHandler()
Destructor. 
Definition: ParticleDecays.h:36
 
This class holds info on a single particle species. 
Definition: ParticleData.h:125
 
Definition: PhysicsBase.h:26
 
The ParticleDecays class contains the routines to decay a particle. 
Definition: ParticleDecays.h:57
 
The Event class holds all info on the generated event. 
Definition: Event.h:408
 
virtual bool decay(vector< int > &, vector< double > &, vector< Vec4 > &, int, const Event &)
Definition: ParticleDecays.h:40
 
virtual bool chainDecay(vector< int > &, vector< int > &, vector< double > &, vector< Vec4 > &, int, const Event &)
Definition: ParticleDecays.h:45
 
Definition: TauDecays.h:27
 
bool moreToDo() const 
Did decay result in new partons to hadronize? 
Definition: ParticleDecays.h:82
 
Header for classes to set beam momentum and interaction vertex spread. 
Definition: Analysis.h:20
 
ParticleDecays()
Constructor. 
Definition: ParticleDecays.h:62
 
virtual vector< int > handledParticles()
A virtual method, to return the particles the handler should decay. 
Definition: ParticleDecays.h:49
 
The StringFlav class is used to select quark and hadron flavours. 
Definition: FragmentationFlavZpT.h:76
 
Definition: ParticleDecays.h:31