]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG/muon/AliMuonEventCuts.h
Add pileup rejection in AliMuonEventCuts (Diego)
[u/mrichter/AliRoot.git] / PWG / muon / AliMuonEventCuts.h
index c4c2b4e8a3daee131ee792d4a280136460268d7e..620777301d6097d69b13e91f35756a36bdad888e 100644 (file)
@@ -7,11 +7,11 @@ class AliVEvent;
 class AliVVertex;
 class TList;
 class TAxis;
-class AliTimeStamp;
 class TArrayI;
 class TString;
 class TObjString;
 class TObjArray;
+class AliAnalysisUtils;
 
 class AliMuonEventCuts : public AliAnalysisCuts
 {
@@ -21,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();
@@ -38,19 +39,24 @@ 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 ( 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
@@ -75,6 +81,9 @@ 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;
 
@@ -83,7 +92,7 @@ class AliMuonEventCuts : public AliAnalysisCuts
   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();
@@ -94,6 +103,8 @@ class AliMuonEventCuts : public AliAnalysisCuts
   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
@@ -102,12 +113,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:
-  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