]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG/muon/AliMuonPairCuts.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWG / muon / AliMuonPairCuts.h
1 #ifndef ALIMUONPAIRCUTS_H
2 #define ALIMUONPAIRCUTS_H
3
4 #include "AliAnalysisCuts.h"
5 #include "AliMuonTrackCuts.h"
6
7 class TList;
8 class TVector3;
9 class TArrayI;
10 class AliInputEventHandler;
11
12 class AliMuonPairCuts : public AliAnalysisCuts
13 {
14  public:
15   
16   enum {
17     kBothMuEta = BIT(0),
18     kBothMuThetaAbs = BIT(1),
19     kBothMuPdca = BIT(2),
20     kBothMuTrackChiSquare = BIT(3),
21     kBothMuMatchApt = BIT(4),
22     kBothMuMatchLpt = BIT(5),
23     kBothMuMatchHpt = BIT(6),
24     kOneMuMatchApt = BIT(7),
25     kOneMuMatchLpt = BIT(8),
26     kOneMuMatchHpt = BIT(9),
27     kDimuUnlikeSign = BIT(30),
28     kDimuRapidity = BIT(31)
29   };
30
31   AliMuonPairCuts();
32   AliMuonPairCuts(const char* name, const char* title);
33   AliMuonPairCuts(const char* name, const char* title, const AliMuonTrackCuts& trackCuts);
34   AliMuonPairCuts(const AliMuonPairCuts& obj);
35   AliMuonPairCuts& operator=(const AliMuonPairCuts& obj);
36
37   virtual ~AliMuonPairCuts();
38
39   virtual UInt_t GetSelectionMask ( const TObject* obj );
40   virtual Bool_t IsSelected ( TObject* /*obj*/ );
41   virtual Bool_t IsSelected ( TList* list );
42   virtual Bool_t IsSelected ( TObject* track1, TObject* track2 );
43
44   UInt_t GetSelectionMask(const TObject* track1, const TObject* track2);
45   
46   void SetDefaultFilterMask();
47
48   Bool_t SetRun ( const AliInputEventHandler* eventHandler );
49   void SetIsMC ( Bool_t isMC = kTRUE );
50
51   void Print ( Option_t* option = "" ) const;
52   
53   Double_t MuonMass2() const;
54   
55   /// Apply also sharp pt cut when matching with trigger
56   void ApplySharpPtCutInMatching ( Bool_t sharpPtCut = kTRUE ) { fMuonTrackCuts.ApplySharpPtCutInMatching(sharpPtCut); }
57   /// Get flag to apply the sharp pt cut when matching with trigger
58   Bool_t IsApplySharpPtCutInMatching () const { return fMuonTrackCuts.IsApplySharpPtCutInMatching(); }
59   
60   Bool_t TrackPtCutMatchTrigClass ( const AliVParticle* track1, const AliVParticle* track2, const TArrayI ptCutFromClass ) const;
61   
62   /// Return the MuonTrackCuts (normally the standard user do not need to modify this data member)
63   AliMuonTrackCuts& GetMuonTrackCuts () { return fMuonTrackCuts; }
64
65  private:
66   
67   AliMuonTrackCuts fMuonTrackCuts; ///< Muon track cuts
68
69   ClassDef(AliMuonPairCuts, 1); // Class for muon pair filters
70
71 };
72  
73 #endif
74