]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG/muon/AliAnalysisMuMuCutCombination.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWG / muon / AliAnalysisMuMuCutCombination.h
1 #ifndef ALIANALYSISMUMUCUTCOMBINATION_H
2 #define ALIANALYSISMUMUCUTCOMBINATION_H
3
4 /**
5  *
6  * \class AliAnalysisMuMuCutCombination
7  *
8  * \brief Defines a cut by combining several cut elements
9  *
10  * \author L. Aphecetche (Subatech)
11  */
12
13 #include "TObject.h"
14 #include "TString.h"
15
16 class AliAnalysisMuMuCutElement;
17 class AliVEvent;
18 class AliInputEventHandler;
19 class AliVParticle;
20
21 class AliAnalysisMuMuCutCombination : public TObject
22 {
23 public:
24   AliAnalysisMuMuCutCombination();
25   virtual ~AliAnalysisMuMuCutCombination();
26   
27   void Add(AliAnalysisMuMuCutElement* ce);
28
29   Bool_t Pass(const AliInputEventHandler& eventHandler) const;
30   
31   Bool_t Pass(const AliVParticle& particle) const;
32   
33   Bool_t Pass(const AliVParticle& p1, const AliVParticle& p2) const;
34   
35   Bool_t Pass(const TString& firedTriggerClasses, TString& acceptedTriggerClasses,
36               UInt_t L0, UInt_t L1, UInt_t L2) const;
37   
38   const char* GetName() const { return fName.Data(); }
39   
40   Bool_t IsEventCutter() const { return fIsEventCutter; }
41   Bool_t IsEventHandlerCutter() const { return fIsEventHandlerCutter; }
42   Bool_t IsTrackCutter() const { return fIsTrackCutter; }
43   Bool_t IsTrackPairCutter() const { return fIsTrackPairCutter; }
44   Bool_t IsTriggerClassCutter() const { return fIsTriggerClassCutter; }
45
46   void Print(Option_t* opt="") const;
47   
48   Bool_t IsEqual(const TObject* obj) const;
49   
50 private:
51   /// not implemented on purpose
52   AliAnalysisMuMuCutCombination(const AliAnalysisMuMuCutCombination& rhs);
53   /// not implemented on purpose
54   AliAnalysisMuMuCutCombination& operator=(const AliAnalysisMuMuCutCombination& rhs);
55   
56 private:
57   TObjArray* fCuts; // array of cut elements that form this cut combination
58   TString fName; // name of the combination
59   Bool_t fIsEventCutter; // whether or not the combination cuts on event
60   Bool_t fIsEventHandlerCutter; // whether or not the combination cuts on event handler
61   Bool_t fIsTrackCutter; // whether or not the combination cuts on track
62   Bool_t fIsTrackPairCutter; // whether or not the combination cuts on track pairs
63   Bool_t fIsTriggerClassCutter; // whether or not the combination cuts on trigger class
64   
65   ClassDef(AliAnalysisMuMuCutCombination,1) // combination of 1 or more individual cuts
66 };
67
68 #endif