AliPhysics  8bb951a (8bb951a)
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
AliAnalysisTaskFlavourJetCorrelations.h
Go to the documentation of this file.
1 #ifndef ALIANALYSISTASKFLAVOURJETCORRELATIONS_H
2 #define ALIANALYSISTASKFLAVOURJETCORRELATIONS_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"
28 
29 class TParticle;
30 class TClonesArray;
31 class THnSparse;
32 class AliMCParticle;
33 class AliAODMCParticle;
34 class AliRDHFCuts;
35 class AliEmcalJet;
36 class AliAODRecoDecayHF;
38 class AliAODEvent;
41 class AliJetContainer;
42 
44 {
45 
46 public:
47 
50 
52  AliAnalysisTaskFlavourJetCorrelations(const Char_t* name,AliRDHFCuts* cuts, ECandidateType candtype);
54 
55  virtual void UserCreateOutputObjects();
56  virtual Bool_t Run();
57  virtual void Terminate(Option_t *);
58  virtual void Init();
59  virtual void LocalInit() {Init();}
60 
61  // inizializations
62  Bool_t DefineHistoForAnalysis();
63 
64  // set MC usage
65  void SetMC(Bool_t theMCon) {fUseMCInfo = theMCon;}
66  Bool_t GetMC() const {return fUseMCInfo;}
67  // set usage of reconstructed tracks
68  void SetUseReco(Bool_t reco) {fUseReco=reco;}
69  Bool_t GetUseReco() const {return fUseReco;}
70 
71  void SetMassLimits(Double_t range, Int_t pdg);
72  void SetMassLimits(Double_t lowlimit, Double_t uplimit);
73 
75  Int_t GetCorrelationMethod() const {return fCorrelationMethod;}
76 
77  void SetUseCandArray(Bool_t b) {fUseCandArray=b;}
78  Bool_t GetUseCandArray() const {return fUseCandArray;}
79 
80  void SetUseSBArray(Bool_t b) {fUseSBArray=b;}
81  Bool_t GetUseSBArray() const {return fUseSBArray;}
82 
83  // Array of D0 width for the Dstar
84  Bool_t SetD0WidthForDStar(Int_t nptbins,Float_t* width);
85  void ConstituentCorrelationMethod(Bool_t IsBkg, AliAODEvent* aodEvent);
86  void AngularCorrelationMethod(Bool_t IsBkg, AliAODEvent* aodEvent);
87  void CreateResponseMatrix();
88  void FillDJetHistograms(AliEmcalJet* jet, Double_t rho, Bool_t IsBkg, AliAODEvent* aodEvent);
89  void GetHFJet(AliEmcalJet*& jet, Bool_t IsBkg);
90  void FillHistogramsD0JetCorr(AliAODRecoDecayHF* candidate, Double_t z, Double_t ptD, Double_t ptj, Double_t phij, Bool_t IsBkg, Bool_t bDInEMCalAcc, Bool_t bJetInEMCalAcc, AliAODEvent* aodEvent);
91  void FillHistogramsDstarJetCorr(AliAODRecoCascadeHF* dstar, Double_t z, Double_t ptD, Double_t ptj, Double_t phij, Bool_t IsBkg, Bool_t bDInEMCalAcc, Bool_t bJetInEMCalAcc);
92  void FillHistogramsMCGenDJetCorr(Double_t z,Double_t ptD,Double_t ptjet, Double_t phij, Bool_t bDInEMCalAcc, Bool_t bJetInEMCalAcc);
93  Int_t IsDzeroSideBand(AliAODRecoCascadeHF *candDstar);
94  Bool_t InEMCalAcceptance(AliVParticle *vpart);
95 
96  void SetAnalyseDBackground(Bool_t b){ fAnalyseDBkg=b; }
97  Bool_t GetAnalyseDBackground() const {return fAnalyseDBkg;}
98 
99 
100 private:
101 
104 
105  Double_t Z(AliVParticle* part, AliEmcalJet* jet, Double_t rho) const;
106  Double_t Z(AliVParticle* part, AliEmcalJet* jet) const;
107  Double_t Z(Double_t* p, Double_t *pj) const;
108  Double_t ZT(Double_t* p, Double_t *pj) const;
109  Float_t DeltaR(AliEmcalJet *p1, AliVParticle *p2, Double_t rho) const;
110  Float_t CheckDeltaR(AliEmcalJet *p1, AliVParticle *p2) const;
111 
112 
113  Bool_t fUseMCInfo; // Use MC info
114  Bool_t fUseReco; // use reconstructed tracks when running on MC
115  Int_t fCandidateType; // Dstar or D0
116  Int_t fCorrelationMethod; // Method to correlate D mesons and jets
117  Int_t fPDGmother; // PDG code of D meson
118  Int_t fNProngs; // number of prong of the decay channel
119  Int_t fPDGdaughters[4]; // PDG codes of daughters
120  Float_t fSigmaD0[30]; // Sigma of D0 for D*
121  TString fBranchName; // AOD branch name
122  AliRDHFCuts *fCuts; // Cuts
123 
124  Double_t fMinMass; // mass lower limit histogram
125  Double_t fMaxMass; // mass upper limit histogram
126 
127  TClonesArray *fCandidateArray;
128  TClonesArray *fSideBandArray;
129  Bool_t fAnalyseDBkg; // flag to switch off/on the SB analysis (default is off)
130 
131  Int_t fNAxesBigSparse; // number of axis
132  Bool_t fUseCandArray;
133  Bool_t fUseSBArray;
134 
135  // Histograms
136  TH1I* fhstat;
137  TH1F* fhCentDjet;
138  //generic jet and jet track distributions
139  TH1F* fhPtJetTrks;
140  TH1F* fhPhiJetTrks;
141  TH1F* fhEtaJetTrks;
142  TH1F* fhPtJet;
143  TH1F* fhPhiJet;
144  TH1F* fhEtaJet;
145 
146  //D mesons
147  TH2F* fhInvMassptD;
150  TH1F* fhPtPion;
151  //main histograms
153  THnSparse* fhsDphiz;
154  THnSparse* fResponseMatrix;
155 
156 
157  ClassDef(AliAnalysisTaskFlavourJetCorrelations,7); // class for charm-jet CorrelationsExch
158 };
159 
160 #endif
Int_t pdg
Double_t Z(AliVParticle *part, AliEmcalJet *jet, Double_t rho) const
AliAnalysisTaskFlavourJetCorrelations & operator=(const AliAnalysisTaskFlavourJetCorrelations &source)
void AngularCorrelationMethod(Bool_t IsBkg, AliAODEvent *aodEvent)
Container for particles within the EMCAL framework.
void FillDJetHistograms(AliEmcalJet *jet, Double_t rho, Bool_t IsBkg, AliAODEvent *aodEvent)
Float_t CheckDeltaR(AliEmcalJet *p1, AliVParticle *p2) const
ClassDef(AliAnalysisTaskFlavourJetCorrelations, 7)
void FillHistogramsMCGenDJetCorr(Double_t z, Double_t ptD, Double_t ptjet, Double_t phij, Bool_t bDInEMCalAcc, Bool_t bJetInEMCalAcc)
void ConstituentCorrelationMethod(Bool_t IsBkg, AliAODEvent *aodEvent)
void FillHistogramsD0JetCorr(AliAODRecoDecayHF *candidate, Double_t z, Double_t ptD, Double_t ptj, Double_t phij, Bool_t IsBkg, Bool_t bDInEMCalAcc, Bool_t bJetInEMCalAcc, AliAODEvent *aodEvent)
Bool_t SetD0WidthForDStar(Int_t nptbins, Float_t *width)
void FillHistogramsDstarJetCorr(AliAODRecoCascadeHF *dstar, Double_t z, Double_t ptD, Double_t ptj, Double_t phij, Bool_t IsBkg, Bool_t bDInEMCalAcc, Bool_t bJetInEMCalAcc)
Container structure for EMCAL clusters.
Float_t DeltaR(AliEmcalJet *p1, AliVParticle *p2, Double_t rho) const
Int_t nptbins
TClonesArray * fSideBandArray
contains candidates selected by AliRDHFCuts
Bool_t fAnalyseDBkg
contains candidates selected by AliRDHFCuts::IsSelected(kTracks), to be used for side bands (DStar ca...