]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGDQ/dielectron/AliAnalysisTaskDielectronFilter.h
including switch to set on/off iso-track core removal, cleaning and bug fix
[u/mrichter/AliRoot.git] / PWGDQ / dielectron / AliAnalysisTaskDielectronFilter.h
CommitLineData
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/*
18Filter Event based on cuts provided in the AliDielectron class.
19
20Write an AOD file containing events with Dielectron candidates.
21Add a sattelite AOD with the array of candidates.
22*/
23
24
25
26#include "AliAnalysisTaskSE.h"
27
48609e3d 28#include "AliDielectronPID.h"
29
b2a297fa 30class AliDielectron;
61d106d3 31class TH1D;
6e3ee68a 32class AliTriggerAnalysis;
41a64bfb 33class AliAODCaloCluster;
b2a297fa 34
35class AliAnalysisTaskDielectronFilter : public AliAnalysisTaskSE {
36
37public:
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 70private:
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