1 #ifndef AliAnalysisTaskDStarCorrelations_H
2 #define AliAnalysisTaskDStarCorrelations_H
4 /**************************************************************************
5 * Copyright(c) 1998-2009, ALICE Experiment at CERN, All rights reserved. *
7 * Author: The ALICE Off-line Project. *
8 * Contributors are mentioned in the code where appropriate. *
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 **************************************************************************/
21 //-----------------------------------------------------------------------
24 // Author S.Bjelogrlic
26 // sandro.bjelogrlic@cern.ch
28 //-----------------------------------------------------------------------
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"
44 class AliAODMCParticle;
48 class AliEventPoolManager;
53 class AliAnalysisTaskDStarCorrelations : public AliAnalysisTaskSE
57 AliAnalysisTaskDStarCorrelations();
58 AliAnalysisTaskDStarCorrelations(const Char_t* name,AliRDHFCutsDStartoKpipi* cuts, AliHFAssociatedTrackCuts *AsscCuts);
59 virtual ~AliAnalysisTaskDStarCorrelations();
63 // Implementation of interface methods
64 virtual void UserCreateOutputObjects();
66 virtual void LocalInit() {Init();}
67 virtual void UserExec(Option_t *option);
68 virtual void Terminate(Option_t *option);
71 void DefineHistoForAnalysis();
74 void FillMCTagCorrelations(Double_t ptTrig, Double_t DelPhi, Double_t DelEta, Double_t ptTrack, Bool_t *mcSource);
75 void FillMCTagLeadingCorrelations(Double_t ptTrig, Double_t DelPhi, Double_t DelEta, Bool_t *mcSource);
76 // checker for event mixing
77 void EventMixingChecks(AliAODEvent * AOD);
79 void SetMonteCarlo(Bool_t k) {fmontecarlo = k;}
80 void SetUseMixing (Bool_t j) {fmixing = j;}
81 void SetCorrelator(Int_t l) {fselect = l;} // select 1 for hadrons, 2 for Kaons, 3 for Kzeros
82 void SetUseDisplacement(Int_t m) {fDisplacement=m;} // select 0 for no displ, 1 for abs displ, 2 for d0/sigma_d0
83 void SetRunPbPb(Bool_t system){fSystem=system;} // select between pp (kFALSE) or PbPb (kTRUE)
84 void SetLevelOfDebug(Int_t debug){fDebugLevel=debug;} // set debug level
85 void SetUseReconstruction(Bool_t reco){fReco = reco;}
92 AliAnalysisTaskDStarCorrelations(const AliAnalysisTaskDStarCorrelations &source);
93 AliAnalysisTaskDStarCorrelations& operator=(const AliAnalysisTaskDStarCorrelations& source);
95 TObject* fhandler; //! Analysis Handler
96 TClonesArray* fmcArray; //mcarray
97 AliNormalizationCounter *fCounter; // counter
98 AliHFCorrelator * fCorrelator; // object for correlations
102 Int_t fselect; // select what to correlate with a D* 1-chargedtracks,2-chargedkaons,3-k0s
103 Bool_t fmontecarlo;//switch for MC
104 Bool_t fmixing;// switch for event mixing
105 Bool_t fSystem; // pp or PbPb
106 Bool_t fReco; // use reconstruction or MC truth
108 Int_t fEvents; //! number of event
109 Int_t fDebugLevel; //! debug level
110 Int_t fDisplacement; // set 0 for no displacement cut, 1 for absolute d0, 2 for d0/sigma_d0
113 TList *fOutput; //! user output data
114 TList *fOutputMC; //! outpu for MC
115 AliRDHFCutsDStartoKpipi *fCuts; // Cuts D*
116 AliHFAssociatedTrackCuts *fCuts2; // cuts for associated
118 ClassDef(AliAnalysisTaskDStarCorrelations,3); // class for D meson correlations