X-Git-Url: http://git.uio.no/git/?p=u%2Fmrichter%2FAliRoot.git;a=blobdiff_plain;f=STEER%2FAliRecPoint.cxx;h=7ab6b8a999f779d9f7e5426417466fea2a52d94b;hp=0c76ff87858583dc366eca9f43d66c73bd27e98f;hb=4453d90074bfdad23ca5dc949656684bd3a97b63;hpb=fb17acd412e4de1f64fd41bde1684280cacc9016 diff --git a/STEER/AliRecPoint.cxx b/STEER/AliRecPoint.cxx index 0c76ff87858..7ab6b8a999f 100644 --- a/STEER/AliRecPoint.cxx +++ b/STEER/AliRecPoint.cxx @@ -13,7 +13,7 @@ * provided "as is" without express or implied warranty. * **************************************************************************/ -/* $Header$ */ +/* $Id$ */ //-*-C++-*- //_________________________________________________________________________ @@ -63,7 +63,7 @@ AliRecPoint::AliRecPoint(const char * ): fGeom(0), fIndexInList(-1), // to be set when the point is already stored fLocPos(0,0,0), - fLocPosM(new TMatrix(3,3)), + fLocPosM(new TMatrixF(3,3)), fMaxDigit(100), fMulDigit(0), fMaxTrack(5), @@ -116,14 +116,14 @@ void AliRecPoint::AddDigit(AliDigitNew & digit) if ( fMulDigit >= fMaxDigit ) { // increase the size of the list - int * tempo = new ( int[fMaxDigit*=2] ) ; + int * tempo = new int[fMaxDigit*2]; Int_t index ; for ( index = 0 ; index < fMulDigit ; index++ ) tempo[index] = fDigitsList[index] ; - delete fDigitsList ; + delete [] fDigitsList ; fDigitsList = tempo ; } @@ -152,34 +152,34 @@ void AliRecPoint::AddDigit(AliDigitNew & digit) // } //_______________________________________________________________________ -void AliRecPoint::Copy(AliRecPoint& recp) const +void AliRecPoint::Copy(TObject& recp) const { // // Copy *this onto pts // // Copy all first - if(this != &recp) { - ((TObject*) this)->Copy(dynamic_cast(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; + if((TObject*)this != &recp) { + ((TObject*) this)->Copy(recp); + (dynamic_cast(recp)).fAmp = fAmp; + (dynamic_cast(recp)).fGeom = fGeom; + (dynamic_cast(recp)).fIndexInList = fIndexInList; + (dynamic_cast(recp)).fLocPos = fLocPos; + (dynamic_cast(recp)).fLocPosM = new TMatrixF(*fLocPosM); + (dynamic_cast(recp)).fMaxDigit = fMaxDigit; + (dynamic_cast(recp)).fMulDigit = fMulDigit; + (dynamic_cast(recp)).fMaxTrack = fMaxTrack; + (dynamic_cast(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)); + (dynamic_cast(recp)).fDigitsList = new Int_t[fMulDigit]; + memcpy((dynamic_cast(recp)).fDigitsList,fDigitsList,fMulDigit*sizeof(Int_t)); + (dynamic_cast(recp)).fTracksList = new Int_t[fMulTrack]; + memcpy((dynamic_cast(recp)).fTracksList,fTracksList,fMulTrack*sizeof(Int_t)); } } //_______________________________________________________________________ -void AliRecPoint::GetCovarianceMatrix(TMatrix & mat) const +void AliRecPoint::GetCovarianceMatrix(TMatrixF & mat) const { // returns the covariant matrix for the local position @@ -198,7 +198,7 @@ void AliRecPoint::GetLocalPosition(TVector3 & pos) const } //____________________________________________________________________________ -void AliRecPoint::GetGlobalPosition(TVector3 & gpos, TMatrix & gmat) const +void AliRecPoint::GetGlobalPosition(TVector3 & gpos, TMatrixF & gmat) const { // returns the position of the cluster in the global reference system of ALICE // and the uncertainty on this position