CLHEP/HepPDT/SimpleDecayModel.hh

00001 // $Id: SimpleDecayModel.hh,v 1.4 2002/04/18 20:15:32 garren Exp $
00002 // ----------------------------------------------------------------------
00003 //
00004 // SimpleDecayModel.hh
00005 // Author:  Lynn Garren, Walter Brown
00006 //
00007 //  the default decay model which has no functional decay() method
00008 //
00009 // ----------------------------------------------------------------------
00010 #ifndef SIMPLEDECAYMODEL_HH
00011 #define SIMPLEDECAYMODEL_HH
00012 
00013 #include "CLHEP/config/CLHEP.h"
00014 #include <vector>
00015 
00016 #include "CLHEP/HepPDT/DefaultConfig.hh"
00017 #include "CLHEP/HepPDT/DecayModel.hh"
00018 
00019 namespace HepPDT {
00020 
00025 class SimpleDecayModel : public DecayModel {
00026 
00027 public:
00028   typedef  DecayModel::PD   PD; // ParticleDataType
00029   typedef  DecayModel::PT   PT; // ParticleType
00030 
00031   // ---  birth/death:
00032   //
00033   SimpleDecayModel( std::vector<double> const & decayModelParameters );
00034   virtual ~SimpleDecayModel();
00035 
00036   // ---  copying:
00037   //
00038   SimpleDecayModel( const SimpleDecayModel & orig );
00039   SimpleDecayModel &  operator = ( const SimpleDecayModel & rhs );
00040   void swap( SimpleDecayModel & other );
00041 
00042   // --- decay method placeholder
00043   //
00044   virtual void decay( const std::vector< PD > & /*products*/,
00045                       const PT                & /*parent*/,
00046                       std::vector<PT>         & /*daughters*/ )  { ; }
00047 
00048   // accessors
00049   int         parameters( std::vector<double> & fillme) const;
00050   std::string name() const      { return "SimpleDecayModel"; }
00051 
00052   // mutators?
00053   
00054     
00055 private:
00056 
00057   // ---  SimpleDecayModel<>-specific data, e.g., Helicity and/or PartialWaveAmplitudes
00058   //
00059   std::vector<double>      itsParameters;
00060 
00061 };  // SimpleDecayModel
00062 
00063 inline 
00064 void  swap( SimpleDecayModel & first, SimpleDecayModel & second ) {
00065   first.swap( second );
00066 }
00067 
00068 // register this object
00069 REGISTER_DECAY_MODE(SimpleDecayModel,SimpleDecayModel::Config)
00070 
00071 }       // HepPDT
00072 
00073 #endif // SIMPLEDECAYMODEL_HH
00074 

Class Library for High Energy Physics (version 1.8)