]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG/muon/AliMuonTrackCuts.h
Transition PWG3 --> PWGHF
[u/mrichter/AliRoot.git] / PWG / muon / AliMuonTrackCuts.h
CommitLineData
64647ced 1#ifndef ALIMUONTRACKCUTS_H
2#define ALIMUONTRACKCUTS_H
3
4#include "AliAnalysisCuts.h"
5#include "TArrayD.h"
6
7class AliVParticle;
8class TList;
9class TVector3;
10
11class AliMuonTrackCuts : public AliAnalysisCuts
12{
13 public:
14
15 enum {
16 kMuEta = BIT(0),
17 kMuThetaAbs = BIT(1),
18 kMuPdca = BIT(2),
19 kMuMatchApt = BIT(3),
20 kMuMatchLpt = BIT(4),
21 kMuMatchHpt = BIT(5),
22 kMuTrackChiSquare = BIT(6),
23 };
24
25 AliMuonTrackCuts();
26 AliMuonTrackCuts(const char* name, const char* title, Bool_t isESD);
27 AliMuonTrackCuts(const AliMuonTrackCuts& obj);
28
29 virtual ~AliMuonTrackCuts();
30
31 virtual UInt_t GetSelectionMask ( const TObject* obj );
32 virtual Bool_t IsSelected ( TObject* obj );
33 virtual Bool_t IsSelected ( TList* /*list */ );
34
35 void SetDefaultFilterMask();
36
37 Bool_t SetRun(Int_t runNumber);
38 void SetUseCustomParam( Bool_t useCustomParam = kTRUE, Int_t runNumber = -1 );
39 void SetIsMC(Bool_t isMC = kTRUE) { fIsMC = isMC; }
40
41 void Print ( Option_t* option = "" ) const;
42
43 TVector3 GetCorrectedDCA ( const AliVParticle* track ) const;
44 Double_t GetAverageMomentum ( const AliVParticle* track ) const;
45
46 enum {
47 kThetaAbs23, ///< Theta_abs between 2 and 3 degrees
48 kThetaAbs310, ///< Theta_abs between 3 and 10 degrees
49 kNthetaAbs ///< Number of theta abs bins
50 };
51
52 // Parameters
53 enum {
54 kMeanDcaX, ///< Average track DCA_x
55 kMeanDcaY, ///< Average track DCA_y
56 kMeanDcaZ, ///< Average track DCA_z
57 kMeanPCorr23, ///< Average momentum correction in 2-3 deg
58 kMeanPCorr310, ///< Average momentum correction in 3-10 deg
59 kSigmaPdca23, ///< Sigma_PxDCA in 2-3 deg
60 kSigmaPdca310, ///< Sigma_PxDCA in 3-10 deg
61 kNSigmaPdcaCut, ///< Cut value in units of sigma_PxDCA
62 kChi2NormCut, ///< Cut on the normalized chi2 of track
63 kRelPResolution, ///< Relative momentum resolution
64 kSlopeResolution, ///< Slope resolution
65 kNParameters ///< Total number of parameters
66 };
67
68 void SetMeanDCA ( Double_t xAtDca, Double_t yAtDca, Double_t zAtDca = 0.);
69 TVector3 GetMeanDCA () const;
70
71 void SetMeanPCorr ( Double_t pCorrThetaAbs23, Double_t pCorrThetaAbs310 );
72 Double_t GetMeanPCorr ( Double_t rAtAbsEnd ) const;
73
74 void SetSigmaPdca ( Double_t sigmaThetaAbs23, Double_t sigmaThetaAbs310 );
75 Double_t GetSigmaPdca ( Double_t rAtAbsEnd ) const;
76
77 void SetNSigmaPdca ( Double_t nSigmas );
78 Double_t GetNSigmaPdca () const;
79
80 void SetChi2NormCut ( Double_t chi2normCut );
81 Double_t GetChi2NormCut () const;
82
83 void SetRelPResolution ( Double_t relPResolution );
84 Double_t GetRelPResolution () const;
85
86 void SetSlopeResolution ( Double_t slopeResolution );
87 Double_t GetSlopeResolution () const;
88
89 Bool_t StreamParameters ( Int_t runNumber, Int_t maxRun );
90
91 private:
92 AliMuonTrackCuts& operator=(const AliMuonTrackCuts& obj); // not implemented (on purpose)
93
94 Int_t GetThetaAbsBin ( Double_t rAtAbsEnd ) const;
95 Bool_t SetParameter ( Int_t iparam, Float_t value );
96 Bool_t RunMatchesRange ( Int_t runNumber, const Char_t* objName );
97
98 Bool_t fIsESD; ///< Event is ESD
99 Bool_t fIsMC; ///< Monte Carlo analysis
100 Bool_t fUseCustomParam; ///< Use custom parameters (do not search in OADB)
101
102 TArrayD fParameters; ///< List of parameters
103
104 ClassDef(AliMuonTrackCuts, 1); // Class for muon track filters
105};
106
107#endif
108