BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
Event/DecayChain/include/DecayChain/Element/LabeledDecay.h
Go to the documentation of this file.
1#ifndef DCHAIN_LABELEDDECAY_H
2#define DCHAIN_LABELEDDECAY_H
3// -*- C++ -*-
4//
5// Package: DChain
6// Module: LabeledDecay
7//
8// Description: pairing of subclass of Decay<> and Conjugation::Label
9//
10// Usage:
11// <usage>
12//
13// Author: Simon Patton
14// Created: Wed Sep 18 14:47:30 EDT 1996
15// $Id: LabeledDecay.h,v 1.1.1.1 2009/03/03 06:06:56 maqm Exp $
16//
17// Revision history
18//
19// $Log: LabeledDecay.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:09 cdj
24// massive class renaming, addition of [] for selection and unit tests
25//
26// Revision 1.1.1.1 2000/12/18 22:16:49 cdj
27// imported DChain
28//
29// Revision 1.9 1998/08/19 20:56:00 sjp
30// Added include of definitions
31//
32// Revision 1.8 1997/08/28 06:59:19 sjp
33// Modified files to handle complete templating
34//
35// Revision 1.7 1997/08/26 04:12:58 sjp
36// Made Candidate handling objects into `CandidateClass' Templates
37//
38// Revision 1.6 1997/08/19 23:01:43 sjp
39// Restructured package to be independent of Rock
40//
41// Revision 1.5 1997/08/15 21:32:20 sjp
42// Updated to use <package>/<file>.h include structure.
43// Updated to use bug flags specified in Experiement.h
44//
45// Revision 1.4 1997/01/22 16:27:18 sjp
46// Fixed error in pre-processor labels
47//
48// Revision 1.3 1997/01/21 20:33:48 sjp
49// Changed CPP flags and include because of library reorganization
50//
51// Revision 1.2 1996/12/20 21:19:09 sjp
52// Extended pathnames for Include files
53//
54// Revision 1.1 1996/11/04 19:35:57 sjp
55// New file for new `List' module
56//
57
58// system include files
59
60// user include files
61#include "DecayChain/Element/LabeledCandidate.h" // superclass
62#include "DecayChain/Element/conjugation.h" // enumerator
63
64using namespace dchain;
65// forward declarations
66
67template <class DecayClass>
68class LabeledDecay : public LabeledCandidate<typename DecayClass::CandidateClass> {
69 // friend classses and functions
70
71public:
72 // constants, enums and typedefs
73
74 // Constructors and destructor
76 LabeledDecay( const LabeledDecay<DecayClass>& aOtherLabeled );
77 template <class THolder>
78 LabeledDecay( THolder aDecayClass, const typename conjugation::Label aLabel )
79 : LabeledCandidate<typename DecayClass::CandidateClass>( aDecayClass, aLabel ) {}
80
81 // assignment operator(s)
83
84 // member functions
85
86 // const member functions
87 // note: The following function can NOT be virtual as its return type changes
88 // for DecayClasses
89 const DecayClass& operator()() const;
90 //
91 const DecayClass& particle() const;
92
93 // static member functions
94
95protected:
96 // protected member functions
97
98 // protected const member functions
99
100private:
101 // Constructors and destructor
102
103 // private member functions
104
105 // private const member functions
106
107 // data members
108
109 // static data members
110};
111
112// function definitions
113// # include "DecayChain/Element/Template/LabeledDecay.cc"
114
115#endif /* DCHAIN_LABELEDDECAY_H */
const DecayClass & particle() const
const LabeledDecay< DecayClass > & operator=(const LabeledDecay< DecayClass > &aOtherLabeled)
LabeledDecay(const LabeledDecay< DecayClass > &aOtherLabeled)
LabeledDecay(THolder aDecayClass, const typename conjugation::Label aLabel)
const DecayClass & operator()() const