]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MFT/AliMuonForwardTrackAnalysis.h
Added support file FilterMuonGlobalTracks.C
[u/mrichter/AliRoot.git] / MFT / AliMuonForwardTrackAnalysis.h
CommitLineData
e806e863 1#ifndef AliMuonForwardTrackAnalysis_H
2#define AliMuonForwardTrackAnalysis_H
3
4//====================================================================================================================================================
5//
6// Class for the analysis of the ALICE muon forward tracks (MUON + MFT)
7//
8// Contact author: antonio.uras@cern.ch
9//
10//====================================================================================================================================================
11
12#include "TObject.h"
13#include "TClonesArray.h"
14#include "AliMuonForwardTrack.h"
15#include "TMatrixD.h"
16#include "TTree.h"
17#include "TH1D.h"
18#include "TH2D.h"
19#include "AliLog.h"
20#include "TFile.h"
21#include "TParticle.h"
22#include "AliMUONTrackParam.h"
23#include "AliMUONTrackExtrap.h"
24#include "TDatabasePDG.h"
b5ab1ac4 25#include "TGraph.h"
e806e863 26
27//====================================================================================================================================================
28
29class AliMuonForwardTrackAnalysis : public TObject {
30
31public:
32
33 enum {kNoOption, kOpenFlavor, kResonanceOnly};
34
35 AliMuonForwardTrackAnalysis();
36
37 virtual ~AliMuonForwardTrackAnalysis() {}; // destructor
38
39 Bool_t Init(Char_t *inputFileName);
40 Bool_t LoadNextEvent();
41 void Terminate(Char_t *outputFileName);
42
43 void BookHistos();
44
45 void SetInputDir(Char_t *inputDir) { fInputDir = inputDir; }
46 void SetOutputDir(Char_t *outputDir) { fOutputDir = outputDir; }
47
48 Int_t GetNTracksAnalyzed() { return fNTracksAnalyzed; }
49
50 void SetMassRange(Int_t nBins, Double_t min, Double_t max) { fNMassBins=nBins; fMassMin=min; fMassMax=max; }
51 void SetSingleMuonAnalysis(Bool_t singleMuonAnalysis) { fSingleMuonAnalysis = singleMuonAnalysis; }
52 void SetMuonPairAnalysis(Bool_t muonPairAnalysis) { fMuonPairAnalysis = muonPairAnalysis; }
53 void SetMatchTrigger(Bool_t matchTrigger) { fMatchTrigger = matchTrigger; }
54
55 Bool_t AnalyzeSingleMuon();
56 Bool_t AnalyzeMuonPair();
57 void BuildMuonPairs();
58
7e3dd1af 59 Bool_t PassedCutSingleMuon(AliMuonForwardTrack *track);
60 Bool_t PassedCutMuonPair(AliMuonForwardTrackPair *pair);
61
e806e863 62 void SetVertResMC(Double_t xRes, Double_t yRes, Double_t zRes) { fXVertResMC=xRes; fYVertResMC=yRes; fZVertResMC=zRes; }
63
64 void SetOption(Int_t option) { fOption = option; }
65 void SetMaxNWrongClustersMC(Int_t nClusters) { fMaxNWrongClustersMC = nClusters; }
66 void SetPtMinSingleMuons(Double_t ptMin) { fPtMinSingleMuons = ptMin; }
67
68 void ReadEvents(Int_t firstEv, Int_t lastEv) { fFirstEvent = firstEv; fLastEvent = lastEv; }
69 Int_t GetFirstEvent() { return fFirstEvent; }
70 Int_t GetLastEvent() { return fLastEvent; }
71
7e3dd1af 72 void UseBransonForCut(Bool_t useBranson) { fUseBransonForCut = useBranson; }
73 void UseBransonForKinematics(Bool_t useBranson) { fUseBransonForKinematics = useBranson; }
74 void UseCutOnOffsetChi2(Bool_t useCut) { fCutOnOffsetChi2 = useCut; }
75
e806e863 76private:
77
78 static const Int_t fNPtBinsOffsetSingleMuons = 10;
79 static const Int_t fNRapBinsOffsetSingleMuons = 10;
80
81 TString fInputDir, fOutputDir;
82
7e3dd1af 83 TTree *fInputTreeWithBranson, *fInputTreeWithoutBranson; //!
e806e863 84
7e3dd1af 85 TClonesArray *fMuonForwardTracksWithBranson, *fMuonForwardTrackPairsWithBranson; //!
86 TClonesArray *fMuonForwardTracksWithoutBranson, *fMuonForwardTrackPairsWithoutBranson; //!
87 AliMuonForwardTrack *fMFTTrackWithBranson, *fMFTTrackWithoutBranson, *fMFTTrack; //!
88 AliMuonForwardTrackPair *fMFTTrackPairWithBranson, *fMFTTrackPairWithoutBranson, *fMFTTrackPair; //!
89 TParticle *fMCRefTrack; //!
e806e863 90
91 Int_t fEv, fFirstEvent, fLastEvent, fNTracksOfEvent, fNTracksAnalyzedOfEvent, fNTracksAnalyzed, fNPairsOfEvent, fNPairsAnalyzedOfEvent;
92
93 TH1D *fHistOffsetSingleMuonsX, *fHistOffsetSingleMuonsY, *fHistOffsetSingleMuons, *fHistWOffsetSingleMuons; //!
94 TH1D *fHistErrorSingleMuonsX, *fHistErrorSingleMuonsY; //!
95 TH2D *fHistOffsetSingleMuonsX_vsPtRapidity, *fHistOffsetSingleMuonsY_vsPtRapidity, *fHistSingleMuonsPtRapidity; //!
96 TH1D *fHistOffsetSingleMuonsX_tmp[fNRapBinsOffsetSingleMuons][fNPtBinsOffsetSingleMuons]; //!
97 TH1D *fHistOffsetSingleMuonsY_tmp[fNRapBinsOffsetSingleMuons][fNPtBinsOffsetSingleMuons]; //!
b5ab1ac4 98 TH2D *fHistSingleMuonsOffsetChi2; //!
e806e863 99 TH1D *fHistWOffsetMuonPairs, *fHistMassMuonPairs, *fHistMassMuonPairsWithoutMFT, *fHistMassMuonPairsMC; //!
100 TH2D *fHistRapidityPtMuonPairsMC;
101
b5ab1ac4 102 TGraph *fGraphSingleMuonsOffsetChi2; //!
103
e806e863 104 Int_t fNMassBins;
105 Double_t fMassMin, fMassMax;
106
107 Bool_t fSingleMuonAnalysis, fMuonPairAnalysis, fMatchTrigger;
108 Int_t fOption;
109
110 Double_t fXVertResMC, fYVertResMC, fZVertResMC;
7e3dd1af 111 Double_t fPrimaryVtxX, fPrimaryVtxY, fPrimaryVtxZ;
e806e863 112 Int_t fMaxNWrongClustersMC;
113 Double_t fPtMinSingleMuons;
114
7e3dd1af 115 Bool_t fUseBransonForCut, fUseBransonForKinematics, fCutOnOffsetChi2;
116
117 Double_t fCenterOffset, fCenterChi2, fScaleOffset, fScaleChi2, fRadiusCut;
118
e806e863 119 ClassDef(AliMuonForwardTrackAnalysis, 1)
120
121};
122
123//====================================================================================================================================================
124
125#endif
126