Usage of multi-vertexer to tag pileup events in D meson analysis (Zaida)
[u/mrichter/AliRoot.git] / PWGHF / correlationHF / AliAnalysisTaskDStarCorrelations.h
CommitLineData
5d3cf93b 1#ifndef AliAnalysisTaskDStarCorrelations_H
2#define AliAnalysisTaskDStarCorrelations_H
3
4/**************************************************************************
5 * Copyright(c) 1998-2009, ALICE Experiment at CERN, All rights reserved. *
6 * *
7 * Author: The ALICE Off-line Project. *
8 * Contributors are mentioned in the code where appropriate. *
9 * *
10 * Permission to use, copy, modify and distribute this software and its *
11 * documentation strictly for non-commercial purposes is hereby granted *
12 * without fee, provided that the above copyright notice appears in all *
13 * copies and that both the copyright notice and this permission notice *
14 * appear in the supporting documentation. The authors make no claims *
15 * about the suitability of this software for any purpose. It is *
16 * provided "as is" without express or implied warranty. *
17 **************************************************************************/
18
19/* $Id$ */
20
21//-----------------------------------------------------------------------
22//
23//
24// Author S.Bjelogrlic
25// Utrecht University
26// sandro.bjelogrlic@cern.ch
27//
28//-----------------------------------------------------------------------
29
30#include <TH2F.h>
31#include <TH1D.h>
32#include <TH3D.h>
33#include "AliAnalysisTaskSE.h"
34#include "AliAODEvent.h"
35#include "AliRDHFCutsDStartoKpipi.h"
36#include "AliEventPoolManager.h"
37#include "AliAODRecoCascadeHF.h"
38#include "AliHFAssociatedTrackCuts.h"
39#include "AliNormalizationCounter.h"
40#include "AliHFCorrelator.h"
41#include <THnSparse.h>
42#include "AliAnalysisUtils.h"
43#include "AliVertexingHFUtils.h"
44class TParticle ;
45class TClonesArray ;
46class AliAODMCParticle;
47class AliAODEvent;
48class AliVParticle;
49class TObjArray;
50class AliEventPoolManager;
51class AliESDEvent;
52
53
54
55class AliAnalysisTaskDStarCorrelations : public AliAnalysisTaskSE
56{
57
58 public :
59
60 enum CollSyst {pp,pA,AA};
61 enum DEffVariable{kNone,kMult,kCentr,kRapidity,kEta};
62
63 AliAnalysisTaskDStarCorrelations();
64 AliAnalysisTaskDStarCorrelations(const Char_t* name,AliRDHFCutsDStartoKpipi* cuts, AliHFAssociatedTrackCuts *AsscCuts, AliAnalysisTaskDStarCorrelations::CollSyst syst,Bool_t mode);
65 virtual ~AliAnalysisTaskDStarCorrelations();
66
67
68
69 // Implementation of interface methods
70 virtual void UserCreateOutputObjects();
71 virtual void Init();
72 virtual void LocalInit() {Init();}
73 virtual void UserExec(Option_t *option);
74 virtual void Terminate(Option_t *option);
75
76 void DefineThNSparseForAnalysis();
77 void DefineHistoForAnalysis();
78 void EnlargeDZeroMassWindow();
79 Bool_t IsDDaughter(AliAODMCParticle* d, AliAODMCParticle* track) const ;
80
81 // checker for event mixing
82 void EventMixingChecks(AliAODEvent * AOD);
83 // setters
84 void SetMonteCarlo(Bool_t k) {fmontecarlo = k;}
85 void SetUseMixing (Bool_t j) {fmixing = j;}
86 void SetCorrelator(Int_t l) {fselect = l;} // select 1 for hadrons, 2 for Kaons, 3 for Kzeros
87 void SetUseDisplacement(Int_t m) {fDisplacement=m;} // select 0 for no displ, 1 for abs displ, 2 for d0/sigma_d0
88 void SetCollSys(CollSyst system){fSystem=system;} // select between pp (kFALSE) or PbPb (kTRUE)
89 void SetEfficiencyVariable(DEffVariable var){fEfficiencyVariable = var;} // set the efficiency variable to use
90 void SetLevelOfDebug(Int_t debug){fDebugLevel=debug;} // set debug level
91 void SetUseReconstruction(Bool_t reco){fReco = reco;}
92 void SetDMesonSigmas(Float_t DStarWin, Float_t D0Win, Float_t SBmin, Float_t SBmax){
93 fDMesonSigmas[0] = DStarWin;
94 fDMesonSigmas[1] = D0Win;
95 fDMesonSigmas[2] = SBmin;
96 fDMesonSigmas[3] = SBmax;
97
98 }
99
100 void SetUseEfficiencyCorrection(Bool_t correction){fUseEfficiencyCorrection = correction;} // setter for using the single track efficiency correction
101 void SetUseDmesonEfficiencyCorrection(Bool_t correction){fUseDmesonEfficiencyCorrection = correction;} // setter for using the single track efficiency correction
102 void SetUseHadronicChannelAtKineLevel (Bool_t use){fUseHadronicChannelAtKineLevel = use;}
103
104 void SetDim(){fDim = 4;
105 fDMesonSigmas = new Float_t[4];}
106 void SetDeffMapvsPt(TH1D * map){fDeffMapvsPt = map;}
107 void SetDeffMapvsPtvsMult(TH2D * map){fDeffMapvsPtvsMult = (TH2D*)map;}
108 void SetDeffMapvsPtvsMultvsEta(TH2D * map){fDeffMapvsPtvsEta = map;}
109 void SetNofPhiBins(Int_t nbins){fPhiBins = nbins;}
110 void SetMaxDStarEta(Double_t eta){fMaxEtaDStar = eta;}
111
112
113
114private:
115
116 AliAnalysisTaskDStarCorrelations(const AliAnalysisTaskDStarCorrelations &source);
117 AliAnalysisTaskDStarCorrelations& operator=(const AliAnalysisTaskDStarCorrelations& source);
118
119 TObject* fhandler; //! Analysis Handler
120 TClonesArray* fmcArray; //mcarray
121 AliNormalizationCounter *fCounter; // counter
122 AliHFCorrelator * fCorrelator; // object for correlations
123
124
125
126 Int_t fselect; // select what to correlate with a D* 1-chargedtracks,2-chargedkaons,3-k0s
127 Bool_t fmontecarlo;//switch for MC
128 Bool_t fmixing;// switch for event mixing
129 Bool_t fFullmode;
130 CollSyst fSystem; // pp, pPb or PbPb
131 DEffVariable fEfficiencyVariable; // set second variable to study efficiency (mult, centr, y, eta)
132 Bool_t fReco; // use reconstruction or MC truth
133 Bool_t fUseEfficiencyCorrection; // boolean variable to use or not the efficiency correction
134 Bool_t fUseDmesonEfficiencyCorrection; // boolean flag for the use of Dmeson efficiency correction
135 Bool_t fUseCentrality;// boolean to switch in between centrality or multiplicity
136 Bool_t fUseHadronicChannelAtKineLevel; //
137
138 Int_t fPhiBins;
139 Int_t fEvents; //! number of event
140 Int_t fDebugLevel; //! debug level
141 Int_t fDisplacement; // set 0 for no displacement cut, 1 for absolute d0, 2 for d0/sigma_d0
142 Int_t fDim;//
143 Int_t fNofPtBins;
144 Double_t fMaxEtaDStar;
145 Float_t *fDMesonSigmas;//[fDim]
146 Float_t * fD0Window; //[fNofPtBins]
147
148
149
150
151 TList *fOutput; //! user output data
152 TList *fOutputMC; //! outpu for MC
153 AliRDHFCutsDStartoKpipi *fCuts; // Cuts D*
154 AliHFAssociatedTrackCuts *fCuts2; // cuts for associated
155 AliAnalysisUtils *fUtils;
156 AliAODTracklets * fTracklets; // AliAODtracklets
157
158 TH1D * fDeffMapvsPt; // histo for Deff mappin
159 TH2D * fDeffMapvsPtvsMult; // histo for Deff mappin
160 TH2D * fDeffMapvsPtvsEta; // histo for Deff mappin
161
162 ClassDef(AliAnalysisTaskDStarCorrelations,6); // class for D meson correlations
163
164};
165
166#endif