ROOT logo
#ifndef ALIRAWEVENTV2_H
#define ALIRAWEVENTV2_H
// Author: Cvetan Cheshkov  11/05/2009

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

//////////////////////////////////////////////////////////////////////////
//                                                                      //
// AliRawEventV2                                                          //
//                                                                      //
// Set of classes defining the ALICE RAW event format. The AliRawEventV2  //
// 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 AliRawEventV2s. The number of        //
// sub-events depends on the number of DATE LDC's.                      //
// The AliRawEventV2 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_TClonesArray
#include <TClonesArray.h>
#endif


// Forward class declarations
class AliRawEventHeaderBase;
class AliRawVEquipment;
class AliRawEquipmentV2;

#include "AliRawVEvent.h"

class AliRawEventV2 : public AliRawVEvent {

public:
   AliRawEventV2();
   virtual ~AliRawEventV2();

   AliRawEventHeaderBase *GetHeader(char*& data);
   virtual AliRawEventHeaderBase *GetHeader();
   virtual Int_t                  GetNEquipments() const;
   AliRawEquipmentV2             *NextEquipment();
   virtual AliRawVEquipment      *GetEquipment(Int_t index) const;
   virtual Int_t                  GetNSubEvents() const { return (fEvtHdrs) ? (fEvtHdrs->GetEntriesFast()-1) : 0; }
   AliRawEventV2                 *NextSubEvent();
   virtual AliRawVEvent          *GetSubEvent(Int_t index);
   void                           Reset();
   virtual void	                  Clear(Option_t* = "");

private:
   TClonesArray           fEquipments;  // AliRawEquipmentV2's
   TClonesArray          *fEvtHdrs;     //-> event and subevent headers

   Int_t                  fIndex;       //!
   Int_t                  fNAllocHdrs;  //!
   Int_t                  fNAllocEqs;   //!

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

   ClassDef(AliRawEventV2,1)  // ALICE raw event object
};

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