ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/MitAna/DataCont/interface/BaseCollection.h
Revision: 1.4
Committed: Fri Mar 6 13:52:54 2009 UTC (16 years, 2 months ago) by loizides
Content type: text/plain
Branch: MAIN
Changes since 1.3: +17 -3 lines
Log Message:
Have Entries also implemented for BaseCollection avoiding successive virtual calls.

File Contents

# User Rev Content
1 loizides 1.1 //--------------------------------------------------------------------------------------------------
2 loizides 1.4 // $Id: BaseCollection.h,v 1.3 2008/12/10 11:25:00 loizides Exp $
3 loizides 1.1 //
4     // BaseCollection
5     //
6     // Base collection class (virtual) to allow efficient resetting in TAM.
7     //
8     // Authors: C.Loizides
9     //--------------------------------------------------------------------------------------------------
10    
11 loizides 1.2 #ifndef MITANA_DATACONT_BASECOLLECTION_H
12     #define MITANA_DATACONT_BASECOLLECTION_H
13 loizides 1.1
14     #include <TObject.h>
15    
16     namespace mithep
17     {
18     class BaseCollection : public TObject
19     {
20     public:
21 loizides 1.4 BaseCollection() : fEntries(-1) {}
22 loizides 1.1
23 loizides 1.4 void Clear(Option_t */*opt*/="") { fEntries = -1; }
24     UInt_t Entries() const;
25 loizides 1.1 virtual UInt_t GetEntries() const = 0;
26 loizides 1.3 virtual TObject *ObjAt(UInt_t idx) = 0;
27     virtual const TObject *ObjAt(UInt_t idx) const = 0;
28 loizides 1.1 virtual Bool_t IsOwner() const = 0;
29     virtual void Reset() = 0;
30     virtual void Trim() = 0;
31    
32 loizides 1.4 protected:
33     mutable Int_t fEntries; //!cached number of entries
34    
35 loizides 1.3 ClassDef(BaseCollection, 1) // Base class of all our collections
36 loizides 1.1 };
37     }
38 loizides 1.4
39     //--------------------------------------------------------------------------------------------------
40     inline UInt_t mithep::BaseCollection::Entries() const
41     {
42     // Return cached number of entries
43    
44     if (fEntries<0)
45     fEntries = GetEntries();
46     return fEntries;
47     }
48 loizides 1.1 #endif