LCOV - code coverage report
Current view: top level - TEvtGen/HepMC - GenCrossSection.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 0 16 0.0 %
Date: 2016-06-14 17:26:59 Functions: 0 10 0.0 %

          Line data    Source code
       1             : #ifndef HEPMC_GEN_CROSS_SECTION_H
       2             : #define HEPMC_GEN_CROSS_SECTION_H
       3             : 
       4             : //--------------------------------------------------------------------------
       5             : //////////////////////////////////////////////////////////////////////////
       6             : // garren@fnal.gov, May 2009
       7             : // 
       8             : //////////////////////////////////////////////////////////////////////////
       9             : //--------------------------------------------------------------------------
      10             : 
      11             : #include <iostream>
      12             : 
      13             : namespace HepMC {
      14             : 
      15             : //! The GenCrossSection class stores the generated cross section
      16             : 
      17             : ///
      18             : /// \class  GenCrossSection
      19             : /// HepMC::GenCrossSection is used to store the generated cross section.
      20             : /// This class is meant to be used to pass, on an event by event basis,
      21             : /// the current best guess of the total cross section. 
      22             : /// It is expected that the final cross section will be stored elsewhere.
      23             : ///
      24             : ///   - double cross_section;           // cross section in pb
      25             : ///   - double cross_section_error;     // error associated with this cross section   
      26             : /// 
      27             : /// The units of cross_section and cross_section_error are expected to be pb.
      28             : /// 
      29             : /// GenCrossSection information will be written if GenEvent contains a pointer 
      30             : /// to a valid GenCrossSection object.
      31             : ///
      32             : class GenCrossSection {
      33             : 
      34             : public:
      35             :   GenCrossSection()
      36           0 :     : m_cross_section(0),
      37           0 :       m_cross_section_error(0),
      38           0 :       m_is_set(false)
      39           0 :     {}
      40           0 :   ~GenCrossSection() {}
      41             : 
      42             :   GenCrossSection( GenCrossSection const & orig ); //!< copy
      43             : 
      44             :   void swap( GenCrossSection & other); //!< swap
      45             :   GenCrossSection &  operator = ( GenCrossSection const & rhs ); //!< shallow
      46             :   /// check for equality
      47             :   bool         operator==( const GenCrossSection& ) const;
      48             :   /// check for inequality
      49             :   bool         operator!=( const GenCrossSection& ) const;
      50             : 
      51             : 
      52             :   // ---  accessors:
      53             : 
      54             :   /// cross section in pb
      55           0 :   double cross_section()          const { return m_cross_section; }
      56             :   /// error associated with this cross section in pb
      57           0 :   double cross_section_error()    const { return m_cross_section_error; }
      58             : 
      59             :   /// True if the cross section has been set.  False by default.
      60           0 :   bool   is_set()                 const { return m_is_set; }
      61             : 
      62             :   // ---  mutators:
      63             :   /// Set cross section and error in pb
      64             :   void   set_cross_section( double xs, double xs_err );
      65             :   /// set cross section in pb
      66             :   void   set_cross_section( double );
      67             :   /// set error associated with this cross section in pb
      68             :   void   set_cross_section_error( double );
      69             :   /// Clear all GenCrossSection info 
      70             :   /// (disables output of GenCrossSection until the cross section is set again)
      71             :   void   clear();
      72             :  
      73             :   // ---  I/O:
      74             :   /// write to an output stream
      75             :   std::ostream &  write( std::ostream & ) const;
      76             :   /// read from an input stream
      77             :   std::istream &  read( std::istream & );
      78             : 
      79             : private: // data members
      80             :     double m_cross_section;
      81             :     double m_cross_section_error;
      82             :     bool   m_is_set;
      83             : 
      84             : };
      85             : 
      86             : //
      87             : // streaming I/O
      88             : 
      89             : inline std::ostream & operator << ( std::ostream & os, GenCrossSection & xs )
      90             : { return xs.write(os); }
      91             : 
      92             : inline std::istream & operator >> ( std::istream & is, GenCrossSection & xs )
      93             : { return xs.read(is); }
      94             : 
      95             : //
      96             : // inline methods
      97             : 
      98             : inline void GenCrossSection::set_cross_section( double xs, double xserr ) { 
      99           0 :   set_cross_section(xs);
     100           0 :   set_cross_section_error(xserr); 
     101           0 : }
     102             : 
     103             : inline void GenCrossSection::set_cross_section( double xs )        
     104             : {
     105           0 :   m_cross_section = xs;
     106           0 :   m_is_set = true;
     107           0 : }
     108             : 
     109             : inline void GenCrossSection::set_cross_section_error( double xserr )  
     110             : {
     111           0 :   m_cross_section_error = xserr;
     112           0 : }
     113             : 
     114             : } // HepMC
     115             : 
     116             : #endif  // HEPMC_GEN_CROSS_SECTION_H

Generated by: LCOV version 1.11