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 |
15 | class TH1F; |
16 | class TH2F; |
a3a3a28f |
17 | class AliRawReader; |
a3a3a28f |
18 | class AliMultiplicity; |
19 | class AliESDVertex; |
cf0b1cea |
20 | class AliITSDetTypeRec; |
a3a3a28f |
21 | |
22 | class 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 |