Fix for raw ctp decoding (Marek)
[u/mrichter/AliRoot.git] / STEER / STEER / AliVertexer.h
CommitLineData
2257f27e 1#ifndef ALIVERTEXER_H
2#define ALIVERTEXER_H
3
2257f27e 4///////////////////////////////////////////////////////////////////
5// //
6// Base class for primary vertex reconstruction //
7// //
8///////////////////////////////////////////////////////////////////
9
308c2f7c 10#include<TObject.h>
11
12class TTree;
2257f27e 13class AliESDVertex;
308c2f7c 14class AliMultiplicity;
2257f27e 15
16
17class AliVertexer : public TObject {
18
19 public:
20 // default constructor
21 AliVertexer();
22
23 // destructor
308c2f7c 24 virtual ~AliVertexer();
2257f27e 25 // computes the vertex for the current event
308c2f7c 26 virtual AliESDVertex* FindVertexForCurrentEvent(TTree *clustersTree)=0;
32e449be 27 // computes the vertex for each event and stores it on file
308c2f7c 28 AliMultiplicity* GetMultiplicity() const {return fMult;}
2257f27e 29 virtual void PrintStatus() const = 0;
308c2f7c 30 void SetVtxStart(Double_t x,Double_t y,Double_t z)
31 { fNominalPos[0]=x; fNominalPos[1]=y; fNominalPos[2]=z; }
32 void SetVtxStartSigma(Double_t sx,Double_t sy,Double_t sz)
33 { fNominalCov[0]=sx*sx; fNominalCov[2]=sy*sy; fNominalCov[5]=sz*sz;
34 fNominalCov[1]=0.; fNominalCov[3]=0.; fNominalCov[4]=0.; }
35 void SetVtxStart(AliESDVertex *vtx);
73c51de2 36 // the following method can be implemented in daughter classes
37 // (e.g. in AliITSVertexer3D). It is intended to tag pile-up events
38 // novertices is the total number of vertices (1 means no pileup)
39 // The returned pointer points to an array of AliESDVertx opbjects
40 // with size=novertices
41 virtual AliESDVertex* GetAllVertices(Int_t &novertices) const {novertices = 0; return NULL;}
308c2f7c 42 const Double_t* GetNominalPos() const {return fNominalPos;}
5279841d 43 const Double_t* GetNominalCov() const {return fNominalCov;}
2257f27e 44
2257f27e 45 protected:
308c2f7c 46 AliESDVertex *fCurrentVertex; //! pointer to the current vertex
47 AliMultiplicity *fMult; //! Multiplicity object
48
49 private:
2257f27e 50 // copy constructor (NO copy allowed: the constructor is protected
51 // to avoid misuse)
52 AliVertexer(const AliVertexer& vtxr);
53 // assignment operator (NO assignment allowed)
54 AliVertexer& operator=(const AliVertexer& /* vtxr */);
55
4b3f8cff 56 Double_t fNominalPos[3]; // initial knowledge on vertex position
57 Double_t fNominalCov[6]; // initial knowledge on vertex position
2257f27e 58
308c2f7c 59 ClassDef(AliVertexer,4);
2257f27e 60};
61
62#endif