BOSS 7.1.1
BESIII Offline Software System
Loading...
Searching...
No Matches
ChosenChargeList.h
Go to the documentation of this file.
1#ifndef DCHAIN_CHOSENCHARGELIST_H
2#define DCHAIN_CHOSENCHARGELIST_H
3// -*- C++ -*-
4//
5// Package: DChain
6// Module: ChosenChargeList
7//
8// Description: List to hold a ConjugateList of ChargedVisible.
9//
10// Usage:
11// <usage>
12//
13// Author: Simon Patton
14// Created: Fri Oct 4 11:04:47 EDT 1996
15// $Id: ChosenChargeList.h,v 1.1.1.1 2009/03/03 06:06:56 maqm Exp $
16//
17// Revision history
18//
19// $Log: ChosenChargeList.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
35namespace dchain {
36 template < class Charged , class CandidateClass > class ChargedVisibleList ;
37}
38
39namespace dchain {
40
41template < class DecayClass > class MuteWholeItr ;
42template < class DecayClass > class WholeItr ;
43template < class DecayClass > class PartialItr ;
44template < class DecayClass , class CandidateClass > class LabeledParticleList ;
45}
46
47//#include <vector>
48
49template < class Arg > class DCAnalysisFunction ;
50
51namespace dchain {
52
53template < class Charged , class CandidateClass >
54class ChosenChargeList : public ConjugateList< CandidateClass >
55{
56 // friend classses and functions
57 friend class dchain::ChargedVisibleList< Charged , CandidateClass > ;
58
59 public:
60 // constants, enums and typedefs
64
65 // Constructors and destructor
66 virtual ~ChosenChargeList() ;
67
68 // member functions
71
72 // const member functions
77 //
78 template < class TAnalyzer >
79 void iterate( const TAnalyzer& analyzer) const
80 {
81 const_iterator finished ( particle_end() ) ;
82 for ( const_iterator entry ( particle_begin() ) ;
83 entry != finished ;
84 ++entry ) {
85 analyze( (*entry)() ) ;
86 }
87 }
88 template < class TAnalyzer>
89 void conjugation_iterate( const TAnalyzer& analyzer) const
90 {
91 const_iterator finished ( particle_end() ) ;
92 for ( const_iterator entry ( particle_begin() ) ;
93 entry != finished ;
94 ++entry ) {
95 analyze( (*entry)() , (*entry).label() == this->label() ) ;
96 }
97 }
98
99 template < class TAnalyzer>
100 void partial_iterate( const TAnalyzer& analyzer ) const {
103 entry != finished ;
104 ++entry ) {
105 analyze( (*entry)() ) ;
106 }
107 }
108 // static member functions
109
110 protected:
111 // Constructors and destructor
113 const conjugation::Label aLabel ) ;
114
115 // protected member functions
117
118 // protected const member functions
120
121 private:
122 // Constructors and destructor
123 ChosenChargeList() ; // stop default
124 ChosenChargeList( const ChosenChargeList< Charged , CandidateClass >& aOtherList ) ; // stop default
125
126 // assignment operator(s)
127 const ChosenChargeList< Charged , CandidateClass >& operator=( const ChosenChargeList< Charged , CandidateClass >& aOtherList ) ; // stop default
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// function definitions
144
145#endif /* DCHAIN_CHOSENCHARGELIST_H */
dchain::MuteWholeItr< Charged > iterator
void iterate(const TAnalyzer &analyzer) const
dchain::PartialItr< Charged > const_partial_iterator
void conjugation_iterate(const TAnalyzer &analyzer) const
void partial_iterate(const TAnalyzer &analyzer) const
const_partial_iterator partial_particle_begin() const
dchain::WholeItr< Charged > const_iterator
const_partial_iterator partial_particle_end() const
virtual dchain::LabeledCandidateList< CandidateClass > & labeledCandidateList()