]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGCF/Correlations/DPhi/AliAnalysisTaskTwoPlusOne.h
Merge branch 'master' of https://git.cern.ch/reps/AliRoot
[u/mrichter/AliRoot.git] / PWGCF / Correlations / DPhi / AliAnalysisTaskTwoPlusOne.h
CommitLineData
c9ae910e 1#ifndef ALIANALYSISTASKTWOPLUSONE_H
2#define ALIANALYSISTASKTWOPLUSONE_H
3
4class TList;
5class TH1F;
6class TH2F;
7class TProfile;
8class THnSparse;
9class AliESDtrackCuts;
10
11#include "AliAnalysisTaskSE.h"
12#include "AliTwoPlusOneContainer.h"
13#include "TString.h"
14#include "AliVParticle.h"
15#include "AliLog.h"
16#include "THn.h"
17
18class AliAODEvent;
19class AliAnalyseLeadingTrackUE;
20class AliInputEventHandler;
21class AliMCEvent;
22class AliMCEventHandler;
23class AliTwoPlusOneContainer;
24class AliVParticle;
25class TH1;
26class TObjArray;
27class AliEventPoolManager;
28class AliESDEvent;
29class AliHelperPID;
30class AliAnalysisUtils;
31class TFormula;
32class TMap;
33class AliGenEventHeader;
34
35class AliAnalysisTaskTwoPlusOne : public AliAnalysisTaskSE {
36 public:
37 AliAnalysisTaskTwoPlusOne(const char *name="AliAnalysisTaskTwoPlusOne");
38 virtual ~AliAnalysisTaskTwoPlusOne();
39
40 virtual void UserCreateOutputObjects();
41 virtual void UserExec(Option_t* option);
42 virtual void Terminate(Option_t *);
43
44 // Setters/Getters
45 // general configuration
46 void SetMixingTracks(Int_t tracks) { fMixingTracks = tracks; }
47 void SetTracksInVertex( Int_t val ){ fnTracksVertex = val; }
48 void SetZVertex( Double_t val ) { fZVertex = val; }
49
50 // track cuts
51 void SetTrackEtaCut( Double_t val ) { fTrackEtaCut = val; }
52 void SetTrackEtaCutMin( Double_t val ) { fTrackEtaCutMin = val; }
53 void SetPtMin(Double_t val) { fPtMin = val; }
54 void SetFilterBit( UInt_t val ) { fFilterBit = val; }
55 void SetDCAXYCut(TFormula* value) { fDCAXYCut = value; }
56 void SetSharedClusterCut(Float_t value) { fSharedClusterCut = value; }
57 void SetCrossedRowsCut(Int_t value) { fCrossedRowsCut = value; }
58 void SetFoundFractionCut(Double_t value) { fFoundFractionCut = value; }
59 void SetTrackStatus(UInt_t status) { fTrackStatus = status; }
48c9fd73 60
61 void SetThreeParticleMixed(Bool_t flag) { fThreeParticleMixed = flag; }
c9ae910e 62
63 void SetCentralityMethod(const char* method) { fCentralityMethod = method; }
64
65 void SetCustomBinning(const char* binningStr) { fCustomBinning = binningStr; }
66
67 void SetAlpha(Double_t val){fAlpha = val; }
68
69 private:
70 void AddSettingsTree(); // add list of settings to output list
71
72 TObjArray* CloneAndReduceTrackList(TObjArray* tracks);
73
74 //general configuration
75 Int_t fMixingTracks; // size of track buffer for event mixing
76
77 // Pointers to external UE classes
78 AliAnalyseLeadingTrackUE* fAnalyseUE; //! points to class containing common analysis algorithms
79 AliTwoPlusOneContainer* fHistos;// Histogram class based on UEHist
80
81 // Handlers and events
82 AliAODEvent* fAOD; //! AOD Event
83 AliEventPoolManager* fPoolMgr; //! event pool manager
84
85 // Histogram settings
86 TList* fListOfHistos; // Output list of containers
87
88 // Event QA cuts
89 Int_t fnTracksVertex; // QA tracks pointing to principal vertex
90 Double_t fZVertex; // Position of Vertex in Z direction
91 TString fCentralityMethod; // Method to determine centrality
92
93 // Track cuts
94 Double_t fTrackEtaCut; // Maximum Eta cut on particles
95 Double_t fTrackEtaCutMin; // Minimum Eta cut on particles
96 Double_t fPtMin; // Min pT to start correlations
97 TFormula* fDCAXYCut; // additional pt dependent cut on DCA XY (only for AOD)
98 Double_t fSharedClusterCut; // cut on shared clusters (only for AOD)
99 Int_t fCrossedRowsCut; // cut on crossed rows (only for AOD)
100 Double_t fFoundFractionCut; // cut on crossed rows/findable clusters (only for AOD)
101 UInt_t fFilterBit; // Select tracks from an specific track cut
102 UInt_t fTrackStatus; // if non-0, the bits set in this variable are required for each track
48c9fd73 103
104 Bool_t fThreeParticleMixed; //0 use trigger from one event and mixed particles from another; 1 use trigger particles from two different events and mixed event from a third event
c9ae910e 105
106 TString fCustomBinning; // supersedes default binning if set, see AliUEHist::GetBinning or AliUEHistograms::AliUEHistograms for syntax and examples
107 Double_t fAlpha; //sets the alpha parameter in the container
108
109 AliAnalysisTaskTwoPlusOne(const AliAnalysisTaskTwoPlusOne&); // not implemented
110 AliAnalysisTaskTwoPlusOne& operator=(const AliAnalysisTaskTwoPlusOne&); // not implemented
111
112
113 ClassDef(AliAnalysisTaskTwoPlusOne, 1); // two plus one analysis with two trigger particles and particle correlations to these triggers
114};
115
116#endif