]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/UPGRADE/AliITSUSensMap.cxx
Account for Readout Cycles in the RemoveDeadPixels, fix in readDigits
[u/mrichter/AliRoot.git] / ITS / UPGRADE / AliITSUSensMap.cxx
index d5b975debdee9ca3314b8fb4b42dc807dc5b9c05..0e09fd9c1188e7e0e595afbcee222267e5dfb53e 100644 (file)
@@ -38,8 +38,9 @@
 ClassImp(AliITSUSensMap)
 //______________________________________________________________________
 AliITSUSensMap::AliITSUSensMap() 
-:  fDim0(0)
-  ,fDim1(0)
+:  fDimCol(0)
+  ,fDimRow(0)
+  ,fDimCycle(0)
   ,fItems(0)
   ,fBTree(0)
 {
@@ -47,9 +48,10 @@ AliITSUSensMap::AliITSUSensMap()
 }
 
 //______________________________________________________________________
-AliITSUSensMap::AliITSUSensMap(const char* className, UInt_t dim0,UInt_t dim1)
-  :fDim0(dim0)
-  ,fDim1(dim1)
+AliITSUSensMap::AliITSUSensMap(const char* className, UInt_t dimCol,UInt_t dimRow,UInt_t dimCycle)
+  :fDimCol(dimCol)
+  ,fDimRow(dimRow)
+  ,fDimCycle(dimCycle)
   ,fItems(new TClonesArray(className,100))
   ,fBTree(new TBtree())
 {
@@ -68,17 +70,20 @@ AliITSUSensMap::~AliITSUSensMap()
 //______________________________________________________________________
 AliITSUSensMap::AliITSUSensMap(const AliITSUSensMap &source)
   :TObject(source)
-  ,fDim0(source.fDim0)
-  ,fDim1(source.fDim1)
+  ,fDimCol(source.fDimCol)
+  ,fDimRow(source.fDimRow)
+  ,fDimCycle(source.fDimCycle)
   ,fItems( source.fItems ? new TClonesArray(*source.fItems) : 0)
   ,fBTree( 0 )
 {
   if (source.fBTree) {
     fBTree = new TBtree();
-    for (int i=fItems->GetEntriesFast();i--;) {
-      TObject* obj = fItems->At(i);
-      if (obj && ! IsDisabled(obj)) continue;
-      RegisterItem(obj);
+    if (fItems) {
+      for (int i=fItems->GetEntriesFast();i--;) {
+       TObject* obj = fItems->At(i);
+       if (obj && ! IsDisabled(obj)) continue;
+       RegisterItem(obj);
+      }
     }
   }
 }
@@ -103,10 +108,10 @@ void AliITSUSensMap::Clear(Option_t*)
 }
 
 //______________________________________________________________________
-void AliITSUSensMap::DeleteItem(UInt_t i,UInt_t j)
+void AliITSUSensMap::DeleteItem(UInt_t col,UInt_t row,Int_t cycle)
 {
   // Delete a particular AliITSUSensMapItems.
-  SetUniqueID( GetIndex(i,j) );
+  SetUniqueID( GetIndex(col,row,cycle) );
   TObject* fnd = fBTree->FindObject(this);
   if (!fnd) return;
   Disable(fnd);
@@ -124,16 +129,13 @@ void AliITSUSensMap::DeleteItem(TObject* obj)
 }
 
 //______________________________________________________________________
-void AliITSUSensMap::GetCell(UInt_t index,UInt_t &i,UInt_t &j) const 
+void  AliITSUSensMap::SetDimensions(UInt_t dimCol,UInt_t dimRow,UInt_t dimCycle) 
 {
-  // returns the i,j index numbers from the linearized index computed
-  // with GetIndex
-  if(index>=fDim0*fDim1){
-    Warning("GetCell","Index out of range 0<=index=%d<%d",index,fDim0*fDim1);
-    i=-1;j=-1;
-    return;
-  } // end if
-  i = index/fDim1;
-  j = index%fDim1;
-  return;
+  // set dimensions for current sensor
+  const UInt_t kMaxPackDim = 0xffffffff;
+  fDimCol = dimCol; 
+  fDimRow = dimRow; 
+  fDimCycle=dimCycle;
+  if (fDimCol*fDimRow*fDimCycle>kMaxPackDim) AliFatal(Form("Dimension %dx%dx%d cannot be packed to UInt_t",fDimCol,fDimRow,fDimCycle));
 }
+