LCOV - code coverage report
Current view: top level - TEvtGen/Photos/src/photosCInterfaces - PhotosBranch.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 0 8 0.0 %
Date: 2016-06-14 17:26:59 Functions: 0 9 0.0 %

          Line data    Source code
       1             : #ifndef _PhotosBranch_h_included_
       2             : #define _PhotosBranch_h_included_
       3             : 
       4             : /**
       5             :  * @class PhotosBranch
       6             :  *
       7             :  * @brief Single branching point
       8             :  *
       9             :  * Contains information about daughters and mothers of a single branch.
      10             :  * Each branch will be converted to HEPEVT and processed by photos.
      11             :  *
      12             :  * @author Tomasz Przedzinski
      13             :  * @date 8 July 2010
      14             :  */
      15             : 
      16             : #include <vector>
      17             : #include "PhotosParticle.h"
      18             : using std::vector;
      19             : 
      20             : namespace Photospp
      21             : {
      22             : 
      23           0 : class PhotosBranch
      24             : {
      25             : public:
      26             :         /** Create branch out of decaying particle */
      27             :         PhotosBranch(PhotosParticle* p);
      28             : 
      29             :         /** Return decaying particle. NULL if branching does not have mid-particle */
      30           0 :         PhotosParticle*          getDecayingParticle() { return particle;  }
      31             : 
      32             :         /** Get list of mothers */
      33           0 :         vector<PhotosParticle *> getMothers()          { return mothers;   }
      34             : 
      35             :         /** Get list of daughters */
      36           0 :         vector<PhotosParticle *> getDaughters()        { return daughters; }
      37             : 
      38             :         /** Get list of all particles used by branch */
      39             :         vector<PhotosParticle *> getParticles();
      40             : 
      41             :         /** Check if branch is suppressed */
      42           0 :         int getSuppressionStatus() { return suppression; }
      43             : 
      44             :         /** Check if branch is forced */
      45           0 :         int getForcingStatus()     { return forcing; }
      46             : 
      47             :         /** Checks momentum conservation of decaying particle.
      48             :             If it does not exist, checks momentum of first mother passed to photos */
      49             :         bool checkMomentumConservation();
      50             : 
      51             :         /** Process single branch */
      52             :         void process();
      53             : 
      54             :         /** Create branches from particles list */
      55             :         static vector<PhotosBranch *> createBranches(vector<PhotosParticle *> particles);
      56             : private:
      57             :         /** Checks if branching is suppressed by PHOTOS. */
      58           0 :         int checkSuppressionLevel() { return checkList(false); }
      59             : 
      60             :         /** Checks if branching is forced by PHOTOS. */
      61           0 :         int checkForcingLevel()     { return checkList(true);  }
      62             : 
      63             :         /** Algorithm used for suppression/forcing check */
      64             :         int checkList(bool forceOrSuppress);
      65             : private:
      66             :         /** State of branching suppression*/
      67             :         int suppression;
      68             :         /** State of branching forcing*/
      69             :         int forcing;
      70             :         /** Decaying particle */
      71             :         PhotosParticle          *particle;
      72             :         /** List of mothers   */
      73             :         vector<PhotosParticle *> mothers;
      74             :         /** List of daughters */
      75             :         vector<PhotosParticle *> daughters;
      76             : };
      77             : 
      78             : } // namespace Photospp
      79             : #endif

Generated by: LCOV version 1.11