00001 #ifndef DCHAIN_FILLABLENEUTRALLIST_CC 00002 #define DCHAIN_FILLABLENEUTRALLIST_CC 00003 // -*- C++ -*- 00004 // 00005 // Package: DChain 00006 // Module: FillableNeutralList 00007 // 00008 // Description: <one line class summary> 00009 // 00010 // Implimentation: 00011 // <Notes on implimentation> 00012 // 00013 // Author: Simon Patton 00014 // Created: Fri Oct 4 11:04:56 EDT 1996 00015 // $Id: DCFillableNeutralList.cc,v 1.1.1.1 2009/03/03 06:06:56 maqm Exp $ 00016 // 00017 // Revision history 00018 // 00019 // $Log: DCFillableNeutralList.cc,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:38 cdj 00024 // massive class renaming, addition of [] for selection and unit tests 00025 // 00026 // Revision 1.1.1.1 2000/12/18 22:16:56 cdj 00027 // imported DChain 00028 // 00029 // Revision 1.4 1998/08/20 20:00:12 sjp 00030 // Modified to use DChainBoolean 00031 // 00032 // Revision 1.3 1998/08/19 20:46:23 sjp 00033 // Fixed comments and removed report references 00034 // 00035 // Revision 1.2 1998/04/17 19:14:52 sjp 00036 // Modified to use latest type 00037 // 00038 // Revision 1.1 1997/09/17 20:06:43 sjp 00039 // New class to separate filling from behaviour 00040 // 00041 00042 // system include files 00043 #include <stdlib.h> // required for 'exit' 00044 00045 // user include files 00046 #include "DecayChain/List/DCFillableNeutralList.h" 00047 00048 // STL include files 00049 00050 // 00051 // constants, enums and typedefs 00052 // 00053 00054 // 00055 // static data member definitions 00056 // 00057 00058 // 00059 // constructors and destructor 00060 // 00061 00062 template< class Neutral > 00063 // class TruthWitnesses , 00064 // class VisibleWitnesses > 00065 DCFillableNeutralList< Neutral >:: 00066 DCFillableNeutralList( bool ( * pFunction )( Neutral& ) ) : 00067 DCNeutralVisibleList< Neutral , typename Neutral::CandidateClass >( pFunction ) 00068 { 00069 } 00070 00071 //template< class Neutral , 00072 // class TruthWitnesses , 00073 // class VisibleWitnesses > 00074 //DCFillableNeutralList< Neutral , TruthWitnesses , VisibleWitnesses >:: 00075 //DCFillableNeutralList( const TruthWitnesses& aTruthList , 00076 // bool ( * pFunction )( Neutral& ) ) : 00077 // DCNeutralVisibleList< Neutral , Neutral::CandidateClass >( pFunction ) 00078 //{ 00079 // fill( aTruthList ) ; 00080 //} 00081 00082 //template< class Neutral , 00083 // class TruthWitnesses , 00084 // class VisibleWitnesses > 00085 //DCFillableNeutralList< Neutral , TruthWitnesses , VisibleWitnesses >:: 00086 //DCFillableNeutralList( const VisibleWitnesses& aVisibleList , 00087 // bool ( * pFunction )( Neutral& ) ) : 00088 // DCNeutralVisibleList< Neutral , Neutral::CandidateClass >( pFunction ) 00089 //{ 00090 // fill( aVisibleList ) ; 00091 //} 00092 00093 template< class Neutral > 00094 // class TruthWitnesses , 00095 // class VisibleWitnesses > 00096 DCFillableNeutralList< Neutral >:: 00097 DCFillableNeutralList( const DCFillableNeutralList< Neutral >& aOtherList , 00098 bool ( * pFunction )( Neutral& ) ) : 00099 DCNeutralVisibleList< Neutral , 00100 typename Neutral::CandidateClass >( aOtherList , 00101 pFunction ) 00102 { 00103 } 00104 00105 template< class Neutral > 00106 // class TruthWitnesses , 00107 // class VisibleWitnesses > 00108 DCFillableNeutralList< Neutral >:: 00109 DCFillableNeutralList( DCSelectionFunction< Neutral >& aFunctionalObject ) : 00110 DCNeutralVisibleList< Neutral , 00111 typename Neutral::CandidateClass >( aFunctionalObject ) 00112 { 00113 } 00114 00115 //template< class Neutral , 00116 // class TruthWitnesses , 00117 // class VisibleWitnesses > 00118 //DCFillableNeutralList< Neutral , TruthWitnesses , VisibleWitnesses >:: 00119 //DCFillableNeutralList( const TruthWitnesses& aTruthList , 00120 // DCSelectionFunction< Neutral >& aFunctionalObject ) : 00121 // DCNeutralVisibleList< Neutral , Neutral::CandidateClass >( aFunctionalObject ) 00122 //{ 00123 // fill( aTruthList ) ; 00124 //} 00125 00126 //template< class Neutral , 00127 // class TruthWitnesses , 00128 // class VisibleWitnesses > 00129 //DCFillableNeutralList< Neutral , TruthWitnesses , VisibleWitnesses >:: 00130 //DCFillableNeutralList( const VisibleWitnesses& aVisibleList , 00131 // DCSelectionFunction< Neutral >& aFunctionalObject ) : 00132 // DCNeutralVisibleList< Neutral , Neutral::CandidateClass >( aFunctionalObject ) 00133 //{ 00134 // fill( aVisibleList ) ; 00135 //} 00136 00137 template< class Neutral > 00138 // class TruthWitnesses , 00139 // class VisibleWitnesses > 00140 DCFillableNeutralList< Neutral >:: 00141 DCFillableNeutralList( const DCFillableNeutralList< Neutral >& aOtherList , 00142 DCSelectionFunction< Neutral >& aFunctionalObject ) : 00143 DCNeutralVisibleList< Neutral , 00144 typename Neutral::CandidateClass >( aOtherList , 00145 aFunctionalObject ) 00146 { 00147 } 00148 /* 00149 template< class Neutral > 00150 DCFillableNeutralList< Neutral >:: 00151 DCFillableNeutralList( const vector<Neutral>& aVector ) 00152 { 00153 fill(aVector); 00154 } 00155 */ 00156 00157 template< class Neutral > 00158 // class TruthWitnesses , 00159 // class VisibleWitnesses > 00160 DCFillableNeutralList< Neutral >:: 00161 ~DCFillableNeutralList() 00162 { 00163 } 00164 00165 // 00166 // assignment operators 00167 // 00168 00169 //template< class Neutral , 00170 // class TruthWitnesses , 00171 // class VisibleWitnesses > 00172 //const DCFillableNeutralList< Neutral , TruthWitnesses , VisibleWitnesses >& DCFillableNeutralList< Neutral , TruthWitnesses , VisibleWitnesses >:: 00173 //operator=( const TruthWitnesses& aTruthList ) 00174 //{ 00175 // eraseContents() ; 00176 // fill( aTruthList ) ; 00177 // return ( *this ) ; 00178 //} 00179 00180 //template< class Neutral > 00181 // class TruthWitnesses , 00182 // class VisibleWitnesses > 00183 //const DCFillableNeutralList< Neutral, TruthWitnesses, VisibleWitnesses >& DCFillableNeutralList< Neutral , TruthWitnesses , VisibleWitnesses >:: 00184 //operator=( const VisibleWitnesses& aVisibleList ) 00185 //{ 00186 // eraseContents() ; 00187 // fill( aVisibleList ) ; 00188 // return ( *this ) ; 00189 //} 00190 00191 template< class Neutral > 00192 // class TruthWitnesses , 00193 // class VisibleWitnesses > 00194 const DCFillableNeutralList< Neutral >& 00195 DCFillableNeutralList< Neutral >::operator=( 00196 const DCFillableNeutralList< Neutral >& aOtherList ) 00197 { 00198 DCNeutralVisibleList< Neutral , 00199 typename Neutral::CandidateClass >::operator=( 00200 aOtherList ) ; 00201 return ( *this ) ; 00202 } 00203 00204 // 00205 // member functions 00206 // 00207 00208 //template< class Neutral , 00209 // class TruthWitnesses , 00210 // class VisibleWitnesses > 00211 //void DCFillableNeutralList< Neutral , TruthWitnesses , VisibleWitnesses >::fill( const TruthWitnesses& aList ) 00212 //{ 00213 // TruthWitnesses::const_iterator finished ( aList.end() ) ; 00214 // for ( TruthWitnesses::const_iterator entry ( aList.begin() ) ; 00215 // entry != finished ; 00216 // ++entry ) { 00217 // Neutral* localCopy = new Neutral( *entry ) ; 00218 // insert_possible( localCopy ) ; 00219 // } 00220 //} 00221 00222 //template< class Neutral , 00223 // class TruthWitnesses , 00224 // class VisibleWitnesses > 00225 //void DCFillableNeutralList< Neutral , TruthWitnesses , VisibleWitnesses >::fill( const VisibleWitnesses& aList ) 00226 //{ 00227 // VisibleWitnesses::const_iterator finished ( aList.end() ) ; 00228 // for ( VisibleWitnesses::const_iterator entry ( aList.begin() ) ; 00229 // entry != finished ; 00230 // ++entry ) { 00231 // Neutral* localCopy = new Neutral( *entry ) ; 00232 // insert_possible( localCopy ) ; 00233 // } 00234 //} 00235 00236 template< class Neutral > 00237 void 00238 DCFillableNeutralList< Neutral >::fill( 00239 const dchain::LabeledParticleList< Neutral , 00240 typename Neutral::CandidateClass >& aList ) 00241 { 00242 DCNeutralVisibleList< Neutral , 00243 typename Neutral::CandidateClass >::fill( aList ) ; 00244 } 00245 00246 00247 // 00248 // const member functions 00249 // 00250 00251 // 00252 // static member functions 00253 // 00254 00255 #endif /* DCHAIN_FILLABLENEUTRALLIST_CC */