e2c50a23e13e63c1dcfbf3cc214cf759da0b114f
[u/mrichter/AliRoot.git] / PWG3 / dielectron / AliAnalysisTaskDielectronFilter.h
1 #ifndef ALIANALYSISTASKDIELECTRONFILTER_H
2 #define ALIANALYSISTASKDIELECTRONFILTER_H
3 /* Copyright(c) 1998-2009, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id$ */ 
7
8 //#####################################################
9 //#                                                   # 
10 //#        Dielectron even filter task                #
11 //#                                                   #
12 //#                                                   #
13 //#  by WooJin J. Park, GSI / W.J.Park@gsi.de         #
14 //#     Ionut C. Arsene, GSI / I.C.Arsene@gsi.de      #
15 //#     Magnus Mager, CERN / Magnus.Mager@cern.ch     #
16 //#     Jens Wiechula, Uni HD / Jens.Wiechula@cern.ch #
17 //#                                                   #
18 //#####################################################
19 /*
20 Filter Event based on cuts provided in the AliDielectron class.
21
22 Write an AOD file containing events with Dielectron candidates.
23 Add a sattelite AOD with the array of candidates.
24 */
25
26
27
28 #include "AliAnalysisTaskSE.h"
29
30 #include "AliDielectronPID.h"
31
32 class AliDielectron;
33 class TH1D;
34
35 class AliAnalysisTaskDielectronFilter : public AliAnalysisTaskSE {
36   
37 public:
38   AliAnalysisTaskDielectronFilter();
39   AliAnalysisTaskDielectronFilter(const char *name);
40   virtual ~AliAnalysisTaskDielectronFilter(){}
41
42   virtual void UserExec(Option_t *option);
43   virtual void Init();
44   virtual void UserCreateOutputObjects();
45   virtual void LocalInit() {Init();}
46   //temporary
47   virtual void NotifyRun(){AliDielectronPID::SetCorrVal((Double_t)fCurrentRunNumber);}
48   
49   void UsePhysicsSelection(Bool_t phy=kTRUE) {fSelectPhysics=phy;}
50   void SetTriggerMask(UInt_t mask) {fTriggerMask=mask;}
51   UInt_t GetTriggerMask() const { return fTriggerMask; }
52   
53   void SetDielectron(AliDielectron * const die) { fDielectron = die; }
54
55   void SetStoreLikeSignCandidates(Bool_t storeLS) { fStoreLikeSign = storeLS; }
56 private:
57   
58   AliDielectron *fDielectron;             // J/psi framework object
59
60   Bool_t fSelectPhysics;                  // Whether to use physics selection
61   UInt_t fTriggerMask;               // Event trigger mask
62
63   TH1D *fEventStat;                  //! Histogram with event statistics
64   Bool_t fStoreLikeSign;        // flag to store like-sign candidates
65   
66   AliAnalysisTaskDielectronFilter(const AliAnalysisTaskDielectronFilter &c);
67   AliAnalysisTaskDielectronFilter& operator= (const AliAnalysisTaskDielectronFilter &c);
68   
69   ClassDef(AliAnalysisTaskDielectronFilter, 1);
70 };
71 #endif