ROOT logo
#ifndef ALIANALYSISMUMUCUTCOMBINATION_H
#define ALIANALYSISMUMUCUTCOMBINATION_H

/**
 *
 * \class AliAnalysisMuMuCutCombination
 *
 * \brief Defines a cut by combining several cut elements
 *
 * \author L. Aphecetche (Subatech)
 */

#include "TObject.h"
#include "TString.h"

class AliAnalysisMuMuCutElement;
class AliVEvent;
class AliInputEventHandler;
class AliVParticle;

class AliAnalysisMuMuCutCombination : public TObject
{
public:
  AliAnalysisMuMuCutCombination();
  virtual ~AliAnalysisMuMuCutCombination();
  
  void Add(AliAnalysisMuMuCutElement* ce);

  Bool_t Pass(const AliInputEventHandler& eventHandler) const;
  
  Bool_t Pass(const AliVParticle& particle) const;
  
  Bool_t Pass(const AliVParticle& p1, const AliVParticle& p2) const;
  
  Bool_t Pass(const TString& firedTriggerClasses, TString& acceptedTriggerClasses,
              UInt_t L0, UInt_t L1, UInt_t L2) const;
  
  const char* GetName() const { return fName.Data(); }
  
  Bool_t IsEventCutter() const { return fIsEventCutter; }
  Bool_t IsEventHandlerCutter() const { return fIsEventHandlerCutter; }
  Bool_t IsTrackCutter() const { return fIsTrackCutter; }
  Bool_t IsTrackPairCutter() const { return fIsTrackPairCutter; }
  Bool_t IsTriggerClassCutter() const { return fIsTriggerClassCutter; }

  void Print(Option_t* opt="") const;
  
  Bool_t IsEqual(const TObject* obj) const;
  
private:
  /// not implemented on purpose
  AliAnalysisMuMuCutCombination(const AliAnalysisMuMuCutCombination& rhs);
  /// not implemented on purpose
  AliAnalysisMuMuCutCombination& operator=(const AliAnalysisMuMuCutCombination& rhs);
  
private:
  TObjArray* fCuts; // array of cut elements that form this cut combination
  TString fName; // name of the combination
  Bool_t fIsEventCutter; // whether or not the combination cuts on event
  Bool_t fIsEventHandlerCutter; // whether or not the combination cuts on event handler
  Bool_t fIsTrackCutter; // whether or not the combination cuts on track
  Bool_t fIsTrackPairCutter; // whether or not the combination cuts on track pairs
  Bool_t fIsTriggerClassCutter; // whether or not the combination cuts on trigger class
  
  ClassDef(AliAnalysisMuMuCutCombination,1) // combination of 1 or more individual cuts
};

#endif
 AliAnalysisMuMuCutCombination.h:1
 AliAnalysisMuMuCutCombination.h:2
 AliAnalysisMuMuCutCombination.h:3
 AliAnalysisMuMuCutCombination.h:4
 AliAnalysisMuMuCutCombination.h:5
 AliAnalysisMuMuCutCombination.h:6
 AliAnalysisMuMuCutCombination.h:7
 AliAnalysisMuMuCutCombination.h:8
 AliAnalysisMuMuCutCombination.h:9
 AliAnalysisMuMuCutCombination.h:10
 AliAnalysisMuMuCutCombination.h:11
 AliAnalysisMuMuCutCombination.h:12
 AliAnalysisMuMuCutCombination.h:13
 AliAnalysisMuMuCutCombination.h:14
 AliAnalysisMuMuCutCombination.h:15
 AliAnalysisMuMuCutCombination.h:16
 AliAnalysisMuMuCutCombination.h:17
 AliAnalysisMuMuCutCombination.h:18
 AliAnalysisMuMuCutCombination.h:19
 AliAnalysisMuMuCutCombination.h:20
 AliAnalysisMuMuCutCombination.h:21
 AliAnalysisMuMuCutCombination.h:22
 AliAnalysisMuMuCutCombination.h:23
 AliAnalysisMuMuCutCombination.h:24
 AliAnalysisMuMuCutCombination.h:25
 AliAnalysisMuMuCutCombination.h:26
 AliAnalysisMuMuCutCombination.h:27
 AliAnalysisMuMuCutCombination.h:28
 AliAnalysisMuMuCutCombination.h:29
 AliAnalysisMuMuCutCombination.h:30
 AliAnalysisMuMuCutCombination.h:31
 AliAnalysisMuMuCutCombination.h:32
 AliAnalysisMuMuCutCombination.h:33
 AliAnalysisMuMuCutCombination.h:34
 AliAnalysisMuMuCutCombination.h:35
 AliAnalysisMuMuCutCombination.h:36
 AliAnalysisMuMuCutCombination.h:37
 AliAnalysisMuMuCutCombination.h:38
 AliAnalysisMuMuCutCombination.h:39
 AliAnalysisMuMuCutCombination.h:40
 AliAnalysisMuMuCutCombination.h:41
 AliAnalysisMuMuCutCombination.h:42
 AliAnalysisMuMuCutCombination.h:43
 AliAnalysisMuMuCutCombination.h:44
 AliAnalysisMuMuCutCombination.h:45
 AliAnalysisMuMuCutCombination.h:46
 AliAnalysisMuMuCutCombination.h:47
 AliAnalysisMuMuCutCombination.h:48
 AliAnalysisMuMuCutCombination.h:49
 AliAnalysisMuMuCutCombination.h:50
 AliAnalysisMuMuCutCombination.h:51
 AliAnalysisMuMuCutCombination.h:52
 AliAnalysisMuMuCutCombination.h:53
 AliAnalysisMuMuCutCombination.h:54
 AliAnalysisMuMuCutCombination.h:55
 AliAnalysisMuMuCutCombination.h:56
 AliAnalysisMuMuCutCombination.h:57
 AliAnalysisMuMuCutCombination.h:58
 AliAnalysisMuMuCutCombination.h:59
 AliAnalysisMuMuCutCombination.h:60
 AliAnalysisMuMuCutCombination.h:61
 AliAnalysisMuMuCutCombination.h:62
 AliAnalysisMuMuCutCombination.h:63
 AliAnalysisMuMuCutCombination.h:64
 AliAnalysisMuMuCutCombination.h:65
 AliAnalysisMuMuCutCombination.h:66
 AliAnalysisMuMuCutCombination.h:67
 AliAnalysisMuMuCutCombination.h:68