]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG/muon/AliMuonEventCuts.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWG / muon / AliMuonEventCuts.h
index 13f90920fbf34fb82ccf612ea249cfbe6cf3ba81..1a16694e341ea5f96b8d09ad918cc528100517cf 100644 (file)
@@ -11,6 +11,7 @@ class TArrayI;
 class TString;
 class TObjString;
 class TObjArray;
+class AliAnalysisUtils;
 
 class AliMuonEventCuts : public AliAnalysisCuts
 {
@@ -20,7 +21,8 @@ class AliMuonEventCuts : public AliAnalysisCuts
     kPhysicsSelected = BIT(0),
     kSelectedCentrality = BIT(1),
     kSelectedTrig = BIT(2),
-    kGoodVertex = BIT(3)
+    kGoodVertex = BIT(3),
+    kNoPileup = BIT(4)
   };
   
   AliMuonEventCuts();
@@ -37,35 +39,40 @@ class AliMuonEventCuts : public AliAnalysisCuts
   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
@@ -74,18 +81,21 @@ class AliMuonEventCuts : public AliAnalysisCuts
   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
   
@@ -93,7 +103,8 @@ class AliMuonEventCuts : public AliAnalysisCuts
   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
@@ -101,12 +112,14 @@ class AliMuonEventCuts : public AliAnalysisCuts
   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