]>
Commit | Line | Data |
---|---|---|
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; |
d5eae813 | 21 | class AliITSVertexer; |
a3a3a28f | 22 | |
23 | class AliITSMeanVertexer : public TObject { | |
24 | ||
25 | public: | |
37add1d1 | 26 | // default constructor |
d5eae813 | 27 | AliITSMeanVertexer(Bool_t mode = kTRUE); |
a3a3a28f | 28 | virtual ~AliITSMeanVertexer(); |
37add1d1 | 29 | |
30 | Bool_t Init(); | |
31 | ||
32 | void SetFilterOnContributors(Int_t nc=1){fFilterOnContributors = nc;} | |
33 | void SetFilterOnTracklets(Int_t nc=1){fFilterOnTracklets = nc;} | |
d5eae813 | 34 | Bool_t Reconstruct(AliRawReader *rawReader); |
37add1d1 | 35 | void WriteVertices(const char *filename); |
a3a3a28f | 36 | |
cf0b1cea | 37 | const TH2F*GetVertexXY() const { return fVertexXY; } |
38 | const TH1F*GetVertexZ() const { return fVertexZ; } | |
a3a3a28f | 39 | |
37add1d1 | 40 | private: |
41 | // copy constructor (NO copy allowed) | |
a3a3a28f | 42 | AliITSMeanVertexer(const AliITSMeanVertexer& vtxr); |
43 | // assignment operator (NO assignment allowed) | |
44 | AliITSMeanVertexer& operator=(const AliITSMeanVertexer& /* vtxr */); | |
37add1d1 | 45 | |
a3a3a28f | 46 | Bool_t Filter(AliESDVertex *vert,AliMultiplicity *mult); |
37add1d1 | 47 | void AddToMean(AliESDVertex *vert); |
a3a3a28f | 48 | Bool_t ComputeMean(); |
49 | ||
37add1d1 | 50 | AliITSDetTypeRec *fDetTypeRec; //! ITS reco class |
51 | TH2F *fVertexXY; //! histogram with transverse vertex distribution (vertex diamond) | |
52 | TH1F *fVertexZ; //! histogram with longitudinal vertex distribution | |
53 | ||
762133f4 | 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 | |
a3a3a28f | 63 | Float_t fTotTracklets; //! total number of tracklets used (integrated) |
762133f4 | 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 | |
a3a3a28f | 67 | Int_t fFilterOnContributors; //! Numb. of contrib must be > fFilter... |
762133f4 | 68 | Int_t fFilterOnTracklets; //! Numb. of tracklets must be > fFilterOnTr... |
d5eae813 | 69 | Bool_t fMode; //! kTRUE for Vertexer3D; |
70 | //! kFALSE for VertexerTapan | |
71 | AliITSVertexer* fVertexer; //! vertexer | |
a3a3a28f | 72 | |
cf0b1cea | 73 | ClassDef(AliITSMeanVertexer,0) |
a3a3a28f | 74 | }; |
75 | ||
76 | #endif |