/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Event/DecayChain/DecayChain-00-00-03-slc6tag/DecayChain/List/DCFillableNeutralNCList.h

Go to the documentation of this file.
00001 #ifndef DCHAIN_FILLABLENEUTRALNCLIST_H
00002 #define DCHAIN_FILLABLENEUTRALNCLIST_H
00003 // -*- C++ -*-
00004 //
00005 // Package:     DChain
00006 // Module:      FillableNeutralNCList
00007 // 
00008 // Description: <one line class summary>
00009 //
00010 // Usage:
00011 //    <usage>
00012 //
00013 // Author:      Simon Patton
00014 // Created:     Wed Sep  3 13:47:79 EDT 1997
00015 // $Id: DCFillableNeutralNCList.h,v 1.1.1.1 2009/03/03 06:06:56 maqm Exp $
00016 //
00017 // Revision history
00018 //
00019 // $Log: DCFillableNeutralNCList.h,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:25  cdj
00024 // massive class renaming, addition of [] for selection and unit tests
00025 //
00026 // Revision 1.2  2002/07/23 20:19:14  cdj
00027 // Can now use dc_fill even when compiler has templated member functions
00028 //
00029 // Revision 1.1  2001/09/11 15:02:26  ajm36
00030 // add files to do neutral non-conjugating particles
00031 //
00032 // Revision 1.3  2000/12/30 19:43:30  cdj
00033 // no more missing symbols under OSF1
00034 //
00035 // Revision 1.2  2000/12/19 23:40:09  cdj
00036 // dc_fill now works correctly
00037 //
00038 // Revision 1.1.1.1  2000/12/18 22:16:52  cdj
00039 // imported DChain
00040 //
00041 // Revision 1.4  1998/08/20 19:59:01  sjp
00042 // Modified to use DChainBoolean
00043 //
00044 // Revision 1.3  1998/08/19 20:39:52  sjp
00045 // Fixed include path for defintions
00046 //
00047 // Revision 1.2  1998/04/17 19:11:02  sjp
00048 // Modified to use latest types
00049 //
00050 // Revision 1.1  1997/09/17 20:06:17  sjp
00051 // New class to separate filling from behaviour
00052 //
00053 
00054 // system include files
00055 
00056 // user include files
00057 #include "DecayChain/List/DCNeutralNCVisibleList.h" // superclass declaration
00058 
00059 // forward declarations
00060 
00061 template < class NeutralNC >
00062 class DCFillableNeutralNCList : public DCNeutralNCVisibleList< NeutralNC , typename NeutralNC::CandidateClass >
00063 {
00064       // friend classes and functions
00065 
00066    public:
00067       // constants, enums and typedefs
00068 
00069       // Constructors and destructor
00070       DCFillableNeutralNCList( bool ( * pFunction )( NeutralNC& ) = 0 ) ;
00071       template <class WitnessIterator>
00072       DCFillableNeutralNCList(WitnessIterator first, WitnessIterator last, 
00073                             bool ( * pFunction )( NeutralNC& ) = 0 ) :
00074             DCNeutralNCVisibleList<NeutralNC, typename NeutralNC::CandidateClass>(pFunction){
00075          fill(first, last); }
00076 
00077       //DCFillableNeutralNCList( const TruthWitnesses& aTruthList ,
00078         //                 bool ( * pFunction )( NeutralNC& ) = 0 ) ;
00079       //DCFillableNeutralNCList( const VisibleWitnesses& aVisibleList ,
00080         //                 bool ( * pFunction )( NeutralNC& ) = 0 ) ;
00081       template<class WitnessIterator>
00082       DCFillableNeutralNCList(WitnessIterator first, WitnessIterator last, 
00083                             DCSelectionFunction< NeutralNC >& aFunctionalObject )
00084          : DCNeutralNCVisibleList<NeutralNC, typename NeutralNC::CandidateClass>(aFunctionalObject) {
00085          fill(first, last); }
00086 
00087       //DCFillableNeutralNCList( const TruthWitnesses& aTruthList ,
00088         //                 DCSelectionFunction< NeutralNC >& aFunctionalObject );
00089       //DCFillableNeutralNCList( const VisibleWitnesses& aVisibleList ,
00090         //                 DCSelectionFunction< NeutralNC >& aFunctionalObject );
00091 //
00092       DCFillableNeutralNCList( const DCFillableNeutralNCList< NeutralNC >& aOtherList
00093                         , bool ( * pFunction )( NeutralNC& ) = 0 ) ;
00094       DCFillableNeutralNCList( DCSelectionFunction< NeutralNC >& aFunctionalObject ) ;
00095       DCFillableNeutralNCList( const DCFillableNeutralNCList< NeutralNC >& aOtherList
00096                         , DCSelectionFunction< NeutralNC >& aFunctionalObject ) ;
00097       virtual ~DCFillableNeutralNCList() ;
00098 
00099       // assignment operator(s)
00100       const DCFillableNeutralNCList< NeutralNC >& operator=( const DCFillableNeutralNCList< NeutralNC >& aOtherList ) ;
00101       
00102       template<class Witness>
00103       const DCFillableNeutralNCList<NeutralNC>& operator=(const Witness& aWitnessList) {
00104          this->eraseContents();
00105          fill(aWitnessList.begin(), aWitnessList.end());
00106          return ( *this ) ;
00107       }
00108 
00109 
00110       // member functions
00111             
00112       // const member functions
00113 
00114       // static member functions
00115 
00116    protected:
00117       // protected member functions
00118 
00119       // protected const member functions
00120 
00121    private:
00122       // Constructors and destructor
00123       //DCFillableNeutralNCList( const DCFillableNeutralNCList< NeutralNC >& ); // stop default
00124 
00125       // private member functions
00126       void fill( 
00127          const dchain::LabeledParticleList< NeutralNC , 
00128                                   typename NeutralNC::CandidateClass >& aList ) {
00129          DCNeutralNCVisibleList< NeutralNC , 
00130                          typename NeutralNC::CandidateClass >::fill( aList ) ;
00131       }
00132       template<class WitnessIterator>
00133       void fill(WitnessIterator first, WitnessIterator last) {
00134   DCNeutralNCVisibleList<NeutralNC, typename NeutralNC::CandidateClass>::fill(first,
00135                                                                         last);
00136       }
00137 
00138       // private const member functions
00139 
00140       // data members
00141 
00142       // static data members
00143 
00144 };
00145 
00146 // inline function definitions
00147 
00148 // templated member function definitions
00149 # include "DecayChain/List/Template/DCFillableNeutralNCList.cc"
00150 
00151 template<class NeutralNC, class WitnessIterator>
00152 inline
00153 void dc_fill(DCFillableNeutralNCList<NeutralNC>& aFillableList, 
00154              WitnessIterator first, 
00155              WitnessIterator last)
00156 {
00157   aFillableList.fill(first,last);
00158 }
00159 
00160 #endif /* DCHAIN_FILLABLENEUTRALNCLIST_H */

Generated on Tue Nov 29 22:58:22 2016 for BOSS_7.0.2 by  doxygen 1.4.7