/home/bes3soft/bes3soft/Boss/7.0.2/dist/7.0.2/Event/DecayChain/DecayChain-00-00-03-slc6tag/DecayChain/List/Template/ConjugateList.cc

Go to the documentation of this file.
00001 #ifndef DCHAIN_CONJUGATELIST_CC
00002 #define DCHAIN_CONJUGATELIST_CC
00003 // -*- C++ -*-
00004 //
00005 // Package:     DChain
00006 // Module:      ConjugateList
00007 // 
00008 // Description: container of 'const Candidates*', used for partial iteration
00009 //
00010 // Implimentation:
00011 //     <Notes on implimentation>
00012 //
00013 // Author:      Simon Patton
00014 // Created:     Sat Oct  5 17:18:02 EDT 1996
00015 // $Id: ConjugateList.cc,v 1.1.1.1 2009/03/03 06:06:56 maqm Exp $
00016 //
00017 // Revision history
00018 //
00019 // $Log: ConjugateList.cc,v $
00020 // Revision 1.1.1.1  2009/03/03 06:06:56  maqm
00021 // first import of DecayChain
00022 //
00023 // Revision 1.1  2006/01/11 20:28:35  cdj
00024 // massive class renaming, addition of [] for selection and unit tests
00025 //
00026 // Revision 1.1.1.1  2000/12/18 22:16:55  cdj
00027 // imported DChain
00028 //
00029 // Revision 1.10  1998/08/21 00:51:55  sjp
00030 // Modifier to no longer use typedefs
00031 //
00032 // Revision 1.9  1998/08/20 20:00:10  sjp
00033 // Modified to use DChainBoolean
00034 //
00035 // Revision 1.8  1998/08/19 20:46:22  sjp
00036 // Fixed comments and removed report references
00037 //
00038 // Revision 1.7  1998/04/17 19:14:50  sjp
00039 // Modified to use latest type
00040 //
00041 // Revision 1.6  1997/08/28 07:00:38  sjp
00042 // Modified files to handle complete templating
00043 //
00044 // Revision 1.5  1997/08/19 23:03:18  sjp
00045 // Restructured package to be independent of Rock
00046 //
00047 // Revision 1.4  1997/08/15 21:33:42  sjp
00048 // Updated to use <package>/<file>.h include structure.
00049 // Updated to use bug flags specified in Experiement.h
00050 //
00051 // Revision 1.3  1997/01/21 20:31:39  sjp
00052 // Changed CPP flags and include because of library reorganization
00053 //
00054 // Revision 1.2  1997/01/19 20:28:44  sjp
00055 // Changed LargeCount to Count
00056 //
00057 // Revision 1.1  1996/11/04 17:17:15  sjp
00058 // New file for new `List' module
00059 //
00060 
00061 // system include files
00062 
00063 // user include files
00064 #include "DecayChain/Function/DCAnalysisFunction.h"
00065 #include "DecayChain/Function/DCConjugateFunction.h"
00066 #include "DecayChain/Iterator/MuteWholeCandidateItr.h"
00067 #include "DecayChain/Iterator/WholeCandidateItr.h"
00068 #include "DecayChain/Iterator/PartialCandidateItr.h"
00069 
00070 #include "DecayChain/List/ConjugateList.h"
00071 
00072 //
00073 // constants, enums and typedefs
00074 //
00075 namespace dchain {
00076 //
00077 // static data member definitions
00078 //
00079 
00080 //
00081 // constructors and destructor
00082 //
00083 
00084 template < class CandidateClass >
00085 ConjugateList< CandidateClass >::ConjugateList( const conjugation::Label aLabel ) :
00086    m_label( aLabel )
00087 {
00088 }
00089 
00090 // ConjugateList< CandidateClass >::ConjugateList( const ConjugateList& )
00091 // {
00092 // }
00093 
00094 template < class CandidateClass >
00095 ConjugateList< CandidateClass >::~ConjugateList()
00096 {
00097 }
00098 
00099 //
00100 // assignment operators
00101 //
00102 // const ConjugateList& ConjugateList< CandidateClass >::operator=( const ConjugateList& )
00103 // {
00104 // }
00105 
00106 //
00107 // member functions
00108 //
00109 
00110 template < class CandidateClass >
00111 void ConjugateList< CandidateClass >::setLabel( const conjugation::Label aLabel )
00112 {
00113    m_label = aLabel ;
00114 }
00115 
00116 //
00117 // const member functions
00118 //
00119 
00120 template < class CandidateClass >
00121 bool ConjugateList< CandidateClass >::isSelfConjugate() const
00122 {
00123    return ( conjugation::kNone == m_label ) ;
00124 }
00125 
00126 template < class CandidateClass >
00127 bool ConjugateList< CandidateClass >::isConjugateOf( const ConjugateList< CandidateClass >& aList ) const
00128 {
00129    return ( ( &(this->labeledCandidateList()) == &(aList.labeledCandidateList()) ) &&
00130             ( label() == otherLabel( aList.label() ) ) ) ;
00131 }
00132 
00133 template < class CandidateClass >
00134 int ConjugateList< CandidateClass >::partial_size() const
00135 {
00136    return ( this->labeledCandidateList().size( m_label ) ) ;
00137 }
00138 
00139 template < class CandidateClass >
00140 typename ConjugateList< CandidateClass >::const_partial_iterator ConjugateList< CandidateClass >::partial_begin() const
00141 {
00142    return ( this->labeledCandidateList().begin( m_label ) ) ;
00143 }
00144 
00145 template < class CandidateClass >
00146 typename ConjugateList< CandidateClass >::const_partial_iterator ConjugateList< CandidateClass >::partial_end() const
00147 {
00148    return ( this->labeledCandidateList().end( m_label ) ) ;
00149 }
00150 
00151 template < class CandidateClass >
00152 typename ConjugateList< CandidateClass >::const_partial_iterator ConjugateList< CandidateClass >::conjugate_partial_begin() const
00153 {
00154    return ( this->labeledCandidateList().begin( otherLabel( m_label ) ) ) ;
00155 }
00156 
00157 template < class CandidateClass >
00158 typename ConjugateList< CandidateClass >::const_partial_iterator ConjugateList< CandidateClass >::conjugate_partial_end() const
00159 {
00160    return ( this->labeledCandidateList().end( otherLabel( m_label ) ) ) ;
00161 }
00162 
00163 
00164 template < class CandidateClass >
00165 conjugation::Label ConjugateList< CandidateClass >::label() const
00166 {
00167    return ( m_label ) ;
00168 }
00169 
00170 //
00171 // static member functions
00172 //
00173 }
00174 #endif /* DCHAIN_CONJUGATELIST_CC */

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