CGEM BOSS 6.6.5.g
BESIII Offline Software System
Loading...
Searching...
No Matches
NeutralVisibleList.cc
Go to the documentation of this file.
1#ifndef DCHAIN_NEUTRALVISIBLELIST_CC
2#define DCHAIN_NEUTRALVISIBLELIST_CC
3// -*- C++ -*-
4//
5// Package: DChain
6// Module: NeutralVisibleList
7//
8// Description: <one line class summary>
9//
10// Implimentation:
11// <Notes on implimentation>
12//
13// Author: Simon Patton
14// Created: Fri Oct 4 11:04:56 EDT 1996
15// $Id: NeutralVisibleList.cc,v 1.1.1.1 2009/03/03 06:06:56 maqm Exp $
16//
17// Revision history
18//
19// $Log: NeutralVisibleList.cc,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:40 cdj
24// massive class renaming, addition of [] for selection and unit tests
25//
26// Revision 1.2 2003/05/15 19:56:13 cdj
27// revamped memory handling so always use a ReferenceHolder to deal with the reference counting
28//
29// Revision 1.1.1.1 2000/12/18 22:16:56 cdj
30// imported DChain
31//
32// Revision 1.14 1998/08/20 20:00:14 sjp
33// Modified to use DChainBoolean
34//
35// Revision 1.13 1998/08/19 20:46:26 sjp
36// Fixed comments and removed report references
37//
38// Revision 1.12 1998/04/17 19:14:54 sjp
39// Modified to use latest type
40//
41// Revision 1.11 1997/09/17 20:05:36 sjp
42// Removed filling to superclass
43//
44// Revision 1.10 1997/09/03 14:58:28 sjp
45// Use new report.h and TBParticlePoint
46//
47// Revision 1.9 1997/08/28 07:00:23 sjp
48// Modified files to handle complete templating
49//
50// Revision 1.8 1997/08/19 23:02:39 sjp
51// Restructured package to be independent of Rock
52//
53// Revision 1.7 1997/08/19 15:55:29 sjp
54// Modified list to have no dependence on any other
55// structures except its contents, which must have
56// certain `typedef' available to use.
57//
58// Revision 1.6 1997/08/15 21:33:55 sjp
59// Updated to use <package>/<file>.h include structure.
60// Updated to use bug flags specified in Experiement.h
61//
62// Revision 1.5 1997/01/31 20:16:29 sjp
63// Modified to use the new `bug' include files
64//
65// Revision 1.4 1997/01/21 20:31:50 sjp
66// Changed CPP flags and include because of library reorganization
67//
68// Revision 1.3 1996/12/20 21:14:03 sjp
69// Changed aPossible to Possible and added dropLink where nec.
70//
71// Revision 1.2 1996/11/05 19:31:31 sjp
72// Added definition for filling for TruthTable.
73//
74// Revision 1.1 1996/11/04 17:17:22 sjp
75// New file for new `List' module
76//
77
78// system include files
79#include <stdlib.h> // required for 'exit'
80
81// user include files
87
89
90namespace dchain {
91//
92// constants, enums and typedefs
93//
94
95//
96// static data member definitions
97//
98
99//
100// constructors and destructor
101//
102
103template< class Neutral , class CandidateClass >
106 dchain::ConjugateList< CandidateClass >( dchain::conjugation::kNone ) ,
107 m_list( (new dchain::LabeledParticleList< Neutral , CandidateClass >) )
108{
109}
110
111template< class Neutral , class CandidateClass >
114 dchain::ConjugateList< CandidateClass >( dchain::conjugation::kNone ) ,
115 m_list( (new dchain::LabeledParticleList< Neutral , CandidateClass >) )
116{
117 typedef typename MakerTrait<Neutral>::maker_type Maker;
118 fill( *(aOtherList.m_list), Maker(), SelectAll<Neutral>() ) ;
119
120}
121
122
123template< class Neutral , class CandidateClass >
126{
127}
128
129//
130// assignment operators
131//
132
133template< class Neutral , class CandidateClass >
135{
136 eraseContents() ;
137 typedef typename MakerTrait<Neutral>::maker_type Maker;
138 fill( *(aOtherList.m_list), Maker(), SelectAll<Neutral>() ) ;
139 return ( *this ) ;
140}
142//
143// member functions
145
146template< class Neutral , class CandidateClass >
148{
149 return ( m_list->begin() ) ;
150}
151
152template< class Neutral , class CandidateClass >
154{
155 return ( m_list->end() ) ;
156}
157
158template< class Neutral , class CandidateClass >
160{
161 return ( *m_list ) ;
163
164
165template < class Neutral , class CandidateClass >
167{
168 m_list->erase( m_list->begin() ,
169 m_list->end() ) ;
170}
171
172//
173// const member functions
174//
175
176template< class Neutral , class CandidateClass >
178{
179// Need to cast to 'const' to get the right function call
180 return ( (*(const dchain::LabeledParticleList< Neutral , CandidateClass >*)(m_list.pointer())).begin() ) ;
181}
182
183template< class Neutral , class CandidateClass >
185{
186// Need to cast to 'const' to get the right function call
187 return ( (*(const dchain::LabeledParticleList< Neutral , CandidateClass >*)(m_list.pointer())).end() ) ;
188}
189
190
191template< class Neutral , class CandidateClass >
193{
194 return ( *m_list ) ;
195}
196
197//
198// static member functions
199//
200}
201#endif /* DCHAIN_NEUTRALVISIBLELIST_CC */
void fill(NTuple::Array< double > &nt_p4, const HepLorentzVector &p4)
Definition: MyUtil.cxx:3
virtual dchain::LabeledParticleList< Neutral, CandidateClass > & labeledCandidateList()
const self_type & operator=(const self_type &aOtherList)