//
////////////////////////////////////////////////////////////////////////
-#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
// 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];
+
}
//
// Destructor
//
- if (fHitMap) delete[] fHitMap;
+ delete[] fHitMap;
+
}
////////////////////////////////////////////////////////////////////////
}
////////////////////////////////////////////////////////////////////////
-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;
}
////////////////////////////////////////////////////////////////////////
-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;
+}