#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);
   }
}

Last change: Sat May 22 12:55:02 2010
Last generated: 2010-05-22 12:55

This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.