fNstrip(digitMap.fNstrip),
fNpx(digitMap.fNpx),
fNpz(digitMap.fNpz),
- fMaxIndex(digitMap.fMaxIndex),
+ fMaxIndex(-1),
fDigitMap(0x0)
{
-//
-// dummy copy constructor
-//
-
+ //
+ // Copy constructor
+ //
fMaxIndex=fNSector*fNplate*fNstrip*fNpx*fNpz;
fDigitMap = new Int_t*[fMaxIndex];
-
- for (Int_t i=0; i<fMaxIndex; i++) fDigitMap[i] = new Int_t[kMaxDigitsPerPad];
+ for (Int_t i=0; i<fMaxIndex; i++) {
+ fDigitMap[i] = new Int_t[kMaxDigitsPerPad];
+ for (Int_t j=0; j<kMaxDigitsPerPad; j++)
+ fDigitMap[i][j]=digitMap.fDigitMap[i][j];
+ }
}
////////////////////////////////////////////////////////////////////////
-AliTOFDigitMap &
-AliTOFDigitMap::operator=(const AliTOFDigitMap & /*digitMap*/)
+AliTOFDigitMap & AliTOFDigitMap::operator=(const AliTOFDigitMap & digitMap)
{
-//
-// dummy copy const
-//
- return *this;
+ //
+ // Assignment operator
+ //
+
+ if (this != &digitMap) {
+ TObject::operator=(digitMap);
+ fNSector=digitMap.fNSector;
+ fNplate=digitMap.fNplate;
+ fNstrip=digitMap.fNstrip;
+ fNpx=digitMap.fNpx;
+ fNpz=digitMap.fNpz;
+ fMaxIndex=fNSector*fNplate*fNstrip*fNpx*fNpz;
+ for (Int_t i=0; i<fMaxIndex; ++i) delete [] fDigitMap[i];
+ delete [] fDigitMap;
+ fDigitMap = new Int_t*[fMaxIndex];
+ for (Int_t i=0; i<fMaxIndex; i++) {
+ fDigitMap[i] = new Int_t[kMaxDigitsPerPad];
+ for (Int_t j=0; j<kMaxDigitsPerPad; j++)
+ fDigitMap[i][j]=digitMap.fDigitMap[i][j];
+ }
+ }
+ return *this;
}
}
////////////////////////////////////////////////////////////////////////
-Int_t AliTOFDigitMap::CheckedIndex(Int_t *vol) const
+Int_t AliTOFDigitMap::CheckedIndex(Int_t * const vol) const
{
//
// Return checked index for vol
}
+////////////////////////////////////////////////////////////////////////
+Int_t AliTOFDigitMap::FilledCellsInStrip(Int_t iSector, Int_t iPlate, Int_t iStrip) const
+{
+ //
+ // Returns number of digits in the strip iStrip,
+ // in the plate iPlate of the sector iSector
+ //
+
+ Int_t volume[5] = {iSector, iPlate, iStrip, -1, -1};
+ Int_t counter = 0;
+
+ for (Int_t iPadX=0; iPadX<fNpx; iPadX++)
+ for (Int_t iPadZ=0; iPadZ<fNpz; iPadZ++) {
+ volume[3] = iPadX;
+ volume[4] = iPadZ;
+ if (GetDigitIndex(volume, 0)>=0)
+ counter++;
+ }
+
+ return counter;
+
+}
+
////////////////////////////////////////////////////////////////////////
void AliTOFDigitMap::ResetDigitNumber(Int_t *vol, Int_t dig)
{