Splitting the variables used to accumulate the sums from the ones used to fill the...
[u/mrichter/AliRoot.git] / ITS / AliITSMeanVertexer.h
CommitLineData
a3a3a28f 1#ifndef ALIITSMEANVERTEXER_H
2#define ALIITSMEANVERTEXER_H
3
a3a3a28f 4///////////////////////////////////////////////////////////////////////
5// //
6// Class to compute vertex position using SPD local reconstruction //
7// An average vertex position using all the events //
8// is built and saved //
9///////////////////////////////////////////////////////////////////////
10
11/* $Id$ */
12
cf0b1cea 13#include <TObject.h>
14
37add1d1 15class TH1F;
16class TH2F;
a3a3a28f 17class AliRawReader;
a3a3a28f 18class AliMultiplicity;
19class AliESDVertex;
cf0b1cea 20class AliITSDetTypeRec;
a3a3a28f 21
22class AliITSMeanVertexer : public TObject {
23
24 public:
37add1d1 25 // default constructor
a3a3a28f 26 AliITSMeanVertexer();
a3a3a28f 27 virtual ~AliITSMeanVertexer();
37add1d1 28
29 Bool_t Init();
30
31 void SetFilterOnContributors(Int_t nc=1){fFilterOnContributors = nc;}
32 void SetFilterOnTracklets(Int_t nc=1){fFilterOnTracklets = nc;}
33 Bool_t Reconstruct(AliRawReader *rawReader, Bool_t mode = kTRUE);
34 void WriteVertices(const char *filename);
a3a3a28f 35
cf0b1cea 36 const TH2F*GetVertexXY() const { return fVertexXY; }
37 const TH1F*GetVertexZ() const { return fVertexZ; }
a3a3a28f 38
37add1d1 39 private:
40 // copy constructor (NO copy allowed)
a3a3a28f 41 AliITSMeanVertexer(const AliITSMeanVertexer& vtxr);
42 // assignment operator (NO assignment allowed)
43 AliITSMeanVertexer& operator=(const AliITSMeanVertexer& /* vtxr */);
37add1d1 44
a3a3a28f 45 Bool_t Filter(AliESDVertex *vert,AliMultiplicity *mult);
37add1d1 46 void AddToMean(AliESDVertex *vert);
a3a3a28f 47 Bool_t ComputeMean();
48
37add1d1 49 AliITSDetTypeRec *fDetTypeRec; //! ITS reco class
50 TH2F *fVertexXY; //! histogram with transverse vertex distribution (vertex diamond)
51 TH1F *fVertexZ; //! histogram with longitudinal vertex distribution
52
762133f4 53 Double_t fWeighPosSum[3]; //! weighted average position sum (transient)
54 Double_t fWeighSigSum[3]; //! weighted average position sum (transient)
55 Double_t fAverPosSum[3]; //! average position sum (transient)
56 Double_t fAverPosSqSum[3][3];//! average square position sum for covariance (transient)
57 Double_t fWeighPos[3]; //! weighted average position
58 Double_t fWeighSig[3]; //! errors on weighted average position
59 Double_t fAverPos[3]; //! average position
60 Double_t fAverPosSq[3][3]; //! average square position for covariance
61 Int_t fNoEventsContr; //! number of events used for mean vertex
a3a3a28f 62 Float_t fTotTracklets; //! total number of tracklets used (integrated)
762133f4 63 Float_t fAverTracklets; //! average number of tracklets per event
64 Float_t fTotTrackletsSq; //! total squared number of tracklets (transient)
65 Float_t fSigmaOnAverTracks; //! RMS of fAverTracklets
a3a3a28f 66 Int_t fFilterOnContributors; //! Numb. of contrib must be > fFilter...
762133f4 67 Int_t fFilterOnTracklets; //! Numb. of tracklets must be > fFilterOnTr...
a3a3a28f 68
cf0b1cea 69 ClassDef(AliITSMeanVertexer,0)
a3a3a28f 70};
71
72#endif