BOSS 7.0.5
BESIII Offline Software System
Loading...
Searching...
No Matches
Event/BesDChain/BesDChain-00-00-14/BesDChain/CDFootPrint.h
Go to the documentation of this file.
1#ifndef CLEODCHAIN_CDFOOTPRINT_H
2#define CLEODCHAIN_CDFOOTPRINT_H
3// -*- C++ -*-
4//
5// Package: DChain
6// Module: CDFootPrint
7//
8// Description: keep record of which building-block a CDCandidate uses.
9//
10// Usage:
11// <usage>
12//
13// Author: Simon Patton
14// Created: Wed Oct 30 13:29:19 EST 1996
15// $Id: CDFootPrint.h,v 1.3 2009/10/14 07:18:50 hujf Exp $
16//
17// Revision history
18// Modified by Sang-Joon Lee 06/26/96
19//
20// $Log: CDFootPrint.h,v $
21// Revision 1.3 2009/10/14 07:18:50 hujf
22// see ChangeLog
23//
24// Revision 1.2 2009/09/22 08:24:41 hujf
25// see ChangeLog
26//
27// Revision 1.1.1.1 2009/03/03 06:05:56 maqm
28// first import of BesDChain
29//
30// Revision 1.1 2001/04/11 13:19:17 urner
31// transition to files with CD prefix. Addition of new files
32//
33// Revision 1.2 2001/03/30 20:13:09 cdj
34// CDFootPrint now resets its m_numberIssued when the last CDFootPrint is deleted
35//
36// Revision 1.1.1.1 2000/12/18 22:17:26 cdj
37// imported CleoDChain
38//
39// Revision 1.12 1998/04/17 18:54:22 sjp
40// Modified to use latest CLEO types
41//
42// Revision 1.11 1997/08/19 23:01:42 sjp
43// Restructured package to be independent of CleoDChain
44//
45// Revision 1.10 1997/08/19 20:42:02 sjp
46// Updated to use <package>/<file>.h include structure.
47// (Note: This version of the code has not been compiled)
48//
49// Revision 1.9 1997/01/21 20:36:06 sjp
50// Changed CPP flags and include because of library reorganization
51//
52// Revision 1.8 1996/12/20 21:26:59 sjp
53// major overhaul, and fixed memoery bug
54//
55// Revision 1.7 1996/11/04 16:48:31 sjp
56// Variable length storage is implemented
57//
58// Revision 1.4 1996/04/06 02:49:24 sjp
59// Added equality check and `contains' function
60//
61// Revision 1.3 1996/02/27 15:03:57 sjp
62// Extended Array size to 6 to handle MCParticles
63//
64// Revision 1.2 1996/02/20 00:36:15 sjp
65// Changed 'fresh' to return CDFootPrint, made other return values 'const'
66//
67// Revision 1.1 1995/11/09 20:02:10 sjp
68// New class to keep track of object that have already been `used'.
69//
70
71// system include files
72#include <stdint.h>
73#include <iostream>
74
75// user include files
76
77// forward declarations
78class FingerPrint;
79
81{
82 // friend classses and functions
83 friend std::ostream& operator << ( std::ostream& os, const CDFootPrint& obj );
84 friend class FingerPrint;
85
86 public:
87 // Constructors and destructor
88 CDFootPrint() ;
89 CDFootPrint( const CDFootPrint& ) ;
90 virtual ~CDFootPrint() ;
91
92 // assignment operator(s)
93 const CDFootPrint& operator=( const CDFootPrint& );
94 const CDFootPrint& operator+=( const CDFootPrint& aOtherPrint ) ;
95
96 // member functions
98
99 // const member functions
100 bool operator==( const CDFootPrint& aOtherPrint ) const ;
101 bool operator!=( const CDFootPrint& aOtherPrint ) const ;
102 CDFootPrint operator+( const CDFootPrint& aOtherPrint ) const ;
103 bool overlap( const CDFootPrint& aOtherPrint) const ;
104 bool contains( const CDFootPrint& aOtherPrint) const ;
105
106 // static member functions
107 static void reset() ;
108
109 uint32_t ToUInt32() const { return m_array[0]; }
110 // protected const member functions
111
112 private:
113 // Constructors and destructor
114
115 // private member functions
116 void resize( const uint32_t aNewSize ) ;
117
118 // private const member functions
119
120 // data members
121 uint32_t m_size ;
122 uint32_t* m_array ;
123
124 // static data members
125 static uint32_t m_numberIssued ;
126 //when number of footprints reaches 0, reset m_numberIssued
127 static uint32_t m_numberFootprints;
128
129} ;
130
131// inline function definitions
132
133#endif /* CLEODCHAIN_CDFOOTPRINT_H */
static void reset()
CDFootPrint operator+(const CDFootPrint &aOtherPrint) const
bool operator!=(const CDFootPrint &aOtherPrint) const
bool contains(const CDFootPrint &aOtherPrint) const
bool overlap(const CDFootPrint &aOtherPrint) const
const CDFootPrint & operator=(const CDFootPrint &)
const CDFootPrint & operator+=(const CDFootPrint &aOtherPrint)
bool operator==(const CDFootPrint &aOtherPrint) const
virtual ~CDFootPrint()
friend std::ostream & operator<<(std::ostream &os, const CDFootPrint &obj)
Definition: CDFootPrint.cxx:89
CDFootPrint & fresh()