BOSS 6.6.4.p01
BESIII Offline Software System
Loading...
Searching...
No Matches
ChosenConjugateList.h
Go to the documentation of this file.
1#ifndef DCHAIN_CHOSENCONJUGATELIST_H
2#define DCHAIN_CHOSENCONJUGATELIST_H
3// -*- C++ -*-
4//
5// Package: DChain
6// Module: ChosenConjugateList
7//
8// Description: List to hold a particular conjugation of a list
9//
10// Usage:
11// <usage>
12//
13// Author: Simon Patton
14// Created: Fri Oct 4 11:04:47 EDT 1996
15// $Id: ChosenConjugateList.h,v 1.1.1.1 2009/03/03 06:06:56 maqm Exp $
16//
17// Revision history
18//
19// $Log: ChosenConjugateList.h,v $
20// Revision 1.1.1.1 2009/03/03 06:06:56 maqm
21// first import of DecayChain
22//
23// Revision 1.1 2006/01/11 20:28:21 cdj
24// massive class renaming, addition of [] for selection and unit tests
25//
26//
27
28// system include files
29
30// user include files
31#include "DecayChain/List/ConjugateList.h" // superclass declaration
33
34// forward declarations
35template <class Conjugate, class CandidateClass> class DCNeutralNCVisibleList;
36
37namespace dchain {
38template < class DecayClass > class MuteWholeItr ;
39template < class DecayClass > class WholeItr ;
40template < class DecayClass > class PartialItr ;
41template < class DecayClass , class CandidateClass > class LabeledParticleList ;
42}
43
44template < class Arg > class DCAnalysisFunction ;
45
46namespace dchain {
47template <class Conjugate, class CandidateClass> class NeutralNCVisibleList;
48
49template < class Conjugate , class CandidateClass >
50class ChosenConjugateList : public ConjugateList< CandidateClass >
51{
52 // friend classses and functions
53 friend class DCNeutralNCVisibleList< Conjugate , CandidateClass > ;
54 friend class NeutralNCVisibleList< Conjugate , CandidateClass > ;
55
56 public:
57 // constants, enums and typedefs
61
62 // Constructors and destructor
63 virtual ~ChosenConjugateList() ;
64
65 // member functions
68
69 // const member functions
74 // The for following redeclarations are required because of function hidding
75 // ( See ARM p310 )
76
77 template < class TAnalyzer >
78 void iterate( const TAnalyzer& analyzer) const
79 {
80 const_iterator finished ( particle_end() ) ;
81 for ( const_iterator entry ( particle_begin() ) ;
82 entry != finished ;
83 ++entry ) {
84 analyze( (*entry)() ) ;
85 }
86 }
87 template < class TAnalyzer>
88 void conjugation_iterate( const TAnalyzer& analyzer) const
89 {
90 const_iterator finished ( particle_end() ) ;
91 for ( const_iterator entry ( particle_begin() ) ;
92 entry != finished ;
93 ++entry ) {
94 analyze( (*entry)() , (*entry).label() == this->label() ) ;
95 }
96 }
97
98 template < class TAnalyzer>
99 void partial_iterate( const TAnalyzer& analyzer ) const {
102 entry != finished ;
103 ++entry ) {
104 analyze( (*entry)() ) ;
105 }
106 }
107 // static member functions
108
109 protected:
110 // Constructors and destructor
112 aLabeledParticleList ,
113 const conjugation::Label aLabel ) ;
114
115 // protected member functions
117
118 // protected const member functions
120
121 private:
122 // Constructors and destructor
123 ChosenConjugateList() ; // stop default
125
126 // assignment operator(s)
128
129 // private member functions
130
131 // private const member functions
132
133 // data members
135
136 // static data members
137
138};
139
140// inline function definitions
141
142}
143
144// function definitions
146
147#endif /* DCHAIN_CHOSENCONJUGATELIST_H */
WholeItr< Conjugate > const_iterator
void partial_iterate(const TAnalyzer &analyzer) const
PartialItr< Conjugate > const_partial_iterator
void iterate(const TAnalyzer &analyzer) const
const_partial_iterator partial_particle_end() const
MuteWholeItr< Conjugate > iterator
void conjugation_iterate(const TAnalyzer &analyzer) const
virtual LabeledCandidateList< CandidateClass > & labeledCandidateList()
const_partial_iterator partial_particle_begin() const