]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG/muon/AliAnalysisMuMuCutCombination.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWG / muon / AliAnalysisMuMuCutCombination.h
CommitLineData
5376e016
CP
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
16class AliAnalysisMuMuCutElement;
17class AliVEvent;
18class AliInputEventHandler;
19class AliVParticle;
20
21class AliAnalysisMuMuCutCombination : public TObject
22{
23public:
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
50private:
51 /// not implemented on purpose
52 AliAnalysisMuMuCutCombination(const AliAnalysisMuMuCutCombination& rhs);
53 /// not implemented on purpose
54 AliAnalysisMuMuCutCombination& operator=(const AliAnalysisMuMuCutCombination& rhs);
55
56private:
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