00001
00002
00003
00004
00005
00006
00007 #ifndef IO_EVENTHANDLE_H
00008 #define IO_EVENTHANDLE_H
00009 #ifndef EDM_EVENTHANDLE_H
00010 #include "EventDataModel/EventHandle.h"
00011 #endif
00012 class TFile;
00013 class TTree;
00014 class TBranch;
00015
00016 namespace io {
00018 class EventHandle : public edm::EventHandle {
00019 public:
00020 EventHandle();
00021 virtual ~EventHandle();
00022
00023 public:
00024 int Index() const;
00025
00026 int SetupInputFile(TFile* f);
00027 int SetupOutputFile(TFile* f);
00028 int Advance(int n=1);
00029 int Rewind(int n=1);
00030
00031 void Close();
00032 virtual int Load(int branchID) const;
00033 void Report();
00034 int Write();
00035
00036 protected:
00037 static const int fBucketSize = 16000;
00040 static const int fSplitLevel = 99;
00041
00042 protected:
00043 int fIndex;
00044 TFile* fInputFile;
00045 TFile* fOutputFile;
00046 TTree* fEventTree;
00047 TBranch* fBranch[kNBranch];
00048 TTree* fOutEventTree;
00049 };
00050 }
00051 #endif // IOEVENTHANDLE_H
00052