ROOT logo
#ifndef ALIEMCALPHYSICSSELECTION_H
#define ALIEMCALPHYSICSSELECTION_H

#include "AliPhysicsSelection.h"

class AliEmcalPhysicsSelection: public AliPhysicsSelection
{
 public:
  enum EOfflineEmcalTypes { 
    kEmcalHC = BIT(28), //=true when EMCAL cell above given Et found
    kEmcalHT = BIT(29), //=true when EMCAL cluster above given Et found
    kEmcalOk = BIT(31), //=true when EMCAL good event criteria are found
  };

  AliEmcalPhysicsSelection();
  virtual ~AliEmcalPhysicsSelection() {;}

  virtual UInt_t GetSelectionMask(const TObject* obj);

  void           SetCellMinE(Double_t e)       { fCellMinE     = e; }
  void           SetCentRange(Double_t min, Double_t max) { fCentMin = min; fCentMax = max; }
  void           SetCheckZvertexDiff(Bool_t b) { fZvertexDiff  = b; }
  void           SetClusMinE(Double_t e)       { fClusMinE     = e; }
  void           SetMarkFastOnly(Bool_t b)     { fMarkFastOnly = b; }
  void           SetMarkLedEvent(Bool_t b)     { fMarkLedEvent = b; }
  void           SetSkipFastOnly(Bool_t b)     { fSkipFastOnly = b; }
  void           SetSkipLedEvent(Bool_t b)     { fSkipLedEvent = b; }
  void           SetSkip1024Bug(Bool_t b)      { fSkip1024Bug  = b; }
  void           SetTrackMinPt(Double_t p)     { fTrackMinPt   = p; }
  void           SetTriggers(UInt_t t)         { fTriggers     = t; }
  void           SetZVertex(Double_t z=10)     { fZvertex      = z; }
  void           SetCellTrackScale(Double_t min, Double_t max) { fMinCellTrackScale = min; fMaxCellTrackScale = max; }
 
  Double_t       GetCellMaxE()   const { return fCellMaxE;    }
  Double_t       GetClusMaxE()   const { return fClusMaxE;    }
  Double_t       GetTrackMaxPt() const { return fTrackMaxPt;  }
  Bool_t         IsFastOnly()    const { return fIsFastOnly;  }
  Bool_t         IsLedEvent()    const { return fIsLedEvent;  }
  Bool_t         IsGoodEvent()   const { return fIsGoodEvent; }

 protected:
  Bool_t         fMarkFastOnly;      //=true then mark FastOnly events (only for LHC11a)
  Bool_t         fMarkLedEvent;      //=true then mark Led events (only for LHC11a)
  Bool_t         fSkipFastOnly;      //=true then skip FastOnly events (only for LHC11a)
  Bool_t         fSkipLedEvent;      //=true then skip Led events (only for LHC11a)
  Bool_t         fSkip1024Bug;       //=true then skip 1024 EMC trigger bug (only for LHC11h)
  Double_t       fCellMinE;          //minimum cell energy (<0 -> do not compute)
  Double_t       fClusMinE;          //minimum clus energy (<0 -> do not compute)
  Double_t       fTrackMinPt;        //minimum track pt    (<0 -> do not compute)
  UInt_t         fTriggers;          //if not zero only process given trigges
  Double_t       fZvertex;           //primary vertex z cut (-1 none)
  Bool_t         fZvertexDiff;       //=true then select on PRI minus SPD z-vertex 
  Double_t       fCentMin;           //minimum centrality required (V0M)
  Double_t       fCentMax;           //maximum centrality required (V0M)
  Double_t       fMinCellTrackScale; //minimum cells over tracks scale
  Double_t       fMaxCellTrackScale; //maximum cells over tracks scale
  Bool_t         fIsFastOnly;        //!=true if FASTONLY event is found
  Bool_t         fIsLedEvent;        //!=true if LED event is found
  Bool_t         fIsGoodEvent;       //!=true if good EMCAL event
  Double_t       fCellMaxE;          //!maximum cell energy in event
  Double_t       fClusMaxE;          //!maximum clus energy in event
  Double_t       fTrackMaxPt;        //!maximum track pt in event

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