No need to liknk with lhapdf, pythia6 and microcern libraries
[u/mrichter/AliRoot.git] / RAW / AliRawEvent.h
CommitLineData
c689d2f6 1#ifndef ALIRAWEVENT_H
2#define ALIRAWEVENT_H
d04aea32 3// @(#) $Id$
5ea08be4 4// Author: Fons Rademakers 26/11/99
5// Updated: Dario Favretto 15/04/2003
6
35aa01d6 7/* Copyright(c) 1998-2003, ALICE Experiment at CERN, All rights reserved. *
8 * See cxx source for full Copyright notice */
9
10//////////////////////////////////////////////////////////////////////////
11// //
12// AliRawEvent //
13// //
14// Set of classes defining the ALICE RAW event format. The AliRawEvent //
15// class defines a RAW event. It consists of an AliEventHeader object //
16// an AliEquipmentHeader object, an AliRawData object and an array of //
17// sub-events, themselves also being AliRawEvents. The number of //
18// sub-events depends on the number of DATE LDC's. //
19// The AliRawEvent objects are written to a ROOT file using different //
20// technologies, i.e. to local disk via AliRawDB or via rfiod using //
21// AliRawRFIODB or via rootd using AliRawRootdDB or to CASTOR via //
22// rootd using AliRawCastorDB (and for performance testing there is //
23// also AliRawNullDB). //
24// The AliRunDB class provides the interface to the run and file //
25// catalogues (AliEn or plain MySQL). //
26// The AliStats class provides statics information that is added as //
27// a single keyed object to each raw file. //
28// The AliTagDB provides an interface to a TAG database. //
29// The AliMDC class is usid by the "alimdc" stand-alone program //
30// that reads data directly from DATE. //
31// //
32//////////////////////////////////////////////////////////////////////////
5ea08be4 33
34#ifndef ROOT_TObject
35#include <TObject.h>
36#endif
37
b7d09bb3 38#ifndef ROOT_TObjArray
39#include <TObjArray.h>
40#endif
41
5ea08be4 42
43// Forward class declarations
f2dc6b20 44class AliRawEventHeaderBase;
94d918a7 45class AliRawEquipment;
5ea08be4 46
5ea08be4 47
c689d2f6 48class AliRawEvent : public TObject {
5ea08be4 49
50public:
51 AliRawEvent();
52 virtual ~AliRawEvent();
53
f2dc6b20 54 AliRawEventHeaderBase *GetHeader(char*& data);
55 AliRawEventHeaderBase *GetHeader();
94d918a7 56 Int_t GetNEquipments() const { return fNEquipments; }
57 AliRawEquipment *NextEquipment();
58 AliRawEquipment *GetEquipment(Int_t index) const;
5ea08be4 59 Int_t GetNSubEvents() const { return fNSubEvents; }
60 AliRawEvent *NextSubEvent();
5459c838 61 AliRawEvent *GetSubEvent(Int_t index) const;
5ea08be4 62 void Reset();
63
c689d2f6 64private:
94d918a7 65 Int_t fNEquipments; // number of valid equipments
c689d2f6 66 Int_t fNSubEvents; // number of valid sub-events
f2dc6b20 67 AliRawEventHeaderBase *fEvtHdr; // event header object
94d918a7 68 TObjArray *fEquipments; // AliRawEquipment's
c689d2f6 69 TObjArray *fSubEvents; // sub AliRawEvent's
70
a197a4ce 71 AliRawEvent(const AliRawEvent& rawEvent);
72 AliRawEvent& operator = (const AliRawEvent& rawEvent);
edbfa2f2 73
94d918a7 74 ClassDef(AliRawEvent,2) // ALICE raw event object
5ea08be4 75};
76
5ea08be4 77#endif