1 #ifndef ALIITSMEANVERTEXER_H
2 #define ALIITSMEANVERTEXER_H
6 ///////////////////////////////////////////////////////////////////////
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 ///////////////////////////////////////////////////////////////////////
18 class AliMultiplicity;
21 class AliITSMeanVertexer : public TObject {
24 // default constructor
26 // standard constructor. filename is the name of the file containing
27 // raw data either in ROOT or DATE format according to file extension
28 AliITSMeanVertexer(TString filename);
29 // constructor with explicit assignment of names for geometry and loaders
30 AliITSMeanVertexer(TString filename, TString loaderfilename,
31 TString geometryfilename);
32 virtual ~AliITSMeanVertexer();
33 void SetLoaderFileName(TString fn="ITSMeanVertexer.root")
34 {fLoaderFileName = fn;}
35 void SetGeometryFileName(TString fn="geometry.root")
36 {fGeometryFileName = fn;}
37 void SetMeanVertexFileName(TString fn) {fMVFileName = fn;}
38 void SetFilterOnContributors(Int_t nc=1){fFilterOnContributors = nc;}
39 void SetFilterOnTracklets(Int_t nc=1){fFilterOnTracklets = nc;}
40 void SetWriteVertices(Bool_t action){fWriteVertices = action;}
41 Bool_t GetWriteVertices() const {return fWriteVertices;}
47 // copy constructor (NO copy allowed: the constructor is protected
49 AliITSMeanVertexer(const AliITSMeanVertexer& vtxr);
50 // assignment operator (NO assignment allowed)
51 AliITSMeanVertexer& operator=(const AliITSMeanVertexer& /* vtxr */);
52 void Init(TString filename); // initialization invoked by constructors
53 Bool_t Filter(AliESDVertex *vert,AliMultiplicity *mult);
54 void AddToMean(AliESDVertex *vert);
57 static const TString fgkMVFileNameDefault; //! default for fMVFileName
58 TString fLoaderFileName; //! name of the local file containing loaders
59 TString fGeometryFileName; //! name of the file containing the geometry
60 TString fMVFileName; //! name of the file containing the mean vertex
61 AliRawReader *fRawReader; //! rawreader object
62 AliRunLoader *fRunLoader; //! run loader
63 Double_t fWeighPos[3]; //! weighted average position
64 Double_t fWeighSig[3]; //! errors on weighted average position
65 Double_t fAverPos[3]; //! average position
66 Double_t fAverPosSq[3][3]; //! average square position for covariance
67 Int_t fNoEventsContr; //! number of events used for mean vertex
68 Float_t fTotTracklets; //! total number of tracklets used (integrated)
69 Float_t fAverTracklets; //! average number of tracklets per event
70 Float_t fSigmaOnAverTracks; //! RMS of fAverTracklets
71 Int_t fFilterOnContributors; //! Numb. of contrib must be > fFilter...
72 Int_t fFilterOnTracklets; //! Numb. of tracklets must be > fFilterOnTr...
73 Bool_t fWriteVertices; //! if kTRUE all the vertices are saved to a file
75 ClassDef(AliITSMeanVertexer,0);