]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGDQ/dielectron/AliAnalysisTaskMultiDielectron.h
-add TSpline for on-the-efficiencies
[u/mrichter/AliRoot.git] / PWGDQ / dielectron / AliAnalysisTaskMultiDielectron.h
CommitLineData
b2a297fa 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
ffbede40 22// #include "AliDielectronPID.h"
48609e3d 23
b2a297fa 24class AliDielectron;
61d106d3 25class TH1D;
2a14a7b1 26class AliAnalysisCuts;
27class AliTriggerAnalysis;
b2a297fa 28
29class AliAnalysisTaskMultiDielectron : public AliAnalysisTaskSE {
30
31public:
32 AliAnalysisTaskMultiDielectron();
33 AliAnalysisTaskMultiDielectron(const char *name);
5720c765 34 virtual ~AliAnalysisTaskMultiDielectron();
35
36 enum ETriggerLogig {kAny, kExact};
b2a297fa 37
572b0139 38 virtual void UserExec(Option_t *option);
39 virtual void UserCreateOutputObjects();
40 virtual void FinishTaskOutput();
48609e3d 41 //temporary
2a14a7b1 42// virtual void NotifyRun(){AliDielectronPID::SetCorrVal((Double_t)fCurrentRunNumber);}
b2a297fa 43
572b0139 44 void UsePhysicsSelection(Bool_t phy=kTRUE) {fSelectPhysics=phy;}
5720c765 45 void SetTriggerMask(ULong64_t mask) {fTriggerMask=mask;}
61d106d3 46 UInt_t GetTriggerMask() const { return fTriggerMask; }
5720c765 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;}
6675aa47 51 void SetFiredTriggerName(const char* select, Bool_t exclude=kFALSE) {fFiredTrigger=select; fFiredExclude=exclude;}
2a14a7b1 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; }
b2a297fa 56 void AddDielectron(AliDielectron * const die) { fListDielectron.Add(die); }
1750c463 57 void SetBeamEnergy(Double_t beamEbyHand=-1.) { fBeamEnergy=beamEbyHand; }
b2a297fa 58
c8f0f810 59protected:
2a14a7b1 60 enum {kAllEvents=0, kSelectedEvents, kV0andEvents, kFilteredEvents, kPileupEvents, kNbinsEvent};
42c76bea 61 TObjArray *fPairArray; //! output array
b2a297fa 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
572b0139 65
66 Bool_t fSelectPhysics; // Whether to use physics selection
61d106d3 67 UInt_t fTriggerMask; // Event trigger mask
5720c765 68 UInt_t fExcludeTriggerMask; // Triggers to exclude from the analysis
2a14a7b1 69 Bool_t fTriggerOnV0AND; // if to trigger on V0and
6675aa47 70 TString fFiredTrigger; // online trigger class name
71 Bool_t fFiredExclude; // cut logic: select(default) or exclude
2a14a7b1 72 Bool_t fRejectPileup; // pileup rejection wanted
1750c463 73 Double_t fBeamEnergy; // beam energy in GeV (set by hand)
5720c765 74
75 ETriggerLogig fTriggerLogic; // trigger logic: any or all bits need to be matching
2a14a7b1 76
77 AliTriggerAnalysis *fTriggerAnalysis; //! trigger analysis class
61d106d3 78
2a14a7b1 79 AliAnalysisCuts *fEventFilter; // event filter
80
61d106d3 81 TH1D *fEventStat; //! Histogram with event statistics
b2a297fa 82
83 AliAnalysisTaskMultiDielectron(const AliAnalysisTaskMultiDielectron &c);
84 AliAnalysisTaskMultiDielectron& operator= (const AliAnalysisTaskMultiDielectron &c);
85
42c76bea 86 ClassDef(AliAnalysisTaskMultiDielectron, 4); //Analysis Task handling multiple instances of AliDielectron
b2a297fa 87};
88#endif