ROOT logo
// @(#) $Id: AliRawEquipment.cxx 23318 2008-01-14 12:43:28Z hristov $
// Author: Fons Rademakers  26/11/99

/**************************************************************************
 * Copyright(c) 1998-2003, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/

//////////////////////////////////////////////////////////////////////////
//                                                                      //
// AliRawEquipmentV2                                                    //
//                                                                      //
// 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 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.                                  //
//                                                                      //
//////////////////////////////////////////////////////////////////////////

#include "AliRawEquipmentV2.h"
#include "AliRawDataArrayV2.h"
#include "AliRawData.h"

ClassImp(AliRawEquipmentV2)

//______________________________________________________________________________
AliRawEquipmentV2::AliRawEquipmentV2():
AliRawVEquipment(),
fEqpHdr(),
fRawData(NULL),
fRawDataRef(NULL)
{
   // Create ALICE equipment object.

}

//______________________________________________________________________________
AliRawEquipmentHeader *AliRawEquipmentV2::GetEquipmentHeader()
{
   // Get equipment header part of AliRawEquipmentV2.

   return &fEqpHdr;
}

//______________________________________________________________________________
AliRawData *AliRawEquipmentV2::GetRawData()
{
   // Get raw data part of AliRawEquipmentV2.

  if (!fRawData) {
    if (fRawDataRef.IsValid()) {
      fRawData = (AliRawData*)fRawDataRef.GetObject();
    }
  }
  return fRawData;
}

//______________________________________________________________________________
void AliRawEquipmentV2::Reset()
{
   // Reset the equipment in case it needs to be re-used (avoiding costly
   // new/delete cycle). We reset the size marker for the AliRawData
   // object.

   fEqpHdr.Reset();
   fRawDataRef = NULL;
}

//______________________________________________________________________________
void AliRawEquipmentV2::Clear(Option_t*)
{
   // Clear the equipment in case it needs to be re-used (avoiding costly
   // new/delete cycle). Called by AliRawEventV2 Clear method inside the event loop.

   fEqpHdr.Reset();
   fRawDataRef = NULL;
   fRawData = NULL;
}

//______________________________________________________________________________
AliRawEquipmentV2::~AliRawEquipmentV2()
{
   // Clean up event object. Delete also, possible, private raw data.

   if (!fRawDataRef.IsValid()) delete fRawData;
}

//______________________________________________________________________________
AliRawData *AliRawEquipmentV2::NextRawData(AliRawDataArrayV2 *array)
{
  // Get a pointer to the raw-data object
  // stored within an array in a separate
  // branch of the tree.
  // Set the reference to the raw-data object

  AliRawData *raw = NULL;
  if (array) {
    raw = array->Add();
    fRawDataRef = raw;
  }
  else {
    Error("NextRawData", "Raw-data array does not exist! Can not set a reference to a raw-data object!");    
    fRawDataRef = NULL;
  }

  return raw;
}

//______________________________________________________________________________
void AliRawEquipmentV2::CloneRawData(const AliRawData *rawData)
{
  // Clone the input raw data and
  // flush the TRef

  fRawDataRef = NULL;
  if (rawData) fRawData = (AliRawData*)rawData->Clone();
}
 AliRawEquipmentV2.cxx:1
 AliRawEquipmentV2.cxx:2
 AliRawEquipmentV2.cxx:3
 AliRawEquipmentV2.cxx:4
 AliRawEquipmentV2.cxx:5
 AliRawEquipmentV2.cxx:6
 AliRawEquipmentV2.cxx:7
 AliRawEquipmentV2.cxx:8
 AliRawEquipmentV2.cxx:9
 AliRawEquipmentV2.cxx:10
 AliRawEquipmentV2.cxx:11
 AliRawEquipmentV2.cxx:12
 AliRawEquipmentV2.cxx:13
 AliRawEquipmentV2.cxx:14
 AliRawEquipmentV2.cxx:15
 AliRawEquipmentV2.cxx:16
 AliRawEquipmentV2.cxx:17
 AliRawEquipmentV2.cxx:18
 AliRawEquipmentV2.cxx:19
 AliRawEquipmentV2.cxx:20
 AliRawEquipmentV2.cxx:21
 AliRawEquipmentV2.cxx:22
 AliRawEquipmentV2.cxx:23
 AliRawEquipmentV2.cxx:24
 AliRawEquipmentV2.cxx:25
 AliRawEquipmentV2.cxx:26
 AliRawEquipmentV2.cxx:27
 AliRawEquipmentV2.cxx:28
 AliRawEquipmentV2.cxx:29
 AliRawEquipmentV2.cxx:30
 AliRawEquipmentV2.cxx:31
 AliRawEquipmentV2.cxx:32
 AliRawEquipmentV2.cxx:33
 AliRawEquipmentV2.cxx:34
 AliRawEquipmentV2.cxx:35
 AliRawEquipmentV2.cxx:36
 AliRawEquipmentV2.cxx:37
 AliRawEquipmentV2.cxx:38
 AliRawEquipmentV2.cxx:39
 AliRawEquipmentV2.cxx:40
 AliRawEquipmentV2.cxx:41
 AliRawEquipmentV2.cxx:42
 AliRawEquipmentV2.cxx:43
 AliRawEquipmentV2.cxx:44
 AliRawEquipmentV2.cxx:45
 AliRawEquipmentV2.cxx:46
 AliRawEquipmentV2.cxx:47
 AliRawEquipmentV2.cxx:48
 AliRawEquipmentV2.cxx:49
 AliRawEquipmentV2.cxx:50
 AliRawEquipmentV2.cxx:51
 AliRawEquipmentV2.cxx:52
 AliRawEquipmentV2.cxx:53
 AliRawEquipmentV2.cxx:54
 AliRawEquipmentV2.cxx:55
 AliRawEquipmentV2.cxx:56
 AliRawEquipmentV2.cxx:57
 AliRawEquipmentV2.cxx:58
 AliRawEquipmentV2.cxx:59
 AliRawEquipmentV2.cxx:60
 AliRawEquipmentV2.cxx:61
 AliRawEquipmentV2.cxx:62
 AliRawEquipmentV2.cxx:63
 AliRawEquipmentV2.cxx:64
 AliRawEquipmentV2.cxx:65
 AliRawEquipmentV2.cxx:66
 AliRawEquipmentV2.cxx:67
 AliRawEquipmentV2.cxx:68
 AliRawEquipmentV2.cxx:69
 AliRawEquipmentV2.cxx:70
 AliRawEquipmentV2.cxx:71
 AliRawEquipmentV2.cxx:72
 AliRawEquipmentV2.cxx:73
 AliRawEquipmentV2.cxx:74
 AliRawEquipmentV2.cxx:75
 AliRawEquipmentV2.cxx:76
 AliRawEquipmentV2.cxx:77
 AliRawEquipmentV2.cxx:78
 AliRawEquipmentV2.cxx:79
 AliRawEquipmentV2.cxx:80
 AliRawEquipmentV2.cxx:81
 AliRawEquipmentV2.cxx:82
 AliRawEquipmentV2.cxx:83
 AliRawEquipmentV2.cxx:84
 AliRawEquipmentV2.cxx:85
 AliRawEquipmentV2.cxx:86
 AliRawEquipmentV2.cxx:87
 AliRawEquipmentV2.cxx:88
 AliRawEquipmentV2.cxx:89
 AliRawEquipmentV2.cxx:90
 AliRawEquipmentV2.cxx:91
 AliRawEquipmentV2.cxx:92
 AliRawEquipmentV2.cxx:93
 AliRawEquipmentV2.cxx:94
 AliRawEquipmentV2.cxx:95
 AliRawEquipmentV2.cxx:96
 AliRawEquipmentV2.cxx:97
 AliRawEquipmentV2.cxx:98
 AliRawEquipmentV2.cxx:99
 AliRawEquipmentV2.cxx:100
 AliRawEquipmentV2.cxx:101
 AliRawEquipmentV2.cxx:102
 AliRawEquipmentV2.cxx:103
 AliRawEquipmentV2.cxx:104
 AliRawEquipmentV2.cxx:105
 AliRawEquipmentV2.cxx:106
 AliRawEquipmentV2.cxx:107
 AliRawEquipmentV2.cxx:108
 AliRawEquipmentV2.cxx:109
 AliRawEquipmentV2.cxx:110
 AliRawEquipmentV2.cxx:111
 AliRawEquipmentV2.cxx:112
 AliRawEquipmentV2.cxx:113
 AliRawEquipmentV2.cxx:114
 AliRawEquipmentV2.cxx:115
 AliRawEquipmentV2.cxx:116
 AliRawEquipmentV2.cxx:117
 AliRawEquipmentV2.cxx:118
 AliRawEquipmentV2.cxx:119
 AliRawEquipmentV2.cxx:120
 AliRawEquipmentV2.cxx:121
 AliRawEquipmentV2.cxx:122
 AliRawEquipmentV2.cxx:123
 AliRawEquipmentV2.cxx:124
 AliRawEquipmentV2.cxx:125
 AliRawEquipmentV2.cxx:126
 AliRawEquipmentV2.cxx:127
 AliRawEquipmentV2.cxx:128
 AliRawEquipmentV2.cxx:129
 AliRawEquipmentV2.cxx:130
 AliRawEquipmentV2.cxx:131
 AliRawEquipmentV2.cxx:132
 AliRawEquipmentV2.cxx:133
 AliRawEquipmentV2.cxx:134
 AliRawEquipmentV2.cxx:135
 AliRawEquipmentV2.cxx:136
 AliRawEquipmentV2.cxx:137
 AliRawEquipmentV2.cxx:138