1 #ifndef ALIMUONEVENTCUTS_H
2 #define ALIMUONEVENTCUTS_H
4 #include "AliAnalysisCuts.h"
15 class AliMuonEventCuts : public AliAnalysisCuts
20 kPhysicsSelected = BIT(0),
21 kSelectedCentrality = BIT(1),
22 kSelectedTrig = BIT(2),
27 AliMuonEventCuts(const char* name, const char* title);
28 AliMuonEventCuts(const AliMuonEventCuts& obj);
29 AliMuonEventCuts& operator=(const AliMuonEventCuts& obj);
31 virtual ~AliMuonEventCuts();
33 virtual UInt_t GetSelectionMask ( const TObject* obj );
34 virtual Bool_t IsSelected ( TObject* obj );
35 virtual Bool_t IsSelected ( TList* /*list */ );
37 void SetDefaultFilterMask();
38 void SetDefaultParameters();
41 void SetTrigClassPatterns ( const TString trigPattern );
42 /// Get default trigger class patterns
43 TString GetDefaultTrigClassPatterns() { return fDefaultTrigClassPatterns; };
44 void SetTrigClassLevels ( const TString pattern = "MSL:Lpt,MUSL:Lpt,MSH:Hpt,MUSH:Hpt,MUL:LptLpt,MUU:LptLpt,MLL:LptLpt" );
45 TArrayI GetTrigClassPtCutLevel ( const TString trigClassName ) const;
46 void SetTrigInputsMap ( const TString trigInputsMap );
47 /// Get trigger classes found in run
48 TList* GetAllSelectedTrigClasses () const { return fAllSelectedTrigClasses; }
49 const TObjArray* GetSelectedTrigClassesInEvent ( const AliVEvent* event );
53 void SetCentralityClasses(Int_t nCentralityBins = -1, Double_t* centralityBins = 0x0);
54 /// Get centrality classes
55 TAxis* GetCentralityClasses() const { return fCentralityClasses; }
57 void SetCentralityEstimator ( const TString centralityEstimator = "V0M" );
58 TString GetCentralityEstimator () const;
59 Double_t GetCentrality ( const AliVEvent* event ) const;
62 /// Set Physics selection mask
63 void SetPhysicsSelectionMask ( const UInt_t physicsSelectionMask ) { fPhysicsSelectionMask = physicsSelectionMask; }
66 /// Set minimum number of vertex contributors
67 void SetVertexMinNContributors ( const Int_t vertexMinNContributors ) { fVertexMinNContributors = vertexMinNContributors; }
68 /// Get minimum number of vertex contributors
69 Int_t GetVertexMinNContributors () const { return fVertexMinNContributors; }
71 void SetVertexVzLimits ( Double_t vzMin = -999., Double_t vzMax = 999. ) { fVertexVzMin = vzMin; fVertexVzMax = vzMax; }
73 Double_t GetVertexVzMin () const { return fVertexVzMin; }
75 Double_t GetVertexVzMax () const { return fVertexVzMax; }
77 void Print ( Option_t* option = "" ) const;
81 void BuildTriggerClasses ( const TString firedTrigClasses, UInt_t l0Inputs, UInt_t l1Inputs, UInt_t l2Inputs );
82 Bool_t CheckTriggerClassPattern ( const TString& toCheck ) const;
83 Bool_t CheckTriggerClassCombination ( const TObjArray* combo, const TString& firedTriggerClasses, UInt_t l0Inputs, UInt_t l1Inputs, UInt_t l2Inputs ) const;
84 void AddToEventSelectedClass ( const TString& toCheck, const TObjString* foundTrig, const UInt_t comboType = 0 );
85 Bool_t UpdateEvent( const AliVEvent* event );
86 void SetDefaultTrigClassPatterns();
87 void SetDefaultTrigInputsMap();
89 UInt_t fPhysicsSelectionMask; ///< Physics selection mask
91 Int_t fVertexMinNContributors; ///< Minimum number of SPD vertex contributors
92 Double_t fVertexVzMin; ///< SPD vertex Vz min
93 Double_t fVertexVzMax; ///< SPD vertex Vz max
95 TString fDefaultTrigClassPatterns; ///< Default trigger class patterns
96 TObjArray* fSelectedTrigPattern; ///< List of triggers to be kept
97 TObjArray* fRejectedTrigPattern; ///< List of triggers to be rejected
98 TObjArray* fSelectedTrigLevel; ///< Track-trigger pt cut for selected trigger class
99 TObjArray* fSelectedTrigCombination; ///< Selected trigger combinations
100 TList* fTrigInputsMap; ///< Trigger inputs map
101 TList* fAllSelectedTrigClasses; ///< List of all selected trigger classes found
102 TAxis* fCentralityClasses; ///< Centrality classes
105 ULong64_t fEventTriggerMask; //!< Fired trigger mask in the event
106 TObjArray* fSelectedTrigClassesInEvent; //!< list of selected trigger classes in current event
107 enum {kComboSimple, kComboFormula, kComboAND, kComboOR}; //!< Trigger combination types
109 ClassDef(AliMuonEventCuts, 4); // Class for muon event filters