CLHEP/HepPDT/ResonanceStructure.hh

00001 // $Id: ResonanceStructure.hh,v 1.2 2002/04/12 15:02:43 evc Exp $
00002 // ----------------------------------------------------------------------
00003 //
00004 // ResonanceStructure.hh
00005 //
00006 // ResonanceStructure contains the minimum information for a Breit-Wigner
00007 // distribution about a given mass.
00008 // ----------------------------------------------------------------------
00009 #ifndef RESONANCESTRUCTURE_HH
00010 #define RESONANCESTRUCTURE_HH
00011 
00012 #include "CLHEP/config/CLHEP.h"
00013 #include <algorithm>    // swap()
00014 
00015 #include "CLHEP/HepPDT/Measurement.hh"
00016 
00017 namespace HepPDT {
00018 
00023 class ResonanceStructure  {
00024 
00025 public:
00026 
00027   // ---  birth/death:
00028   //
00029   ResonanceStructure( Measurement mass = Measurement(),
00030                       Measurement width = Measurement(),
00031                       double min = 0., double max = 0. );
00032   virtual ~ResonanceStructure();
00033 
00034   // ---  copying:
00035   //
00036   ResonanceStructure( const ResonanceStructure & orig );
00037   ResonanceStructure& operator= ( const ResonanceStructure & rhs );
00038   void swap ( ResonanceStructure & other );
00039 
00040   // ---  accessors:
00041   //
00042   Measurement   const & mass()         const { return itsMass; }
00043   Measurement   const & totalWidth()   const { return itsTotalWidth; }
00044   Measurement   lifetime();
00045   double        lowerCutoff()          const { return itsLowerCutoff; }
00046   double        upperCutoff()          const { return itsUpperCutoff; }
00047 
00048   // ---  mutators:
00049   //
00050   void  setMass( Measurement const & mass )        {  itsMass = mass; }
00051   void  setTotalWidth( Measurement const & width ) {  itsTotalWidth = width; }
00052   void  setTotalWidthFromLifetime( Measurement const & lt );
00053   void  setLowerCutoff( double cut )               {  itsLowerCutoff = cut; }
00054   void  setUpperCutoff( double cut )               {  itsUpperCutoff = cut; }
00055 
00056 private:
00057 
00058   // ---  class-specific data:
00059   //
00060   Measurement   itsMass;
00061   Measurement   itsTotalWidth;
00062   double        itsLowerCutoff;
00063   double        itsUpperCutoff;
00064 
00065 };  // ResonanceStructure
00066 
00067 inline
00068 void swap( ResonanceStructure & first, ResonanceStructure & second )  {
00069   first.swap( second );
00070 }
00071 
00072 }       // HepPDT
00073 
00074 #endif // RESONANCESTRUCTURE_HH

Class Library for High Energy Physics (version 1.8)