AliPhysics  d565ceb (d565ceb)
AliAnalysisTaskSEB0toDminuspi.h
Go to the documentation of this file.
1 #ifndef ALIANALYSISTASKSEB0toDminuspi_H
2 #define ALIANALYSISTASKSEB0toDminuspi_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 
20 #include <TH2F.h>
21 #include <TH3F.h>
22 #include <THnSparse.h>
23 
24 #include "AliAnalysisTaskSE.h"
25 
28 
30 {
31 
32  public:
33 
37 
38  AliAODVertex* RecalculateVertex(const AliVVertex *old,TObjArray *tracks,Double_t bField);
39 
40  void SetCutsDistr(Bool_t cutsDistr=kTRUE){fCutsDistr=cutsDistr;}
41 
42  // Implementation of interface methods
43  virtual void UserCreateOutputObjects();
44  virtual void Init();
45  virtual void LocalInit() {Init();}
46  virtual void UserExec(Option_t *option);
47  virtual void Terminate(Option_t *option);
48 
49 
50  // histos
51  void FillSpectrum(Int_t nB0, Int_t* arrayMClabel, Double_t Bfield);
52  void DefineHistograms();
53 
54 
55  void SetUseBit(Bool_t dols=kTRUE){fUseBit=dols;}
59  void SetReadMC(Bool_t readMC=kTRUE){fReadMC=readMC;}
61 
63  void SetDpTCut(Double_t pTD){fpTD=pTD;}
64  void SetpipTCut(Double_t pTpi){fpTpi=pTpi;}
65  void Setprodd0Cut(Double_t prodd0){fprodd0=prodd0;}
66  void SetCosBCut(Double_t cosB){fcosB=cosB;}
67  void SetCosXYBCut(Double_t cosBXY){fcosBXY=cosBXY;}
68  void SetdlBCut(Double_t dlB){fdlB=dlB;}
69  void SetNdlXYBCut(Double_t NdlBXY){fNdlBXY=NdlBXY;}
70  void SetTopomaticD(Double_t TopomaticD){fTopomaticD=TopomaticD;}
71  void SetTopomaticpi(Double_t Topomaticpi){fTopomaticpi=Topomaticpi;}
72  void SetcosoaDpi(Double_t cosoaDpi){fcosoaDpi=cosoaDpi;}
73 
74  //to define the range of the D plus mass candidates to form a B meson
75 
76  void SetDplusMassLimit(Double_t DplusMassLowLimit,Double_t DplusMassUpLimit){
77  fDplusMassUpLimit=DplusMassUpLimit;
78  fDplusMassLowLimit=DplusMassLowLimit;}
79 
80  //range of the B meson invariant mass distributions
81  void SetBMassLimits(Float_t lowlimit, Float_t uplimit);
82  void SetBinWidth(Float_t w);
83 
84 
89 
90 
91  // void SetBMassLimitForHisto(Double_t BMassLowLimit,Double_t BMassUpLimit){
92  // fBMassLowLimit=BMassLowLimit;fBMassUpLimit=BMassUpLimit;}
93 
94 
95 
96 
97  private:
98 
101 
102  enum {kMaxPtBins=10};
103 
104 
105 
109 
111  std::vector<AliAODRecoDecayHF2Prong*> fArrayB0;
112 
113  // define the histograms
114  TH1F *fCEvents;
115  TH1F *fB0InvMass;
125  TH1F* fpiPt;
126  TH1F* fpiEta;
127  TH1F* fpiPhi;
128  TH1F* fDplusPt;
129  TH1F* fDplusEta;
130  TH1F* fDplusPhi;
135  TH1F* fBPt;
136  TH1F* fBEta;
137  TH1F* fBPhi;
138  TH1F* fBPointing;
139  TH1F* fBPointingXY;
142  TH1F* fDplusd0;
143  TH1F* fpid0;
144  TH1F* fproductd0;
155  TH1F* fBPt_MCmatch;
165 
166 
200 
201  TH1F* fd0MMExpD;
203  TH1F* fd0MMExppi;
213  TH1F* fcosoa;
215 
224 
226 
227 
232  Bool_t kbins = kTRUE;
235 
241 
242 
243 
255 
256 
257 
258  ClassDef(AliAnalysisTaskSEB0toDminuspi,2);
259 };
260 
261 #endif
262 
263 
TH1F * fDplusSigmaVert
!hist. for D sigma vertex (after cut)
TH1F * fDplusSigmaVertBin_MCmatch[kMaxPtBins]
!hist. for D sigma vertex (after cut) matched to B0 in MC in pT bins
TH1F * fBDecayLength_MCmatch
!hist. for B decay length (after cut) matched to B0 in MC
Double_t fTopomaticD
cut to applied on B selection: B norm decay length XY
TH1F * fDplusPhi_MCmatch
!hist. for D phi (after cut) matched to B0 in MC
Double_t fBMassUpLimit
BMassLowLimit for histo.
TH1F * fpid0_MCmatch
!hist. for pion d0 (after cut) matched to B0 in MC
TH1F * fBPhi_MCmatch
!hist. for B phi (after cut) matched to B0 in MC
TH1F * fDplusDecayLength_MCmatch
!hist. for D decay length (after cut) matched to B0 in MC
void SetDplusMassLimit(Double_t DplusMassLowLimit, Double_t DplusMassUpLimit)
TH1F * fBpTBin_MCmatch[kMaxPtBins]
!hist. for B pT (after cut) matched to B0 in MC in pT bins
TH1F * fBPt
!hist. for B Pt (after cut)
double Double_t
Definition: External.C:58
Double_t fTopomaticpi
cut to applied on B selection: D topomatic
TH1F * fDplusSigmaVert_MCmatch
!hist. for D sigma vertex (after cut) matched to B0 in MC
TH1F * fBInvMass_MCmatch
!hist. for B0 mass matched to B0 in MC
Definition: External.C:236
TH2F * fBDplusPt
!hist of B pT vs D pT
TList * fOutputBins
! User output for different pt bins
TH1F * fDplusInvMass_DplusMCmatch
!hist. for D+ mass matched to B0 in MC
TH1F * fDplusd0
!hist. for D d0 (after cut)
TH1F * fBNormalizedDecayLength
!hist. for B norm decay lengthXY (after cut)
TH1F * fd0MMExpDMCmatch
!hist. for D topomatic (after cut) matched to B0 in MC
TH1F * fDpluspTBin_MCmatch[kMaxPtBins]
!hist. for D pT (after cut) matched to B0 in MC in pT bins
TH1F * fDplusInvMassBin_PassCut1[kMaxPtBins]
!hist. for D mass after cut matched to B0 in MC in pT bins
TH1F * fBDecayLengthBin[kMaxPtBins]
!hist. for B decay length (after cut) in pT bins
TH1F * fDplusNormalizedDecayLengthBin[kMaxPtBins]
!hist. for D norm decay length XY (after cut) in pT bins
Double_t fpTpi
cut to applied on B selection: pT D
TH1F * fpiPt_MCmatch
!hist. for pi Pt (after cut) matched to B0 in MC
TH1F * fcosoa_MCmatch
!hist. for cos opening angle between D and pion (after cut) matched to B0 in MC
TH1F * fBDecayLengthBin_MCmatch[kMaxPtBins]
!hist. for B decay length (after cut) in pT bins
TH1F * fDplusPt
!hist. for D Pt (after cut)
char Char_t
Definition: External.C:18
void FillSpectrum(Int_t nB0, Int_t *arrayMClabel, Double_t Bfield)
TH1F * fDplusSigmaVertBin[kMaxPtBins]
!hist. for D sigma vertex (after cut) in pT bins
TH1F * fd0MMExpDDaughters
!hist. for D daughters topomatic (after cut)
TH1F * fDplusNormalizedDecayLength
!hist. for D norm decay lengthXY (after cut)
TH1F * fpiPhi_MCmatch
!hist. for pi phi (after cut) matched to B0 in MC
TH2F * fBDplusPtBin_MCmatch[kMaxPtBins]
!hist of B pT vs D pT matched to B0 in MC in pT bins
Float_t fBinWidth
BMassUpLimit for histo.
AliAODVertex * RecalculateVertex(const AliVVertex *old, TObjArray *tracks, Double_t bField)
TH1F * fd0MMExpDDaughtersBin[kMaxPtBins]
!hist. for D daughters topomatic (after cut) in pT bins
TH1F * fBpTBin[kMaxPtBins]
!hist. for B pT (after cut) in pT bins
TH1F * fBInvMass_MCmatch_PassCut1
!hist. for B0 mass after cut matched to B0 in MC
TH1F * fDplusDecayLength
!hist. for D decay length (after cut)
TH1F * fd0MMExppi
!hist. for pion topomatic (after cut)
TH1F * fpiPhi
!hist. for pion phi (after cut)
TH1F * fDplusPointingBin[kMaxPtBins]
!hist. for D cos pointing (after cut) in pT bins
Double_t fcosB
cut to applied on B selection: product d0
void SetBMassLimits(Float_t lowlimit, Float_t uplimit)
Double_t fdlB
cut to applied on B selection: B cos pointing XY
TH1F * fBPointing
!hist. for B cos poining (after cut)
TH1F * fB0InvMass_PassCut1
!hist. for B0 mass after cut
TH1F * fB0InvMassBin_MCmatch_PassCut1[kMaxPtBins]
!hist. for B0 mass after cut matched to B0 in MC in pT bins
TH1F * fBEta_MCmatch
!hist. for B eta (after cut) matched to B0 in MC
TH1F * fd0MMExpDDaughtersBin_MCmatch[kMaxPtBins]
!hist. for D daughters topomatic (after cut) matched to B0 in MC in pT bins
Class for cuts on AOD reconstructed D+->Kpipi.
TH1F * fBNormalizedDecayLengthBin[kMaxPtBins]
!hist. for B norm decay length XY (after cut) in pT bins
TH1F * fB0InvMassBin_MCmatch[kMaxPtBins]
!hist. for B0 mass matched to B0 in MC in pT bins
TH1F * fBNormalizedDecayLengthBin_MCmatch[kMaxPtBins]
!hist. for B norm decay length XY (after cut) in pT bins
int Int_t
Definition: External.C:63
TH1F * fDplusEta_MCmatch
!hist. for D eta (after cut) matched to B0 in MC
TH1F * fd0MMExpDDaughters_MCmatch
!hist. for D daughters topomatic (after cut) matched to B0 in MC
float Float_t
Definition: External.C:68
TH1F * fDplusPt_MCmatch
!hist. for D pT (after cut) matched to B0 in MC
TH1F * fd0MMExppiBin_MCmatch[kMaxPtBins]
!hist. for pion topomatic (after cut) matched to B0 in MC in pT bins
void SetCutsDistr(Bool_t cutsDistr=kTRUE)
TH1F * fB0InvMassBin_PassCut1[kMaxPtBins]
!hist. for B0 mass after cut in pT bins
Int_t fEvents
Counter for normalization slot.
TH1F * fpiEta_MCmatch
!hist. for pi eta (after cut) matched to B0 in MC
TH1F * fd0MMExppiMCmatch
!hist. for pion topomatic (after cut) matched to B0 in MC
void SetTopomaticpi(Double_t Topomaticpi)
Double_t fDplusMassUpLimit
DplusMassLowLimit to select D.
TH1F * fproductd0
!hist. for d0 product (after cut)
TH1F * fDplusPointing_MCmatch
!hist. for D cos pointing (after cut) matched to B0 in MC
TH1F * fpiPt
!hist. for pion Pt (after cut)
TH1F * fBPointingXYBin[kMaxPtBins]
!hist. for B cos pointing XY (after cut) in pT bins
TH1F * fDplusInvMassBin[kMaxPtBins]
!hist. for D+ mass in pT bins
TH2F * fBDplusPt_MCmatch
!hist of B pT vs D pT matched to B0 in MC
TH1F * fDplusPhi
!hist. for D phi (after cut)
TH1F * fd0MMExppiBin[kMaxPtBins]
!hist. for pion topomatic (after cut) in pT bins
TH1F * fDplusPointing
!hist. for D cos pointing (after cut)
TH1F * fDplusNormalizedDecayLength_MCmatch
!hist. for D norm dec length XY(after cut) matched to B0 in MC
TH1F * fDpluspTBin[kMaxPtBins]
!hist. for D pT (after cut) in pT bins
TH1F * fB0InvMassBinMinusD_PassCut1[kMaxPtBins]
!hist. for B0minusD mass after cut in MC in pT bins
TH1F * fBPointingBin_MCmatch[kMaxPtBins]
!hist. for B cos pointnig (after cut) matched to B0 in MC in pT bins
virtual void Terminate(Option_t *option)
TH1F * fd0MMExpDBin_MCmatch[kMaxPtBins]
!hist. for D topomatic (after cut) matched to B0 in MC in pT bins
TH1F * fDplusDecayLengthBin[kMaxPtBins]
!hist. for D decay length (after cut) in pT bins
TH1F * fBEta
!hist. for B eta (after cut)
Bool_t fCutsDistr
flag for quark/hadron level identification of prompt and feeddown
TH1F * fDplusInvMassBin_MCmatch[kMaxPtBins]
!hist. for D+ mass matched to B0 in MC in pT bins
std::vector< AliAODRecoDecayHF2Prong * > fArrayB0
Cuts for Analysis.
TH2F * fBpiPtBin[kMaxPtBins]
!hist of B pT vs pion pT in pT bins
TH1F * fd0MMExpDBin[kMaxPtBins]
!hist. for D topomatic (after cut) in pT bins
Double_t fDplusMassLowLimit
flag to activate cuts distr histos
AliAnalysisTaskSEB0toDminuspi & operator=(const AliAnalysisTaskSEB0toDminuspi &source)
TH2F * fBpiPt
!hist of B pT vs pion pT
virtual void UserExec(Option_t *option)
TH1F * fDplusd0Bin_MCmatch[kMaxPtBins]
!hist. for D d0 (after cut) matched to B0 in MC in pT bins
Double_t fprodd0
cut to applied on B selection: pT pion
TH1F * fDplusDecayLengthBin_MCmatch[kMaxPtBins]
!hist. for D decay length (after cut) matched to B0 in MC in pT bins
TH1F * fDplusPointingBin_MCmatch[kMaxPtBins]
!hist. for D pointing (after cut) matched to B0 in MC in pT bins
TH1F * fBNormalizedDecayLength_MCmatch
!hist. for B norm dec length XY (after cut) matched to B0 in MC
TH1F * fB0InvMassMinusD_PassCut1
!hist. for B0minusD mass after cut
TH2F * fBpiPt_MCmatch
!hist of B pT vs pion pT matched to B0 in MC
TH1F * fBPt_MCmatch
!hist. for B pt (after cut) matched to B0 in MC
TH1F * fDplusd0_MCmatch
!hist. for D d0 (after cut) matched to B0 in MC
TH2F * fBpiPtBin_MCmatch[kMaxPtBins]
!hist of B pT vs pion pT matched to B0 in MC in pT bins
TH1F * fDplusNormalizedDecayLengthBin_MCmatch[kMaxPtBins]
!hist. for D norm dec length XY (after cut) matched to B0 in MC in pT bins
TH1F * fpid0
!hist. for pion d0 (after cut)
Double_t fInvertedTopomaticCutOnDDaughters
width of one bin in B mass output histos
Double_t fBMassLowLimit
DplusMassUpLimit to select D.
TH1F * fBPointing_MCmatch
!hist. for B pointing (after cut) matched to B0 in MC
TH1F * fB0InvMassBinMinusD_MCmatch_PassCut1[kMaxPtBins]
!hist. for B0minusD mass after cut matched to B0 in MC in pT bins
TH1F * fBPointingXY
!hist. for B cos poining XY (after cut)
TH1F * fDplusEta
!hist. for D eta (after cut)
TH1F * fproductd0_MCmatch
!hist. for d0 product (after cut) matched to B0 in MC
TH1F * fBPointingXY_MCmatch
!hist. for B pointing XY (after cut) matched to B0 in MC
TH1F * fproductd0Bin_MCmatch[kMaxPtBins]
!hist. for product d0 (after cut) matched to B0 in MC in pT bins
Bool_t fUseQuarkTagInKine
flag to add histo in pT bins
TH1F * fB0InvMassBin[kMaxPtBins]
!hist. for B0 mass in pT bins
const char Option_t
Definition: External.C:48
Double_t fcosBXY
cut to applied on B selection: B cos pointing
TH1F * fDplusInvMass_MCmatch
!hist. for (after cut) matched to B0 in MC
Double_t fcosoaDpi
cut to applied on B selection: pion topomatic
TH2F * fBDplusPtBin[kMaxPtBins]
!hist of B pT vs D pT in pT bins
TH1F * fBPhi
!hist. for B phi (after cut)
Double_t fpTD
only candidates with a minimum topomatic of fUseInvertedTopomaticCutOnDDaughters are considered ...
Double_t fNdlBXY
cut to applied on B selection: B decay length
bool Bool_t
Definition: External.C:53
TH1F * fproductd0Bin[kMaxPtBins]
!hist. for d0 product (after cut) in pT bins
TH1F * fd0MMExpD
!hist. for D topomatic (after cut)
TH1F * fB0InvMassMinusD_MCmatch_PassCut1
!hist. for B0minusD mass after cut matched to B0 in MC
TH1F * fBPointingBin[kMaxPtBins]
!hist. for B cos pointing (after cut) in pT bins
void SetTopomaticCutOnDDaughters(Double_t TopoCut)
TH1F * fCEvents
!hist. for No. of events
TH1F * fDplusInvMass_PassCut1
!hist. for D+ mass after cut
TH1F * fcosoa
!hist. for cos opening angle between D and pion (after cut)
TH1F * fDplusd0Bin[kMaxPtBins]
!hist. for D d0 (after cut) in pT bins
Bool_t fReadMC
eta region to accept D+ 0=all, -1 = negative, 1 = positive
TH1F * fBPointingXYBin_MCmatch[kMaxPtBins]
!hist. for B cos pointnig XY (after cut) matched to B0 in MC in pT bins
TH1F * fpiEta
!hist. for pion eta (after cut)
TH1F * fBDecayLength
!hist. for B decay length (after cut)