]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGJE/FlavourJetTasks/AliAnalysisTaskSEDmesonsFilterCJ.h
5ff17a2fa36d153ff1be6b5019f86259094c1e44
[u/mrichter/AliRoot.git] / PWGJE / FlavourJetTasks / AliAnalysisTaskSEDmesonsFilterCJ.h
1 #ifndef ALIANALYSISTASKSEDMESONSFILTERCJ_H
2 #define ALIANALYSISTASKSEDMESONSFILTERCJ_H
3 /**************************************************************************
4  * Copyright(c) 1998-2009, ALICE Experiment at CERN, All rights reserved. *
5  *                                                                        *
6  * Author: The ALICE Off-line Project.                                    *
7  * Contributors are mentioned in the code where appropriate.              *
8  *                                                                        *
9  * Permission to use, copy, modify and distribute this software and its   *
10  * documentation strictly for non-commercial purposes is hereby granted   *
11  * without fee, provided that the above copyright notice appears in all   *
12  * copies and that both the copyright notice and this permission notice   *
13  * appear in the supporting documentation. The authors make no claims     *
14  * about the suitability of this software for any purpose. It is          *
15  * provided "as is" without express or implied warranty.                  *
16  **************************************************************************/
17
18 //-----------------------------------------------------------------------
19 // Author : A. Grelli,  Utrecht University
20 //          C. Bianchin, Utrecht University
21 //          X. Zhang, LBNL
22 //-----------------------------------------------------------------------
23
24
25 #include <TH2F.h>
26 #include "AliAODEvent.h"
27 #include "AliPicoTrack.h"
28 #include "AliAnalysisTaskSE.h"
29
30 class TH3F;
31 class TString;
32 class TParticle ;
33 class TClonesArray ;
34 class AliMCParticle;
35 class AliAODMCParticle;
36 class AliRDHFCuts;
37 class AliAODRecoCascadeHF;
38
39 class AliAnalysisTaskSEDmesonsFilterCJ : public AliAnalysisTaskSE 
40 {
41
42  public :
43
44   enum ECandidateType{ kD0toKpi, kDstartoKpipi };
45   
46   AliAnalysisTaskSEDmesonsFilterCJ();
47   AliAnalysisTaskSEDmesonsFilterCJ(const Char_t* name,AliRDHFCuts* cuts,ECandidateType candtype);
48   virtual ~AliAnalysisTaskSEDmesonsFilterCJ();
49
50   virtual void     UserCreateOutputObjects();
51   virtual void     UserExec(Option_t *option);
52   virtual void     Terminate(Option_t *);
53   virtual void     Init();
54   virtual void     LocalInit() { Init(); }
55
56   // inizializations
57   Bool_t DefineHistoForAnalysis();
58
59   // set MC usage
60   void   SetMC(Bool_t theMCon) { fUseMCInfo = theMCon; }
61   Bool_t GetMC() const { return fUseMCInfo; }
62   
63   // set usage of generated or reconstucted quantities (relevant for MC)
64   void SetUseReco(Bool_t useReco=kTRUE) { fUseReco= useReco;}
65   Bool_t GetUseReco() const {return fUseReco;}
66  
67   void SetMassLimits(Double_t range, Int_t pdg);
68   void SetMassLimits(Double_t lowlimit, Double_t uplimit);
69
70   // Array of D0 width for the Dstar
71   Bool_t SetD0WidthForDStar(Int_t nptbins, Float_t *width);
72
73  private :
74   
75   AliAnalysisTaskSEDmesonsFilterCJ(const AliAnalysisTaskSEDmesonsFilterCJ &source);
76   AliAnalysisTaskSEDmesonsFilterCJ& operator=(const AliAnalysisTaskSEDmesonsFilterCJ& source); 
77
78   Bool_t fUseMCInfo;               //  Use MC info
79   Bool_t fUseReco;                 // use reconstructed tracks when running on MC
80
81   UInt_t  fCandidateType;          //  Dstar or D0
82   TString fCandidateName;          //  Dstar or D0
83
84   Int_t fPDGmother;                //  PDG code of D meson
85   Int_t fNProngs;                  //  number of prong of the decay channel  
86   Int_t fPDGdaughters[4];          //  PDG codes of daughters
87   Float_t fSigmaD0[30];            //  D0 sigma for Dstar
88
89   TString fBranchName;             //  AOD branch name
90   TList  *fOutput;                 //! user output
91
92   AliRDHFCuts *fCuts;              // Cuts 
93   Double_t fMinMass;               //  mass lower limit histogram
94   Double_t fMaxMass;               //  mass upper limit histogram
95
96   TClonesArray *fCandidateArray;   //! contains candidates selected by AliRDHFCuts
97   TClonesArray *fSideBandArray;    //! contains candidates selected by AliRDHFCuts::IsSelected(kTracks), to be used for side bands (DStar case only!!)
98
99   ClassDef(AliAnalysisTaskSEDmesonsFilterCJ,2); // class for charm-jet correlations
100 };
101
102 #endif