]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TOF/AliTOFHitMap.cxx
Reject clusters that are matched to more than one track
[u/mrichter/AliRoot.git] / TOF / AliTOFHitMap.cxx
index 0cab85cf0e46ae0007dc4c74b79c3ef60eaf67bf..803505a8c355669ee5784000126af3cbb3f6585d 100644 (file)
  * provided "as is" without express or implied warranty.                  *
  **************************************************************************/
 
-/* 
-$Log$
-Revision 1.1  2001/11/22 11:22:51  hristov
-Updated version of TOF digitization, N^2 problem solved (J.Chudoba)
-
-*/
+/* $Id$ */
 
 ////////////////////////////////////////////////////////////////////////
 //
@@ -38,29 +33,40 @@ Updated version of TOF digitization, N^2 problem solved (J.Chudoba)
 //
 ////////////////////////////////////////////////////////////////////////
 
-#include <iostream.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
@@ -69,34 +75,24 @@ 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;
-  fNpy  = AliTOFConstants::fgkNpadZ;
-  fMaxIndex=fNSector*fNplate*fNstrip*fNpx*fNpy;
+  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)
-{
-//
-// Dummy copy constructor
-//
-    ;
-}
-
 ////////////////////////////////////////////////////////////////////////
 AliTOFHitMap::~AliTOFHitMap()
 {
 //
 // Destructor
 //
-    if (fHitMap) delete[] fHitMap;
+  delete[] fHitMap;
+
 }
 
 ////////////////////////////////////////////////////////////////////////
@@ -109,20 +105,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*fNpy+             // sector
-    (vol[1]-1)*fNstrip*fNpx*fNpy+                     // plate
-    (vol[2]-1)*fNpx*fNpy+                             // strip
-    (vol[3]-1)*fNpy+                                  // padx
-    (vol[4]-1);                                        // pady (=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;
@@ -168,7 +164,7 @@ TObject* AliTOFHitMap::GetHit(Int_t *vol) const
 //
 // Get pointer to object at vol
 // return 0 if vol out of bounds
-    Int_t index=GetHitIndex(vol)-1;
+    Int_t index=GetHitIndex(vol);
     return (index <0) ? 0 : fSDigits->UncheckedAt(index);
 }
 
@@ -179,7 +175,7 @@ FlagType AliTOFHitMap::TestHit(Int_t *vol) const
 // Check if hit cell is empty, used or unused
 //
     Int_t inf=fHitMap[CheckedIndex(vol)];
-    if (inf < 0) {
+    if (inf > 0) {
        return kUsed;
     } else if (inf == 0) {
        return kEmpty;
@@ -187,15 +183,3 @@ FlagType AliTOFHitMap::TestHit(Int_t *vol) const
        return kUnused;
     }
 }
-
-////////////////////////////////////////////////////////////////////////
-AliTOFHitMap & AliTOFHitMap::operator = (const AliTOFHitMap & rhs) 
-{
-// Dummy assignment operator
-    return *this;
-}
-
-
-
-
-