]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - FMD/AliFMDUShortMap.cxx
Increased error checking and possibility to extract some diagnostics
[u/mrichter/AliRoot.git] / FMD / AliFMDUShortMap.cxx
index daba529bd3133d7160bc6314b617b1c7e9e1d5f7..b688651c947ae5bc29c8e4f0d4839f1e5f0a06ce 100644 (file)
  * about the suitability of this software for any purpose. It is          *
  * provided "as is" without express or implied warranty.                  *
  **************************************************************************/
-
 /* $Id$ */
-
+/** @file    AliFMDUShortMap.cxx
+    @author  Christian Holm Christensen <cholm@nbi.dk>
+    @date    Mon Mar 27 12:48:18 2006
+    @brief   Per strip of unisgned shorts (16 bit) data 
+*/
 //____________________________________________________________________
 //                                                                          
-//
+// A map of per strip UShort_t information (for example ADC values,
+// number of hits and so on). 
+// Used for various calib information, and the like, 
+// as well as in reconstruction. 
+// Can be used elsewhere too.
 //
 #include "AliFMDUShortMap.h"           // ALIFMDUSHORTMAP_H
 
 //____________________________________________________________________
-ClassImp(AliFMDUShortMap);
+ClassImp(AliFMDUShortMap)
+#if 0
+  ; // This is here to keep Emacs for indenting the next line
+#endif
 
 //____________________________________________________________________
 AliFMDUShortMap::AliFMDUShortMap(const AliFMDUShortMap& other)
   : AliFMDMap(other.fMaxDetectors, other.fMaxRings, other.fMaxSectors, 
              other.fMaxStrips), 
+    fTotal(0),
     fData(0)
 {
-  fData = new UShort_t[fMaxDetectors * fMaxRings * fMaxSectors * fMaxStrips];
-  for (size_t i = 0; i < fMaxDetectors * fMaxRings * fMaxSectors * fMaxStrips;
-       i++) fData[i] = other.fData[i];
+  // CTOR
+  fTotal = fMaxDetectors * fMaxRings * fMaxSectors * fMaxStrips;
+  fData  = new UShort_t[fTotal];
+  for (Int_t i = 0; i < fTotal; i++) fData[i] = other.fData[i];
 }
 
   
 
 //____________________________________________________________________
-AliFMDUShortMap::AliFMDUShortMap(size_t maxDet, 
-                                size_t maxRing, 
-                                size_t maxSec, 
-                                size_t maxStr)
+AliFMDUShortMap::AliFMDUShortMap(UShort_t maxDet, 
+                                UShort_t maxRing, 
+                                UShort_t maxSec, 
+                                UShort_t maxStr)
   : AliFMDMap(maxDet, maxRing, maxSec, maxStr), 
+    fTotal(fMaxDetectors * fMaxRings * fMaxSectors * fMaxStrips),
     fData(0)
 {
   // Construct a map
@@ -52,30 +65,44 @@ AliFMDUShortMap::AliFMDUShortMap(size_t maxDet,
   //     maxRinf      Maximum # of rings
   //     maxSec       Maximum # of sectors
   //     maxStr       Maximum # of strips
-  fData = new UShort_t[fMaxDetectors * fMaxRings * fMaxSectors * fMaxStrips];
+  if (fTotal == 0) fTotal = 51200;
+  fData  = new UShort_t[fTotal];
+}
+
+//____________________________________________________________________
+AliFMDUShortMap::AliFMDUShortMap()
+  : AliFMDMap(), 
+    fTotal(0),
+    fData(0)
+{
+  // Construct a map
+  //
+  // Parameters:
+  //     None
 }
 
 //____________________________________________________________________
 AliFMDUShortMap&
 AliFMDUShortMap::operator=(const AliFMDUShortMap& other) 
 {
+  // Assignment operator
   fMaxDetectors = other.fMaxDetectors;
   fMaxRings     = other.fMaxRings;
   fMaxSectors   = other.fMaxSectors;
   fMaxStrips    = other.fMaxStrips;
   if (fData) delete [] fData;
-  fData = new UShort_t[fMaxDetectors * fMaxRings * fMaxSectors * fMaxStrips];
-  for (size_t i = 0; i < fMaxDetectors * fMaxRings * fMaxSectors * fMaxStrips;
-       i++) fData[i] = other.fData[i];
+  fTotal = fMaxDetectors * fMaxRings * fMaxSectors * fMaxStrips;
+  fData  = new UShort_t[fTotal];
+  for (Int_t i = 0; i < fTotal; i++) fData[i] = other.fData[i];
   return *this;
 }
 
 //____________________________________________________________________
 void
-AliFMDUShortMap::Clear(const UShort_t& val) 
+AliFMDUShortMap::Reset(const UShort_t& val) 
 {
-  for (size_t i = 0; i < fMaxDetectors * fMaxRings * fMaxSectors * fMaxStrips;
-       i++) fData[i] = val;
+  // Reset to val
+  for (Int_t i = 0; i < fTotal; i++) fData[i] = val;
 }
 
 //____________________________________________________________________