/*
$Log$
+Revision 1.6 2000/10/02 21:28:14 fca
+Removal of useless dependecies via forward declarations
+
+Revision 1.5 2000/07/11 18:24:59 fca
+Coding convention corrections + few minor bug fixes
+
+Revision 1.4 2000/05/16 08:30:02 fca
+Using automatic streamer for c arrays
+
+Revision 1.3 2000/03/20 14:22:25 fca
+New version to support new PHOS code
+
Revision 1.2 2000/02/15 09:43:54 fca
Corrections
- a bug in the streamer (wrong size of the arrays)
//-*-C++-*-
//_________________________________________________________________________
-// Base Class of Cluster (empty cxx needed by Root)
+// Base Class for reconstructed space points
+// usually coming from the clusterisation algorithms
+// run on the digits
+//
//*-- Author : Yves Schutz SUBATECH
//////////////////////////////////////////////////////////////////////////////
-// --- ROOT system ---
-#include "TObjArray.h"
+// --- ROOT system ---
// --- Standard library ---
// --- AliRoot header files ---
#include "AliRecPoint.h"
+#include "AliGeometry.h"
+#include "AliDigitNew.h"
ClassImp(AliRecPoint)
fIndexInList = -1 ; // to be set when the point is already stored
}
+//____________________________________________________________________________
+AliRecPoint::AliRecPoint(const AliRecPoint& recp)
+{
+ //
+ // Copy constructor
+ //
+ recp.Copy(*this);
+}
+
//____________________________________________________________________________
AliRecPoint::~AliRecPoint()
{
// fTracksList[fMulTrack++]= (int) &Track ;
// }
+//____________________________________________________________________________
+void AliRecPoint::Copy(AliRecPoint& recp) const
+{
+ //
+ // Copy *this onto pts
+ //
+ // Copy all first
+ if(this != &recp) {
+ ((TObject*) this)->Copy((TObject&)recp);
+ recp.fAmp = fAmp;
+ recp.fGeom = fGeom;
+ recp.fIndexInList = fIndexInList;
+ recp.fLocPos = fLocPos;
+ recp.fLocPosM = new TMatrix(*fLocPosM);
+ recp.fMaxDigit = fMaxDigit;
+ recp.fMulDigit = fMulDigit;
+ recp.fMaxTrack = fMaxTrack;
+ recp.fMulTrack = fMulTrack;
+
+ // Duplicate pointed objects
+ recp.fDigitsList = new Int_t[fMulDigit];
+ memcpy(recp.fDigitsList,fDigitsList,fMulDigit*sizeof(Int_t));
+ recp.fTracksList = new Int_t[fMulTrack];
+ memcpy(recp.fTracksList,fTracksList,fMulTrack*sizeof(Int_t));
+ }
+}
+
//____________________________________________________________________________
void AliRecPoint::GetCovarianceMatrix(TMatrix & mat)
{
}
//____________________________________________________________________________
-void AliRecPoint::GetLocalPosition(TVector3 & pos)
+void AliRecPoint::GetLocalPosition(TVector3 & pos) const
{
// returns the position of the cluster in the local reference system of the sub-detector
}
//____________________________________________________________________________
-void AliRecPoint::GetGlobalPosition(TVector3 & gpos, TMatrix & gmat)
+AliRecPoint & AliRecPoint::operator= (const AliRecPoint &recp)
+{
+ recp.Copy(*this);
+ return (*this);
+}
+
+
+//____________________________________________________________________________
+void AliRecPoint::GetGlobalPosition(TVector3 & gpos, TMatrix & gmat) const
{
// returns the position of the cluster in the global reference system of ALICE
// and the uncertainty on this position
}
-//______________________________________________________________________________
-void AliRecPoint::Streamer(TBuffer &R__b)
-{
- // Stream an object of class AliRecPoint.
- if (R__b.IsReading()) {
- Version_t R__v = R__b.ReadVersion(); if (R__v) { }
- TObject::Streamer(R__b);
- R__b >> fAmp;
- R__b >> fIndexInList;
- R__b >> fMulDigit;
- fDigitsList = new Int_t[fMulDigit] ;
- R__b.ReadFastArray(fDigitsList, fMulDigit);
- R__b >> fGeom;
- fLocPos.Streamer(R__b);
- R__b >> fLocPosM;
- R__b >> fMulTrack;
- fTracksList = new Int_t[fMulTrack] ;
- R__b.ReadFastArray(fTracksList, fMulTrack);
- } else {
- R__b.WriteVersion(AliRecPoint::IsA());
- TObject::Streamer(R__b);
- R__b << fAmp;
- R__b << fIndexInList;
- R__b << fMulDigit;
- R__b.WriteFastArray(fDigitsList, fMulDigit);
- R__b << fGeom;
- fLocPos.Streamer(R__b);
- R__b << fLocPosM;
- R__b << fMulTrack;
- R__b.WriteFastArray(fTracksList, fMulTrack);
- }
-}