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

          Line data    Source code
       1             : // BeamRemnants.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             : // Header file for beam-remnants handling.
       7             : // BeamRemnants: matches the remnants between the two beams.
       8             : 
       9             : #ifndef Pythia8_BeamRemnants_H
      10             : #define Pythia8_BeamRemnants_H
      11             : 
      12             : #include "Pythia8/Basics.h"
      13             : #include "Pythia8/BeamParticle.h"
      14             : #include "Pythia8/ColourReconnection.h"
      15             : #include "Pythia8/Event.h"
      16             : #include "Pythia8/FragmentationFlavZpT.h"
      17             : #include "Pythia8/Info.h"
      18             : #include "Pythia8/JunctionSplitting.h"
      19             : #include "Pythia8/ParticleData.h"
      20             : #include "Pythia8/PartonDistributions.h"
      21             : #include "Pythia8/PartonSystems.h"
      22             : #include "Pythia8/PythiaStdlib.h"
      23             : #include "Pythia8/Settings.h"
      24             : #include "Pythia8/StringLength.h"
      25             : 
      26             : namespace Pythia8 {
      27             : 
      28             : //==========================================================================
      29             : 
      30             : // This class matches the kinematics of the hard-scattering subsystems
      31             : // (with primordial kT added) to that of the two beam remnants.
      32             : 
      33           0 : class BeamRemnants {
      34             : 
      35             : public:
      36             : 
      37             :   // Constructor.
      38           0 :   BeamRemnants() : iDS(0) { }
      39             : 
      40             :   // Initialization.
      41             :   bool init( Info* infoPtrIn, Settings& settings, Rndm* rndmPtrIn,
      42             :     BeamParticle* beamAPtrIn, BeamParticle* beamBPtrIn,
      43             :     PartonSystems* partonSystemsPtrIn, ParticleData* particleDataPtrIn,
      44             :     ColourReconnection * colourReconnectionPtrIn);
      45             : 
      46             :   // New beams possible for handling of hard diffraction.
      47             :   void reassignBeamPtrs( BeamParticle* beamAPtrIn, BeamParticle* beamBPtrIn,
      48           0 :     int iDSin) {beamAPtr = beamAPtrIn; beamBPtr = beamBPtrIn; iDS = iDSin;}
      49             : 
      50             :   // Select the flavours/kinematics/colours of the two beam remnants.
      51             :   bool add( Event& event, int iFirst = 0, bool doDiffCR = false);
      52             : 
      53             : private:
      54             : 
      55             :   // Constants: could only be changed in the code itself.
      56             :   static const bool   ALLOWCOLOURTWICE, CORRECTMISMATCH;
      57             :   static const int    NTRYCOLMATCH, NTRYKINMATCH;
      58             : 
      59             :   // Initialization data, read from Settings.
      60             :   bool   doPrimordialKT, allowRescatter, doRescatterRestoreY, doReconnect;
      61             :   double primordialKTsoft, primordialKThard, primordialKTremnant,
      62             :          halfScaleForKT, halfMassForKT, reducedKTatHighY;
      63             :   int    remnantMode, reconnectMode;
      64             : 
      65             :   // Information set for events.
      66             :   bool   isDIS;
      67             :   int    nSys, oldSize, iDS;
      68             :   double eCM, sCM;
      69             : 
      70             :   // Colour collapses (when one colour is mapped onto another).
      71             :   vector<int> colFrom, colTo;
      72             : 
      73             :   // Pointer to various information on the generation.
      74             :   Info*          infoPtr;
      75             : 
      76             :   // Pointer to the random number generator.
      77             :   Rndm*          rndmPtr;
      78             : 
      79             :   // Pointers to the two incoming beams.
      80             :   BeamParticle*  beamAPtr;
      81             :   BeamParticle*  beamBPtr;
      82             : 
      83             :   // Pointer to the colour reconnection class.
      84             :   ColourReconnection* colourReconnectionPtr;
      85             : 
      86             :   // StringLength class.
      87             :   StringLength stringLength;
      88             : 
      89             :   // Junction splitting class.
      90             :   JunctionSplitting junctionSplitting;
      91             : 
      92             :   // Select the flavours/kinematics/colours of the two beam remnants.
      93             :   bool addOld( Event& event);
      94             : 
      95             :   // Select the flavours/kinematics/colours of the two beam remnants.
      96             :   bool addNew( Event& event);
      97             : 
      98             :   // Pointer to information on subcollision parton locations.
      99             :   PartonSystems* partonSystemsPtr;
     100             : 
     101             :   // Do the kinematics of the collision subsystems and two beam remnants.
     102             :   bool setKinematics( Event& event);
     103             : 
     104             :   // Special beam remnant kinematics for Deeply Inelastic Scattering.
     105             :   bool setDISKinematics( Event& event);
     106             : 
     107             :   // Update colours of outgoing particles in the event.
     108             :   void updateColEvent( Event& event, vector<pair <int,int> > colChanges);
     109             : 
     110             :   // Check that colours are consistent.
     111             :   bool checkColours( Event& event);
     112             : 
     113             :   // Find junction chains.
     114             :   vector <vector<int> > findJunChains(vector<vector <int> > iPartonJun,
     115             :     vector<vector<int> > iPartonAjun);
     116             : 
     117             :   // Split junction configuration into smaller parts.
     118             :   bool splitJunChains(Event& event, vector<vector<int > >& iPartonJun,
     119             :     vector<vector< int > >& ipartonAntiJun);
     120             : 
     121             :   // Get junction chains.
     122             :   vector<vector<int > > getJunChains(Event& event);
     123             : 
     124             : };
     125             : 
     126             : //==========================================================================
     127             : 
     128             : } // end namespace Pythia8
     129             : 
     130             : #endif // Pythia8_BeamRemnants_H

Generated by: LCOV version 1.11