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