1 #ifndef ALIANALYSISTASKTWOPLUSONE_H
2 #define ALIANALYSISTASKTWOPLUSONE_H
11 #include "AliAnalysisTaskSE.h"
12 #include "AliTwoPlusOneContainer.h"
14 #include "AliVParticle.h"
19 class AliAnalyseLeadingTrackUE;
20 class AliInputEventHandler;
22 class AliMCEventHandler;
23 class AliTwoPlusOneContainer;
27 class AliEventPoolManager;
30 class AliAnalysisUtils;
33 class AliGenEventHeader;
35 class AliAnalysisTaskTwoPlusOne : public AliAnalysisTaskSE {
37 AliAnalysisTaskTwoPlusOne(const char *name="AliAnalysisTaskTwoPlusOne");
38 virtual ~AliAnalysisTaskTwoPlusOne();
40 virtual void UserCreateOutputObjects();
41 virtual void UserExec(Option_t* option);
42 virtual void Terminate(Option_t *);
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; }
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; }
61 void SetThreeParticleMixed(Bool_t flag) { fThreeParticleMixed = flag; }
62 void SetUseEventCombination(Bool_t flag) { fUseEventCombination = flag; }
64 void SetCentralityMethod(const char* method) { fCentralityMethod = method; }
66 void SetCustomBinning(const char* binningStr) { fCustomBinning = binningStr; }
68 void SetAlpha(Double_t val){fAlpha = val; }
71 void AddSettingsTree(); // add list of settings to output list
73 TObjArray* CloneAndReduceTrackList(TObjArray* tracks);
74 void AddEventCombination(TObjArray* tracks);
76 //general configuration
77 Int_t fMixingTracks; // size of track buffer for event mixing
79 // Pointers to external UE classes
80 AliAnalyseLeadingTrackUE* fAnalyseUE; //! points to class containing common analysis algorithms
81 AliTwoPlusOneContainer* fHistos;// Histogram class based on UEHist
83 // Handlers and events
84 AliAODEvent* fAOD; //! AOD Event
85 AliEventPoolManager* fPoolMgr; //! event pool manager
87 TObjArray* fEventCombination; //reduced tracklist which contains 4 semi central events which have the same multiplicity as 1 central event
88 Int_t fUsedEvents; //used events in fEventCombination
91 TList* fListOfHistos; // Output list of containers
94 Int_t fnTracksVertex; // QA tracks pointing to principal vertex
95 Double_t fZVertex; // Position of Vertex in Z direction
96 TString fCentralityMethod; // Method to determine centrality
99 Double_t fTrackEtaCut; // Maximum Eta cut on particles
100 Double_t fTrackEtaCutMin; // Minimum Eta cut on particles
101 Double_t fPtMin; // Min pT to start correlations
102 TFormula* fDCAXYCut; // additional pt dependent cut on DCA XY (only for AOD)
103 Double_t fSharedClusterCut; // cut on shared clusters (only for AOD)
104 Int_t fCrossedRowsCut; // cut on crossed rows (only for AOD)
105 Double_t fFoundFractionCut; // cut on crossed rows/findable clusters (only for AOD)
106 UInt_t fFilterBit; // Select tracks from an specific track cut
107 UInt_t fTrackStatus; // if non-0, the bits set in this variable are required for each track
109 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
110 Bool_t fUseEventCombination; //0 normal analysis run; 1 add 4 30-50% events up to the multiplicity of an 0-5% event
112 TString fCustomBinning; // supersedes default binning if set, see AliUEHist::GetBinning or AliUEHistograms::AliUEHistograms for syntax and examples
113 Double_t fAlpha; //sets the alpha parameter in the container
115 AliAnalysisTaskTwoPlusOne(const AliAnalysisTaskTwoPlusOne&); // not implemented
116 AliAnalysisTaskTwoPlusOne& operator=(const AliAnalysisTaskTwoPlusOne&); // not implemented
119 ClassDef(AliAnalysisTaskTwoPlusOne, 1); // two plus one analysis with two trigger particles and particle correlations to these triggers