]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGHF/correlationHF/AliAnalysisTaskDStarCorrelations.h
Adding D meson efficiency maps and Coverity fixes (Sandro)
[u/mrichter/AliRoot.git] / PWGHF / correlationHF / AliAnalysisTaskDStarCorrelations.h
1 #ifndef AliAnalysisTaskDStarCorrelations_H\r
2 #define AliAnalysisTaskDStarCorrelations_H\r
3 \r
4 /**************************************************************************\r
5  * Copyright(c) 1998-2009, ALICE Experiment at CERN, All rights reserved. *\r
6  *                                                                        *\r
7  * Author: The ALICE Off-line Project.                                    *\r
8  * Contributors are mentioned in the code where appropriate.              *\r
9  *                                                                        *\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
18 \r
19 /* $Id$ */\r
20 \r
21 //-----------------------------------------------------------------------\r
22 //          \r
23 //\r
24 //                                                 Author S.Bjelogrlic\r
25 //                         Utrecht University \r
26 //                      sandro.bjelogrlic@cern.ch\r
27 //\r
28 //-----------------------------------------------------------------------\r
29 \r
30 #include <TH2F.h>\r
31 #include <TH1D.h>\r
32 #include <TH3D.h>\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
44 class TParticle ;\r
45 class TClonesArray ;\r
46 class AliAODMCParticle;\r
47 class AliAODEvent;\r
48 class AliVParticle;\r
49 class TObjArray;\r
50 class AliEventPoolManager;\r
51 class AliESDEvent;\r
52 \r
53 \r
54 \r
55 class AliAnalysisTaskDStarCorrelations : public AliAnalysisTaskSE\r
56 {\r
57 \r
58  public :\r
59   \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
64   \r
65   \r
66   \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
73   \r
74   void DefineThNSparseForAnalysis();\r
75   void DefineHistoForAnalysis();\r
76   void EnlargeDZeroMassWindow();\r
77   \r
78   \r
79   // checker for event mixing\r
80   void EventMixingChecks(AliAODEvent * AOD); \r
81   // setters\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
94     \r
95   }\r
96 \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
105   \r
106   \r
107 \r
108 private:\r
109   \r
110   AliAnalysisTaskDStarCorrelations(const AliAnalysisTaskDStarCorrelations &source);\r
111   AliAnalysisTaskDStarCorrelations& operator=(const AliAnalysisTaskDStarCorrelations& source);\r
112   \r
113   TObject* fhandler; //! Analysis Handler\r
114   TClonesArray* fmcArray; //mcarray\r
115   AliNormalizationCounter *fCounter; // counter\r
116   AliHFCorrelator * fCorrelator; // object for correlations\r
117   \r
118   \r
119   \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
123   Bool_t fFullmode;\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
129   Int_t fPhiBins;\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
133   Int_t fDim;//\r
134     Int_t fNofPtBins;\r
135   Float_t *fDMesonSigmas;//[fDim]\r
136  Float_t * fD0Window;  //[fNofPtBins]\r
137   \r
138   \r
139   \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
146   \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
150   \r
151   ClassDef(AliAnalysisTaskDStarCorrelations,5); // class for D meson correlations\r
152   \r
153 };\r
154 \r
155 #endif\r