]>
Commit | Line | Data |
---|---|---|
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 | ||
28 | class AliMFTAnalysisTools : public TObject { | |
29 | ||
30 | public: | |
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 |