]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGDQ/dielectron/AliAnalysisTaskMultiDielectron.h
Removing leftover return
[u/mrichter/AliRoot.git] / PWGDQ / dielectron / AliAnalysisTaskMultiDielectron.h
1 #ifndef ALIANALYSISTASKMULTIDIELECTRON_H
2 #define ALIANALYSISTASKMULTIDIELECTRON_H
3 /* Copyright(c) 1998-2009, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 //#####################################################
7 //#                                                   # 
8 //#        Basic Analysis task for Dielectron         #
9 //#          single event analysis                    #
10 //#                                                   #
11 //#  by WooJin J. Park, GSI / W.J.Park@gsi.de         #
12 //#     Ionut C. Arsene, GSI / I.C.Arsene@gsi.de      #
13 //#     Magnus Mager, CERN / Magnus.Mager@cern.ch     #
14 //#     Jens Wiechula, Uni HD / Jens.Wiechula@cern.ch #
15 //#                                                   #
16 //#####################################################
17
18 #include "TList.h"
19
20 #include "AliAnalysisTaskSE.h"
21
22 // #include "AliDielectronPID.h"
23
24 class AliDielectron;
25 class TH1D;
26 class AliAnalysisCuts;
27 class AliTriggerAnalysis;
28
29 class AliAnalysisTaskMultiDielectron : public AliAnalysisTaskSE {
30   
31 public:
32   AliAnalysisTaskMultiDielectron();
33   AliAnalysisTaskMultiDielectron(const char *name);
34   virtual ~AliAnalysisTaskMultiDielectron();
35
36   enum ETriggerLogig {kAny, kExact};
37
38   virtual void UserExec(Option_t *option);
39   virtual void UserCreateOutputObjects();
40   virtual void FinishTaskOutput();
41   //temporary
42 //   virtual void NotifyRun(){AliDielectronPID::SetCorrVal((Double_t)fCurrentRunNumber);}
43   
44   void UsePhysicsSelection(Bool_t phy=kTRUE) {fSelectPhysics=phy;}
45   void SetTriggerMask(ULong64_t mask) {fTriggerMask=mask;}
46   UInt_t GetTriggerMask() const { return fTriggerMask; }
47   void SetExcludeTriggerMask(ULong64_t mask) {fExcludeTriggerMask=mask;}
48   UInt_t GetExcludeTriggerMask() const { return fExcludeTriggerMask; }
49   void SetTriggerLogic(ETriggerLogig log) {fTriggerLogic=log;}
50   ETriggerLogig GetTriggerLogic() const {return fTriggerLogic;}
51   void SetFiredTriggerName(const char* select, Bool_t exclude=kFALSE) {fFiredTrigger=select; fFiredExclude=exclude;}
52
53   void SetEventFilter(AliAnalysisCuts * const filter) {fEventFilter=filter;}
54   void SetTriggerOnV0AND(Bool_t v0and=kTRUE)    { fTriggerOnV0AND=v0and;    }
55   void SetRejectPileup(Bool_t pileup=kTRUE)     { fRejectPileup=pileup;     }
56   void AddDielectron(AliDielectron * const die) { fListDielectron.Add(die); }
57   void SetBeamEnergy(Double_t beamEbyHand=-1.)  { fBeamEnergy=beamEbyHand;  }
58   
59 protected:
60   enum {kAllEvents=0, kSelectedEvents, kV0andEvents, kFilteredEvents, kPileupEvents, kNbinsEvent};
61   TObjArray *fPairArray;             //! output array
62   TList fListDielectron;             // List of dielectron framework instances
63   TList fListHistos;                 //! List of histogram manager lists in the framework classes
64   TList fListCF;                     //! List with CF Managers
65
66   Bool_t fSelectPhysics;             // Whether to use physics selection
67   UInt_t fTriggerMask;               // Event trigger mask
68   UInt_t fExcludeTriggerMask;        // Triggers to exclude from the analysis
69   Bool_t fTriggerOnV0AND;            // if to trigger on V0and
70   TString fFiredTrigger;             // online trigger class name
71   Bool_t fFiredExclude;              // cut logic: select(default) or exclude
72   Bool_t fRejectPileup;              // pileup rejection wanted
73   Double_t fBeamEnergy;              // beam energy in GeV (set by hand)
74
75   ETriggerLogig fTriggerLogic;       // trigger logic: any or all bits need to be matching
76   
77   AliTriggerAnalysis *fTriggerAnalysis; //! trigger analysis class
78
79   AliAnalysisCuts *fEventFilter;     // event filter
80   
81   TH1D *fEventStat;                  //! Histogram with event statistics
82   
83   AliAnalysisTaskMultiDielectron(const AliAnalysisTaskMultiDielectron &c);
84   AliAnalysisTaskMultiDielectron& operator= (const AliAnalysisTaskMultiDielectron &c);
85   
86   ClassDef(AliAnalysisTaskMultiDielectron, 4); //Analysis Task handling multiple instances of AliDielectron
87 };
88 #endif