]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGDQ/dielectron/macrosJPSI/RaaPbPb2010/AliAnalysisTaskCorrelationTree.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGDQ / dielectron / macrosJPSI / RaaPbPb2010 / AliAnalysisTaskCorrelationTree.h
CommitLineData
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
11class AliAnalysisCuts;
12class TTree;
13class TFile;
14class AliESDv0Cuts;
15class AliKFVertex;
16class AliCorrelationReducedEvent;
17class AliCorrelationReducedEventFriend;
18class AliCorrelationReducedPair;
19class AliDielectron;
20class AliFlowTrackCuts;
21
22//_________________________________________________________________________
23class AliAnalysisTaskCorrelationTree : public AliAnalysisTaskSE {
24
25public:
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