New task for D* pt-dep analysis (A. Grelli)
[u/mrichter/AliRoot.git] / PWG3 / vertexingHF / AliAnalysisTaskSEDStarSpectra.h
1 #ifndef ALIANALYSISTASKSEDSTARSPECTRA_H
2 #define ALIANALYSISTASKSEDSTARSPECTRA_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
20 //-----------------------------------------------------------------------
21
22 #include <TH2F.h>
23 #include "TROOT.h"
24 #include "TSystem.h"
25 #include "AliAnalysisTaskSE.h"
26 #include "AliAnalysisVertexingHF.h"
27 #include "AliAODEvent.h"
28
29 class TH2F;
30 class TH1I;
31 class TParticle;
32 class TFile;
33 class TClonesArray;
34 class AliCFManager;
35 class AliAODRecoDecay;
36 class AliAODRecoDecayHF2Prong;
37 class AliAODMCParticle;
38
39 class AliAnalysisTaskSEDStarSpectra : public AliAnalysisTaskSE {
40   
41  public:
42   
43   AliAnalysisTaskSEDStarSpectra();
44   AliAnalysisTaskSEDStarSpectra(const Char_t* name);
45   AliAnalysisTaskSEDStarSpectra& operator= (const AliAnalysisTaskSEDStarSpectra& c);
46   AliAnalysisTaskSEDStarSpectra(const AliAnalysisTaskSEDStarSpectra& c);
47   virtual ~AliAnalysisTaskSEDStarSpectra();
48   
49   virtual void UserCreateOutputObjects();
50   virtual void Init();
51   virtual void LocalInit() {Init();}
52   virtual void UserExec(Option_t *option);
53   virtual void Terminate(Option_t *option);
54  
55   //Background simulation
56   void     SideBandBackground(Double_t finvM, Double_t finvMDStar, Double_t pt, Int_t okD0, Int_t okD0bar);
57   void     WrongSignForDStar(Double_t finvM, Double_t finvMDStar, Double_t pt, Int_t okD0, Int_t okD0bar);
58   //cuts
59   Bool_t   SetUtrechtSelections(Double_t ptD0, AliAnalysisVertexingHF *fVHF);  
60   Bool_t   SelectPID(AliAODTrack *track, Double_t nsig);
61   // histos
62   Bool_t   DefineHistoFroAnalysis(); 
63   // set minimum ITS clusters for the analysis
64   void     SetMinITSClusters(Int_t minITSClusters) {fMinITSClusters = minITSClusters;}
65   Int_t    GetMinITSClusters() const {return fMinITSClusters;}
66   // set minimum for soft pion pt
67   void     SetMinITSClustersSoft(Int_t minITSClustersSoft) {fMinITSClustersSoft = minITSClustersSoft;}
68   Int_t    GetMinITSClustersSoft() const {return fMinITSClustersSoft;}
69   // kaon PID
70   void     SetPID(Bool_t usePIDforKaons) {fPID = usePIDforKaons;}
71   Int_t    GetPID() const {return fPID;}
72   // Set N sigmas for PID
73   void     SetNSigmasPID(Int_t numberOfSigmasPID) {fNSigma = numberOfSigmasPID;}
74   Int_t    GetNSigmasPID() const {return fNSigma;}
75   // set MC usage
76   void     SetMC(Bool_t theMCon) {fUseMCInfo = theMCon;}
77   Bool_t   GetMC() const {return fUseMCInfo;}
78   
79  protected:
80   
81   Int_t  fEvents;                //  n. of events
82   AliAnalysisVertexingHF *fVHF;  //  Set the cuts
83   Int_t  fMinITSClusters;        //  min n. of ITS clusters for RecoDecay
84   Int_t  fMinITSClustersSoft;    //  min n. of ITS clusters for RecoDecay soft pions
85   Bool_t fUseMCInfo;             //  Use MC info
86   TList *fOutput;                //!  User output
87   Int_t  fNSigma;                //  n sigma for kaon PID
88   Bool_t fPID;                   //  PID flag
89   AliAODTrack* fAODTrack;        //!
90   
91   // define the histograms
92   TH1F *fMCDStarPt;           //!    
93   TH1F *fCEvents;             //!
94   TH1F *fDStarMass;           //!
95   TH1F *fTrueDiff;            //!
96   TH2F *fTrueDiff2;           //!
97   TH1F *fInvMass;             //!
98   TH1F *fInvMass1;            //!
99   TH1F *fInvMass2;            //!
100   TH1F *fInvMass3;            //!
101   TH1F *fInvMass4;            //!
102   TH1F *fInvMass5;            //!
103   TH1F *fPtDStar;             //!
104   TH1F *fDStar;               //!
105   TH1F *fDiff;                //!
106   TH1F *fDiff1;               //!
107   TH1F *fDiff2;               //!
108   TH1F *fDiff3;               //!
109   TH1F *fDiff4;               //!
110   TH1F *fDiff5;               //!
111   TH1F *fDiffSideBand;        //!
112   TH1F *fDiffSideBand1;       //!
113   TH1F *fDiffSideBand2;       //!
114   TH1F *fDiffSideBand3;       //!
115   TH1F *fDiffSideBand4;       //!
116   TH1F *fDiffSideBand5;       //!
117   TH1F *fDiffWrongSign;       //!
118   TH1F *fDiffWrongSign1;      //!
119   TH1F *fDiffWrongSign2;      //!
120   TH1F *fDiffWrongSign3;      //!
121   TH1F *fDiffWrongSign4;      //!
122   TH1F *fDiffWrongSign5;      //!
123  
124   ClassDef(AliAnalysisTaskSEDStarSpectra,1); // class for D* spectra
125 };
126
127 #endif