]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/src/AliHLTVertexFinder.cxx
L3 becomes HLT
[u/mrichter/AliRoot.git] / HLT / src / AliHLTVertexFinder.cxx
1 // @(#) $Id$
2
3 // Author: Uli Frankenfeld <mailto:franken@fi.uib.no>
4 //*-- Copyright &copy ALICE HLT Group
5
6 #include "AliHLTStandardIncludes.h"
7 #include "AliHLTRootTypes.h"
8 #include "AliHLTSpacePointData.h"
9 #include "AliHLTVertexData.h"
10 #include "AliHLTLogging.h"
11 #include "AliHLTVertexArray.h"
12 #include "AliHLTVertex.h"
13 #include "AliHLTVertexFinder.h"
14 #include "AliHLTSpacePointData.h"
15 #include "AliHLTTransform.h"
16
17 /** \class AliHLTVertexFinder
18 <pre>
19 //_____________________________________________________________
20 // AliHLTVertexFinder
21 //
22 //   Implementation of AliHLTArray 
23 //   usage:
24 // 
25 //   ResetSector();
26 //   for(n=0;n<NMEMSEC;n++)  
27 //     Read();
28 //   FindSectorVertex();
29 //   SetZ(GetZSector());
30 //   SetZErr(GetZErrSector());
31 // 
32 //
33 </pre>
34 */
35
36 #if __GNUC__ >= 3
37 using namespace std;
38 #endif
39
40 ClassImp(AliHLTVertexFinder)
41
42 AliHLTVertexFinder::AliHLTVertexFinder()
43 {
44   //
45   // default constructor for the AliHLTVertexFinder class. 
46   //
47
48   //Set vertex to zero.
49   SetX(0);
50   SetY(0);
51   SetZ(0);
52   SetXErr(1);
53   SetYErr(1);
54   SetZErr(1);
55   fR=0;
56   fPhi=0;
57   fMWxy = 1.;
58 }
59
60 AliHLTVertexFinder::~AliHLTVertexFinder()
61 {
62   //
63   // destructor
64   //
65 }
66
67 void AliHLTVertexFinder::Reset()
68 {
69   //
70   // Reset
71   //
72   ResetSector();
73 }
74
75
76 void AliHLTVertexFinder::Read(Int_t ncluster, AliHLTSpacePointData* hits )
77 {
78   //
79   //  analyze sector 
80   // 
81   
82   const Int_t kseedRow = AliHLTTransform::GetNRows() - 1; 
83   const Int_t kfirstRow = kseedRow-32;
84   for(Int_t n=0;n<ncluster;n++){
85     if(hits[n].fPadRow==kseedRow)
86       FillSectorSeed3D(hits[n].fX,hits[n].fY,hits[n].fZ);  //copy seeds in 3D
87     if(hits[n].fPadRow<=kseedRow && hits[n].fPadRow>=kfirstRow)
88       FillSector3D(hits[n].fX,hits[n].fY,hits[n].fZ);  //copy data in 3D
89   }
90 }
91
92 void AliHLTVertexFinder::Analyze()
93 {
94   //
95   // analyze all
96   //
97   FindSectorVertex();
98   SetZ(GetZSector());
99   SetZErr(GetZSectorErr());
100   LOG(AliHLTLog::kInformational,"AliHLTVertexFinder::Analyze","Result")
101   <<AliHLTLog::kDec<<"Vertex: "<<GetZ()<<"  RMS: "<<GetZErr()<<ENDLOG;
102 }
103
104 void AliHLTVertexFinder::Write(AliHLTVertex *vertex) const
105 {
106   //
107   // write
108   //
109   vertex->SetX(GetX());
110   vertex->SetY(GetZ());
111   vertex->SetZ(GetZ());
112   vertex->SetXErr(GetXErr());
113   vertex->SetYErr(GetYErr());
114   vertex->SetZErr(GetZErr());
115
116   vertex->SetXYWeight(GetXYWeight());
117 }
118
119 void AliHLTVertexFinder::Write(AliHLTVertexData *vertex) const
120 {
121   //
122   // write
123   //
124   vertex->fX=GetX();
125   vertex->fY=GetZ();
126   vertex->fZ=GetZ();
127   vertex->fXErr=GetXErr();
128   vertex->fYErr=GetYErr();
129   vertex->fZErr=GetZErr();
130 }