]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG3/vertexingHF/AliAnalysisTaskSEDStarJets.h
Update (Zaida)
[u/mrichter/AliRoot.git] / PWG3 / vertexingHF / AliAnalysisTaskSEDStarJets.h
1 #ifndef ALIANALYSISTASKSEDSTARJETS_H
2 #define ALIANALYSISTASKSEDSTARJETS_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
23 #include <TH2F.h>
24 #include "AliAnalysisTaskSE.h"
25 #include "AliAODEvent.h"
26
27 class TH2F;
28 class TH1I;
29 class TParticle ;
30 class TFile ;
31 class TClonesArray ;
32 class AliCFManager;
33 class AliAODRecoDecay;
34 class AliAODRecoDecayHF2Prong;
35 class AliAODMCParticle;
36
37
38 class AliAnalysisTaskSEDStarJets : public AliAnalysisTaskSE {
39   
40  public:
41   
42   AliAnalysisTaskSEDStarJets();
43   AliAnalysisTaskSEDStarJets(const Char_t* name);
44   AliAnalysisTaskSEDStarJets& operator= (const AliAnalysisTaskSEDStarJets& c);
45   AliAnalysisTaskSEDStarJets(const AliAnalysisTaskSEDStarJets& c);
46   virtual ~AliAnalysisTaskSEDStarJets();
47   
48   void     UserCreateOutputObjects();
49   void     UserExec(Option_t *option);
50   void     Terminate(Option_t *);
51   
52   // User functions
53
54   Double_t GetInvariantMass(TLorentzVector LorentzTrack1, TLorentzVector LorentzTrack2);
55   Double_t GetInvariantMassDStar(TLorentzVector LorentzTrack3,TLorentzVector LorentzTrack4);
56  
57   //side band background eval
58   void     SideBandBackground(Double_t finvM, Double_t finvMDStar, Double_t fejet, Double_t ejet, Int_t nJets);
59   
60   // inizializations
61   Bool_t   DefineHistoFroAnalysis();
62   
63   //MC values for D0 and D*
64   
65   Bool_t   DstarInMC(AliAODMCParticle* const mcPart, TClonesArray* mcArray);
66   Bool_t   EvaluateIfD0toKpi(AliAODMCParticle* neutralDaugh, TClonesArray* mcArray)const;
67
68   // Alternative cut method
69   Bool_t   EvaluateCutOnPiD0pt(AliAODRecoDecayHF2Prong* const vtx, AliAODTrack* const aodTrack);
70   // set minimum ITS clusters for the analysis
71   void     SetMinITSClusters(Int_t minITSClusters) {fMinITSClusters = minITSClusters;}
72   Int_t    GetMinITSClusters() const {return fMinITSClusters;}
73
74   //set the analysis type D*+ or D*-
75   void     SetAnalType(Bool_t computeD0) {fComputeD0 = computeD0;}
76   Bool_t   GetAnalType() const {return fComputeD0;}
77
78   // set MC usage
79   void    SetMC(Bool_t theMCon) {fUseMCInfo = theMCon;}
80   Bool_t  GetMC() const {return fUseMCInfo;}
81
82   // set cut type
83   void     SetCutType(Bool_t topologicalCut) {ftopologicalCut = topologicalCut;}
84   Bool_t   GetCutType() const {return ftopologicalCut;}
85   
86  protected:
87   
88   Int_t  fCountReco;             //  Reco particle found that satisfy cuts
89   Int_t  fCountRecoAcc;          //  Reco particle found that satisfy cuts in requested acceptance
90   Int_t  fCountRecoITSClusters;  //  Reco particle found that satisfy cuts in n. of ITS clusters
91   Int_t  fCountRecoPPR;          //  Reco particle found that satisfy cuts in PPR
92   Int_t  fCountDStar;            //  MC particle that are D* in acc and with D0->kpi.
93   Int_t  fEvents;                //  n. of events
94   Int_t  fMinITSClusters;        //  min n. of ITS clusters for RecoDecay
95   Bool_t fComputeD0;             //  select analysis type: D*+ (kTRUE), D*- (kFALSE)
96   Bool_t fUseMCInfo;             //  Use MC info
97   Bool_t ftopologicalCut;        //  if false apply relaxed PPR cuts alse cut on the space of D0pt and softpipt  
98   Bool_t fRequireNormalization;  //  normalization 
99
100   TLorentzVector fLorentzTrack1; // lorentz 4 vector
101   TLorentzVector fLorentzTrack2; // lorentz 4 vector
102   TLorentzVector fLorentzTrack3; // lorentz 4 vector
103   TLorentzVector fLorentzTrack4; // lorentz 4 vector
104
105   TList *fOutput;         //! user output
106
107   // define the histograms 
108   // 2D
109   TH2F *fD0ptvsSoftPtSignal;    //!
110   TH2F *fD0ptvsSoftPt;          //!
111  
112   //1D
113   TH1F *ftrigger;        //!
114   TH1F *fPtPion;         //!
115   TH1F *fInvMass;        //!
116   TH1F *fRECOPtDStar;    //!
117   TH1F *fDStar;          //!
118   TH1F *fDiff;           //!
119   TH1F *fDiffSideBand;   //!
120   TH1F *fDStarMass;      //!
121   TH1F *fPhi;            //!
122   TH1F *fPhiBkg;         //!
123   TH1F *fTrueDiff;       //!
124   TH1F *fResZ;           //!
125   TH1F *fResZBkg;        //!
126   TH1F *fcharmpt;        //!
127   TH1F *fdstarE;         //!
128   TH1F *fEjet;           //!
129   TH1F *fPhijet;         //!
130   TH1F *fEtaJet;         //!
131   TH1F *fdstarpt;        //!
132
133   ClassDef(AliAnalysisTaskSEDStarJets,2); // class for HF corrections as a function of many variables
134 };
135
136 #endif