]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG/muon/AliMuonTrackCuts.h
fixing the error message
[u/mrichter/AliRoot.git] / PWG / muon / AliMuonTrackCuts.h
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     kMuMatchSharpApt = BIT(7),
24     kMuMatchSharpLpt = BIT(8),
25     kMuMatchSharpHpt = BIT(9)
26   };
27
28   AliMuonTrackCuts();
29   AliMuonTrackCuts(const char* name, const char* title, Bool_t isESD);
30   AliMuonTrackCuts(const AliMuonTrackCuts& obj);
31   AliMuonTrackCuts& operator=(const AliMuonTrackCuts& obj);
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
69     kSharpPtApt,      ///< Sharp tracker pt cut for Apt
70     kSharpPtLpt,      ///< Sharp tracker pt cut for Lpt
71     kSharpPtHpt,      ///< Sharp tracker pt cut for Hpt
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;
95   
96   void SetSharpPtCut ( Int_t trigPtCut, Double_t ptCutValue );
97   Double_t GetSharpPtCut ( Int_t trigPtCut, Bool_t warn = kTRUE ) const;
98
99   Bool_t StreamParameters ( Int_t runNumber, Int_t maxRun );
100
101  private:
102   
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