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

          Line data    Source code
       1             : // Bose-Einstein.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 contains the classes to handle Bose-Einstein effects.
       7             : // BoseEinsteinHadron: simple working container for particle momenta.
       8             : // BoseEinstein: main class to perform the task.
       9             : 
      10             : #ifndef Pythia8_BoseEinstein_H
      11             : #define Pythia8_BoseEinstein_H
      12             : 
      13             : #include "Pythia8/Basics.h"
      14             : #include "Pythia8/Event.h"
      15             : #include "Pythia8/ParticleData.h"
      16             : #include "Pythia8/PythiaStdlib.h"
      17             : #include "Pythia8/Settings.h"
      18             : 
      19             : namespace Pythia8 {
      20             : 
      21             : //==========================================================================
      22             : 
      23             : // The BoseEinsteinHadron class is a simple container for studied hadrons.
      24             : 
      25           0 : class BoseEinsteinHadron {
      26             : 
      27             : public:
      28             : 
      29             :   // Constructors.
      30           0 :   BoseEinsteinHadron() : id(0), iPos(0), p(0.), pShift(0.), pComp(0.),
      31           0 :     m2(0.) {}
      32             :   BoseEinsteinHadron(int idIn,  int iPosIn, Vec4 pIn, double mIn) :
      33           0 :     id(idIn), iPos(iPosIn), p(pIn), pShift(0.), pComp(0.) {m2 = mIn*mIn;}
      34             : 
      35             :   // Information on hadron - all public.
      36             :   int    id, iPos;
      37             :   Vec4   p, pShift, pComp;
      38             :   double m2;
      39             : 
      40             : };
      41             : 
      42             : //==========================================================================
      43             : 
      44             : // The BoseEinstein class shifts the momenta of identical particles relative
      45             : // to each other, to simulate Bose-Einstein effects to some approximation.
      46             : 
      47           0 : class BoseEinstein {
      48             : 
      49             : public:
      50             : 
      51             :   // Constructor.
      52           0 :   BoseEinstein() {}
      53             : 
      54             :   // Find settings. Precalculate table used to find momentum shifts.
      55             :   bool init(Info* infoPtrIn, Settings& settings, ParticleData& particleData);
      56             : 
      57             :   // Perform Bose-Einstein corrections on an event.
      58             :   bool shiftEvent( Event& event);
      59             : 
      60             : private:
      61             : 
      62             :   // Constants: could only be changed in the code itself.
      63             :   static const int    IDHADRON[9], ITABLE[9], NCOMPSTEP;
      64             :   static const double STEPSIZE, Q2MIN, COMPRELERR, COMPFACMAX;
      65             : 
      66             :   // Initialization data, read from Settings.
      67             :   bool   doPion, doKaon, doEta;
      68             :   double lambda, QRef;
      69             : 
      70             :   // Pointer to various information on the generation.
      71             :   Info* infoPtr;
      72             : 
      73             :   // Table of momentum shifts for different hadron species.
      74             :   int    nStep[4], nStep3[4], nStored[10];
      75             :   double QRef2, QRef3, R2Ref, R2Ref2, R2Ref3, mHadron[9],
      76             :          mPair[4], m2Pair[4], deltaQ[4], deltaQ3[4], maxQ[4], maxQ3[4];
      77             :   double shift[4][200], shift3[4][200];
      78             : 
      79             :   // Vector of hadrons to study.
      80             :   vector<BoseEinsteinHadron> hadronBE;
      81             : 
      82             :   // Calculate shift and (unnormalized) compensation for pair.
      83             :   void shiftPair(int i1, int i2, int iHad);
      84             : 
      85             : };
      86             : 
      87             : //==========================================================================
      88             : 
      89             : } // end namespace Pythia8
      90             : 
      91             : #endif // Pythia8_BoseEinstein_H

Generated by: LCOV version 1.11