Update of the meanvertexer: possibility of calling AliITSVertexer3DTapan, added histo...
[u/mrichter/AliRoot.git] / ITS / AliITSMeanVertexer.h
1 #ifndef ALIITSMEANVERTEXER_H
2 #define ALIITSMEANVERTEXER_H
3
4 #include <TString.h>
5
6 ///////////////////////////////////////////////////////////////////////
7 //                                                                   //
8 // Class to compute vertex position using SPD local reconstruction   //
9 // An average vertex position using all the events                   //
10 // is built and saved                                                //
11 ///////////////////////////////////////////////////////////////////////
12
13 /* $Id$ */
14
15 class TObject;
16 class TH1F;
17 class TH2F;
18 class AliRawReader;
19 class AliMultiplicity;
20 class AliESDVertex;
21
22 class AliITSMeanVertexer : public TObject {
23
24  public:
25   // default constructor
26     AliITSMeanVertexer();   
27     virtual ~AliITSMeanVertexer();
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);
35
36  
37  private:
38     // copy constructor (NO copy allowed)
39     AliITSMeanVertexer(const AliITSMeanVertexer& vtxr);
40     // assignment operator (NO assignment allowed)
41     AliITSMeanVertexer& operator=(const AliITSMeanVertexer& /* vtxr */);
42
43     Bool_t Filter(AliESDVertex *vert,AliMultiplicity *mult);
44     void   AddToMean(AliESDVertex *vert);
45     Bool_t ComputeMean();
46
47     AliITSDetTypeRec *fDetTypeRec; //! ITS reco class
48     TH2F    *fVertexXY;        //! histogram with transverse vertex distribution (vertex diamond)
49     TH1F    *fVertexZ;         //! histogram with longitudinal vertex distribution
50
51     Double_t fWeighPos[3];     //! weighted average position
52     Double_t fWeighSig[3];     //! errors on weighted average position
53     Double_t fAverPos[3];      //! average position
54     Double_t fAverPosSq[3][3];  //! average square position for covariance
55     Int_t fNoEventsContr;      //! number of events used for mean vertex
56     Float_t fTotTracklets;       //! total number of tracklets used (integrated)
57     Float_t fAverTracklets;    //! average number of tracklets per event
58     Float_t fSigmaOnAverTracks; //! RMS of fAverTracklets
59     Int_t fFilterOnContributors; //! Numb. of contrib must be > fFilter...
60     Int_t fFilterOnTracklets; //! Numb. of tracklets must be > fFilterOnTr...
61
62   ClassDef(AliITSMeanVertexer,0);
63 };
64
65 #endif