]>
Commit | Line | Data |
---|---|---|
b2a297fa | 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 | //##################################################### | |
7 | //# # | |
8 | //# Dielectron even filter task # | |
9 | //# # | |
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 | Filter Event based on cuts provided in the AliDielectron class. | |
19 | ||
20 | Write an AOD file containing events with Dielectron candidates. | |
21 | Add a sattelite AOD with the array of candidates. | |
22 | */ | |
23 | ||
24 | ||
25 | ||
26 | #include "AliAnalysisTaskSE.h" | |
27 | ||
48609e3d | 28 | #include "AliDielectronPID.h" |
29 | ||
b2a297fa | 30 | class AliDielectron; |
61d106d3 | 31 | class TH1D; |
6e3ee68a | 32 | class AliTriggerAnalysis; |
41a64bfb | 33 | class AliAODCaloCluster; |
b2a297fa | 34 | |
35 | class AliAnalysisTaskDielectronFilter : public AliAnalysisTaskSE { | |
36 | ||
37 | public: | |
38 | AliAnalysisTaskDielectronFilter(); | |
39 | AliAnalysisTaskDielectronFilter(const char *name); | |
40 | virtual ~AliAnalysisTaskDielectronFilter(){} | |
41 | ||
6e3ee68a | 42 | enum ETriggerLogig {kAny, kExact}; |
43 | ||
b2a297fa | 44 | virtual void UserExec(Option_t *option); |
45 | virtual void Init(); | |
61d106d3 | 46 | virtual void UserCreateOutputObjects(); |
b2a297fa | 47 | virtual void LocalInit() {Init();} |
48609e3d | 48 | //temporary |
49 | virtual void NotifyRun(){AliDielectronPID::SetCorrVal((Double_t)fCurrentRunNumber);} | |
50 | ||
8df8e382 | 51 | void UsePhysicsSelection(Bool_t phy=kTRUE) {fSelectPhysics=phy;} |
61d106d3 | 52 | void SetTriggerMask(UInt_t mask) {fTriggerMask=mask;} |
53 | UInt_t GetTriggerMask() const { return fTriggerMask; } | |
6e3ee68a | 54 | void SetExcludeTriggerMask(ULong64_t mask) {fExcludeTriggerMask=mask;} |
55 | UInt_t GetExcludeTriggerMask() const { return fExcludeTriggerMask; } | |
56 | void SetTriggerLogic(ETriggerLogig log) {fTriggerLogic=log;} | |
57 | ETriggerLogig GetTriggerLogic() const {return fTriggerLogic;} | |
b2a297fa | 58 | |
6e3ee68a | 59 | |
b2a297fa | 60 | void SetDielectron(AliDielectron * const die) { fDielectron = die; } |
fb7d2d99 | 61 | |
62 | void SetStoreLikeSignCandidates(Bool_t storeLS) { fStoreLikeSign = storeLS; } | |
5720c765 | 63 | void SetStoreRotatedPairs(Bool_t storeTR) { fStoreRotatedPairs = storeTR; } |
4533e78e | 64 | void SetStoreEventsWithSingleTracks(Bool_t storeSingleTrk) { fStoreEventsWithSingleTracks = storeSingleTrk; } |
65 | void SetCreateNanoAODs(Bool_t storeTrackRef) { fCreateNanoAOD = storeTrackRef; } | |
66 | void SetStoreHeader(Bool_t storeHeader) { fStoreHeader = storeHeader; } | |
5720c765 | 67 | |
68 | void SetEventFilter(AliAnalysisCuts * const filter) {fEventFilter=filter;} | |
69 | ||
b2a297fa | 70 | private: |
6e3ee68a | 71 | enum {kAllEvents=0, kSelectedEvents, kV0andEvents, kFilteredEvents, kPileupEvents, kNbinsEvent}; |
72 | ||
b2a297fa | 73 | AliDielectron *fDielectron; // J/psi framework object |
74 | ||
8df8e382 | 75 | Bool_t fSelectPhysics; // Whether to use physics selection |
61d106d3 | 76 | UInt_t fTriggerMask; // Event trigger mask |
6e3ee68a | 77 | UInt_t fExcludeTriggerMask; // Triggers to exclude from the analysis |
78 | Bool_t fTriggerOnV0AND; // if to trigger on V0and | |
79 | Bool_t fRejectPileup; // pileup rejection wanted | |
61d106d3 | 80 | |
81 | TH1D *fEventStat; //! Histogram with event statistics | |
6e3ee68a | 82 | |
83 | ETriggerLogig fTriggerLogic; // trigger logic: any or all bits need to be matching | |
84 | ||
85 | AliTriggerAnalysis *fTriggerAnalysis; //! trigger analysis class | |
5720c765 | 86 | |
fb7d2d99 | 87 | Bool_t fStoreLikeSign; // flag to store like-sign candidates |
5720c765 | 88 | Bool_t fStoreRotatedPairs; // flag to store rotation |
4533e78e | 89 | Bool_t fStoreEventsWithSingleTracks; // flag to store events with a least one reconstructed track |
90 | Bool_t fCreateNanoAOD; // flag to create nanoAODs | |
91 | Bool_t fStoreHeader; // flag to store header for all events | |
5720c765 | 92 | |
93 | AliAnalysisCuts *fEventFilter; // event filter | |
8df8e382 | 94 | |
b2a297fa | 95 | AliAnalysisTaskDielectronFilter(const AliAnalysisTaskDielectronFilter &c); |
96 | AliAnalysisTaskDielectronFilter& operator= (const AliAnalysisTaskDielectronFilter &c); | |
97 | ||
98 | ClassDef(AliAnalysisTaskDielectronFilter, 1); | |
99 | }; | |
100 | #endif |