LCOV - code coverage report
Current view: top level - PYTHIA8/pythia8210dev/include/Pythia8 - TauDecays.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 0 2 0.0 %
Date: 2016-06-14 17:26:59 Functions: 0 4 0.0 %

          Line data    Source code
       1             : // TauDecays.h is a part of the PYTHIA event generator.
       2             : // Copyright (C) 2015 Philip Ilten, Torbjorn Sjostrand.
       3             : // PYTHIA is licenced under the GNU GPL version 2, see COPYING for details.
       4             : // Please respect the MCnet Guidelines, see GUIDELINES for details.
       5             : 
       6             : // Header file for the TauDecays class.
       7             : 
       8             : #ifndef Pythia8_TauDecays_H
       9             : #define Pythia8_TauDecays_H
      10             : 
      11             : #include "Pythia8/Basics.h"
      12             : #include "Pythia8/Event.h"
      13             : #include "Pythia8/HelicityBasics.h"
      14             : #include "Pythia8/HelicityMatrixElements.h"
      15             : #include "Pythia8/PythiaComplex.h"
      16             : #include "Pythia8/PythiaStdlib.h"
      17             : #include "Pythia8/Settings.h"
      18             : 
      19             : namespace Pythia8 {
      20             : 
      21             : //==========================================================================
      22             : 
      23             : // TauDecays class.
      24             : // This class decays tau leptons, with helicity information.
      25             : 
      26             : class TauDecays {
      27             : 
      28             : public:
      29             : 
      30             :   // Constructor and destructor.
      31           0 :   TauDecays() {};
      32           0 :   ~TauDecays() {}
      33             : 
      34             :   // Initializer.
      35             :   void init(Info* infoPtrIn, Settings* settingsPtrIn,
      36             :     ParticleData* particleDataPtrIn, Rndm* rndmPtrIn,
      37             :     Couplings* couplingsPtrIn);
      38             : 
      39             :   // Decay a tau or correlated tau pair.
      40             :   bool decay(int iDec, Event& event);
      41             : 
      42             :   // Determine internal or external polarization and correlation mechanism.
      43             :   bool internalMechanism(Event &event);
      44             :   bool externalMechanism(Event &event);
      45             : 
      46             :   // Choose a decay channel for a particle.
      47             :   vector<HelicityParticle> createChildren(HelicityParticle parent);
      48             : 
      49             :   // Perform an N-body isotropic decay.
      50             :   void isotropicDecay(vector<HelicityParticle>& p);
      51             : 
      52             :   // Write the decay to event record.
      53             :   void writeDecay(Event& event, vector<HelicityParticle>& p);
      54             : 
      55             : private:
      56             : 
      57             :   // Constants: could only be changed in the code itself.
      58             :   static const int    NTRYCHANNEL, NTRYDECAY;
      59             :   static const double WTCORRECTION[11];
      60             : 
      61             :   // Flag whether a correlated tau decay should be performed.
      62             :   bool correlated;
      63             : 
      64             :   // User selected mode and mother for tau decays.
      65             :   int tauExt, tauMode, tauMother, tauPol;
      66             : 
      67             :   // Helicity matrix element pointers.
      68             :   HelicityMatrixElement* hardME;
      69             :   HelicityMatrixElement* decayME;
      70             : 
      71             :   // Hard process helicity matrix elements.
      72             :   HMETwoFermions2W2TwoFermions      hmeTwoFermions2W2TwoFermions;
      73             :   HMETwoFermions2GammaZ2TwoFermions hmeTwoFermions2GammaZ2TwoFermions;
      74             :   HMEW2TwoFermions                  hmeW2TwoFermions;
      75             :   HMEZ2TwoFermions                  hmeZ2TwoFermions;
      76             :   HMEGamma2TwoFermions              hmeGamma2TwoFermions;
      77             :   HMEHiggs2TwoFermions              hmeHiggs2TwoFermions;
      78             : 
      79             :   // Tau decay helicity matrix elements.
      80             :   HMETau2Meson                    hmeTau2Meson;
      81             :   HMETau2TwoLeptons               hmeTau2TwoLeptons;
      82             :   HMETau2TwoMesonsViaVector       hmeTau2TwoMesonsViaVector;
      83             :   HMETau2TwoMesonsViaVectorScalar hmeTau2TwoMesonsViaVectorScalar;
      84             :   HMETau2ThreePions               hmeTau2ThreePions;
      85             :   HMETau2ThreeMesonsWithKaons     hmeTau2ThreeMesonsWithKaons;
      86             :   HMETau2ThreeMesonsGeneric       hmeTau2ThreeMesonsGeneric;
      87             :   HMETau2TwoPionsGamma            hmeTau2TwoPionsGamma;
      88             :   HMETau2FourPions                hmeTau2FourPions;
      89             :   HMETau2FivePions                hmeTau2FivePions;
      90             :   HMETau2PhaseSpace               hmeTau2PhaseSpace;
      91             : 
      92             :   // Particles of the hard process.
      93             :   HelicityParticle in1, in2, mediator, out1, out2;
      94             :   vector<HelicityParticle> particles;
      95             : 
      96             :   // The info pointer for the Pythia class.
      97             :   Info*         infoPtr;
      98             : 
      99             :   // Pointer to settings database.
     100             :   Settings*     settingsPtr;
     101             : 
     102             :   // Pointer to the particle data table.
     103             :   ParticleData* particleDataPtr;
     104             : 
     105             :   // Pointer to the random number generator.
     106             :   Rndm*         rndmPtr;
     107             : 
     108             :   // Pointer to SM coupling data.
     109             :   Couplings*    couplingsPtr;
     110             : 
     111             :   // Parameters to determine if correlated partner should decay.
     112             :   double tau0Max, tauMax, rMax, xyMax, zMax;
     113             :   bool limitTau0, limitTau, limitRadius, limitCylinder, limitDecay;
     114             : 
     115             : };
     116             : 
     117             : //==========================================================================
     118             : 
     119             : } // end namespace Pythia8
     120             : 
     121             : #endif // end Pythia8_TauDecays_H

Generated by: LCOV version 1.11