1 #ifndef AliAnalysisTaskDStarCorrelations_H
\r
2 #define AliAnalysisTaskDStarCorrelations_H
\r
4 /**************************************************************************
\r
5 * Copyright(c) 1998-2009, ALICE Experiment at CERN, All rights reserved. *
\r
7 * Author: The ALICE Off-line Project. *
\r
8 * Contributors are mentioned in the code where appropriate. *
\r
10 * Permission to use, copy, modify and distribute this software and its *
\r
11 * documentation strictly for non-commercial purposes is hereby granted *
\r
12 * without fee, provided that the above copyright notice appears in all *
\r
13 * copies and that both the copyright notice and this permission notice *
\r
14 * appear in the supporting documentation. The authors make no claims *
\r
15 * about the suitability of this software for any purpose. It is *
\r
16 * provided "as is" without express or implied warranty. *
\r
17 **************************************************************************/
\r
21 //-----------------------------------------------------------------------
\r
24 // Author S.Bjelogrlic
\r
25 // Utrecht University
\r
26 // sandro.bjelogrlic@cern.ch
\r
28 //-----------------------------------------------------------------------
\r
33 #include "AliAnalysisTaskSE.h"
\r
34 #include "AliAODEvent.h"
\r
35 #include "AliRDHFCutsDStartoKpipi.h"
\r
36 #include "AliEventPoolManager.h"
\r
37 #include "AliAODRecoCascadeHF.h"
\r
38 #include "AliHFAssociatedTrackCuts.h"
\r
39 #include "AliNormalizationCounter.h"
\r
40 #include "AliHFCorrelator.h"
\r
41 #include <THnSparse.h>
\r
42 #include "AliAnalysisUtils.h"
\r
43 #include "AliVertexingHFUtils.h"
\r
45 class TClonesArray ;
\r
46 class AliAODMCParticle;
\r
50 class AliEventPoolManager;
\r
55 class AliAnalysisTaskDStarCorrelations : public AliAnalysisTaskSE
\r
60 enum CollSyst {pp,pA,AA};
\r
61 AliAnalysisTaskDStarCorrelations();
\r
62 AliAnalysisTaskDStarCorrelations(const Char_t* name,AliRDHFCutsDStartoKpipi* cuts, AliHFAssociatedTrackCuts *AsscCuts, AliAnalysisTaskDStarCorrelations::CollSyst syst,Bool_t mode);
\r
63 virtual ~AliAnalysisTaskDStarCorrelations();
\r
67 // Implementation of interface methods
\r
68 virtual void UserCreateOutputObjects();
\r
69 virtual void Init();
\r
70 virtual void LocalInit() {Init();}
\r
71 virtual void UserExec(Option_t *option);
\r
72 virtual void Terminate(Option_t *option);
\r
74 void DefineThNSparseForAnalysis();
\r
75 void DefineHistoForAnalysis();
\r
76 void EnlargeDZeroMassWindow();
\r
79 // checker for event mixing
\r
80 void EventMixingChecks(AliAODEvent * AOD);
\r
82 void SetMonteCarlo(Bool_t k) {fmontecarlo = k;}
\r
83 void SetUseMixing (Bool_t j) {fmixing = j;}
\r
84 void SetCorrelator(Int_t l) {fselect = l;} // select 1 for hadrons, 2 for Kaons, 3 for Kzeros
\r
85 void SetUseDisplacement(Int_t m) {fDisplacement=m;} // select 0 for no displ, 1 for abs displ, 2 for d0/sigma_d0
\r
86 void SetCollSys(CollSyst system){fSystem=system;} // select between pp (kFALSE) or PbPb (kTRUE)
\r
87 void SetLevelOfDebug(Int_t debug){fDebugLevel=debug;} // set debug level
\r
88 void SetUseReconstruction(Bool_t reco){fReco = reco;}
\r
89 void SetDMesonSigmas(Float_t DStarWin, Float_t D0Win, Float_t SBmin, Float_t SBmax){
\r
90 fDMesonSigmas[0] = DStarWin;
\r
91 fDMesonSigmas[1] = D0Win;
\r
92 fDMesonSigmas[2] = SBmin;
\r
93 fDMesonSigmas[3] = SBmax;
\r
97 void SetUseEfficiencyCorrection(Bool_t correction){fUseEfficiencyCorrection = correction;} // setter for using the single track efficiency correction
\r
98 void SetUseDmesonEfficiencyCorrection(Bool_t correction){fUseDmesonEfficiencyCorrection = correction;} // setter for using the single track efficiency correction
\r
99 void SetDim(){fDim = 4;
\r
100 fDMesonSigmas = new Float_t[4];}
\r
101 void SetDeffMapvsPt(TH1D * map){fDeffMapvsPt = map;}
\r
102 void SetDeffMapvsPtvsMult(TH2D * map){fDeffMapvsPtvsMult = (TH2D*)map;}
\r
103 void SetDeffMapvsPtvsMultvsEta(TH2D * map){fDeffMapvsPtvsEta = map;}
\r
104 void SetNofPhiBins(Int_t nbins){fPhiBins = nbins;}
\r
110 AliAnalysisTaskDStarCorrelations(const AliAnalysisTaskDStarCorrelations &source);
\r
111 AliAnalysisTaskDStarCorrelations& operator=(const AliAnalysisTaskDStarCorrelations& source);
\r
113 TObject* fhandler; //! Analysis Handler
\r
114 TClonesArray* fmcArray; //mcarray
\r
115 AliNormalizationCounter *fCounter; // counter
\r
116 AliHFCorrelator * fCorrelator; // object for correlations
\r
120 Int_t fselect; // select what to correlate with a D* 1-chargedtracks,2-chargedkaons,3-k0s
\r
121 Bool_t fmontecarlo;//switch for MC
\r
122 Bool_t fmixing;// switch for event mixing
\r
124 CollSyst fSystem; // pp, pPb or PbPb
\r
125 Bool_t fReco; // use reconstruction or MC truth
\r
126 Bool_t fUseEfficiencyCorrection; // boolean variable to use or not the efficiency correction
\r
127 Bool_t fUseDmesonEfficiencyCorrection; // boolean flag for the use of Dmeson efficiency correction
\r
128 Bool_t fUseCentrality;// boolean to switch in between centrality or multiplicity
\r
130 Int_t fEvents; //! number of event
\r
131 Int_t fDebugLevel; //! debug level
\r
132 Int_t fDisplacement; // set 0 for no displacement cut, 1 for absolute d0, 2 for d0/sigma_d0
\r
135 Float_t *fDMesonSigmas;//[fDim]
\r
136 Float_t * fD0Window; //[fNofPtBins]
\r
140 TList *fOutput; //! user output data
\r
141 TList *fOutputMC; //! outpu for MC
\r
142 AliRDHFCutsDStartoKpipi *fCuts; // Cuts D*
\r
143 AliHFAssociatedTrackCuts *fCuts2; // cuts for associated
\r
144 AliAnalysisUtils *fUtils;
\r
145 AliAODTracklets * fTracklets; // AliAODtracklets
\r
147 TH1D * fDeffMapvsPt; // histo for Deff mappin
\r
148 TH2D * fDeffMapvsPtvsMult; // histo for Deff mappin
\r
149 TH2D * fDeffMapvsPtvsEta; // histo for Deff mappin
\r
151 ClassDef(AliAnalysisTaskDStarCorrelations,5); // class for D meson correlations
\r