00001 00002 // $Id: RawRecord.h,v 1.14 2005/04/29 22:45:31 minoscvs Exp $ 00003 // 00004 // RawRecord 00005 // 00006 // RawRecord is the top level object for raw MINOS data from the online 00007 // This is the primary key for I/O of records of data; individual 00008 // CandEventLists are built under this 00009 // 00010 // Author: R. Hatcher 2000.04.19 00011 // 00013 00014 #ifndef RAWRECORD_H 00015 #define RAWRECORD_H 00016 00017 #include "Record/RecMinos.h" 00018 00019 class RawHeader; 00020 class RawDataBlock; 00021 00022 class RawRecord : public RecMinos { 00023 00024 public: 00025 00026 RawRecord(); // necessary for streamer io 00027 RawRecord(RawHeader *rh); // adopt the RawHeader 00028 virtual ~RawRecord(); 00029 00030 const RawHeader *GetRawHeader() const; 00031 const RawDataBlock *FindRawBlock(const char *classname = 0, 00032 const char *objname =0) const; 00033 const TObjArray &GetRawBlockList() const; 00034 TIter GetRawBlockIter(Bool_t dir = kIterForward) const; 00035 00036 void AdoptRawBlock(RawDataBlock *rawblock); 00037 00038 virtual void Print(Option_t *option="") const; 00039 00040 virtual const char *GetName() const; // override TNamed version 00041 00042 static void PrintPromotionCount(); 00043 00044 protected: 00045 00046 // logical const method (though it could potentially change things) 00047 void PromoteRawDataBlocks() const; 00048 mutable bool promotionChecked; 00049 00050 void ListBlocks() const; 00051 00052 // hide this so no direct usage 00053 // one should only be entering RawDataBlock derived objects 00054 virtual void AdoptComponent(TObject* component); 00055 00056 private: 00057 00058 ClassDef(RawRecord,1) 00059 }; 00060 00061 inline const TObjArray& RawRecord::GetRawBlockList() const 00062 { PromoteRawDataBlocks(); return RecMinos::GetComponents(); } 00063 00064 #endif // RAWRECORD_H
1.3.9.1