AliRoot Core  edcc906 (edcc906)
AliVertexer.h
Go to the documentation of this file.
1 #ifndef ALIVERTEXER_H
2 #define ALIVERTEXER_H
3 
5 // //
6 // Base class for primary vertex reconstruction //
7 // //
9 
10 #include<TObject.h>
11 
12 class TTree;
13 class AliESDVertex;
14 class AliMultiplicity;
15 
16 
17 class AliVertexer : public TObject {
18 
19  public:
20  // default constructor
21  AliVertexer();
22 
23  // destructor
24  virtual ~AliVertexer();
25  // computes the vertex for the current event
26  virtual AliESDVertex* FindVertexForCurrentEvent(TTree *clustersTree)=0;
27  // computes the vertex for each event and stores it on file
29  virtual void PrintStatus() const = 0;
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);
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;}
42  const Double_t* GetNominalPos() const {return fNominalPos;}
43  const Double_t* GetNominalCov() const {return fNominalCov;}
44 
45  protected:
48 
49  private:
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 
56  Double_t fNominalPos[3]; // initial knowledge on vertex position
57  Double_t fNominalCov[6]; // initial knowledge on vertex position
58 
59  ClassDef(AliVertexer,4);
60 };
61 
62 #endif
Double_t fNominalCov[6]
Definition: AliVertexer.h:57
AliESDVertex * fCurrentVertex
Definition: AliVertexer.h:46
virtual ~AliVertexer()
Definition: AliVertexer.cxx:45
virtual void PrintStatus() const =0
AliMultiplicity * fMult
pointer to the current vertex
Definition: AliVertexer.h:47
virtual AliESDVertex * FindVertexForCurrentEvent(TTree *clustersTree)=0
Double_t fNominalPos[3]
Definition: AliVertexer.h:56
const Double_t * GetNominalPos() const
Definition: AliVertexer.h:42
void SetVtxStart(Double_t x, Double_t y, Double_t z)
Definition: AliVertexer.h:30
AliMultiplicity * GetMultiplicity() const
Definition: AliVertexer.h:28
const Double_t * GetNominalCov() const
Definition: AliVertexer.h:43
virtual AliESDVertex * GetAllVertices(Int_t &novertices) const
Definition: AliVertexer.h:41
AliVertexer & operator=(const AliVertexer &)
void SetVtxStartSigma(Double_t sx, Double_t sy, Double_t sz)
Definition: AliVertexer.h:32