major dielectron update (included also the data and plotting macros for paper)
[u/mrichter/AliRoot.git] / PWG3 / dielectron / AliAnalysisTaskDielectronEfficiency.h
1 #ifndef ALIANALYSISTASKDIELECTRONEFFICIENCY_H
2 #define ALIANALYSISTASKDIELECTRONEFFICIENCY_H
3 //#####################################################
4 //#                                                   # 
5 //#  Analysis Task for Event Mixing for dielectron    #
6 //#                                                   #
7 //#     J.Wiechula (Jens.Wiechula@cern.ch)            #
8 //#                                                   #
9 //#####################################################
10
11 #include <AliAnalysisTask.h>
12
13 class TDatabasePDG;
14
15 class AliESDtrackCuts;
16 class AliKineTrackCuts;
17 class AliDielectronHistos;
18 class AliVEvent;
19 class AliStack;
20
21 class AliAnalysisTaskDielectronEfficiency : public AliAnalysisTask {
22
23 public:
24   AliAnalysisTaskDielectronEfficiency();
25   AliAnalysisTaskDielectronEfficiency(const char *name);
26   virtual ~AliAnalysisTaskDielectronEfficiency();
27   
28   void SetupDefaultCuts(Int_t type=0);
29   
30         virtual void ConnectInputData(Option_t *);
31         virtual void CreateOutputObjects();
32   virtual void Exec(Option_t *option);
33   virtual void Terminate(Option_t *);
34
35 //   virtual Int_t Merge(TCollection *list);
36   //getters
37   AliESDtrackCuts  *GetESDTrackCuts()   const {return fESDtrackCuts;}
38   AliKineTrackCuts *GetKineCutsLeg()    const {return fKineCutsLegs;}
39   AliKineTrackCuts *GetKineCutsMother() const {return fKineCutsMother;}
40   //
41   Int_t GetIdMother() const {return fIdMCMother;}
42
43   //setters
44   void SetIdMother(Int_t id) {fIdMCMother=id;}
45   void SetIdDaughters(Int_t idPositive, Int_t idNegative) {fIdMCDaughterP=idPositive; fIdMCDaughterN=idNegative;}
46   
47 private:
48
49   AliVEvent           *fInputEvent;     //! Input event
50   AliDielectronHistos *fHist;           //! Histogram container
51   //cut objects
52   AliESDtrackCuts     *fESDtrackCuts;   //  ESD track cuts
53   AliKineTrackCuts    *fKineCutsLegs;   //  MC cuts on Legs
54   AliKineTrackCuts    *fKineCutsMother; //  MC cuts on Mother (Id see below)
55   
56   Int_t                fIdMCMother;   //  MC Id of mother particle of interest (eg. Jpsi=443)
57   Int_t                fIdMCDaughterP; //  MC Id of legs without sign
58   Int_t                fIdMCDaughterN; //  MC Id of legs without sign
59   //
60   TDatabasePDG        *fPDG;           //! PDG database
61
62   void FillPlots(AliVEvent *event);
63   void FillMCInfo(AliStack * const pStack);
64
65   AliAnalysisTaskDielectronEfficiency(const AliAnalysisTaskDielectronEfficiency &c);
66   AliAnalysisTaskDielectronEfficiency& operator= (const AliAnalysisTaskDielectronEfficiency &c);
67   
68         ClassDef(AliAnalysisTaskDielectronEfficiency, 1);
69 };
70 #endif