1 #ifndef ALIRAWEVENTV2_H
2 #define ALIRAWEVENTV2_H
3 // Author: Cvetan Cheshkov 11/05/2009
5 /* Copyright(c) 1998-2003, ALICE Experiment at CERN, All rights reserved. *
6 * See cxx source for full Copyright notice */
8 //////////////////////////////////////////////////////////////////////////
12 // Set of classes defining the ALICE RAW event format. The AliRawEventV2 //
13 // class defines a RAW event. It consists of an AliEventHeader object //
14 // an AliEquipmentHeader object, an AliRawData object and an array of //
15 // sub-events, themselves also being AliRawEventV2s. The number of //
16 // sub-events depends on the number of DATE LDC's. //
17 // The AliRawEventV2 objects are written to a ROOT file using different //
18 // technologies, i.e. to local disk via AliRawDB or via rfiod using //
19 // AliRawRFIODB or via rootd using AliRawRootdDB or to CASTOR via //
20 // rootd using AliRawCastorDB (and for performance testing there is //
21 // also AliRawNullDB). //
22 // The AliRunDB class provides the interface to the run and file //
23 // catalogues (AliEn or plain MySQL). //
24 // The AliStats class provides statics information that is added as //
25 // a single keyed object to each raw file. //
26 // The AliTagDB provides an interface to a TAG database. //
27 // The AliMDC class is usid by the "alimdc" stand-alone program //
28 // that reads data directly from DATE. //
30 //////////////////////////////////////////////////////////////////////////
36 #ifndef ROOT_TClonesArray
37 #include <TClonesArray.h>
41 // Forward class declarations
42 class AliRawEventHeaderBase;
43 class AliRawVEquipment;
44 class AliRawEquipmentV2;
46 #include "AliRawVEvent.h"
48 class AliRawEventV2 : public AliRawVEvent {
52 virtual ~AliRawEventV2();
54 AliRawEventHeaderBase *GetHeader(char*& data);
55 virtual AliRawEventHeaderBase *GetHeader();
56 virtual Int_t GetNEquipments() const;
57 AliRawEquipmentV2 *NextEquipment();
58 virtual AliRawVEquipment *GetEquipment(Int_t index) const;
59 virtual Int_t GetNSubEvents() const { return (fEvtHdrs) ? (fEvtHdrs->GetEntriesFast()-1) : 0; }
60 AliRawEventV2 *NextSubEvent();
61 virtual AliRawVEvent *GetSubEvent(Int_t index);
63 virtual void Clear(Option_t* = "");
66 TClonesArray fEquipments; // AliRawEquipmentV2's
67 TClonesArray *fEvtHdrs; //-> event and subevent headers
70 Int_t fNAllocHdrs; //!
73 AliRawEventV2(const AliRawEventV2& rawEvent);
74 AliRawEventV2& operator = (const AliRawEventV2& rawEvent);
76 ClassDef(AliRawEventV2,1) // ALICE raw event object