]>
Commit | Line | Data |
---|---|---|
f8b94231 | 1 | #ifndef ALIMUONEVENTCUTS_H |
2 | #define ALIMUONEVENTCUTS_H | |
3 | ||
4 | #include "AliAnalysisCuts.h" | |
f8b94231 | 5 | |
6 | class AliVEvent; | |
7 | class AliVVertex; | |
8 | class TList; | |
9 | class TAxis; | |
f8b94231 | 10 | class TArrayI; |
57142b8e | 11 | class TString; |
12 | class TObjString; | |
13 | class TObjArray; | |
d0809f42 | 14 | class AliAnalysisUtils; |
f8b94231 | 15 | |
16 | class AliMuonEventCuts : public AliAnalysisCuts | |
17 | { | |
18 | public: | |
19 | ||
20 | enum { | |
21 | kPhysicsSelected = BIT(0), | |
22 | kSelectedCentrality = BIT(1), | |
23 | kSelectedTrig = BIT(2), | |
d0809f42 | 24 | kGoodVertex = BIT(3), |
25 | kNoPileup = BIT(4) | |
f8b94231 | 26 | }; |
27 | ||
28 | AliMuonEventCuts(); | |
29 | AliMuonEventCuts(const char* name, const char* title); | |
30 | AliMuonEventCuts(const AliMuonEventCuts& obj); | |
31 | AliMuonEventCuts& operator=(const AliMuonEventCuts& obj); | |
32 | ||
33 | virtual ~AliMuonEventCuts(); | |
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 | void SetDefaultParameters(); | |
41 | ||
d0809f42 | 42 | /// Skip tests which are not active in the filter mask |
43 | void SkipTestsNonInFilterMask ( UInt_t skipMask = 0xFFFF) { fCheckMask = ~skipMask; } | |
44 | ||
f8b94231 | 45 | // Handle trigger |
db0b061d | 46 | void SetTrigClassPatterns ( TString trigPattern, TString trigInputsMap = "" ); |
f8b94231 | 47 | /// Get default trigger class patterns |
db0b061d | 48 | TString GetDefaultTrigClassPatterns() const; |
49 | TString GetDefaultTrigInputsMap() const; | |
34e8fe1d | 50 | void SetTrigClassLevels (TString pattern = "MSL:Lpt,MUSL:Lpt,MSH:Hpt,MUSH:Hpt,MUL:LptLpt,MUU:LptLpt,MLL:LptLpt" ); |
51 | TArrayI GetTrigClassPtCutLevel (TString trigClassName ) const; | |
f8b94231 | 52 | /// Get trigger classes found in run |
53 | TList* GetAllSelectedTrigClasses () const { return fAllSelectedTrigClasses; } | |
72ebcde7 | 54 | const TObjArray* GetSelectedTrigClassesInEvent ( const AliVEvent* event ); |
5376e016 CP |
55 | const TObjArray* GetSelectedTrigClassesInEvent(const TString& firedTriggerClasses, |
56 | UInt_t l0Inputs, UInt_t l1Inputs, UInt_t l2Inputs); | |
57 | ||
58 | UInt_t GetTriggerInputBitMaskFromInputName(const char* inputName) const; | |
f8b94231 | 59 | |
f8b94231 | 60 | // Handle centrality |
61 | void SetCentralityClasses(Int_t nCentralityBins = -1, Double_t* centralityBins = 0x0); | |
62 | /// Get centrality classes | |
63 | TAxis* GetCentralityClasses() const { return fCentralityClasses; } | |
64 | ||
34e8fe1d | 65 | void SetCentralityEstimator (TString centralityEstimator = "V0M" ); |
f8b94231 | 66 | TString GetCentralityEstimator () const; |
67 | Double_t GetCentrality ( const AliVEvent* event ) const; | |
68 | ||
69 | ||
70 | /// Set Physics selection mask | |
34e8fe1d | 71 | void SetPhysicsSelectionMask (UInt_t physicsSelectionMask ) { fPhysicsSelectionMask = physicsSelectionMask; } |
f8b94231 | 72 | |
73 | ||
74 | /// Set minimum number of vertex contributors | |
34e8fe1d | 75 | void SetVertexMinNContributors (Int_t vertexMinNContributors ) { fVertexMinNContributors = vertexMinNContributors; } |
f8b94231 | 76 | /// Get minimum number of vertex contributors |
68e9b988 | 77 | Int_t GetVertexMinNContributors () const { return fVertexMinNContributors; } |
f8b94231 | 78 | /// Set Vz limits |
68e9b988 | 79 | void SetVertexVzLimits ( Double_t vzMin = -999., Double_t vzMax = 999. ) { fVertexVzMin = vzMin; fVertexVzMax = vzMax; } |
f8b94231 | 80 | /// Get Vtx vz min |
68e9b988 | 81 | Double_t GetVertexVzMin () const { return fVertexVzMin; } |
f8b94231 | 82 | /// Get Vtx vz max |
68e9b988 | 83 | Double_t GetVertexVzMax () const { return fVertexVzMax; } |
d0809f42 | 84 | |
85 | /// Return pointer to analysis utils (to configure cuts) | |
86 | AliAnalysisUtils* GetAnalysisUtils ( ) { return fAnalysisUtils; } | |
f8b94231 | 87 | |
88 | void Print ( Option_t* option = "" ) const; | |
89 | ||
f8b94231 | 90 | protected: |
91 | ||
34e8fe1d | 92 | void BuildTriggerClasses (TString firedTrigClasses, UInt_t l0Inputs, UInt_t l1Inputs, UInt_t l2Inputs ); |
57142b8e | 93 | Bool_t CheckTriggerClassPattern ( const TString& toCheck ) const; |
a3f27e84 | 94 | Bool_t CheckTriggerClassCombination ( const TObjArray* combo, const TString& firedTriggerClasses, UInt_t l0Inputs, UInt_t l1Inputs, UInt_t l2Inputs ) const; |
782b4332 | 95 | void AddToEventSelectedClass ( const TString& toCheck, const TObjString* foundTrig, const UInt_t comboType = 0 ); |
f8b94231 | 96 | Bool_t UpdateEvent( const AliVEvent* event ); |
97 | void SetDefaultTrigClassPatterns(); | |
db0b061d | 98 | void SetTrigInputsMap ( TString trigInputsMap ); |
68e9b988 | 99 | |
f8b94231 | 100 | UInt_t fPhysicsSelectionMask; ///< Physics selection mask |
101 | ||
68e9b988 | 102 | Int_t fVertexMinNContributors; ///< Minimum number of SPD vertex contributors |
103 | Double_t fVertexVzMin; ///< SPD vertex Vz min | |
104 | Double_t fVertexVzMax; ///< SPD vertex Vz max | |
f8b94231 | 105 | |
d0809f42 | 106 | UInt_t fCheckMask; ///< Mask telling which cuts to check (by default check filter mask) |
107 | ||
f8b94231 | 108 | TObjArray* fSelectedTrigPattern; ///< List of triggers to be kept |
109 | TObjArray* fRejectedTrigPattern; ///< List of triggers to be rejected | |
110 | TObjArray* fSelectedTrigLevel; ///< Track-trigger pt cut for selected trigger class | |
57142b8e | 111 | TObjArray* fSelectedTrigCombination; ///< Selected trigger combinations |
112 | TList* fTrigInputsMap; ///< Trigger inputs map | |
f8b94231 | 113 | TList* fAllSelectedTrigClasses; ///< List of all selected trigger classes found |
114 | TAxis* fCentralityClasses; ///< Centrality classes | |
d0809f42 | 115 | AliAnalysisUtils* fAnalysisUtils; ///< Analysis utility |
f8b94231 | 116 | |
117 | private: | |
4e2a9c02 | 118 | ULong64_t fEventTriggerMask; //!< Fired trigger mask in the event |
782b4332 | 119 | TObjArray* fSelectedTrigClassesInEvent; //!< list of selected trigger classes in current event |
120 | enum {kComboSimple, kComboFormula, kComboAND, kComboOR}; //!< Trigger combination types | |
f8b94231 | 121 | |
db0b061d | 122 | ClassDef(AliMuonEventCuts, 6); // Class for muon event filters |
f8b94231 | 123 | }; |
124 | ||
125 | #endif | |
126 |