1 #ifndef ALIMUONEVENTCUTS_H
2 #define ALIMUONEVENTCUTS_H
4 #include "AliAnalysisCuts.h"
14 class AliMuonEventCuts : public AliAnalysisCuts
19 kPhysicsSelected = BIT(0),
20 kSelectedCentrality = BIT(1),
21 kSelectedTrig = BIT(2),
26 AliMuonEventCuts(const char* name, const char* title);
27 AliMuonEventCuts(const AliMuonEventCuts& obj);
28 AliMuonEventCuts& operator=(const AliMuonEventCuts& obj);
30 virtual ~AliMuonEventCuts();
32 virtual UInt_t GetSelectionMask ( const TObject* obj );
33 virtual Bool_t IsSelected ( TObject* obj );
34 virtual Bool_t IsSelected ( TList* /*list */ );
36 void SetDefaultFilterMask();
37 void SetDefaultParameters();
40 kVertexMinNContributors,
47 void SetTrigClassPatterns ( const TString pattern );
48 /// Get default trigger class patterns
49 TString GetDefaultTrigClassPatterns() { return fDefaultTrigClassPatterns; };
50 void SetTrigClassLevels ( const TString pattern = "MSL:Lpt MSH:Hpt MUL:LptLpt MLL:LptLpt" );
51 TArrayI GetTrigClassPtCutLevel ( const TString trigClassName ) const;
52 /// Get trigger classes found in run
53 TList* GetAllSelectedTrigClasses () const { return fAllSelectedTrigClasses; }
54 TObjArray* GetSelectedTrigClassesInEvent ( const AliVEvent* event );
58 void SetCentralityClasses(Int_t nCentralityBins = -1, Double_t* centralityBins = 0x0);
59 /// Get centrality classes
60 TAxis* GetCentralityClasses() const { return fCentralityClasses; }
62 void SetCentralityEstimator ( const TString centralityEstimator = "V0M" );
63 TString GetCentralityEstimator () const;
64 Double_t GetCentrality ( const AliVEvent* event ) const;
67 /// Set Physics selection mask
68 void SetPhysicsSelectionMask ( const UInt_t physicsSelectionMask ) { fPhysicsSelectionMask = physicsSelectionMask; }
71 /// Set minimum number of vertex contributors
72 void SetVertexMinNContributors ( const Int_t vertexMinNContributors ) { SetParameter(kVertexMinNContributors, (Double_t)vertexMinNContributors); }
73 /// Get minimum number of vertex contributors
74 Int_t GetVertexMinNContributors () const { return (Int_t)fParameters[kVertexMinNContributors]; }
76 void SetVertexVzLimits ( Double_t vzMin = -999., Double_t vzMax = 999. ) { SetParameter(kVertexVzMin, vzMin); SetParameter(kVertexVzMax, vzMax); }
78 Double_t GetVertexVzMin () const { return fParameters[kVertexVzMin]; }
80 Double_t GetVertexVzMax () const { return fParameters[kVertexVzMax]; }
82 //Bool_t SetRun(Int_t runNumber);
83 //void SetUseCustomParam( Bool_t useCustomParam = kTRUE, Int_t runNumber = -1 );
84 //void SetIsMC(Bool_t isMC = kTRUE) { fIsMC = isMC; }
86 void Print ( Option_t* option = "" ) const;
88 //Bool_t StreamParameters ( Int_t runNumber, Int_t maxRun );
92 Bool_t SetParameter ( Int_t iparam, Float_t value );
93 void BuildTriggerClasses ( const TString firedTrigClasses );
94 Bool_t UpdateEvent( const AliVEvent* event );
95 void SetDefaultTrigClassPatterns();
97 //Bool_t RunMatchesRange ( Int_t runNumber, const Char_t* objName ) const;
99 //Bool_t fIsMC; ///< Monte Carlo analysis
100 //Bool_t fUseCustomParam; ///< Use custom parameters (do not search in OADB)
102 UInt_t fPhysicsSelectionMask; ///< Physics selection mask
104 TArrayD fParameters; ///< List of parameters
106 TString fDefaultTrigClassPatterns; ///< Default trigger class patterns
107 TObjArray* fSelectedTrigPattern; ///< List of triggers to be kept
108 TObjArray* fRejectedTrigPattern; ///< List of triggers to be rejected
109 TObjArray* fSelectedTrigLevel; ///< Track-trigger pt cut for selected trigger class
110 TList* fAllSelectedTrigClasses; ///< List of all selected trigger classes found
111 TAxis* fCentralityClasses; ///< Centrality classes
114 AliTimeStamp* fTimeStamp; //!< current event time stamp
115 TObjArray* fSelectedTrigClassesInEvent; //!< list of selected trigger classes in current event
117 ClassDef(AliMuonEventCuts, 1); // Class for muon event filters