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

          Line data    Source code
       1             : // PartonSystems.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 auxiliary classes for the parton-level processes.
       7             : // PartonSystem contains info on a single partonic subcollision.
       8             : // PartonSystems describes the set of subcollisions in the whole event.
       9             : 
      10             : #ifndef Pythia8_PartonSystems_H
      11             : #define Pythia8_PartonSystems_H
      12             : 
      13             : #include "Pythia8/PythiaStdlib.h"
      14             : 
      15             : namespace Pythia8 {
      16             : 
      17             : //==========================================================================
      18             : 
      19             : // The PartonSystem class contains info on an individual singlet.
      20             : // Only to be used inside PartonSystems, so no private members.
      21             : 
      22           0 : class PartonSystem {
      23             : 
      24             : public:
      25             : 
      26             :   // Constructors.
      27           0 :   PartonSystem() : iInA(0), iInB(0), sHat(0.) {iOut.reserve(10);}
      28             : 
      29             :   // Stored quantities.
      30             :   int         iInA, iInB;
      31             :   vector<int> iOut;
      32             :   double      sHat, pTHat;
      33             : 
      34             : };
      35             : 
      36             : //==========================================================================
      37             : 
      38             : // The PartonSystems class describes the whole set of subcollisions.
      39             : 
      40           0 : class PartonSystems {
      41             : 
      42             : public:
      43             : 
      44             :   // Constructor.
      45           0 :   PartonSystems() {systems.resize(0);}
      46             : 
      47             :   // Reset system list to empty.
      48           0 :   void clear() {systems.resize(0);}
      49             : 
      50             :   // Add new subsystem to list; return its index. Number of subsystems.
      51           0 :   int addSys() {systems.push_back(PartonSystem());
      52           0 :     return systems.size() - 1;}
      53           0 :   int sizeSys() const {return systems.size();}
      54             : 
      55             :   // Set, add or replace info to one system.
      56           0 :   void setInA(int iSys, int iPos) {systems[iSys].iInA = iPos;}
      57           0 :   void setInB(int iSys, int iPos) {systems[iSys].iInB = iPos;}
      58           0 :   void addOut(int iSys, int iPos) {systems[iSys].iOut.push_back(iPos);}
      59           0 :   void setOut(int iSys, int iMem, int iPos) {systems[iSys].iOut[iMem] = iPos;}
      60             :   void replace(int iSys, int iPosOld, int iPosNew);
      61           0 :   void setSHat(int iSys, double sHatIn) {systems[iSys].sHat = sHatIn;}
      62           0 :   void setPTHat(int iSys, double pTHatIn) {systems[iSys].pTHat = pTHatIn;}
      63           0 :   void setSizeSys(int iSize) {systems.resize(iSize);}
      64             : 
      65             :   // Get info on one system.
      66           0 :   bool hasInAB(int iSys)         const {return ( (systems[iSys].iInA > 0)
      67           0 :                                         || (systems[iSys].iInB > 0) ) ;}
      68           0 :   int getInA(int iSys)           const {return systems[iSys].iInA;}
      69           0 :   int getInB(int iSys)           const {return systems[iSys].iInB;}
      70           0 :   int sizeOut(int iSys)          const {return systems[iSys].iOut.size();}
      71           0 :   int getOut(int iSys, int iMem) const {return systems[iSys].iOut[iMem];}
      72           0 :   int sizeAll(int iSys)          const {return (hasInAB(iSys))
      73           0 :     ? systems[iSys].iOut.size() + 2 : systems[iSys].iOut.size();}
      74             :   int getAll(int iSys, int iMem) const;
      75           0 :   double getSHat(int iSys)       const {return systems[iSys].sHat;}
      76           0 :   double getPTHat(int iSys)      const {return systems[iSys].pTHat;}
      77             : 
      78             :   // Find system of given outgoing parton, optionally also incoming one.
      79             :   int getSystemOf(int iPos, bool alsoIn = false) const;
      80             : 
      81             :   // Find iOut index of given system and event record index
      82             :   int getIndexOfOut(int iSys, int iPos) const;
      83             : 
      84             :   // List all current systems.
      85             :   void list(ostream& os = cout) const;
      86             : 
      87             : private:
      88             : 
      89             :   // List of all separate partonic subsystems.
      90             :   vector<PartonSystem> systems;
      91             : 
      92             : };
      93             : 
      94             : //==========================================================================
      95             : 
      96             : } // end namespace Pythia8
      97             : 
      98             : #endif // Pythia8_PartonSystems_H

Generated by: LCOV version 1.11