]>
Commit | Line | Data |
---|---|---|
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 |