]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MFT/AliMFTAnalysisTools.h
Coordinates of SPD vertex
[u/mrichter/AliRoot.git] / MFT / AliMFTAnalysisTools.h
CommitLineData
bffc7f8c 1#ifndef AliMFTAnalysisTools_H
2#define AliMFTAnalysisTools_H
3
4/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
6
7//====================================================================================================================================================
8//
9// Support class for various common operation on MFT objects
10//
11// Contact author: antonio.uras@cern.ch
12//
13//====================================================================================================================================================
14
15#include "TObject.h"
16#include "AliAODTrack.h"
17#include "AliAODDimuon.h"
18#include "TLorentzVector.h"
19#include "AliMFTConstants.h"
20#include "TDatabasePDG.h"
21#include "TMath.h"
22#include "AliLog.h"
23#include "TMatrixD.h"
24#include "TClonesArray.h"
25
26//====================================================================================================================================================
27
28class AliMFTAnalysisTools : public TObject {
29
30public:
31
32 AliMFTAnalysisTools() : TObject() {;}
33 virtual ~AliMFTAnalysisTools() {;}
9664859a 34
35 // In principle, the first two methods should be replaced by the third one
bffc7f8c 36 static Bool_t ExtrapAODMuonToZ(AliAODTrack *muon, Double_t z, Double_t xy[2]);
37 static Bool_t ExtrapAODMuonToZ(AliAODTrack *muon, Double_t z, Double_t xy[2], TLorentzVector &kinem);
38 static Bool_t ExtrapAODMuonToZ(AliAODTrack *muon, Double_t z, Double_t xy[2], TLorentzVector &kinem, TMatrixD &cov);
39
9664859a 40 static Bool_t ExtrapAODMuonToXY(AliAODTrack *muon, Double_t xy[2], Double_t &zFinal, TLorentzVector &kinem, TMatrixD &cov);
41
a8b6b8e9 42 static Bool_t GetAODMuonOffset(AliAODTrack *muon, Double_t xv, Double_t yv, Double_t zv, Double_t &offset);
43 static Bool_t GetAODMuonWeightedOffset(AliAODTrack *muon, Double_t xv, Double_t yv, Double_t zv, Double_t &offset);
bffc7f8c 44
9664859a 45 static Bool_t GetAODMuonOffsetZ(AliAODTrack *muon, Double_t xv, Double_t yv, Double_t zv, Double_t &offset);
46
19393921 47 static Bool_t CalculatePCA(AliAODDimuon *dimuon, Double_t *pca, Double_t &pcaQuality, TLorentzVector &kinem);
48 static Bool_t CalculatePCA(TObjArray *muons, Double_t *pca, Double_t &pcaQuality, TLorentzVector &kinem);
bffc7f8c 49 static Double_t GetDistanceBetweenPoints(TVector3 **points, Int_t nPoints);
50
51 static Double_t GetPseudoProperDecayTimeXY(Double_t xVtx, Double_t yVtx, Double_t xDimu, Double_t yDimu, Double_t mDimu, Double_t ptDimu);
52 static Double_t GetPseudoProperDecayTimeZ(Double_t zVtx, Double_t zDimu, Double_t mDimu, Double_t pzDimu);
53
54 static Bool_t PlaneExists(AliAODTrack *muon, Int_t iPlane) { return muon->GetMFTClusterPattern() & (1<<iPlane); }
55
56 static Bool_t IsWrongCluster(AliAODTrack *muon, Int_t iPlane) {
57 if (!PlaneExists(muon, iPlane)) return kFALSE;
58 else return !(muon->GetMFTClusterPattern() & (1<<(iPlane+AliMFTConstants::fNMaxPlanes)));
59 }
60
61 static void ConvertCovMatrixMUON2AOD(const TMatrixD& covMUON, Double_t covAOD[21]);
62 static const TMatrixD ConvertCovMatrixAOD2MUON(AliAODTrack *muon);
63
64 ClassDef(AliMFTAnalysisTools,1)
65
66};
67
68//====================================================================================================================================================
69
70#endif