ROOT logo
/**************************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/

/* $Id$ */

//_________________________________________________________________________
// Class for PMD reconstructed space points 
// usually coming from the clusterisation algorithms
// run on the digits
//
//////////////////////////////////////////////////////////////////////////////

// --- ROOT system ---

#include "TObjArray.h"

// --- Standard library ---

// --- AliRoot header files ---

#include "AliPMDRecPoint.h"
#include "AliGeometry.h"
#include "AliDigitNew.h"

ClassImp(AliPMDRecPoint)


//____________________________________________________________________________
//____________________________________________________________________________
void AliPMDRecPoint::AddDigit(AliDigitNew & digit)
{
  // adds a digit to the digits list
  // and accumulates the total amplitude and the multiplicity 
  
  
  if ( fMulDigit >= fMaxDigit ) { // increase the size of the list 
    int * tempo = new int[fMaxDigit*=2]; 
    
    Int_t index ; 
    
    for ( index = 0 ; index < fMulDigit ; index++ )
      tempo[index] = fDigitsList[index] ; 
    
    delete fDigitsList ; 
    fDigitsList = tempo ; 
  }
  
  fDigitsList[fMulDigit] = digit.GetIndexInList()  ; 
  fMulDigit++ ; 
  fAmp += digit.GetAmp() ; 
}

//____________________________________________________________________________
void AliPMDRecPoint::Copy(TObject & recp) const
{
  //
  // Copy *this onto pts
  //
  // Copy all first

  if(this != &recp) {
    ((TObject*) this)->Copy((TObject&)recp);
    ((AliPMDRecPoint&)recp).fAmp = fAmp;
    ((AliPMDRecPoint&)recp).fGeom = fGeom;
    ((AliPMDRecPoint&)recp).fIndexInList = fIndexInList;
    ((AliPMDRecPoint&)recp).fLocPos = fLocPos;
    ((AliPMDRecPoint&)recp).fLocPosM = new TMatrix(*fLocPosM);
    ((AliPMDRecPoint&)recp).fMaxDigit = fMaxDigit;
    ((AliPMDRecPoint&)recp).fMulDigit = fMulDigit;
    ((AliPMDRecPoint&)recp).fMaxTrack = fMaxTrack;
    ((AliPMDRecPoint&)recp).fMulTrack = fMulTrack;
    
    // Duplicate pointed objects
    ((AliPMDRecPoint&)recp).fDigitsList = new Int_t[fMulDigit];
    memcpy(((AliPMDRecPoint&)recp).fDigitsList,fDigitsList,fMulDigit*sizeof(Int_t));
    ((AliPMDRecPoint&)recp).fTracksList = new Int_t[fMulTrack];
    memcpy(((AliPMDRecPoint&)recp).fTracksList,fTracksList,fMulTrack*sizeof(Int_t));
  }
}

//____________________________________________________________________________
void AliPMDRecPoint::GetCovarianceMatrix(TMatrix & mat) const
{
  // returns the covariant matrix for the local position
  
  mat = *fLocPosM ; 

}

//____________________________________________________________________________
void AliPMDRecPoint::GetLocalPosition(TVector3 & pos) const
{
  // returns the position of the cluster in the local reference system of the sub-detector

  pos = fLocPos;

 
}

//____________________________________________________________________________
AliPMDRecPoint & AliPMDRecPoint::operator= (const AliPMDRecPoint &recp)
{
  recp.Copy(*this);
  return (*this);
}


