1ca1a5c18cc1fce6d05c642a85818860daeb3508
[u/mrichter/AliRoot.git] / PWG / EMCAL / AliEmcalPhysicsSelection.h
1 #ifndef ALIEMCALPHYSICSSELECTION_H
2 #define ALIEMCALPHYSICSSELECTION_H
3
4 // $Id$
5
6 #include "AliPhysicsSelection.h"
7
8 class AliEmcalPhysicsSelection: public AliPhysicsSelection
9 {
10  public:
11   enum EOfflineEmcalTypes { 
12     kEmcalHC = BIT(28), //=true when EMCAL cell above given Et found
13     kEmcalHT = BIT(29), //=true when EMCAL cluster above given Et found
14     kEmcalOk = BIT(31), //=true when EMCAL good event criteria are found
15   };
16
17   AliEmcalPhysicsSelection();
18   virtual ~AliEmcalPhysicsSelection() {;}
19
20   virtual UInt_t GetSelectionMask(const TObject* obj);
21
22   void           SetCellMinE(Double_t e)       { fCellMinE     = e; }
23   void           SetCentRange(Double_t min, Double_t max) { fCentMin = min; fCentMax = max; }
24   void           SetCheckZvertexDiff(Bool_t b) { fZvertexDiff  = b; }
25   void           SetClusMinE(Double_t e)       { fClusMinE     = e; }
26   void           SetMarkFastOnly(Bool_t b)     { fMarkFastOnly = b; }
27   void           SetMarkLedEvent(Bool_t b)     { fMarkLedEvent = b; }
28   void           SetSkipFastOnly(Bool_t b)     { fSkipFastOnly = b; }
29   void           SetSkipLedEvent(Bool_t b)     { fSkipLedEvent = b; }
30   void           SetTrackMinPt(Double_t p)     { fTrackMinPt   = p; }
31   void           SetTriggers(UInt_t t)         { fTriggers     = t; }
32   void           SetZVertex(Double_t z=10)     { fZvertex      = z; }
33   void           SetCellTrackScale(Double_t min, Double_t max) { fMinCellTrackScale = min; fMaxCellTrackScale = max; }
34  
35   Double_t       GetCellMaxE()   const { return fCellMaxE;    }
36   Double_t       GetClusMaxE()   const { return fClusMaxE;    }
37   Double_t       GetTrackMaxPt() const { return fTrackMaxPt;  }
38   Bool_t         IsFastOnly()    const { return fIsFastOnly;  }
39   Bool_t         IsLedEvent()    const { return fIsLedEvent;  }
40   Bool_t         IsGoodEvent()   const { return fIsGoodEvent; }
41
42  protected:
43   Bool_t         fMarkFastOnly;      //=true then mark FastOnly events (only for LHC11a)
44   Bool_t         fMarkLedEvent;      //=true then mark Led events (only for LHC11a)
45   Bool_t         fSkipFastOnly;      //=true then skip FastOnly events (only for LHC11a)
46   Bool_t         fSkipLedEvent;      //=true then skip Led events (only for LHC11a)
47   Double_t       fCellMinE;          //minimum cell energy (<0 -> do not compute)
48   Double_t       fClusMinE;          //minimum clus energy (<0 -> do not compute)
49   Double_t       fTrackMinPt;        //minimum track pt    (<0 -> do not compute)
50   UInt_t         fTriggers;          //if not zero only process given trigges
51   Double_t       fZvertex;           //primary vertex z cut (-1 none)
52   Bool_t         fZvertexDiff;       //=true then select on PRI minus SPD z-vertex 
53   Double_t       fCentMin;           //minimum centrality required (V0M)
54   Double_t       fCentMax;           //maximum centrality required (V0M)
55   Double_t       fMinCellTrackScale; //minimum cells over tracks scale
56   Double_t       fMaxCellTrackScale; //maximum cells over tracks scale
57   Bool_t         fIsFastOnly;        //!=true if FASTONLY event is found
58   Bool_t         fIsLedEvent;        //!=true if LED event is found
59   Bool_t         fIsGoodEvent;       //!=true if good EMCAL event
60   Double_t       fCellMaxE;          //!maximum cell energy in event
61   Double_t       fClusMaxE;          //!maximum clus energy in event
62   Double_t       fTrackMaxPt;        //!maximum track pt in event
63
64   ClassDef(AliEmcalPhysicsSelection, 4); // Emcal physics selection
65 };
66 #endif