class AliVVertex;
class TList;
class TAxis;
-class AliTimeStamp;
class TArrayI;
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 ( const TString trigPattern );
/// 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 );
/// 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
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;
void BuildTriggerClasses ( const 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();
Double_t fVertexVzMin; ///< SPD vertex Vz min
Double_t fVertexVzMax; ///< SPD vertex Vz max
+ UInt_t fCheckMask; ///< Mask telling which cuts to check (by default check filter mask)
+
TString fDefaultTrigClassPatterns; ///< Default trigger class patterns
TObjArray* fSelectedTrigPattern; ///< List of triggers to be kept
TObjArray* fRejectedTrigPattern; ///< List of triggers to be rejected
TList* fTrigInputsMap; ///< Trigger inputs map
TList* fAllSelectedTrigClasses; ///< List of all selected trigger classes found
TAxis* fCentralityClasses; ///< Centrality classes
+ AliAnalysisUtils* fAnalysisUtils; ///< Analysis utility
private:
- AliTimeStamp* fTimeStamp; //!< current event time stamp
- TObjArray* fSelectedTrigClassesInEvent; //!< list of selected trigger classes in current event
+ ULong64_t fEventTriggerMask; //!< Fired trigger mask in the event
+ TObjArray* fSelectedTrigClassesInEvent; //!< list of selected trigger classes in current event
+ enum {kComboSimple, kComboFormula, kComboAND, kComboOR}; //!< Trigger combination types
- ClassDef(AliMuonEventCuts, 3); // Class for muon event filters
+ ClassDef(AliMuonEventCuts, 5); // Class for muon event filters
};
#endif