* provided "as is" without express or implied warranty. *
**************************************************************************/
-/*
-$Log$
-Revision 1.5 2002/10/14 14:57:42 hristov
-Merging the VirtualMC branch to the main development branch (HEAD)
-
-Revision 1.3.6.1 2002/07/24 11:07:40 alibrary
-Updating VirtualMC
-
-Revision 1.4 2002/07/24 09:38:28 vicinanz
-Fixed (ininfluential) bug on TestHit method
-
-Revision 1.3 2001/12/19 09:33:32 hristov
-Index corrected
-
-Revision 1.2 2001/11/22 11:30:30 hristov
-Correct log field
-
-Revision 1.1 2001/11/22 11:22:51 hristov
-Updated version of TOF digitization, N^2 problem solved (J.Chudoba)
-
-*/
+/* $Id$ */
////////////////////////////////////////////////////////////////////////
//
//
////////////////////////////////////////////////////////////////////////
-#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;
- 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)
+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*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;
}
////////////////////////////////////////////////////////////////////////
-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;
+}