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

          Line data    Source code
       1             : // PartonSystems.cc 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             : // Function definitions (not found in the header) for the
       7             : // PartonSystem and PartonSystems classes.
       8             : 
       9             : #include "Pythia8/PartonSystems.h"
      10             : 
      11             : namespace Pythia8 {
      12             : 
      13             : //==========================================================================
      14             : 
      15             : // The PartonSystems class.
      16             : 
      17             : //--------------------------------------------------------------------------
      18             : 
      19             : // Replace the index of an incoming or outgoing parton by a new index.
      20             : 
      21             : void PartonSystems::replace(int iSys, int iPosOld, int iPosNew) {
      22             : 
      23           0 :   if (systems[iSys].iInA == iPosOld) {
      24           0 :     systems[iSys].iInA = iPosNew;
      25           0 :     return;
      26             :   }
      27           0 :   if (systems[iSys].iInB == iPosOld) {
      28           0 :     systems[iSys].iInB = iPosNew;
      29           0 :     return;
      30             :   }
      31           0 :   for (int i = 0; i < sizeOut(iSys); ++i)
      32           0 :   if (systems[iSys].iOut[i] == iPosOld) {
      33           0 :     systems[iSys].iOut[i] = iPosNew;
      34           0 :     return;
      35             :   }
      36             : 
      37           0 : }
      38             : 
      39             : //--------------------------------------------------------------------------
      40             : 
      41             : // Return index of any parton in system, list starting with beam remnants.
      42             : 
      43             : int PartonSystems::getAll(int iSys, int iMem) const {
      44             : 
      45           0 :   if (hasInAB(iSys)) {
      46           0 :     if (iMem == 0) return systems[iSys].iInA;
      47           0 :     if (iMem == 1) return systems[iSys].iInB;
      48           0 :     return systems[iSys].iOut[iMem - 2];
      49           0 :   } else return systems[iSys].iOut[iMem];
      50             : 
      51           0 : }
      52             : 
      53             : //--------------------------------------------------------------------------
      54             : 
      55             : // Find system of given outgoing parton, optionally also incoming one.
      56             : 
      57             : int PartonSystems::getSystemOf(int iPos, bool alsoIn) const {
      58             : 
      59             :   // Loop over systems and over final-state members in each system.
      60           0 :   for (int iSys = 0; iSys < sizeSys(); ++iSys) {
      61           0 :     if (alsoIn) {
      62           0 :       if (systems[iSys].iInA == iPos) return iSys;
      63           0 :       if (systems[iSys].iInB == iPos) return iSys;
      64             :     }
      65           0 :     for (int iMem = 0; iMem < sizeOut(iSys); ++iMem)
      66           0 :       if (systems[iSys].iOut[iMem] == iPos) return iSys;
      67             :   }
      68             : 
      69             :   // Failure signalled by return value -1.
      70           0 :   return -1;
      71             : 
      72           0 : }
      73             : 
      74             : //--------------------------------------------------------------------------
      75             : 
      76             : // Get the iMem index of iOut for an index into the event record
      77             : 
      78             : int PartonSystems::getIndexOfOut(int iSys, int iPos) const {
      79           0 :   for (int iMem = 0; iMem < sizeOut(iSys); ++iMem)
      80           0 :     if (systems[iSys].iOut[iMem] == iPos) return iMem;
      81             : 
      82             :   // Failure signalled by return value -1.
      83           0 :   return -1;
      84           0 : }
      85             : 
      86             : 
      87             : //--------------------------------------------------------------------------
      88             : 
      89             : // Print members in systems; for debug mainly.
      90             : 
      91             : void PartonSystems::list(ostream& os) const {
      92             : 
      93             :   // Header.
      94           0 :   os << "\n --------  PYTHIA Parton Systems Listing  -------------------"
      95           0 :      << "--------------------------------- "
      96           0 :      << "\n \n  no  inA  inB  out members  \n";
      97             : 
      98             :   // Loop over system list and over members in each system.
      99           0 :   for (int iSys = 0; iSys < sizeSys(); ++iSys) {
     100           0 :     os << " " << setw(3) << iSys << " " << setw(4) << systems[iSys].iInA
     101           0 :        << " " << setw(4) << systems[iSys].iInB;
     102           0 :     for (int iMem = 0; iMem < sizeOut(iSys); ++iMem) {
     103           0 :       if (iMem%16 == 0 && iMem > 0) os << "\n              ";
     104           0 :       os << " " << setw(4) << systems[iSys].iOut[iMem];
     105             :     }
     106           0 :     os << "\n";
     107             :   }
     108             : 
     109             :   // Alternative if no systems. Done.
     110           0 :   if (sizeSys() == 0) os << "    no systems defined \n";
     111           0 :   os << "\n --------  End PYTHIA Parton Systems Listing  ---------------"
     112           0 :      << "---------------------------------" << endl;
     113             : 
     114           0 : }
     115             : 
     116             : //==========================================================================
     117             : 
     118             : } // end namespace Pythia8

Generated by: LCOV version 1.11