1 // @(#) $Id: AliRawEquipment.cxx 23318 2008-01-14 12:43:28Z hristov $
2 // Author: Fons Rademakers 26/11/99
4 /**************************************************************************
5 * Copyright(c) 1998-2003, ALICE Experiment at CERN, All rights reserved. *
7 * Author: The ALICE Off-line Project. *
8 * Contributors are mentioned in the code where appropriate. *
10 * Permission to use, copy, modify and distribute this software and its *
11 * documentation strictly for non-commercial purposes is hereby granted *
12 * without fee, provided that the above copyright notice appears in all *
13 * copies and that both the copyright notice and this permission notice *
14 * appear in the supporting documentation. The authors make no claims *
15 * about the suitability of this software for any purpose. It is *
16 * provided "as is" without express or implied warranty. *
17 **************************************************************************/
19 //////////////////////////////////////////////////////////////////////////
21 // AliRawEquipmentV2 //
23 // Set of classes defining the ALICE RAW event format. The AliRawEventV2//
24 // class defines a RAW event. It consists of an AliEventHeader object //
25 // an AliEquipmentHeader object, an AliRawData object and an array of //
26 // sub-events, themselves also being AliRawEventV2s. The number of //
27 // sub-events depends on the number of DATE LDC's. //
28 // The AliRawEventV2 objects are written to a ROOT file using different //
29 // technologies, i.e. to local disk via AliRawDB or via rfiod using //
30 // AliRawRFIODB or via rootd using AliRawRootdDB or to CASTOR via //
31 // rootd using AliRawCastorDB (and for performance testing there is //
32 // also AliRawNullDB). //
33 // The AliStats class provides statics information that is added as //
34 // a single keyed object to each raw file. //
35 // The AliTagDB provides an interface to a TAG database. //
36 // The AliMDC class is usid by the "alimdc" stand-alone program //
37 // that reads data directly from DATE. //
39 //////////////////////////////////////////////////////////////////////////
41 #include "AliRawEquipmentV2.h"
42 #include "AliRawDataArrayV2.h"
43 #include "AliRawData.h"
45 ClassImp(AliRawEquipmentV2)
47 //______________________________________________________________________________
48 AliRawEquipmentV2::AliRawEquipmentV2():
54 // Create ALICE equipment object.
58 //______________________________________________________________________________
59 AliRawEquipmentHeader *AliRawEquipmentV2::GetEquipmentHeader()
61 // Get equipment header part of AliRawEquipmentV2.
66 //______________________________________________________________________________
67 AliRawData *AliRawEquipmentV2::GetRawData()
69 // Get raw data part of AliRawEquipmentV2.
72 if (fRawDataRef.IsValid()) {
73 fRawData = (AliRawData*)fRawDataRef.GetObject();
79 //______________________________________________________________________________
80 void AliRawEquipmentV2::Reset()
82 // Reset the equipment in case it needs to be re-used (avoiding costly
83 // new/delete cycle). We reset the size marker for the AliRawData
90 //______________________________________________________________________________
91 AliRawEquipmentV2::~AliRawEquipmentV2()
93 // Clean up event object. Delete also, possible, private raw data.
95 if (!fRawDataRef.IsValid()) delete fRawData;
98 //______________________________________________________________________________
99 AliRawData *AliRawEquipmentV2::NextRawData(AliRawDataArrayV2 *array)
101 // Get a pointer to the raw-data object
102 // stored within an array in a separate
103 // branch of the tree.
104 // Set the reference to the raw-data object
106 AliRawData *raw = NULL;
112 Error("NextRawData", "Raw-data array does not exist! Can not set a reference to a raw-data object!");
119 //______________________________________________________________________________
120 void AliRawEquipmentV2::CloneRawData(const AliRawData *rawData)
122 // Clone the input raw data and
126 if (rawData) fRawData = (AliRawData*)rawData->Clone();