]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG/muon/AliMuonTrackCuts.h
Improve handling of sharp tracker pt cut matching with trigger pt level: alling Apply...
[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),
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