Main Page | Modules | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

RecDataRecord.h

Go to the documentation of this file.
00001 
00002 //
00003 // RecDataRecord
00004 //
00005 // RecDataRecord is the base class for MINOS data records
00006 //
00007 // Author:  S. Kasahara 8/02
00008 //          Based on R. Hatcher's RecMinos class
00010 
00011 #ifndef RECDATARECORD_H
00012 #define RECDATARECORD_H
00013 
00014 #include <iosfwd>
00015 #include "TObjArray.h"
00016 
00017 #ifndef RECRECORDIMP_H
00018 #include "Record/RecRecordImp.h"  // base class
00019 #endif
00020 
00021 template <class T> 
00022 class RecDataRecord : public RecRecordImp<T> {
00023 
00024  public:
00025 
00026   // Constructors and Destructors
00027    RecDataRecord();  // default constructor, necessary for streamer io
00028    RecDataRecord(const T& header); // normal constructor
00029    virtual ~RecDataRecord();
00030 
00031    // State testing methods
00032    virtual Int_t GetNComponent() const { return fNComponent; }
00033    virtual const TObjArray& GetComponentIds() const { return fComponentIds; }
00034    virtual const TObjArray& GetComponents() const { return fComponents; }
00035    virtual const TObjArray& GetTemporaries() const { return fTemporaries; }
00036 
00037    virtual const TObject* FindComponent(const char* classname = 0, 
00038                                         const char* objectname = 0) const;
00039    virtual const TObject* FindTemporary(const char* classname = 0, 
00040                                         const char* objectname = 0) const;
00041 
00042    virtual bool HasComponent(const char* classname = 0, 
00043                              const char* objectname = 0) const;
00044    virtual std::ostream& Print(std::ostream& os) const;
00045    virtual void Print(Option_t* option = "") const;
00046 
00047    // State changing methods
00048    virtual void AdoptComponent(TObject* component);
00049    virtual void AdoptTemporary(TObject* temporary);
00050 
00051  protected: 
00052  
00053    // State changing methods
00054    virtual TObject* RemoveComponent(TObject* component);
00055    virtual TObject* RemoveTemporary(TObject* temporary);
00056 
00057  private:
00058    Int_t         fNComponent;     // number of blocks in array
00059    TObjArray     fComponentIds;   // identity of data blocks 
00060    TObjArray     fComponents;     // data blocks
00061    TObjArray     fTemporaries;    
00062 
00063    void Init();
00064 
00065    // Disable copy constructor because TObjArray has ptrs to owned objects
00066    RecDataRecord(const RecDataRecord&);
00067    RecDataRecord& operator=(const RecDataRecord&);
00068  
00069    ClassDef(RecDataRecord<T>,1)
00070 };
00071 
00072 #endif // RECDATARECORD_H
00073 
00074 
00075 

Generated on Mon Feb 15 11:07:30 2010 for loon by  doxygen 1.3.9.1