BOSS 8.0.0
BESIII Offline Software System
Loading...
Searching...
No Matches
Reconstruction/MdcPatRec/MdcRecoUtil/include/MdcRecoUtil/HTRange.h
Go to the documentation of this file.
1//--------------------------------------------------------------------------
2// File and Version Information:
3// $Id: HTRange.h,v 1.2 2009/12/23 02:59:56 zhangy Exp $
4//
5// Description:
6// Template of HTRange class - class to hold lower/upper limits
7// for tuple columns
8//
9// Environment:
10// Software developed for the BaBar Detector at the SLAC B-Factory.
11//
12// Author List:
13// Salnikov
14//
15// Copyright Information:
16// Copyright (C) 1994 <Institution>
17//
18// History:
19// Migration for BESIII MDC
20//
21//------------------------------------------------------------------------
22
23#ifndef HTRange_H
24#define HTRange_H
25
26//-------------
27// C Headers --
28//-------------
29extern "C" {}
30
31//----------------------
32// Base Class Headers --
33//----------------------
34
35//-------------------------------
36// Collaborating Class Headers --
37//-------------------------------
38
39//------------------------------------
40// Collaborating Class Declarations --
41//------------------------------------
42
43// ---------------------
44// -- Class Interface --
45// ---------------------
46
47template <class T> class HTRange {
48
49 //--------------------
50 // Declarations --
51 //--------------------
52
53 // Typedefs, consts, and enums
54
55 //--------------------
56 // Instance Members --
57 //--------------------
58
59public:
60 // Constructors
61 HTRange() : _defined( false ), _lower( 0 ), _upper( 0 ) {}
62 HTRange( T lower, T upper ) : _defined( true ), _lower( lower ), _upper( upper ) {}
63
64 // Copy Constructor
65 HTRange( const HTRange<T>& o )
66 : _defined( o._defined ), _lower( o._lower ), _upper( o._upper ) {}
67
68 // Destructor
70
71 // Operators
72
74 if ( &o == this ) return *this;
75 _defined = o._defined;
76 _lower = o._lower;
77 _upper = o._upper;
78 return *this;
79 }
80
81 // Selectors (const)
82 bool operator()() const { return _defined; }
83
84 // get upper/lower limits
85 T lower() const { return _lower; }
86 T upper() const { return _upper; }
87
88 // Modifiers
89
90protected:
91 // Helper functions
92
93private:
94 // Friends
95
96 // Data members
97 bool _defined;
98 T _lower, _upper;
99};
100
101//
102// Some compilers require definitions of template methods to reside
103// in a separate .cc file, and some require them to reside in the .hh
104// file (this file). The following construct allows us to control
105// this from the makefile.
106
107// 1. Implement your methods in HTRange.cc.
108// 2. Exclude the HTRange.cc file from the list of compilations.
109
110// SKIP #ifdef BES_COMP_INST
111// CHANGE #include "MdcTrkRecon/Tools/HTRange.cxx"
112#include "HTRange.icc"
113
114// SKIP #endif // BES_COMP_INST
115
116#endif // TEMPLATE_H
HTRange< T > & operator=(const HTRange< T > &o)