00001 #ifndef DCHAIN_FILLABLECHARGEDLIST_CC 00002 #define DCHAIN_FILLABLECHARGEDLIST_CC 00003 // -*- C++ -*- 00004 // 00005 // Package: DChain 00006 // Module: FillableChargedList 00007 // 00008 // Description: <one line class summary> 00009 // 00010 // Implimentation: 00011 // <Notes on implimentation> 00012 // 00013 // Author: Simon Patton 00014 // Created: Wed Sep 3 13:47:97 EDT 1997 00015 // $Id: DCFillableChargedList.cc,v 1.1.1.1 2009/03/03 06:06:56 maqm Exp $ 00016 // 00017 // Revision history 00018 // 00019 // $Log: DCFillableChargedList.cc,v $ 00020 // Revision 1.1.1.1 2009/03/03 06:06:56 maqm 00021 // first import of DecayChain 00022 // 00023 // Revision 1.3 2006/01/11 20:28:38 cdj 00024 // massive class renaming, addition of [] for selection and unit tests 00025 // 00026 // Revision 1.2 2000/12/30 19:43:33 cdj 00027 // no more missing symbols under OSF1 00028 // 00029 // Revision 1.1.1.1 2000/12/18 22:16:55 cdj 00030 // imported DChain 00031 // 00032 // Revision 1.4 1998/08/20 20:00:12 sjp 00033 // Modified to use DChainBoolean 00034 // 00035 // Revision 1.3 1998/08/19 20:46:23 sjp 00036 // Fixed comments and removed report references 00037 // 00038 // Revision 1.2 1998/04/17 19:14:50 sjp 00039 // Modified to use latest type 00040 // 00041 // Revision 1.1 1997/09/17 20:06:41 sjp 00042 // New class to separate filling from behaviour 00043 // 00044 00045 // system include files 00046 #include <stdlib.h> // required for 'exit' 00047 00048 // user include files 00049 #include "DecayChain/List/DCFillableChargedList.h" 00050 00051 // STL include files 00052 00053 // 00054 // constants, enums and typedefs 00055 // 00056 00057 // 00058 // static data member definitions 00059 // 00060 00061 // 00062 // constructors and destructor 00063 // 00064 00065 template < class Charged > 00066 DCFillableChargedList< Charged >:: 00067 DCFillableChargedList( bool ( * pFunction )( Charged& ) ) : 00068 DCChargedVisibleList< Charged , typename Charged::CandidateClass >( pFunction ) 00069 { 00070 } 00071 00072 template < class Charged > 00073 DCFillableChargedList< Charged >:: 00074 DCFillableChargedList( const DCFillableChargedList< Charged >& aOtherList , 00075 bool ( * pFunction )( Charged& ) ) : 00076 DCChargedVisibleList< Charged , typename Charged::CandidateClass >( aOtherList , 00077 pFunction ) 00078 { 00079 } 00080 00081 template < class Charged > 00082 DCFillableChargedList< Charged >:: 00083 DCFillableChargedList( DCSelectionFunction< Charged >& aFunctionalObject ) : 00084 DCChargedVisibleList< Charged , typename Charged::CandidateClass >( aFunctionalObject ) 00085 { 00086 } 00087 00088 template < class Charged > 00089 DCFillableChargedList< Charged >:: 00090 DCFillableChargedList( const DCFillableChargedList< Charged >& aOtherList , 00091 DCSelectionFunction< Charged >& aFunctionalObject ) : 00092 DCChargedVisibleList< Charged , typename Charged::CandidateClass >( aOtherList , 00093 aFunctionalObject ) 00094 { 00095 } 00096 00097 template < class Charged > 00098 DCFillableChargedList< Charged >:: 00099 ~DCFillableChargedList() 00100 { 00101 } 00102 00103 // 00104 // assignment operators 00105 // 00106 00107 template < class Charged > 00108 const DCFillableChargedList< Charged >& DCFillableChargedList< Charged >:: 00109 operator=( const DCFillableChargedList< Charged >& aOtherList ) 00110 { 00111 DCChargedVisibleList< Charged , typename Charged::CandidateClass >::operator=( aOtherList ) ; 00112 return ( *this ) ; 00113 } 00114 00115 // 00116 // member functions 00117 // 00118 00119 // 00120 // const member functions 00121 // 00122 00123 // 00124 // static member functions 00125 // 00126 00127 #endif /* DCHAIN_FILLABLECHARGEDLIST_CC */