05aa3b1582b73b2ea18678b11eb9ce7f46f122b3
[u/mrichter/AliRoot.git] / PWGJE / FlavourJetTasks / AliAnalysisTaskSEDmesonsFilterCJ.h
1 #ifndef ALIANALYSISTASKSEDMESONSFILTERCJ_H
2 #define ALIANALYSISTASKSEDMESONSFILTERCJ_H
3 // $Id$
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 //-----------------------------------------------------------------------
20 // Author : A. Grelli,  Utrecht University
21 //          C. Bianchin, Utrecht University
22 //          X. Zhang, LBNL
23 //-----------------------------------------------------------------------
24
25
26 #include <TH2F.h>
27 #include "AliAODEvent.h"
28 #include "AliPicoTrack.h"
29 #include "AliAnalysisTaskSE.h"
30
31 class TH3F;
32 class TString;
33 class TParticle ;
34 class TClonesArray ;
35 class AliMCParticle;
36 class AliAODMCParticle;
37 class AliRDHFCuts;
38 class AliAODRecoCascadeHF;
39
40 class AliAnalysisTaskSEDmesonsFilterCJ : public AliAnalysisTaskSE 
41 {
42
43  public :
44
45   enum ECandidateType{ kD0toKpi, kDstartoKpipi };
46   
47   AliAnalysisTaskSEDmesonsFilterCJ();
48   AliAnalysisTaskSEDmesonsFilterCJ(const Char_t* name,AliRDHFCuts* cuts,ECandidateType candtype);
49   virtual ~AliAnalysisTaskSEDmesonsFilterCJ();
50
51   virtual void     UserCreateOutputObjects();
52   virtual void     UserExec(Option_t *option);
53   virtual void     Terminate(Option_t *);
54   virtual void     Init();
55   virtual void     LocalInit() { Init(); }
56
57   // inizializations
58   Bool_t DefineHistoForAnalysis();
59
60   // set MC usage
61   void   SetMC(Bool_t theMCon) { fUseMCInfo = theMCon; }
62   Bool_t GetMC() const { return fUseMCInfo; }
63   
64   void SetMassLimits(Double_t range, Int_t pdg);
65   void SetMassLimits(Double_t lowlimit, Double_t uplimit);
66
67   // Array of D0 width for the Dstar
68   Bool_t SetD0WidthForDStar(Int_t nptbins, Float_t *width);
69
70  private :
71   
72   AliAnalysisTaskSEDmesonsFilterCJ(const AliAnalysisTaskSEDmesonsFilterCJ &source);
73   AliAnalysisTaskSEDmesonsFilterCJ& operator=(const AliAnalysisTaskSEDmesonsFilterCJ& source); 
74
75   Bool_t fUseMCInfo;               //  Use MC info
76
77   UInt_t  fCandidateType;          //  Dstar or D0
78   TString fCandidateName;          //  Dstar or D0
79
80   Int_t fPDGmother;                //  PDG code of D meson
81   Int_t fNProngs;                  //  number of prong of the decay channel  
82   Int_t fPDGdaughters[4];          //  PDG codes of daughters
83   Float_t fSigmaD0[30];            //  D0 sigma for Dstar
84
85   TString fBranchName;             //  AOD branch name
86   TList  *fOutput;                 //! user output
87 //TList *fOutputCandidates;        //! output of array of candidates (kExchange)
88
89   AliRDHFCuts *fCuts;              //! Cuts 
90   Double_t fMinMass;               //  mass lower limit histogram
91   Double_t fMaxMass;               //  mass upper limit histogram
92
93   TClonesArray *fCandidateArray;   //! contains candidates selected by AliRDHFCuts
94 //TClonesArray *fIsSelectedArray;  //! contains result of IsSelected for candidates which pass the cuts (needed for D0)
95
96   ClassDef(AliAnalysisTaskSEDmesonsFilterCJ,1); // class for charm-jet correlations
97 };
98
99 #endif