bug fixed for alignment, removed alignment database access from AliPMDUtility class
[u/mrichter/AliRoot.git] / PMD / AliPMDRecPoint.cxx
CommitLineData
4fa198c6 1/**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3 * *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
6 * *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
15
803d1ab0 16/* $Id$ */
4fa198c6 17
18//_________________________________________________________________________
19// Class for PMD reconstructed space points
20// usually coming from the clusterisation algorithms
21// run on the digits
22//
23//////////////////////////////////////////////////////////////////////////////
24
25// --- ROOT system ---
26
27#include "TObjArray.h"
28
29// --- Standard library ---
30
31// --- AliRoot header files ---
32
33#include "AliPMDRecPoint.h"
34#include "AliGeometry.h"
35#include "AliDigitNew.h"
36
37ClassImp(AliPMDRecPoint)
38
39
40//____________________________________________________________________________
41//____________________________________________________________________________
42void AliPMDRecPoint::AddDigit(AliDigitNew & digit)
43{
44 // adds a digit to the digits list
45 // and accumulates the total amplitude and the multiplicity
46
47
48 if ( fMulDigit >= fMaxDigit ) { // increase the size of the list
c9eca3d7 49 int * tempo = new int[fMaxDigit*=2];
4fa198c6 50
51 Int_t index ;
52
53 for ( index = 0 ; index < fMulDigit ; index++ )
54 tempo[index] = fDigitsList[index] ;
55
56 delete fDigitsList ;
57 fDigitsList = tempo ;
58 }
59
60 fDigitsList[fMulDigit] = digit.GetIndexInList() ;
61 fMulDigit++ ;
62 fAmp += digit.GetAmp() ;
63}
64
65//____________________________________________________________________________
9aa74aae 66void AliPMDRecPoint::Copy(TObject & recp) const
4fa198c6 67{
68 //
69 // Copy *this onto pts
70 //
71 // Copy all first
9aa74aae 72
4fa198c6 73 if(this != &recp) {
74 ((TObject*) this)->Copy((TObject&)recp);
9aa74aae 75 ((AliPMDRecPoint&)recp).fAmp = fAmp;
76 ((AliPMDRecPoint&)recp).fGeom = fGeom;
77 ((AliPMDRecPoint&)recp).fIndexInList = fIndexInList;
78 ((AliPMDRecPoint&)recp).fLocPos = fLocPos;
79 ((AliPMDRecPoint&)recp).fLocPosM = new TMatrix(*fLocPosM);
80 ((AliPMDRecPoint&)recp).fMaxDigit = fMaxDigit;
81 ((AliPMDRecPoint&)recp).fMulDigit = fMulDigit;
82 ((AliPMDRecPoint&)recp).fMaxTrack = fMaxTrack;
83 ((AliPMDRecPoint&)recp).fMulTrack = fMulTrack;
4fa198c6 84
85 // Duplicate pointed objects
9aa74aae 86 ((AliPMDRecPoint&)recp).fDigitsList = new Int_t[fMulDigit];
87 memcpy(((AliPMDRecPoint&)recp).fDigitsList,fDigitsList,fMulDigit*sizeof(Int_t));
88 ((AliPMDRecPoint&)recp).fTracksList = new Int_t[fMulTrack];
89 memcpy(((AliPMDRecPoint&)recp).fTracksList,fTracksList,fMulTrack*sizeof(Int_t));
4fa198c6 90 }
91}
92
93//____________________________________________________________________________
9aa74aae 94void AliPMDRecPoint::GetCovarianceMatrix(TMatrix & mat) const
4fa198c6 95{
96 // returns the covariant matrix for the local position
97
98 mat = *fLocPosM ;
99
100}
101
102//____________________________________________________________________________
103void AliPMDRecPoint::GetLocalPosition(TVector3 & pos) const
104{
105 // returns the position of the cluster in the local reference system of the sub-detector
106
107 pos = fLocPos;
108
109
110}
111
112//____________________________________________________________________________
113AliPMDRecPoint & AliPMDRecPoint::operator= (const AliPMDRecPoint &recp)
114{
115 recp.Copy(*this);
116 return (*this);
117}
118
119
120//____________________________________________________________________________
121void AliPMDRecPoint::GetGlobalPosition(TVector3 & gpos, TMatrix & gmat) const
122{
123 // returns the position of the cluster in the global reference system of ALICE
124 // and the uncertainty on this position
125
126
127 fGeom->GetGlobal(this, gpos, gmat) ;
128
129}
130
131
132
133
134
135
136
137
138