]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - RAW/AliRawEquipment.cxx
Correct 4.3.2 warnings
[u/mrichter/AliRoot.git] / RAW / AliRawEquipment.cxx
index 2b9417ac6589006cccd6ed523eb68e7045a2a1a8..22647bbc768d8d16da1bd338fcf71a6eb43972be 100644 (file)
@@ -1,4 +1,4 @@
-// @(#)alimdc:$Name$:$Id$
+// @(#) $Id$
 // Author: Fons Rademakers  26/11/99
 
 /**************************************************************************
@@ -30,8 +30,6 @@
 // AliRawRFIODB or via rootd using AliRawRootdDB or to CASTOR via       //
 // rootd using AliRawCastorDB (and for performance testing there is     //
 // also AliRawNullDB).                                                  //
-// The AliRunDB class provides the interface to the run and file        //
-// catalogues (AliEn or plain MySQL).                                   //
 // 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.                //
@@ -40,6 +38,8 @@
 //                                                                      //
 //////////////////////////////////////////////////////////////////////////
 
+#include <AliRawDataArray.h>
+
 #include "AliRawEquipmentHeader.h"
 #include "AliRawData.h"
 
@@ -50,29 +50,13 @@ ClassImp(AliRawEquipment)
 
 
 //______________________________________________________________________________
-AliRawEquipment::AliRawEquipment()
+AliRawEquipment::AliRawEquipment():
+fEqpHdr(NULL),
+fRawData(NULL),
+fRawDataRef(NULL)
 {
    // Create ALICE equipment object.
 
-   fEqpHdr     = 0;
-   fRawData    = 0;
-}
-
-//______________________________________________________________________________
-AliRawEquipment::AliRawEquipment(const AliRawEquipment& rawEquipment): TObject(rawEquipment)
-{
-// copy constructor
-
-  Fatal("AliRawEquipment", "copy constructor not implemented");
-}
-
-//______________________________________________________________________________
-AliRawEquipment& AliRawEquipment::operator = (const AliRawEquipment& /*rawEquipment*/)
-{
-// assignment operator
-
-  Fatal("operator =", "assignment operator not implemented");
-  return *this;
 }
 
 //______________________________________________________________________________
@@ -91,10 +75,14 @@ AliRawData *AliRawEquipment::GetRawData()
 {
    // Get raw data part of AliRawEquipment.
 
-   if (!fRawData)
+  if (!fRawData) {
+    if (!fRawDataRef.IsValid())
       fRawData = new AliRawData;
-
-   return fRawData;
+    else {
+      fRawData = (AliRawData*)fRawDataRef.GetObject();
+    }
+  }
+  return fRawData;
 }
 
 //______________________________________________________________________________
@@ -106,6 +94,7 @@ void AliRawEquipment::Reset()
 
    if (fEqpHdr) fEqpHdr->Reset();
    GetRawData()->SetSize(0);
+   fRawDataRef = NULL;
 }
 
 //______________________________________________________________________________
@@ -116,3 +105,21 @@ AliRawEquipment::~AliRawEquipment()
    delete fEqpHdr;
    delete fRawData;
 }
+
+//______________________________________________________________________________
+void AliRawEquipment::SetRawDataRef(AliRawDataArray *array)
+{
+  // Set the TRef to the raw-data container
+  // before writing it to the branch
+  if (fRawData) {
+    fRawDataRef = fRawData;
+    array->Add(fRawData);
+    fRawData = NULL;
+    return;
+  }
+  else {
+    Error("SetRawDataRef", "Raw-data payload does not exist! Can not set a reference to it!");    
+    fRawDataRef = NULL;
+    return;
+  }
+}