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

          Line data    Source code
       1             : // Merging.h is a part of the PYTHIA event generator.
       2             : // Copyright (C) 2015 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             : // This file is written by Stefan Prestel.
       7             : // Merging: Wpapper class to interface matrix element merging schemes with
       8             : //          Pythia
       9             : 
      10             : #ifndef Pythia8_Merging_H
      11             : #define Pythia8_Merging_H
      12             : 
      13             : #include "Pythia8/Basics.h"
      14             : #include "Pythia8/BeamParticle.h"
      15             : #include "Pythia8/Event.h"
      16             : #include "Pythia8/Info.h"
      17             : #include "Pythia8/ParticleData.h"
      18             : #include "Pythia8/PythiaStdlib.h"
      19             : #include "Pythia8/Settings.h"
      20             : #include "Pythia8/PartonLevel.h"
      21             : #include "Pythia8/MergingHooks.h"
      22             : #include "Pythia8/History.h"
      23             : 
      24             : namespace Pythia8 {
      25             : 
      26             : //==========================================================================
      27             : 
      28             : // Merging is a wrapper class for the interface of matrix element merging and
      29             : // Pythia8.
      30             : 
      31             : class Merging {
      32             : 
      33             : public:
      34             : 
      35             :   // Constructor.
      36           0 :   Merging() { settingsPtr = 0; infoPtr = 0; particleDataPtr = 0;
      37           0 :     rndmPtr = 0; beamAPtr = 0; beamBPtr = 0; trialPartonLevelPtr = 0;
      38           0 :     mergingHooksPtr = 0; }
      39             : 
      40             :   // Make Pythia class friend
      41             :   friend class Pythia;
      42             : 
      43             :   // Destructor.
      44           0 :   ~Merging(){}
      45             : 
      46             : protected:
      47             : 
      48             :   //----------------------------------------------------------------------//
      49             :   // The members
      50             :   //----------------------------------------------------------------------//
      51             : 
      52             : 
      53             :   // Settings: databases of flags/modes/parms/words to control run.
      54             :   Settings*      settingsPtr;
      55             : 
      56             :   // Pointer to various information on the generation.
      57             :   Info*          infoPtr;
      58             : 
      59             :   // Pointer to the particle data table.
      60             :   ParticleData*  particleDataPtr;
      61             : 
      62             :   // Pointer to random number generator.
      63             :   Rndm* rndmPtr;
      64             : 
      65             :   // Pointer to trial PartonLevel object
      66             :   PartonLevel* trialPartonLevelPtr;
      67             : 
      68             :   // Pointer to trial MergingHooks object
      69             :   MergingHooks* mergingHooksPtr;
      70             : 
      71             :   // Pointers to beam particles.
      72             :   BeamParticle* beamAPtr;
      73             :   BeamParticle* beamBPtr;
      74             : 
      75             :   // Minimal value found for the merging scale in events.
      76             :   double tmsNowMin;
      77             :   static const double TMSMISMATCH;
      78             : 
      79             :   // Initialisation function for internal use inside Pythia source code
      80             :   void init( Settings* settingsPtrIn, Info* infoPtrIn,
      81             :     ParticleData* particleDataPtrIn, Rndm* rndmPtrIn,
      82             :     BeamParticle* beamAPtrIn, BeamParticle* beamBPtrIn,
      83             :     MergingHooks* mergingHooksPtrIn, PartonLevel* trialPartonLevelPtrIn );
      84             : 
      85             :   // Function to print statistics.
      86             :   void statistics(ostream& os = cout);
      87             : 
      88             :   //----------------------------------------------------------------------//
      89             :   // Functions that implement matrix element merging.
      90             :   //----------------------------------------------------------------------//
      91             : 
      92             :   // Function to steer different merging prescriptions.
      93             :   int mergeProcess( Event& process);
      94             : 
      95             :   // Function to perform CKKW-L merging on the event.
      96             :   int mergeProcessCKKWL( Event& process);
      97             : 
      98             :   // Function to perform UMEPS merging on the event.
      99             :   int mergeProcessUMEPS( Event& process);
     100             : 
     101             :   // Function to perform NL3 NLO merging on the event.
     102             :   int mergeProcessNL3( Event& process);
     103             : 
     104             :   // Function to perform UNLOPS merging on the event.
     105             :   int mergeProcessUNLOPS( Event& process);
     106             : 
     107             :   // Function to apply the merging scale cut on an input event.
     108             :   bool cutOnProcess( Event& process);
     109             : 
     110             : };
     111             : 
     112             : //==========================================================================
     113             : 
     114             : } // end namespace Pythia8
     115             : 
     116             : #endif // Pythia8_Merging_H

Generated by: LCOV version 1.11