ClassImp(AliITSUSensMap)
//______________________________________________________________________
AliITSUSensMap::AliITSUSensMap()
-: fDim0(0)
- ,fDim1(0)
+: fDimCol(0)
+ ,fDimRow(0)
+ ,fDimCycle(0)
,fItems(0)
,fBTree(0)
{
}
//______________________________________________________________________
-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())
{
//______________________________________________________________________
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);
+ }
}
}
}
}
//______________________________________________________________________
-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);
}
//______________________________________________________________________
-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));
}
+