00001 #ifndef DCHAIN_INDEXEDLABELEDDECAYS_H 00002 #define DCHAIN_INDEXEDLABELEDDECAYS_H 00003 // -*- C++ -*- 00004 // 00005 // Package: DChain 00006 // Module: IndexedLabeledDecays 00007 // 00008 // Description: Interface used by Stone iterators 00009 // 00010 // Usage: 00011 // <usage> 00012 // 00013 // Author: Simon Patton 00014 // Created: Fri Sep 13 17:58:11 EDT 1996 00015 // $Id: DCIndexedLabeledDecays.h,v 1.1.1.1 2009/03/03 06:06:56 maqm Exp $ 00016 // 00017 // Revision history 00018 // 00019 // $Log: DCIndexedLabeledDecays.h,v $ 00020 // Revision 1.1.1.1 2009/03/03 06:06:56 maqm 00021 // first import of DecayChain 00022 // 00023 // Revision 1.2 2006/01/11 20:28:25 cdj 00024 // massive class renaming, addition of [] for selection and unit tests 00025 // 00026 // Revision 1.1.1.1 2000/12/18 22:16:53 cdj 00027 // imported DChain 00028 // 00029 // Revision 1.1 1998/08/28 05:17:28 sjp 00030 // New class for iterator access 00031 // 00032 00033 // system include files 00034 00035 // user include files 00036 #include "DecayChain/List/LabeledCandidateList.h" // superclass 00037 00038 namespace dchain { 00039 00040 // forward declarations 00041 template < class DecayClass > class LabeledDecay ; 00042 template < class DecayClass > class MuteWholeItr ; 00043 template < class DecayClass > class WholeItr ; 00044 template < class DecayClass > class PartialItr ; 00045 00046 template < class DecayClass , class CandidateClass > 00047 class IndexedLabeledDecays : public LabeledCandidateList< CandidateClass > 00048 { 00049 // friend classses and functions 00050 friend class MuteWholeItr< DecayClass > ; 00051 friend class WholeItr< DecayClass > ; 00052 friend class PartialItr< DecayClass > ; 00053 00054 public: 00055 // constants, enums and typedefs 00056 00057 // Constructors and destructor 00058 IndexedLabeledDecays() ; 00059 virtual ~IndexedLabeledDecays() ; 00060 00061 // member functions 00062 00063 // const member functions 00064 00065 // static member functions 00066 00067 protected: 00068 // protected member functions 00069 virtual LabeledDecay< DecayClass >& labeledDecayClass( const int aIndex ) = 0 ; 00070 00071 // protected const member functions 00072 virtual const LabeledDecay< DecayClass >& labeledDecayClass( const int aIndex ) const = 0 ; 00073 00074 private: 00075 // Constructors and destructor 00076 IndexedLabeledDecays( const IndexedLabeledDecays< DecayClass , CandidateClass >& ) ; // stop default 00077 00078 // assignment operator(s) 00079 const IndexedLabeledDecays& operator=( const IndexedLabeledDecays< DecayClass , CandidateClass>& ) ; // stop default 00080 00081 // private member functions 00082 00083 // private const member functions 00084 00085 // data members 00086 00087 // static data members 00088 00089 } ; 00090 00091 } 00092 00093 // inline function definitions 00094 00095 // function definitions 00096 //#include "DecayChain/List/Template/IndexedLabeledDecays.cc" 00097 00098 #endif // DCHAIN_INDEXEDLABELEDDECAYS_H 00099