ROOT logo
#include "hevent.h"
#include "hdebug.h"
#include "TTree.h"
#include "TBranch.h"
#include "TBranchClones.h"
#include "TROOT.h"
#include "TDataMember.h"
#include "TRealData.h"
#include "TDataType.h"
#include "TClass.h"
#include "hades.h"

//*-- Author : Manuel Sanchez
//*-- Modified : 22/04/98 by Manuel Sanchex
//*-- Copyright :GENP (Univ. Santiago de Compostela)

//******************************************************************************
//
// HEvent Begin_Html
//
// Abstract base class for different kinds of events (HPartialEvent,HRecEvent,
// HSimulatedEvent, etc.)
//
// An HEvent holds the data corresponding to an event, which are arranged in
// categories (e.g. mdc raw data, mdc cal data, rich rings), which are objects
// instantiating one HCategory.  To access one of these categories the user
// can call HEvent::getCategory().  Within the categories, each data object has
// a location (given by an object instantiating HLocation) which identifies 
// that object in the category (in some sense, the location is a generalized
// index).
//
// So to access one data object, firstly one needs to get the category and then
// the particular data object.
//
// HEvent defines the most important functions any event must provide to
// access the data contained in it:
//
//  getCategory(Cat_t aCat):
//    returns the category identified by aCat
//
//  Clear(void)
//    clears the event. (Before loading a new event)
//
//  clearAll(Int_t level)
//    Clears the data in the event and the event structure 
//    (list of subevents...) depending on the value of "level".
//
//  makeBranch(TBranch *parent)
//    generates Root TTree branches for the data contained in the event and 
//    hangs them from "parent"
//
//  addCategory(Cat_t cat,HCategory *category,Option_t *opt)
//    This function adds the category "category" identified by "cat" to the 
//    event's structure.
//
//*****************************************************************************

R__EXTERN TTree *gTree;

ClassImp(HEvent)

HEvent::HEvent(void) {
  // Default constructor.
  fName=new TString("HEvent");
  fTitle=new TString("HEvent");
}

HEvent::HEvent(const Text_t *aName,const Text_t *aTitle) : 
  // Contructor specifying a name and title.
  fName(0),fTitle(0) {
  fName=new TString(aName);
  fTitle=new TString(aTitle);
}

HEvent::~HEvent(void) {
  // Destructor.
  delete fName;
  delete fTitle;
}

void HEvent::Streamer(TBuffer &R__b)
{
   // Stream an object of class HEvent.

   if (R__b.IsReading()) {
      Version_t R__v = R__b.ReadVersion(); if (R__v) { }
      TObject::Streamer(R__b);
      fName->Streamer(R__b);
      fTitle->Streamer(R__b);
   } else {
      R__b.WriteVersion(HEvent::IsA());
      TObject::Streamer(R__b);
      fName->Streamer(R__b);
      fTitle->Streamer(R__b);
   }
}
 hevent.cc:1
 hevent.cc:2
 hevent.cc:3
 hevent.cc:4
 hevent.cc:5
 hevent.cc:6
 hevent.cc:7
 hevent.cc:8
 hevent.cc:9
 hevent.cc:10
 hevent.cc:11
 hevent.cc:12
 hevent.cc:13
 hevent.cc:14
 hevent.cc:15
 hevent.cc:16
 hevent.cc:17
 hevent.cc:18
 hevent.cc:19
 hevent.cc:20
 hevent.cc:21
 hevent.cc:22
 hevent.cc:23
 hevent.cc:24
 hevent.cc:25
 hevent.cc:26
 hevent.cc:27
 hevent.cc:28
 hevent.cc:29
 hevent.cc:30
 hevent.cc:31
 hevent.cc:32
 hevent.cc:33
 hevent.cc:34
 hevent.cc:35
 hevent.cc:36
 hevent.cc:37
 hevent.cc:38
 hevent.cc:39
 hevent.cc:40
 hevent.cc:41
 hevent.cc:42
 hevent.cc:43
 hevent.cc:44
 hevent.cc:45
 hevent.cc:46
 hevent.cc:47
 hevent.cc:48
 hevent.cc:49
 hevent.cc:50
 hevent.cc:51
 hevent.cc:52
 hevent.cc:53
 hevent.cc:54
 hevent.cc:55
 hevent.cc:56
 hevent.cc:57
 hevent.cc:58
 hevent.cc:59
 hevent.cc:60
 hevent.cc:61
 hevent.cc:62
 hevent.cc:63
 hevent.cc:64
 hevent.cc:65
 hevent.cc:66
 hevent.cc:67
 hevent.cc:68
 hevent.cc:69
 hevent.cc:70
 hevent.cc:71
 hevent.cc:72
 hevent.cc:73
 hevent.cc:74
 hevent.cc:75
 hevent.cc:76
 hevent.cc:77
 hevent.cc:78
 hevent.cc:79
 hevent.cc:80
 hevent.cc:81
 hevent.cc:82
 hevent.cc:83
 hevent.cc:84
 hevent.cc:85
 hevent.cc:86
 hevent.cc:87
 hevent.cc:88
 hevent.cc:89
 hevent.cc:90
 hevent.cc:91
 hevent.cc:92
 hevent.cc:93
 hevent.cc:94
 hevent.cc:95
 hevent.cc:96