00001
00002
00003
00004
00005
00006
00007
00008
00009 #ifndef RESONANCESTRUCTURE_HH
00010 #define RESONANCESTRUCTURE_HH
00011
00012 #include "CLHEP/config/CLHEP.h"
00013 #include <algorithm>
00014
00015 #include "CLHEP/HepPDT/Measurement.hh"
00016
00017 namespace HepPDT {
00018
00023 class ResonanceStructure {
00024
00025 public:
00026
00027
00028
00029 ResonanceStructure( Measurement mass = Measurement(),
00030 Measurement width = Measurement(),
00031 double min = 0., double max = 0. );
00032 virtual ~ResonanceStructure();
00033
00034
00035
00036 ResonanceStructure( const ResonanceStructure & orig );
00037 ResonanceStructure& operator= ( const ResonanceStructure & rhs );
00038 void swap ( ResonanceStructure & other );
00039
00040
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
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
00059
00060 Measurement itsMass;
00061 Measurement itsTotalWidth;
00062 double itsLowerCutoff;
00063 double itsUpperCutoff;
00064
00065 };
00066
00067 inline
00068 void swap( ResonanceStructure & first, ResonanceStructure & second ) {
00069 first.swap( second );
00070 }
00071
00072 }
00073
00074 #endif // RESONANCESTRUCTURE_HH