]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TOF/AliTOFHitMap.cxx
New CE DA ... (Jens)
[u/mrichter/AliRoot.git] / TOF / AliTOFHitMap.cxx
index a7cc4365ecdd36505acbc4446bb8b9c109311efe..1a1c39f09fd6c7a99f4c479f835e0693c78367bf 100644 (file)
 //
 ////////////////////////////////////////////////////////////////////////
 
-#include <Riostream.h>
-#include <TMath.h>
-
+#include "AliLog.h"
 #include "AliTOFHitMap.h"
-#include "AliTOFSDigit.h"
-#include "AliTOFConstants.h"
+#include "AliTOFGeometry.h"
 
 
 #include <TClonesArray.h>
 
 ClassImp(AliTOFHitMap)
 
-AliTOFHitMap::AliTOFHitMap()
+AliTOFHitMap::AliTOFHitMap():
+  fNSector(-1),
+  fNplate(-1),
+  fNstrip(-1),
+  fNpx(-1),
+  fNpz(-1),
+  fSDigits(0x0),
+  fMaxIndex(-1),
+  fHitMap(0x0)
 {
 //
 // Default ctor
 //
-  fHitMap = 0;
-  fSDigits = 0;
 }
 
 ////////////////////////////////////////////////////////////////////////
-AliTOFHitMap::AliTOFHitMap(TClonesArray *dig)
+AliTOFHitMap::AliTOFHitMap(TClonesArray *dig):
+  fNSector(-1),
+  fNplate(-1),
+  fNstrip(-1),
+  fNpx(-1),
+  fNpz(-1),
+  fSDigits(dig),
+  fMaxIndex(-1),
+  fHitMap(0x0)
 {
 //
 // ctor
@@ -64,25 +75,37 @@ AliTOFHitMap::AliTOFHitMap(TClonesArray *dig)
 // of course, these constants must not be hardwired
 // change later
 
-  fNSector = AliTOFConstants::fgkNSectors;
-  fNplate = AliTOFConstants::fgkNPlates;
-  fNstrip = AliTOFConstants::fgkNStripC;
-  fNpx  = AliTOFConstants::fgkNpadX;
-  fNpz  = AliTOFConstants::fgkNpadZ;
+  fNSector = AliTOFGeometry::NSectors();
+  fNplate = AliTOFGeometry::NPlates();
+  fNstrip = AliTOFGeometry::NStripC();//fTOFGeometry->NMaxNstrip();
+  fNpx  = AliTOFGeometry::NpadX();
+  fNpz  = AliTOFGeometry::NpadZ();
   fMaxIndex=fNSector*fNplate*fNstrip*fNpx*fNpz;
   fHitMap = new Int_t[fMaxIndex];
-  fSDigits =  dig;
   Clear();
 }
 
 ////////////////////////////////////////////////////////////////////////
-AliTOFHitMap::AliTOFHitMap(const AliTOFHitMap & /*hitMap*/)
-:TObject()
+AliTOFHitMap::AliTOFHitMap(const AliTOFHitMap & hitMap) :
+  TObject(hitMap),
+  fNSector(hitMap.fNSector),
+  fNplate(hitMap.fNplate),
+  fNstrip(hitMap.fNstrip),
+  fNpx(hitMap.fNpx),
+  fNpz(hitMap.fNpz),
+  fSDigits(hitMap.fSDigits),
+  fMaxIndex(hitMap.fMaxIndex),
+  fHitMap(0x0)
 {
 //
 // Dummy copy constructor
 //
-    ;
+
+  fMaxIndex=fNSector*fNplate*fNstrip*fNpx*fNpz;
+  fHitMap = new Int_t[fMaxIndex];
+  for (Int_t i=0; i<fMaxIndex; i++)
+    fHitMap[i]=hitMap.fHitMap[i];
+
 }
 
  
@@ -92,7 +115,8 @@ AliTOFHitMap::~AliTOFHitMap()
 //
 // Destructor
 //
-    if (fHitMap) delete[] fHitMap;
+  delete[] fHitMap;
+
 }
 
 ////////////////////////////////////////////////////////////////////////
@@ -105,20 +129,20 @@ void AliTOFHitMap::Clear(const char *)
 }
 
 ////////////////////////////////////////////////////////////////////////
-Int_t AliTOFHitMap::CheckedIndex(Int_t *vol) const
+Int_t AliTOFHitMap::CheckedIndex(Int_t * const vol) const
 {
 //
 // Return checked indices for vol
 //
   Int_t index=
-    (vol[0]/*-1*/)*fNplate*fNstrip*fNpx*fNpz+             // sector
-    (vol[1]/*-1*/)*fNstrip*fNpx*fNpz+                     // plate
-    (vol[2]/*-1*/)*fNpx*fNpz+                             // strip
-    (vol[3]/*-1*/)*fNpz+                                  // padx
-    (vol[4]/*-1*/);                                       // padz
+    vol[0]*fNplate*fNstrip*fNpx*fNpz+             // sector
+    vol[1]*fNstrip*fNpx*fNpz+                     // plate
+    vol[2]*fNpx*fNpz+                             // strip
+    vol[3]*fNpz+                                  // padx
+    vol[4];                                       // padz
 
     if (index >= fMaxIndex) {
-      Error("AliTOFHitMap","CheckedIndex - input outside bounds");
+      AliError("CheckedIndex - input outside bounds");
        return -1;
     } else {
        return index;
@@ -185,13 +209,33 @@ FlagType AliTOFHitMap::TestHit(Int_t *vol) const
 }
 
 ////////////////////////////////////////////////////////////////////////
-AliTOFHitMap & AliTOFHitMap::operator = (const AliTOFHitMap & /*rhs*/
+AliTOFHitMap & AliTOFHitMap::operator = (const AliTOFHitMap & hitMap
 {
-// Dummy assignment operator
-    return *this;
-}
+  // Assignment operator
 
+  if (this == &hitMap)
+    return *this;
 
+  TObject::operator=(hitMap);
+  fNSector=hitMap.fNSector;
+  fNplate=hitMap.fNplate;
+  fNstrip=hitMap.fNstrip;
+  fNpx=hitMap.fNpx;
+  fNpz=hitMap.fNpz;
+
+  fSDigits=hitMap.fSDigits; // coverity: to be solved
+  /*
+  fSDigits = new TClonesArray("AliTOFSDigit");
+  for (Int_t ii=0; ii<hitMap.fSDigits->GetEntriesFast(); ii++)
+    fSDigits->AddLast(hitMap.fSDigits->UncheckedAt(ii));
+  */
+  //fSDigits = TClonesArray(&hitMap.fSDigits);
 
+  fMaxIndex=fNSector*fNplate*fNstrip*fNpx*fNpz;
+  fHitMap = new Int_t[fMaxIndex];
+  for (Int_t i=0; i<fMaxIndex; i++)
+    fHitMap[i]=hitMap.fHitMap[i];
 
+  return *this;
 
+}