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