//	$Id: BrEvent.cxx,v 1.5 1998/08/20 14:34:44 hagel Exp $
//	$Log: BrEvent.cxx,v $
//	Revision 1.5  1998/08/20 14:34:44  hagel
//	Add Copy method
//
//	Revision 1.4  1998/08/14 21:26:24  videbaek
//	Some cleanup mods
//
//	Revision 1.3  1998/03/09 20:53:50  videbaek
//	Ensure that pointers are non-NULL before deleting
//
//	Revision 1.2  1998/03/06 22:09:58  videbaek
//	Working update
//
//	Revision 1.1.1.1  1998/03/04 21:32:48  brahmlib
//	Brat base
//
//
#include "BrEvent.h"
#include <iostream.h>
//
// Root classes
//
#include "TBuffer.h"


////////////////////////////////////////////////////////////
//
// BrEvent is a BRAHMS data class providing storage and 
// access function for event data information. The data
// is stored in BrDataObject objects that are kept inside
// a THashList.
// This allows modification of the BrEvent content by the 
// user, with the BrDataObject providing a standard interface
// for information retrieval, bookkeeping and I/O selection.
//
////////////////////////////////////////////////////////////

ClassImp(BrEvent)

 BrEvent::BrEvent()
{
// Constructor. Set counter and list data members to zero.
// Don't use this constructor unless you have to and know
// what you are doing
// Use BrEvent(Int_t run, Int_t event) instead

   fEventHeader = NULL;
}

 BrEvent::BrEvent(Char_t* Name, Int_t run, Int_t event) : BrEventNode(Name)
{
// Constructor. Create the event header and the hash table
// for storing the data objects for this event. Set the 
// event name.

   fEventHeader = new BrEventHeader(run, event);
   Char_t txt[512];
   sprintf(txt,"event_%d_%d",run,event);

   SetName(txt);
   sprintf(txt," run %d, event %d",run,event);
   SetTitle(txt);
}

  BrEvent::~BrEvent()
{
// Destructor. Delete BrEvent and all the data objects
// currently owned by BrEvent
#ifdef _BRDEBUG
  cout << "BrEvent : dtor" << endl;
#endif
  if(fEventHeader)
    delete fEventHeader;
}

 void BrEvent::Copy(BrEvent &event) {
BrEventNode::Copy(event);
if(fEventHeader) {
   BrEventHeader *eventheader = event.GetEventHeader();
   if(eventheader) *eventheader = *fEventHeader;
   }
/*
BrEventHeader *eventheader = event.GetEventHeader();
if(eventheader) {
   if(!fEventHeader) fEventHeader = new BrEventHeader();
   *fEventHeader = *eventheader;
   }
   */
}
/*

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


   if (R__b.IsReading()) {
      Version_t R__v = R__b.ReadVersion();
      BrDataObject::Streamer(R__b);
      R__b >> fVerbose;
      R__b >> fEventHeader;
      R__b >> fObjectList;
   } else {
      R__b.WriteVersion(BrEvent::IsA());
      BrDataObject::Streamer(R__b);
      R__b << fVerbose;
      R__b << fEventHeader;

// make a temporary hashtable for the objects marked 
// as persistent and store only those in the output 
// buffer

      THashTable *temp = new THashTable();  
      TIter NextObject(fObjectList);
      TObject *obj;
      while(obj = NextObject())
      {
          temp->Add(obj);
      }
      R__b << temp;
      temp->Clear();
      delete temp;

   }
}

*/


ROOT page - Class index - Top of the page

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.