]>
Commit | Line | Data |
---|---|---|
c9ae910e | 1 | #ifndef ALIANALYSISTASKTWOPLUSONE_H |
2 | #define ALIANALYSISTASKTWOPLUSONE_H | |
3 | ||
4 | class TList; | |
5 | class TH1F; | |
6 | class TH2F; | |
7 | class TProfile; | |
8 | class THnSparse; | |
9 | class 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 | ||
18 | class AliAODEvent; | |
19 | class AliAnalyseLeadingTrackUE; | |
20 | class AliInputEventHandler; | |
21 | class AliMCEvent; | |
22 | class AliMCEventHandler; | |
23 | class AliTwoPlusOneContainer; | |
24 | class AliVParticle; | |
25 | class TH1; | |
26 | class TObjArray; | |
27 | class AliEventPoolManager; | |
28 | class AliESDEvent; | |
29 | class AliHelperPID; | |
30 | class AliAnalysisUtils; | |
31 | class TFormula; | |
32 | class TMap; | |
33 | class AliGenEventHeader; | |
34 | ||
35 | class 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 |