Line data Source code
1 : #ifndef ALIRAWEVENTV2_H
2 : #define ALIRAWEVENTV2_H
3 : // Author: Cvetan Cheshkov 11/05/2009
4 :
5 : /* Copyright(c) 1998-2003, ALICE Experiment at CERN, All rights reserved. *
6 : * See cxx source for full Copyright notice */
7 :
8 : //////////////////////////////////////////////////////////////////////////
9 : // //
10 : // AliRawEventV2 //
11 : // //
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. //
29 : // //
30 : //////////////////////////////////////////////////////////////////////////
31 :
32 : #ifndef ROOT_TObject
33 : #include <TObject.h>
34 : #endif
35 :
36 : #ifndef ROOT_TClonesArray
37 : #include <TClonesArray.h>
38 : #endif
39 :
40 :
41 : // Forward class declarations
42 : class AliRawEventHeaderBase;
43 : class AliRawVEquipment;
44 : class AliRawEquipmentV2;
45 :
46 : #include "AliRawVEvent.h"
47 :
48 : class AliRawEventV2 : public AliRawVEvent {
49 :
50 : public:
51 : AliRawEventV2();
52 : virtual ~AliRawEventV2();
53 :
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 387712 : virtual Int_t GetNSubEvents() const { return (fEvtHdrs) ? (fEvtHdrs->GetEntriesFast()-1) : 0; }
60 : AliRawEventV2 *NextSubEvent();
61 : virtual AliRawVEvent *GetSubEvent(Int_t index);
62 : void Reset();
63 : virtual void Clear(Option_t* = "");
64 :
65 : private:
66 : TClonesArray fEquipments; // AliRawEquipmentV2's
67 : TClonesArray *fEvtHdrs; //-> event and subevent headers
68 :
69 : Int_t fIndex; //!
70 : Int_t fNAllocHdrs; //!
71 : Int_t fNAllocEqs; //!
72 :
73 : AliRawEventV2(const AliRawEventV2& rawEvent);
74 : AliRawEventV2& operator = (const AliRawEventV2& rawEvent);
75 :
76 138 : ClassDef(AliRawEventV2,1) // ALICE raw event object
77 : };
78 :
79 : #endif
|