//____________________________________________________________________________
void AliPMDRecPoint::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
  

  fGeom->GetGlobal(this, gpos, gmat) ;
 
}









 AliPMDRecPoint.cxx:1
 AliPMDRecPoint.cxx:2
 AliPMDRecPoint.cxx:3
 AliPMDRecPoint.cxx:4
 AliPMDRecPoint.cxx:5
 AliPMDRecPoint.cxx:6
 AliPMDRecPoint.cxx:7
 AliPMDRecPoint.cxx:8
 AliPMDRecPoint.cxx:9
 AliPMDRecPoint.cxx:10
 AliPMDRecPoint.cxx:11
 AliPMDRecPoint.cxx:12
 AliPMDRecPoint.cxx:13
 AliPMDRecPoint.cxx:14
 AliPMDRecPoint.cxx:15
 AliPMDRecPoint.cxx:16
 AliPMDRecPoint.cxx:17
 AliPMDRecPoint.cxx:18
 AliPMDRecPoint.cxx:19
 AliPMDRecPoint.cxx:20
 AliPMDRecPoint.cxx:21
 AliPMDRecPoint.cxx:22
 AliPMDRecPoint.cxx:23
 AliPMDRecPoint.cxx:24
 AliPMDRecPoint.cxx:25
 AliPMDRecPoint.cxx:26
 AliPMDRecPoint.cxx:27
 AliPMDRecPoint.cxx:28
 AliPMDRecPoint.cxx:29
 AliPMDRecPoint.cxx:30
 AliPMDRecPoint.cxx:31
 AliPMDRecPoint.cxx:32
 AliPMDRecPoint.cxx:33
 AliPMDRecPoint.cxx:34
 AliPMDRecPoint.cxx:35
 AliPMDRecPoint.cxx:36
 AliPMDRecPoint.cxx:37
 AliPMDRecPoint.cxx:38
 AliPMDRecPoint.cxx:39
 AliPMDRecPoint.cxx:40
 AliPMDRecPoint.cxx:41
 AliPMDRecPoint.cxx:42
 AliPMDRecPoint.cxx:43
 AliPMDRecPoint.cxx:44
 AliPMDRecPoint.cxx:45
 AliPMDRecPoint.cxx:46
 AliPMDRecPoint.cxx:47
 AliPMDRecPoint.cxx:48
 AliPMDRecPoint.cxx:49
 AliPMDRecPoint.cxx:50
 AliPMDRecPoint.cxx:51
 AliPMDRecPoint.cxx:52
 AliPMDRecPoint.cxx:53
 AliPMDRecPoint.cxx:54
 AliPMDRecPoint.cxx:55
 AliPMDRecPoint.cxx:56
 AliPMDRecPoint.cxx:57
 AliPMDRecPoint.cxx:58
 AliPMDRecPoint.cxx:59
 AliPMDRecPoint.cxx:60
 AliPMDRecPoint.cxx:61
 AliPMDRecPoint.cxx:62
 AliPMDRecPoint.cxx:63
 AliPMDRecPoint.cxx:64
 AliPMDRecPoint.cxx:65
 AliPMDRecPoint.cxx:66
 AliPMDRecPoint.cxx:67
 AliPMDRecPoint.cxx:68
 AliPMDRecPoint.cxx:69
 AliPMDRecPoint.cxx:70
 AliPMDRecPoint.cxx:71
 AliPMDRecPoint.cxx:72
 AliPMDRecPoint.cxx:73
 AliPMDRecPoint.cxx:74
 AliPMDRecPoint.cxx:75
 AliPMDRecPoint.cxx:76
 AliPMDRecPoint.cxx:77
 AliPMDRecPoint.cxx:78
 AliPMDRecPoint.cxx:79
 AliPMDRecPoint.cxx:80
 AliPMDRecPoint.cxx:81
 AliPMDRecPoint.cxx:82
 AliPMDRecPoint.cxx:83
 AliPMDRecPoint.cxx:84
 AliPMDRecPoint.cxx:85
 AliPMDRecPoint.cxx:86
 AliPMDRecPoint.cxx:87
 AliPMDRecPoint.cxx:88
 AliPMDRecPoint.cxx:89
 AliPMDRecPoint.cxx:90
 AliPMDRecPoint.cxx:91
 AliPMDRecPoint.cxx:92
 AliPMDRecPoint.cxx:93
 AliPMDRecPoint.cxx:94
 AliPMDRecPoint.cxx:95
 AliPMDRecPoint.cxx:96
 AliPMDRecPoint.cxx:97
 AliPMDRecPoint.cxx:98
 AliPMDRecPoint.cxx:99
 AliPMDRecPoint.cxx:100
 AliPMDRecPoint.cxx:101
 AliPMDRecPoint.cxx:102
 AliPMDRecPoint.cxx:103
 AliPMDRecPoint.cxx:104
 AliPMDRecPoint.cxx:105
 AliPMDRecPoint.cxx:106
 AliPMDRecPoint.cxx:107
 AliPMDRecPoint.cxx:108
 AliPMDRecPoint.cxx:109
 AliPMDRecPoint.cxx:110
 AliPMDRecPoint.cxx:111
 AliPMDRecPoint.cxx:112
 AliPMDRecPoint.cxx:113
 AliPMDRecPoint.cxx:114
 AliPMDRecPoint.cxx:115
 AliPMDRecPoint.cxx:116
 AliPMDRecPoint.cxx:117
 AliPMDRecPoint.cxx:118
 AliPMDRecPoint.cxx:119
 AliPMDRecPoint.cxx:120
 AliPMDRecPoint.cxx:121
 AliPMDRecPoint.cxx:122
 AliPMDRecPoint.cxx:123
 AliPMDRecPoint.cxx:124
 AliPMDRecPoint.cxx:125
 AliPMDRecPoint.cxx:126
 AliPMDRecPoint.cxx:127
 AliPMDRecPoint.cxx:128
 AliPMDRecPoint.cxx:129
 AliPMDRecPoint.cxx:130
 AliPMDRecPoint.cxx:131
 AliPMDRecPoint.cxx:132
 AliPMDRecPoint.cxx:133
 AliPMDRecPoint.cxx:134
 AliPMDRecPoint.cxx:135
 AliPMDRecPoint.cxx:136
 AliPMDRecPoint.cxx:137
 AliPMDRecPoint.cxx:138