class TString;
class TObjString;
class TObjArray;
+class AliAnalysisUtils;
class AliMuonEventCuts : public AliAnalysisCuts
{
kPhysicsSelected = BIT(0),
kSelectedCentrality = BIT(1),
kSelectedTrig = BIT(2),
- kGoodVertex = BIT(3)
+ kGoodVertex = BIT(3),
+ kNoPileup = BIT(4)
};
AliMuonEventCuts();
void SetDefaultFilterMask();
void SetDefaultParameters();
+ /// Skip tests which are not active in the filter mask
+ void SkipTestsNonInFilterMask ( UInt_t skipMask = 0xFFFF) { fCheckMask = ~skipMask; }
+
// Handle trigger
- void SetTrigClassPatterns ( const TString pattern );
+ void SetTrigClassPatterns ( TString trigPattern, TString trigInputsMap = "" );
/// Get default trigger class patterns
- TString GetDefaultTrigClassPatterns() { return fDefaultTrigClassPatterns; };
- void SetTrigClassLevels ( const TString pattern = "MSL:Lpt,MUSL:Lpt,MSH:Hpt,MUSH:Hpt,MUL:LptLpt,MUU:LptLpt,MLL:LptLpt" );
- TArrayI GetTrigClassPtCutLevel ( const TString trigClassName ) const;
- void SetTrigClassCombination ( const TString trigClassCombination, Bool_t disableTrigPattern = kTRUE );
- void SetTrigInputsMap ( const TString trigInputsMap );
+ TString GetDefaultTrigClassPatterns() const;
+ TString GetDefaultTrigInputsMap() const;
+ void SetTrigClassLevels (TString pattern = "MSL:Lpt,MUSL:Lpt,MSH:Hpt,MUSH:Hpt,MUL:LptLpt,MUU:LptLpt,MLL:LptLpt" );
+ TArrayI GetTrigClassPtCutLevel (TString trigClassName ) const;
/// Get trigger classes found in run
TList* GetAllSelectedTrigClasses () const { return fAllSelectedTrigClasses; }
- TObjArray* GetSelectedTrigClassesInEvent ( const AliVEvent* event );
+ const TObjArray* GetSelectedTrigClassesInEvent ( const AliVEvent* event );
+ const TObjArray* GetSelectedTrigClassesInEvent(const TString& firedTriggerClasses,
+ UInt_t l0Inputs, UInt_t l1Inputs, UInt_t l2Inputs);
+
+ UInt_t GetTriggerInputBitMaskFromInputName(const char* inputName) const;
-
// Handle centrality
void SetCentralityClasses(Int_t nCentralityBins = -1, Double_t* centralityBins = 0x0);
/// Get centrality classes
TAxis* GetCentralityClasses() const { return fCentralityClasses; }
- void SetCentralityEstimator ( const TString centralityEstimator = "V0M" );
+ void SetCentralityEstimator (TString centralityEstimator = "V0M" );
TString GetCentralityEstimator () const;
Double_t GetCentrality ( const AliVEvent* event ) const;
/// Set Physics selection mask
- void SetPhysicsSelectionMask ( const UInt_t physicsSelectionMask ) { fPhysicsSelectionMask = physicsSelectionMask; }
+ void SetPhysicsSelectionMask (UInt_t physicsSelectionMask ) { fPhysicsSelectionMask = physicsSelectionMask; }
/// Set minimum number of vertex contributors
- void SetVertexMinNContributors ( const Int_t vertexMinNContributors ) { fVertexMinNContributors = vertexMinNContributors; }
+ void SetVertexMinNContributors (Int_t vertexMinNContributors ) { fVertexMinNContributors = vertexMinNContributors; }
/// Get minimum number of vertex contributors
Int_t GetVertexMinNContributors () const { return fVertexMinNContributors; }
/// Set Vz limits
Double_t GetVertexVzMin () const { return fVertexVzMin; }
/// Get Vtx vz max
Double_t GetVertexVzMax () const { return fVertexVzMax; }
+
+ /// Return pointer to analysis utils (to configure cuts)
+ AliAnalysisUtils* GetAnalysisUtils ( ) { return fAnalysisUtils; }
void Print ( Option_t* option = "" ) const;
protected:
- void BuildTriggerClasses ( const TString firedTrigClasses, UInt_t l0Inputs, UInt_t l1Inputs, UInt_t l2Inputs );
+ void BuildTriggerClasses (TString firedTrigClasses, UInt_t l0Inputs, UInt_t l1Inputs, UInt_t l2Inputs );
Bool_t CheckTriggerClassPattern ( const TString& toCheck ) const;
Bool_t CheckTriggerClassCombination ( const TObjArray* combo, const TString& firedTriggerClasses, UInt_t l0Inputs, UInt_t l1Inputs, UInt_t l2Inputs ) const;
- void AddToEventSelectedClass ( const TString& toCheck, const TObjString* foundTrig );
+ void AddToEventSelectedClass ( const TString& toCheck, const TObjString* foundTrig, const UInt_t comboType = 0 );
Bool_t UpdateEvent( const AliVEvent* event );
void SetDefaultTrigClassPatterns();
- void SetDefaultTrigInputsMap();
+ void SetTrigInputsMap ( TString trigInputsMap );
UInt_t fPhysicsSelectionMask; ///< Physics selection mask
Double_t fVertexVzMin; ///< SPD vertex Vz min
Double_t fVertexVzMax; ///< SPD vertex Vz max
- TString fDefaultTrigClassPatterns; ///< Default trigger class patterns
+ UInt_t fCheckMask; ///< Mask telling which cuts to check (by default check filter mask)
+
TObjArray* fSelectedTrigPattern; ///< List of triggers to be kept
TObjArray* fRejectedTrigPattern; ///< List of triggers to be rejected
TObjArray* fSelectedTrigLevel; ///< Track-trigger pt cut for selected trigger class
TList* fTrigInputsMap; ///< Trigger inputs map
TList* fAllSelectedTrigClasses; ///< List of all selected trigger classes found
TAxis* fCentralityClasses; ///< Centrality classes
+ AliAnalysisUtils* fAnalysisUtils; ///< Analysis utility
private:
ULong64_t fEventTriggerMask; //!< Fired trigger mask in the event
- TObjArray* fSelectedTrigClassesInEvent; //!< list of selected trigger classes in current event
+ TObjArray* fSelectedTrigClassesInEvent; //!< list of selected trigger classes in current event
+ enum {kComboSimple, kComboFormula, kComboAND, kComboOR}; //!< Trigger combination types
- ClassDef(AliMuonEventCuts, 4); // Class for muon event filters
+ ClassDef(AliMuonEventCuts, 6); // Class for muon event filters
};
#endif