ROOT logo
#ifndef ALIRAWEVENT_H
#define ALIRAWEVENT_H
// @(#) $Id$
// Author: Fons Rademakers  26/11/99
// Updated: Dario Favretto  15/04/2003

/* Copyright(c) 1998-2003, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

//////////////////////////////////////////////////////////////////////////
//                                                                      //
// AliRawEvent                                                          //
//                                                                      //
// Set of classes defining the ALICE RAW event format. The AliRawEvent  //
// class defines a RAW event. It consists of an AliEventHeader object   //
// an AliEquipmentHeader object, an AliRawData object and an array of   //
// sub-events, themselves also being AliRawEvents. The number of        //
// sub-events depends on the number of DATE LDC's.                      //
// The AliRawEvent objects are written to a ROOT file using different   //
// technologies, i.e. to local disk via AliRawDB or via rfiod using     //
// AliRawRFIODB or via rootd using AliRawRootdDB or to CASTOR via       //
// rootd using AliRawCastorDB (and for performance testing there is     //
// also AliRawNullDB).                                                  //
// The AliRunDB class provides the interface to the run and file        //
// catalogues (AliEn or plain MySQL).                                   //
// The AliStats class provides statics information that is added as     //
// a single keyed object to each raw file.                              //
// The AliTagDB provides an interface to a TAG database.                //
// The AliMDC class is usid by the "alimdc" stand-alone program         //
// that reads data directly from DATE.                                  //
//                                                                      //
//////////////////////////////////////////////////////////////////////////

#ifndef ROOT_TObject
#include <TObject.h>
#endif

#ifndef ROOT_TObjArray
#include <TObjArray.h>
#endif


// Forward class declarations
class AliRawEventHeaderBase;

#include "AliRawVEvent.h"

class AliRawEvent : public AliRawVEvent {

public:
   AliRawEvent();
   virtual ~AliRawEvent();

   virtual AliRawEventHeaderBase *GetHeader();
   virtual Int_t                  GetNEquipments() const { return fNEquipments; }
   virtual AliRawVEquipment       *GetEquipment(Int_t index) const;
   virtual Int_t                  GetNSubEvents() const { return fNSubEvents; }
   virtual AliRawVEvent           *GetSubEvent(Int_t index);

private:
   Int_t                  fNEquipments; // number of valid equipments
   Int_t                  fNSubEvents;  // number of valid sub-events
   AliRawEventHeaderBase *fEvtHdr;      // event header object
   TObjArray             *fEquipments;  // AliRawEquipment's
   TObjArray             *fSubEvents;   // sub AliRawEvent's

   AliRawEvent(const AliRawEvent& rawEvent);
   AliRawEvent& operator = (const AliRawEvent& rawEvent);

   ClassDef(AliRawEvent,3)  // ALICE raw event object
};

#endif
 AliRawEvent.h:1
 AliRawEvent.h:2
 AliRawEvent.h:3
 AliRawEvent.h:4
 AliRawEvent.h:5
 AliRawEvent.h:6
 AliRawEvent.h:7
 AliRawEvent.h:8
 AliRawEvent.h:9
 AliRawEvent.h:10
 AliRawEvent.h:11
 AliRawEvent.h:12
 AliRawEvent.h:13
 AliRawEvent.h:14
 AliRawEvent.h:15
 AliRawEvent.h:16
 AliRawEvent.h:17
 AliRawEvent.h:18
 AliRawEvent.h:19
 AliRawEvent.h:20
 AliRawEvent.h:21
 AliRawEvent.h:22
 AliRawEvent.h:23
 AliRawEvent.h:24
 AliRawEvent.h:25
 AliRawEvent.h:26
 AliRawEvent.h:27
 AliRawEvent.h:28
 AliRawEvent.h:29
 AliRawEvent.h:30
 AliRawEvent.h:31
 AliRawEvent.h:32
 AliRawEvent.h:33
 AliRawEvent.h:34
 AliRawEvent.h:35
 AliRawEvent.h:36
 AliRawEvent.h:37
 AliRawEvent.h:38
 AliRawEvent.h:39
 AliRawEvent.h:40
 AliRawEvent.h:41
 AliRawEvent.h:42
 AliRawEvent.h:43
 AliRawEvent.h:44
 AliRawEvent.h:45
 AliRawEvent.h:46
 AliRawEvent.h:47
 AliRawEvent.h:48
 AliRawEvent.h:49
 AliRawEvent.h:50
 AliRawEvent.h:51
 AliRawEvent.h:52
 AliRawEvent.h:53
 AliRawEvent.h:54
 AliRawEvent.h:55
 AliRawEvent.h:56
 AliRawEvent.h:57
 AliRawEvent.h:58
 AliRawEvent.h:59
 AliRawEvent.h:60
 AliRawEvent.h:61
 AliRawEvent.h:62
 AliRawEvent.h:63
 AliRawEvent.h:64
 AliRawEvent.h:65
 AliRawEvent.h:66
 AliRawEvent.h:67
 AliRawEvent.h:68
 AliRawEvent.h:69
 AliRawEvent.h:70
 AliRawEvent.h:71
 AliRawEvent.h:72
 AliRawEvent.h:73