]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG/muon/AliMuonTrackCuts.h
Allow to store pass-dependent parameters for standard Muon track cuts in OADB (Diego)
[u/mrichter/AliRoot.git] / PWG / muon / AliMuonTrackCuts.h
CommitLineData
64647ced 1#ifndef ALIMUONTRACKCUTS_H
2#define ALIMUONTRACKCUTS_H
3
4#include "AliAnalysisCuts.h"
68e9b988 5#include "AliOADBMuonTrackCutsParam.h"
64647ced 6
64647ced 7class TList;
ebba9ef0 8class TArrayI;
68e9b988 9class AliVParticle;
10class AliInputEventHandler;
11
64647ced 12
13class AliMuonTrackCuts : public AliAnalysisCuts
14{
15 public:
16
17 enum {
18 kMuEta = BIT(0),
19 kMuThetaAbs = BIT(1),
20 kMuPdca = BIT(2),
21 kMuMatchApt = BIT(3),
22 kMuMatchLpt = BIT(4),
23 kMuMatchHpt = BIT(5),
0f7e072e 24 kMuTrackChiSquare = BIT(6)
64647ced 25 };
0f7e072e 26
64647ced 27 AliMuonTrackCuts();
a12dc5da 28 AliMuonTrackCuts(const char* name, const char* title);
64647ced 29 AliMuonTrackCuts(const AliMuonTrackCuts& obj);
d555a462 30 AliMuonTrackCuts& operator=(const AliMuonTrackCuts& obj);
64647ced 31
32 virtual ~AliMuonTrackCuts();
33
34 virtual UInt_t GetSelectionMask ( const TObject* obj );
35 virtual Bool_t IsSelected ( TObject* obj );
36 virtual Bool_t IsSelected ( TList* /*list */ );
37
38 void SetDefaultFilterMask();
68e9b988 39 void SetPassNumber ( Int_t passNumber ) { fPassNumber = passNumber; }
40 void SetIsMC ( Bool_t isMC = kTRUE ) { fIsMC = isMC; }
41 void SetAllowDefaultParams ( Bool_t allowDefaultParams = kTRUE ) { fAllowDefaultParams = allowDefaultParams; }
42 void SetCustomParamFromRun ( Int_t runNumber = -1, Int_t passNumber = -1 );
43
44 /// Get pass number
45 Int_t GetPassNumber () const { return fPassNumber; }
64647ced 46
68e9b988 47 Bool_t SetRun ( const AliInputEventHandler* eventHandler );
48
64647ced 49 void Print ( Option_t* option = "" ) const;
ebba9ef0 50
51 Bool_t TrackPtCutMatchTrigClass ( const AliVParticle* track, const TArrayI ptCutFromClass) const;
64647ced 52
53 TVector3 GetCorrectedDCA ( const AliVParticle* track ) const;
54 Double_t GetAverageMomentum ( const AliVParticle* track ) const;
68e9b988 55 Bool_t IsThetaAbs23 ( const AliVParticle* track ) const;
64647ced 56
0f7e072e 57 /// Apply also sharp pt cut when matching with trigger
58 void ApplySharpPtCutInMatching ( Bool_t sharpPtCut = kTRUE ) { fSharpPtCut = sharpPtCut; }
e7f23491 59 /// Get flag to apply the sharp pt cut when matching with trigger
60 Bool_t IsApplySharpPtCutInMatching () const { return fSharpPtCut; }
68e9b988 61
62 /// Get track cuts param (you're not supposed to modify its content
63 const AliOADBMuonTrackCutsParam GetMuonTrackCutsParam () const { return fOADBParam; };
64 AliOADBMuonTrackCutsParam* CustomParam ();
64647ced 65
66 private:
d555a462 67
68e9b988 68 Bool_t ReadParamFromOADB ( Int_t runNumber );
64647ced 69
68e9b988 70 Bool_t fIsMC; ///< Monte Carlo analysis
71 Bool_t fUseCustomParam; ///< Use custom parameters (do not search in OADB)
72 Bool_t fSharpPtCut; ///< Flag to apply sharp pt cut in track-trigger matching
73 Bool_t fAllowDefaultParams; ///< Flag to allow default parameters from OADB
74 Int_t fPassNumber; ///< Pass number
75 AliOADBMuonTrackCutsParam fOADBParam; ///< Track param in OADB
64647ced 76
68e9b988 77 ClassDef(AliMuonTrackCuts, 4); // Class for muon track filters
64647ced 78};
79
80#endif
81