]>
Commit | Line | Data |
---|---|---|
eac83c86 | 1 | #ifndef ALIANALYSISTASKCORRELATIONTREE_H |
2 | #define ALIANALYSISTASKCORRELATIONTREE_H | |
3 | ||
4 | // Analysis task for creating a reduced tree containing event, track and resonance candidate information | |
5 | // Author: Ionut-Cristian Arsene (i.c.arsene@gsi.de) | |
6 | ||
7 | #include "TList.h" | |
8 | ||
9 | #include "AliAnalysisTaskSE.h" | |
10 | ||
11 | class AliAnalysisCuts; | |
12 | class TTree; | |
13 | class TFile; | |
14 | class AliESDv0Cuts; | |
15 | class AliKFVertex; | |
16 | class AliCorrelationReducedEvent; | |
17 | class AliCorrelationReducedEventFriend; | |
18 | class AliCorrelationReducedPair; | |
19 | class AliDielectron; | |
20 | class AliFlowTrackCuts; | |
21 | ||
22 | //_________________________________________________________________________ | |
23 | class AliAnalysisTaskCorrelationTree : public AliAnalysisTaskSE { | |
24 | ||
25 | public: | |
26 | AliAnalysisTaskCorrelationTree(); | |
27 | AliAnalysisTaskCorrelationTree(const char *name); | |
28 | virtual ~AliAnalysisTaskCorrelationTree(){ } | |
29 | ||
30 | virtual void UserExec(Option_t *option); | |
31 | virtual void UserCreateOutputObjects(); | |
32 | virtual void FinishTaskOutput(); | |
33 | ||
34 | void UsePhysicsSelection(Bool_t phy=kTRUE) {fSelectPhysics=phy;} | |
35 | void SetTriggerMask(UInt_t mask) {fTriggerMask=mask;} | |
36 | UInt_t GetTriggerMask() const { return fTriggerMask; } | |
37 | void SetRejectPileup(Bool_t pileup=kTRUE) { fRejectPileup=pileup; } | |
38 | ||
39 | // Cuts for selection of event to be written to tree | |
40 | void SetEventFilter(AliAnalysisCuts * const filter) {fEventFilter=filter;} | |
41 | // Cuts for selecting tracks included in the tree | |
42 | void SetTrackFilter(AliAnalysisCuts * const filter) {fTrackFilter=filter;} | |
43 | // Cuts for selecting tracks to be used for Q vector calculation | |
44 | void SetFlowTrackFilter(AliAnalysisCuts * const filter) {fFlowTrackFilter = filter;} | |
45 | ||
46 | // Cuts for selecting V0s | |
47 | void SetK0sPionCuts(AliAnalysisCuts * const filter) {fK0sPionCuts=filter;} | |
48 | void SetLambdaProtonCuts(AliAnalysisCuts * const filter) {fLambdaProtonCuts=filter;} | |
49 | void SetLambdaPionCuts(AliAnalysisCuts * const filter) {fLambdaPionCuts=filter;} | |
50 | void SetK0sCuts(AliESDv0Cuts* const cuts) {fK0sCuts = cuts;} | |
51 | void SetLambdaCuts(AliESDv0Cuts* const cuts) {fLambdaCuts = cuts;} | |
52 | void SetK0sMassRange(Double_t min=0.4, Double_t max=0.6) {fK0sMassRange[0]=min; fK0sMassRange[1]=max;} | |
53 | void SetLambdaMassRange(Double_t min=1.08, Double_t max=1.15) {fLambdaMassRange[0]=min; fLambdaMassRange[1]=max;} | |
54 | void SetV0Histograms(AliDielectronHistos * const histos) {fV0Histos=histos;} | |
55 | ||
56 | // Add dielectron objects to the list. These contain cuts and histogram definitions | |
57 | void AddDielectron(AliDielectron * const die) { fListDielectron.Add(die); } | |
58 | ||
59 | private: | |
60 | ||
61 | TList fListDielectron; // List of dielectron framework instances | |
62 | TList fListHistos; //! List of histogram managers in the dielectron framework classes | |
63 | ||
64 | Bool_t fSelectPhysics; // Whether to use physics selection | |
65 | UInt_t fTriggerMask; // Event trigger mask | |
66 | Bool_t fRejectPileup; // pileup rejection wanted | |
67 | ||
68 | AliAnalysisCuts *fEventFilter; // event filter | |
69 | AliAnalysisCuts *fTrackFilter; // filter for the hadrons to be correlated with the dielectrons | |
70 | AliAnalysisCuts *fFlowTrackFilter; // filter for the barrel tracks to be used for the Q-vector | |
71 | ||
72 | AliESDv0Cuts *fK0sCuts; // v0 standard filter for K0s->pi+pi- | |
73 | AliESDv0Cuts *fLambdaCuts; // v0 standard filter for Lambda0->p + pi | |
74 | AliAnalysisCuts *fK0sPionCuts; // filter for pions from K0s | |
75 | AliAnalysisCuts *fLambdaProtonCuts;// filter for protons from Lambda | |
76 | AliAnalysisCuts *fLambdaPionCuts; // filter for pions from Lambda | |
77 | Double_t fK0sMassRange[2]; // mass range for allowed K0s pairs | |
78 | Double_t fLambdaMassRange[2]; // mass range for allowed Lambda pairs | |
79 | AliDielectronHistos* fV0Histos; // histogram manager for V0s | |
80 | ||
81 | TFile *fTreeFile; // output file containing the tree | |
82 | TTree *fTree; //! Reduced event tree | |
83 | TTree *fFriendTreeFile; // output file containing the friend tree | |
84 | TTree *fFriendTree; //! Reduced event tree with friend info (event plane, etc.) | |
85 | AliCorrelationReducedEvent *fReducedEvent; // reduced event wise information | |
86 | AliCorrelationReducedEventFriend *fReducedEventFriend; // friend reduced event wise information | |
87 | ||
88 | AliFlowTrackCuts* fFlowTrackCuts; // flow track cuts object | |
89 | ||
90 | void FillEventInfo(); // fill reduced event information | |
91 | void FillFriendEventInfo(); // fill reduced event friend information | |
92 | void FillTrackInfo(); // fill reduced track information | |
93 | void FillDielectronPairInfo(AliDielectron* die, Short_t iDie); // fill dielectron reduced pair information | |
94 | void FillV0PairInfo(); // fill V0 reduced pair information | |
95 | AliCorrelationReducedPair* FillV0PairInfo(AliESDv0* v0, Int_t id, AliESDtrack* legPos, AliESDtrack* legNeg, AliKFVertex* vtxKF, Bool_t chargesAreCorrect); | |
96 | UChar_t EncodeTPCClusterMap(AliESDtrack* track); | |
97 | void FillCaloClusters(); | |
98 | ||
99 | AliAnalysisTaskCorrelationTree(const AliAnalysisTaskCorrelationTree &c); | |
100 | AliAnalysisTaskCorrelationTree& operator= (const AliAnalysisTaskCorrelationTree &c); | |
101 | ||
102 | ClassDef(AliAnalysisTaskCorrelationTree, 1); //Analysis Task for creating a reduced event information tree | |
103 | }; | |
104 | #endif |