]> git.uio.no Git - u/mrichter/AliRoot.git/blame - ANALYSIS/AliAnalysisTaskESDfilter.h
Added the ZED trigger for pA collisions, defined explicitly ranges for the latest...
[u/mrichter/AliRoot.git] / ANALYSIS / AliAnalysisTaskESDfilter.h
CommitLineData
c7ef1c47 1#ifndef ALIANALYSISTASKESDFILTER_H
2#define ALIANALYSISTASKESDFILTER_H
3
4/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
6
7/* $Id$ */
8
9#include <TList.h>
10#include <TF1.h>
11#include "AliAnalysisTaskSE.h"
12#include "AliESDtrack.h"
13#include "AliAODTrack.h"
14#include "AliAODPid.h"
15#include "AliESDpid.h"
16
17class AliAnalysisFilter;
18class AliStack;
19class AliESDtrack;
20class AliMCEventHandler;
21class TRefArray;
22class AliAODHeader;
2f5ee3b7 23class AliESDtrackCuts;
c7ef1c47 24
25class AliAnalysisTaskESDfilter : public AliAnalysisTaskSE
26{
27 public:
28 AliAnalysisTaskESDfilter();
29 AliAnalysisTaskESDfilter(const char* name);
75a996ab 30 virtual ~AliAnalysisTaskESDfilter();
c7ef1c47 31 // Implementation of interface methods
32 virtual void UserCreateOutputObjects();
33 virtual void Init();
34 virtual void LocalInit() {Init();}
35 virtual void UserExec(Option_t *option);
36 virtual void Terminate(Option_t *option);
37
38 virtual void ConvertESDtoAOD();
39 // Setters
40 virtual void SetTrackFilter (AliAnalysisFilter* trackF) {fTrackFilter = trackF;}
67abcce9 41 virtual void SetTPCOnlyFilterMask (UInt_t filterMask) {SetTPCConstrainedFilterMask(filterMask);}
42
43 virtual void SetTPCConstrainedFilterMask (UInt_t filterMask) {fTPCConstrainedFilterMask = filterMask;}
44 virtual void SetHybridFilterMaskTPCConstrainedGlobal(UInt_t filterMask) {fHybridFilterMaskTPCCG = filterMask;}
45 virtual void SetWriteHybridTPCConstrainedOnly(bool b){fWriteHybridTPCCOnly = b;}
46
47 virtual void SetGlobalConstrainedFilterMask (UInt_t filterMask) {fGlobalConstrainedFilterMask = filterMask;}
48 virtual void SetHybridFilterMaskGlobalConstrainedGlobal(UInt_t filterMask) {fHybridFilterMaskGCG = filterMask;}
49 virtual void SetWriteHybridGlobalConstrainedOnly(bool b){fWriteHybridGCOnly = b;}
50
51
c7ef1c47 52 virtual void SetKinkFilter (AliAnalysisFilter* KinkF) {fKinkFilter = KinkF;}
53 virtual void SetV0Filter (AliAnalysisFilter* V0F) {fV0Filter = V0F;}
54 virtual void SetCascadeFilter (AliAnalysisFilter* CascadeF) {fCascadeFilter = CascadeF;}
55 virtual void SetPthreshold (Double_t p) {fHighPthreshold = p;}
56 virtual void SetPshape (TF1 *func) {fPtshape = func;}
57 virtual void SetEnableFillAOD (Bool_t b) {fEnableFillAOD = b;}
58
1a3579a6 59 virtual void SetAODPID(AliESDtrack *esdtrack, AliAODTrack *aodtrack, AliAODPid *detpid);
60 void SetDetectorRawSignals(AliAODPid *aodpid, AliESDtrack *track);
c7ef1c47 61
62 void PrintTask(Option_t *option="all", Int_t indent=0) const;
63
64 void DisableVZERO() { fIsVZEROEnabled = kFALSE; }
8c87d22c 65 void DisableZDC() { fIsZDCEnabled = kFALSE; }
c7ef1c47 66 void DisableCascades() { fAreCascadesEnabled = kFALSE; }
67 void DisableV0s() { fAreV0sEnabled = kFALSE; }
68 void DisableKinks() { fAreKinksEnabled = kFALSE; }
69 void DisableTracks() { fAreTracksEnabled = kFALSE; }
70 void DisablePmdClusters() { fArePmdClustersEnabled = kFALSE; }
71 void DisableCaloClusters() { fAreCaloClustersEnabled = kFALSE; }
72 void DisableCells() { fAreEMCALCellsEnabled = fArePHOSCellsEnabled = kFALSE; }
73 void DisableTracklets() { fAreTrackletsEnabled = kFALSE; }
74
75 virtual void SetTimeZeroType(AliESDpid::EStartTimeType_t tofTimeZeroType) {fTimeZeroType = tofTimeZeroType;}
76
77private:
78 AliAnalysisTaskESDfilter(const AliAnalysisTaskESDfilter&);
79 AliAnalysisTaskESDfilter& operator=(const AliAnalysisTaskESDfilter&);
80 void PrintMCInfo(AliStack *pStack,Int_t label); // for debugging
81 Double_t Chi2perNDF(AliESDtrack* track);
82
83 AliAODHeader* ConvertHeader(const AliESDEvent& esd);
84 void ConvertCascades(const AliESDEvent& esd);
85 void ConvertV0s(const AliESDEvent& esd);
86 void ConvertKinks(const AliESDEvent& esd);
87 void ConvertPrimaryVertices(const AliESDEvent& esd);
88 void ConvertTracks(const AliESDEvent& esd);
89 void ConvertPmdClusters(const AliESDEvent& esd);
90 void ConvertCaloClusters(const AliESDEvent& esd);
91 void ConvertEMCALCells(const AliESDEvent& esd);
92 void ConvertPHOSCells(const AliESDEvent& esd);
93 void ConvertTracklets(const AliESDEvent& esd);
94 void ConvertTPCOnlyTracks(const AliESDEvent& esd);
67abcce9 95 void ConvertGlobalConstrainedTracks(const AliESDEvent& esd);
c7ef1c47 96 void ConvertVZERO(const AliESDEvent& esd);
8c87d22c 97 void ConvertZDC(const AliESDEvent& esd);
c7ef1c47 98
99 TClonesArray& Tracks();
100 TClonesArray& V0s();
101 TClonesArray& Vertices();
102 TClonesArray& Cascades();
103
104 // Filtering
105 AliAnalysisFilter* fTrackFilter; // Track Filter
106 AliAnalysisFilter* fKinkFilter; // Kink Filter
107 AliAnalysisFilter* fV0Filter; // V0 Filter
108 AliAnalysisFilter* fCascadeFilter; // Cascade Filter
109 // PID
110 Double_t fHighPthreshold; // Pt threshold for detector signal setting
111 TF1 * fPtshape; // Pt spectrum distribution
112 Bool_t fEnableFillAOD; // value that decides if this task activates AOD filling
113 Bool_t* fUsedTrack; //! indices of used tracks
114 Bool_t* fUsedKink; //! indices of used kinks
115 Bool_t* fUsedV0; //! indices of used V0s
116 TRefArray* fAODTrackRefs; // array of track references
117 TRefArray* fAODV0VtxRefs; // array of v0 vertices references
118 TRefArray* fAODV0Refs ; // array of v0s references
119 AliMCEventHandler* fMChandler; // pointer to MC handler (if any)
120 Int_t fNumberOfTracks; // current number of tracks
121 Int_t fNumberOfPositiveTracks; // current number of positive tracks
122 Int_t fNumberOfV0s; // current number of v0s
123 Int_t fNumberOfVertices; // current number of vertices
124 Int_t fNumberOfCascades; // current number of cascades
125 Int_t fNumberOfKinks; // current number of kinks
126 Bool_t fOldESDformat; // is the ESD in old format ?
127 AliAODVertex* fPrimaryVertex; // pointer to primary vertex of the event
67abcce9 128 UInt_t fTPCConstrainedFilterMask; // Filter Mask used to select and store refitted TPC only tracks
129 UInt_t fHybridFilterMaskTPCCG; // Filter Mask used to mark global tracks as hybrid
130 Bool_t fWriteHybridTPCCOnly;// write only the complent tracks not all global constrained
131
132 UInt_t fGlobalConstrainedFilterMask; // Filter Mask used to select and store refitted TPC only tracks
133 UInt_t fHybridFilterMaskGCG; // Filter Mask used to mark global tracks as hybrid
134 Bool_t fWriteHybridGCOnly;// write only the complent tracks not all global constrained
25a60d41 135
c7ef1c47 136 Bool_t fIsVZEROEnabled; // whether or not to fill the vzero branch (true by default)
8c87d22c 137 Bool_t fIsZDCEnabled; // whether or not to fill the zdc branch (true by default)
c7ef1c47 138 Bool_t fAreCascadesEnabled; // whether or not to fill the cascades branch (true by default)
139 Bool_t fAreV0sEnabled; // whether or not to fill the v0 branch (true by default)
140 Bool_t fAreKinksEnabled; // whether or not to fill the kinks (true by default)
141 Bool_t fAreTracksEnabled; // whether or not to fill the (central) tracks branch (true by default)
142 Bool_t fArePmdClustersEnabled; // whether or not to fill the pmd clusters (true by default)
143 Bool_t fAreCaloClustersEnabled; // whether or not to fill the calo clusters (true by default)
144 Bool_t fAreEMCALCellsEnabled; // whether or not to fill the emcal cells (true by default)
145 Bool_t fArePHOSCellsEnabled; // whether or not to fill the phos cells (true by default)
146 Bool_t fAreTrackletsEnabled; // whether or not to fill the tracklets (true by default)
147 AliESDpid* fESDpid; // esd pid
148 Bool_t fIsPidOwner; // whether we own fESDpid
149 Int_t fTimeZeroType; // time zero type
2f5ee3b7 150 AliESDtrackCuts* fTPCaloneTrackCuts; // TPC stand-alone track cuts
c7ef1c47 151
8c87d22c 152 ClassDef(AliAnalysisTaskESDfilter, 11); // Analysis task for standard ESD filtering
c7ef1c47 153};
154
155#endif