BOSS
7.0.9
BESIII Offline Software System
Loading...
Searching...
No Matches
CombinatoricLoop.h
Go to the documentation of this file.
1
#ifndef DCHAIN_COMBINATORICLOOP_H
2
#define DCHAIN_COMBINATORICLOOP_H
3
// -*- C++ -*-
4
//
5
// Package: DChain
6
// Module: CombinatoricLoop
7
//
8
// Description: return 'begin' and 'end' of loop during Combinatoric generation
9
//
10
// Usage:
11
// <usage>
12
//
13
// Author: Simon Patton
14
// Created: Mon Oct 21 10:06:45 EDT 1996
15
// $Id: CombinatoricLoop.h,v 1.1.1.1 2009/03/03 06:06:56 maqm Exp $
16
//
17
// Revision history
18
//
19
// $Log: CombinatoricLoop.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:22 cdj
24
// massive class renaming, addition of [] for selection and unit tests
25
//
26
// Revision 1.2 2002/06/19 20:34:30 cleo3
27
// added missing typename
28
//
29
// Revision 1.1.1.1 2000/12/18 22:16:52 cdj
30
// imported DChain
31
//
32
// Revision 1.12 1998/08/19 20:38:01 sjp
33
// Fixed include path for defintions
34
//
35
// Revision 1.11 1998/06/30 23:41:29 sjp
36
// Moved ctor so that SunOS5 would compile
37
//
38
// Revision 1.10 1998/05/01 20:19:10 sjp
39
// Added necessary include file from STLUtility
40
//
41
// Revision 1.9 1998/04/17 19:11:01 sjp
42
// Modified to use latest types
43
//
44
// Revision 1.8 1997/08/28 06:59:49 sjp
45
// Modified files to handle complete templating
46
//
47
// Revision 1.7 1997/08/19 16:18:25 sjp
48
// Improved handling of STL containers
49
//
50
// Revision 1.6 1997/08/15 21:32:14 sjp
51
// Updated to use <package>/<file>.h include structure.
52
// Updated to use bug flags specified in Experiement.h
53
//
54
// Revision 1.5 1997/01/31 20:17:05 sjp
55
// Modified to use the new `bug' include files
56
//
57
// Revision 1.4 1997/01/22 16:27:14 sjp
58
// Fixed error in pre-processor labels
59
//
60
// Revision 1.3 1997/01/21 20:33:43 sjp
61
// Changed CPP flags and include because of library reorganization
62
//
63
// Revision 1.2 1996/12/20 21:19:06 sjp
64
// Extended pathnames for Include files
65
//
66
// Revision 1.1 1996/11/04 19:35:52 sjp
67
// New file for new `List' module
68
//
69
70
// system include files
71
#include <assert.h>
72
73
// user include files
74
#include "
DecayChain/List/CandidateList.h
"
// for iterator declarations
75
76
// STL include files
77
#include <vector>
78
79
// forward declarations
80
namespace
dchain
{
81
template
<
class
Cand
id
ateClass >
class
CombinatoricLoop ;
82
83
//
84
// Note: Most of the methods are included in the declarations because
85
// there are too many problems with the g++ compiler to make is
86
// sensible to have separate definitions
87
88
#ifndef _combinatoricloop_vector_
89
// The following CPP macro is used to avoid having to typedef
90
// a map in the class. Why? Because things can get messy, at
91
// least in the g++ compiler as the typedef can cause instantiation
92
// when not all the necessary information is available!
93
#define _combinatoricloop_vector_ std::vector< CombinatoricLoop< CandidateClass >* >
94
#endif
95
96
template
<
class
Cand
id
ateClass >
97
class
CombinatoricLoop
98
{
99
// friend classses and functions
100
101
public
:
102
103
// constants, enums and typedefs
104
105
// Constructors and destructor
106
// Due to some `feature' of CC on SunOS5 the constructor has been
107
// moved to be the last declaration in the public area.
108
virtual
~CombinatoricLoop
();
109
110
// member functions
111
void
setCurrentIterator
(
typename
dchain::CandidateList< CandidateClass >::const_partial_iterator
& aIterator ) ;
112
113
// const member functions
114
const
typename
dchain::CandidateList< CandidateClass >::const_partial_iterator
partial_begin
()
const
;
115
const
typename
dchain::CandidateList< CandidateClass >::const_partial_iterator
partial_end
()
const
;
116
117
CombinatoricLoop
(
const
typename
dchain::CandidateList< CandidateClass >::const_partial_iterator
& aBegin ,
118
const
typename
dchain::CandidateList< CandidateClass >::const_partial_iterator
& aEnd ,
119
_combinatoricloop_vector_
& aLoopList ) ;
120
121
// static member functions
122
123
protected
:
124
// protected member functions
125
126
// protected const member functions
127
128
private
:
129
// Constructors and destructor
130
CombinatoricLoop
() ;
// stop default
131
CombinatoricLoop
(
const
CombinatoricLoop< CandidateClass >
& ) ;
// stop default
132
133
// assignment operator(s)
134
const
CombinatoricLoop
& operator=(
const
CombinatoricLoop< CandidateClass >
& ) ;
// stop default
135
136
// private member functions
137
void
adjustEnd() ;
138
139
// private const member functions
140
141
// data members
142
typename
dchain::CandidateList< CandidateClass >::const_partial_iterator
m_beginIterator ;
143
typename
dchain::CandidateList< CandidateClass >::const_partial_iterator
m_endIterator ;
144
typename
dchain::CandidateList< CandidateClass >::const_partial_iterator
m_currentIterator ;
145
typename
_combinatoricloop_vector_::const_iterator* m_previousDuplicate ;
146
147
// static data members
148
149
};
150
151
// inline function definitions
152
}
153
154
// function definitions
155
# include "
DecayChain/List/Template/CombinatoricLoop.cc
"
156
157
#endif
/* DCHAIN_COMBINATORICLOOP_H */
CandidateList.h
CombinatoricLoop.cc
_combinatoricloop_vector_
#define _combinatoricloop_vector_
Definition:
CombinatoricLoop.h:93
dchain::CombinatoricLoop
Definition:
CombinatoricLoop.h:98
dchain::CombinatoricLoop::partial_end
const dchain::CandidateList< CandidateClass >::const_partial_iterator partial_end() const
Definition:
CombinatoricLoop.cc:154
dchain::CombinatoricLoop::partial_begin
const dchain::CandidateList< CandidateClass >::const_partial_iterator partial_begin() const
Definition:
CombinatoricLoop.cc:144
dchain::CombinatoricLoop::setCurrentIterator
void setCurrentIterator(typename dchain::CandidateList< CandidateClass >::const_partial_iterator &aIterator)
Definition:
CombinatoricLoop.cc:134
dchain::CombinatoricLoop::~CombinatoricLoop
virtual ~CombinatoricLoop()
Definition:
CombinatoricLoop.cc:117
dchain::PartialCandidateItr
Definition:
PartialCandidateItr.h:48
dchain
Definition:
children.h:16
source
Event
DecayChain
DecayChain-00-00-03-slc6tag
DecayChain
List
CombinatoricLoop.h
Generated by
1.9.6