]>
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), | |
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 |