1 #ifndef ALIITSMEANVERTEXER_H
2 #define ALIITSMEANVERTEXER_H
4 ///////////////////////////////////////////////////////////////////////
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 ///////////////////////////////////////////////////////////////////////
18 class AliMultiplicity;
20 class AliITSDetTypeRec;
23 class AliITSMeanVertexer : public TObject {
26 // default constructor
27 AliITSMeanVertexer(Bool_t mode = kTRUE);
28 virtual ~AliITSMeanVertexer();
32 void SetFilterOnContributors(Int_t nc=1){fFilterOnContributors = nc;}
33 void SetFilterOnTracklets(Int_t nc=1){fFilterOnTracklets = nc;}
34 Bool_t Reconstruct(AliRawReader *rawReader);
35 void WriteVertices(const char *filename);
37 const TH2F*GetVertexXY() const { return fVertexXY; }
38 const TH1F*GetVertexZ() const { return fVertexZ; }
41 // copy constructor (NO copy allowed)
42 AliITSMeanVertexer(const AliITSMeanVertexer& vtxr);
43 // assignment operator (NO assignment allowed)
44 AliITSMeanVertexer& operator=(const AliITSMeanVertexer& /* vtxr */);
46 Bool_t Filter(AliESDVertex *vert,AliMultiplicity *mult);
47 void AddToMean(AliESDVertex *vert);
50 AliITSDetTypeRec *fDetTypeRec; //! ITS reco class
51 TH2F *fVertexXY; //! histogram with transverse vertex distribution (vertex diamond)
52 TH1F *fVertexZ; //! histogram with longitudinal vertex distribution
54 Double_t fWeighPosSum[3]; //! weighted average position sum (transient)
55 Double_t fWeighSigSum[3]; //! weighted average position sum (transient)
56 Double_t fAverPosSum[3]; //! average position sum (transient)
57 Double_t fAverPosSqSum[3][3];//! average square position sum for covariance (transient)
58 Double_t fWeighPos[3]; //! weighted average position
59 Double_t fWeighSig[3]; //! errors on weighted average position
60 Double_t fAverPos[3]; //! average position
61 Double_t fAverPosSq[3][3]; //! average square position for covariance
62 Int_t fNoEventsContr; //! number of events used for mean vertex
63 Float_t fTotTracklets; //! total number of tracklets used (integrated)
64 Float_t fAverTracklets; //! average number of tracklets per event
65 Float_t fTotTrackletsSq; //! total squared number of tracklets (transient)
66 Float_t fSigmaOnAverTracks; //! RMS of fAverTracklets
67 Int_t fFilterOnContributors; //! Numb. of contrib must be > fFilter...
68 Int_t fFilterOnTracklets; //! Numb. of tracklets must be > fFilterOnTr...
69 Bool_t fMode; //! kTRUE for Vertexer3D;
70 //! kFALSE for VertexerTapan
71 AliITSVertexer* fVertexer; //! vertexer
73 ClassDef(AliITSMeanVertexer,0)