1 #ifndef AliAnalysisTaskCFTree_h
2 #define AliAnalysisTaskCFTree_h
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
7 // Analysis task to produce trees of lightweight events
8 // evgeny.kryshen@cern.ch
10 #include "AliAnalysisTaskSE.h"
15 class AliAnalysisFilter;
18 class AliAnalysisUtils;
20 class AliAnalysisTaskCFTree : public AliAnalysisTaskSE {
22 AliAnalysisTaskCFTree(const char* name="AliAnalysisTaskCFTree");
23 virtual ~AliAnalysisTaskCFTree(){};
24 virtual void UserCreateOutputObjects();
25 virtual void UserExec(Option_t *option);
27 void SetTrackFilter(AliAnalysisFilter* filter) { fTrackFilter = filter; }
28 void SetHybridConstrainedMask(UInt_t mask) { fHybridConstrainedMask = mask; }
29 void SetTPConlyConstrainedMask(UInt_t mask) { fTPConlyConstrainedMask = mask; }
31 void SetEventSelectionBit(UInt_t val) { fSelectBit = val; }
32 void SetZVertex(Float_t val) { fZVertexCut = val; }
34 void SetTrackFilterBit(UInt_t val) { fTrackFilterBit = val; }
35 void SetTrackEtaCut(Float_t val) { fTrackEtaCut = val; }
36 void SetPtMin(Float_t val) { fPtMin = val; }
37 void SetSharedClusterCut(Float_t val) { fSharedClusterCut = val; }
38 void SetCrossedRowsCut(Int_t val) { fCrossedRowsCut = val; }
39 void SetFoundFractionCut(Float_t val) { fFoundFractionCut = val; }
40 void SetDphiCut(Float_t val) { fDphiCut = val; }
41 // Switchers for additional data to be stored
42 void SetStoreTracks(Bool_t val=kTRUE) { fStoreTracks = val; }
43 void SetStoreTracklets(Bool_t val=kTRUE) { fStoreTracklets = val; }
44 void SetStoreMuons(Bool_t val=kTRUE) { fStoreMuons = val; }
45 void SetStoreMcTracks(Bool_t val=kTRUE) { fStoreMcTracks = val; }
46 void SetStoreMcTracklets(Bool_t val=kTRUE) { fStoreMcTracklets = val; }
47 void SetStoreMcMuons(Bool_t val=kTRUE) { fStoreMcMuons = val; }
48 void SetStorePidInfo(Bool_t val=kTRUE) { fStorePidInfo = val; }
51 AliAnalysisTaskCFTree(const AliAnalysisTaskCFTree &task);
52 AliAnalysisTaskCFTree& operator=(const AliAnalysisTaskCFTree &task);
54 UInt_t GetFilterMap(AliVTrack* part);
55 AliCFParticle* AddTrack(AliVTrack* track, UInt_t mask, UInt_t flag=0);
57 AliAnalysisFilter* fTrackFilter; // track filter used in ESD analysis
58 UInt_t fHybridConstrainedMask; // Filter mask for hybrid constrained tracks (ESD analysis)
59 UInt_t fTPConlyConstrainedMask; // Filter mask for TPConly constrained tracks (ESD analysis)
60 AliAnalysisUtils* fUtils; //! analysis utils to detect pileup
61 TList* fListOfHistos; //! list of output histograms
62 TH1I* fEventStatistics; //! cut-by-cut counter of events
63 TTree* fTree; //! output tree
65 TClonesArray* fTracks; //! tree var: selected AliCFParticles
66 TClonesArray* fTracklets; //! tree var: selected tracklets (stored if fStoreTracklets=kTRUE)
67 TClonesArray* fMuons; //! tree var: selected muons (stored if fStoreMuons=kTRUE)
68 TClonesArray* fMcParticles; //! tree var: MC particles
69 Float_t fField; // tree var: magnetic field value
70 Float_t fCentrality[6]; // tree var: centrality
71 Float_t fVtxZ; // tree var: z-vertex
72 Bool_t fVtxTPConly; // tree var: is vertex TPC only
73 UInt_t fVtxContributors; // tree var: number of vertex contributors
74 UInt_t fPeriod; // tree var: period
75 UInt_t fOrbit; // tree var: orbit
76 UShort_t fBc; // tree var: bunch crossing
77 UInt_t fSelectMask; // tree var: physics selection mask
78 Bool_t fIsPileupSPD; // tree var: is pileup from SPD flag
79 Bool_t fIsPileupMV; // tree var: is pileup from MV flag
82 UInt_t fSelectBit; // event selection bit
83 Float_t fZVertexCut; // Z-vertex cut
85 UInt_t fTrackFilterBit; // track filter bits to be stored
86 Float_t fTrackEtaCut; // maximum abs(eta) cut
87 Float_t fPtMin; // minimum pt cut
88 Float_t fSharedClusterCut; // cut on shared clusters
89 Int_t fCrossedRowsCut; // cut on crossed rows
90 Float_t fFoundFractionCut; // cut on crossed rows/findable clusters
91 Float_t fDphiCut; // cut on tracklet dphi
93 Bool_t fStoreTracks; // if kTRUE - Barrel tracks will be stored as AliCFParticles
94 Bool_t fStoreTracklets; // if kTRUE - SPD tracklets will be stored as AliCFParticles
95 Bool_t fStoreMuons; // if kTRUE - muon tracks will be stored as AliCFParticles
96 Bool_t fStoreMcTracks; // if kTRUE - mc particles will be stored as AliCFParticles
97 Bool_t fStoreMcTracklets; // if kTRUE - Store Monte-Carlo info for tracklets
98 Bool_t fStoreMcMuons; // if kTRUE - Store Monte-Carlo info for muons
99 Bool_t fStorePidInfo; // if kTRUE - Store PID info for tracks
100 ClassDef(AliAnalysisTaskCFTree,4);