AliPhysics  vAN-20150924 (e816f45)
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Macros
AliVertexingHFUtils.h
Go to the documentation of this file.
1 #ifndef ALIVERTEXINGHFUTILS_H
2 #define ALIVERTEXINGHFUTILS_H
3 
4 
5 /* $Id$ */
6 
17 
18 #include "TObject.h"
19 #include "AliAODTrack.h"
20 #include "AliAODRecoDecay.h"
21 #include "AliAODRecoDecayHF.h"
22 #include "AliAODRecoCascadeHF.h"
23 
24 class AliStack;
25 class AliAODMCParticle;
26 class AliAODMCHeader;
27 class AliGenEventHeader;
28 class AliAODEvent;
29 class TProfile;
30 class TParticle;
31 class TClonesArray;
32 class TH1F;
33 class TH2F;
34 class TF1;
35 
36 class AliVertexingHFUtils : public TObject{
37  public:
39  AliVertexingHFUtils(Int_t k);
40  virtual ~AliVertexingHFUtils() {};
41 
43  static void ComputeSignificance(Double_t signal, Double_t errsignal, Double_t background, Double_t errbackground, Double_t &significance,Double_t &errsignificance);
44 
46  void SetK(Int_t k){fK=k;}
47  void SetSubEvResol(Double_t res){fSubRes=res;}
48  void SetSubEventHisto(const TH1F* hSub){
49  fSubRes=GetSubEvResol(hSub);
50  }
51  Int_t GetK() const {return fK;}
52  Double_t GetSubEvResol() const {return fSubRes;}
53  Double_t Pol(Double_t x) const {return Pol(x,fK);}
54  Double_t FindChi() const {return FindChi(fSubRes,fK);}
55  Double_t GetFullEvResol() const {return GetFullEvResol(fSubRes,fK);}
56  static Double_t FindChi(Double_t res, Int_t k=1);
57  static Double_t Pol(Double_t x, Int_t k);
58  static Double_t ResolK1(Double_t x);
59  static Double_t GetSubEvResol(const TH1F* hSubEvCorr){
60  if(hSubEvCorr) return TMath::Sqrt(hSubEvCorr->GetMean());
61  else return 1.;
62  }
63  static Double_t GetSubEvResolLowLim(const TH1F* hSubEvCorr){
64  if(hSubEvCorr) return TMath::Sqrt(hSubEvCorr->GetMean()-hSubEvCorr->GetMeanError());
65  else return 1.;
66  }
67  static Double_t GetSubEvResolHighLim(const TH1F* hSubEvCorr){
68  if(hSubEvCorr) return TMath::Sqrt(hSubEvCorr->GetMean()+hSubEvCorr->GetMeanError());
69  else return 1.;
70  }
71  static Double_t GetFullEvResol(Double_t resSub, Int_t k=1);
72  static Double_t GetFullEvResol(const TH1F* hSubEvCorr, Int_t k=1);
73  static Double_t GetFullEvResolLowLim(const TH1F* hSubEvCorr, Int_t k=1);
74  static Double_t GetFullEvResolHighLim(const TH1F* hSubEvCorr, Int_t k=1);
75  static TString GetGenerator(Int_t label, AliAODMCHeader* header);
76  Bool_t IsTrackInjected(AliAODTrack *track,AliAODMCHeader *header,TClonesArray *arrayMC);
77  void GetTrackPrimaryGenerator(AliAODTrack *track,AliAODMCHeader *header,TClonesArray *arrayMC,TString &nameGen);
78  Bool_t IsCandidateInjected(AliAODRecoDecayHF *cand, AliAODMCHeader *header,TClonesArray *arrayMC);
79  Bool_t HasCascadeCandidateAnyDaughInjected(AliAODRecoCascadeHF *cand, AliAODMCHeader *header,TClonesArray *arrayMC);
81  void SetEtaRangeForTracklets(Double_t mineta, Double_t maxeta){
82  fMinEtaForTracklets=mineta;
83  fMaxEtaForTracklets=maxeta;
84  }
85  static Int_t GetNumberOfTrackletsInEtaRange(AliAODEvent* ev, Double_t mineta, Double_t maxeta);
86  Int_t GetNumberOfTrackletsInEtaRange(AliAODEvent* ev) const {
88  }
89  static Int_t GetGeneratedMultiplicityInEtaRange(TClonesArray* arrayMC, Double_t mineta, Double_t maxeta);
90  static Int_t GetGeneratedPrimariesInEtaRange(TClonesArray* arrayMC, Double_t mineta, Double_t maxeta);
91  static Int_t GetGeneratedPhysicalPrimariesInEtaRange(TClonesArray* arrayMC, Double_t mineta, Double_t maxeta);
92 
94  static Double_t GetVZEROAEqualizedMultiplicity(AliAODEvent* ev);
95  static Double_t GetVZEROCEqualizedMultiplicity(AliAODEvent* ev);
96 
98  static void AveragePt(Float_t& averagePt, Float_t& errorPt, Float_t ptmin, Float_t ptmax, TH2F* hMassD, Float_t massFromFit, Float_t sigmaFromFit, TF1* funcB2, Float_t sigmaRangeForSig=2.5, Float_t sigmaRangeForBkg=4.5, Float_t minMass=0., Float_t maxMass=3., Int_t rebin=1);
99 
101  static Bool_t CheckT0TriggerFired(AliAODEvent* aodEv);
102 
104  static Double_t GetTrueImpactParameterDzero(AliAODMCHeader *mcHeader, TClonesArray* arrayMC, AliAODMCParticle *partDp);
105  static Double_t GetTrueImpactParameterDplus(AliAODMCHeader *mcHeader, TClonesArray* arrayMC, AliAODMCParticle *partDp);
106 
107  static Double_t GetCorrectedNtracklets(TProfile* estimatorAvg, Double_t uncorrectedNacc, Double_t vtxZ, Double_t refMult);
108 
109  static Int_t CheckOrigin(TClonesArray* arrayMC, AliAODMCParticle *mcPart, Bool_t searchUpToQuark=kTRUE);
110  static Int_t CheckOrigin(AliStack* stack, TParticle *mcPart, Bool_t searchUpToQuark=kTRUE);
111  static Double_t GetBeautyMotherPt(TClonesArray* arrayMC, AliAODMCParticle *mcPart);
112  static Int_t CheckD0Decay(AliStack* stack, Int_t label, Int_t* arrayDauLab);
113  static Int_t CheckD0Decay(TClonesArray* arrayMC, AliAODMCParticle *mcPart, Int_t* arrayDauLab);
114  static Int_t CheckDplusDecay(AliStack* stack, Int_t label, Int_t* arrayDauLab);
115  static Int_t CheckDplusDecay(TClonesArray* arrayMC, AliAODMCParticle *mcPart, Int_t* arrayDauLab);
116  static Int_t CheckDplusKKpiDecay(AliStack* stack, Int_t label, Int_t* arrayDauLab);
117  static Int_t CheckDplusK0spiDecay(AliStack* stack, Int_t label, Int_t* arrayDauLab);
118  static Int_t CheckDsDecay(AliStack* stack, Int_t label, Int_t* arrayDauLab);
119  static Int_t CheckDsDecay(TClonesArray* arrayMC, AliAODMCParticle *mcPart, Int_t* arrayDauLab);
120  static Int_t CheckDsK0sKDecay(AliStack* stack, Int_t label, Int_t* arrayDauLab);
121  static Int_t CheckDstarDecay(AliStack* stack, Int_t label, Int_t* arrayDauLab);
122  static Int_t CheckDstarDecay(TClonesArray* arrayMC, AliAODMCParticle *mcPart, Int_t* arrayDauLab);
123  static Int_t CheckLcpKpiDecay(AliStack* stack, Int_t label, Int_t* arrayDauLab);
124  static Int_t CheckLcV0bachelorDecay(AliStack* stack, Int_t label, Int_t* arrayDauLab);
125  static Int_t CheckXicXipipiDecay(AliStack* stack, Int_t label, Int_t* arrayDauLab);
126 
127  private:
128 
129  Int_t fK;
130  Double_t fSubRes;
133 
135  ClassDef(AliVertexingHFUtils,0);
137 };
138 #endif
static void AveragePt(Float_t &averagePt, Float_t &errorPt, Float_t ptmin, Float_t ptmax, TH2F *hMassD, Float_t massFromFit, Float_t sigmaFromFit, TF1 *funcB2, Float_t sigmaRangeForSig=2.5, Float_t sigmaRangeForBkg=4.5, Float_t minMass=0., Float_t maxMass=3., Int_t rebin=1)
Functions for computing average pt.
static Int_t CheckDplusDecay(AliStack *stack, Int_t label, Int_t *arrayDauLab)
void SetSubEventHisto(const TH1F *hSub)
static Int_t CheckDstarDecay(AliStack *stack, Int_t label, Int_t *arrayDauLab)
static TString GetGenerator(Int_t label, AliAODMCHeader *header)
static Int_t CheckDsDecay(AliStack *stack, Int_t label, Int_t *arrayDauLab)
Int_t GetNumberOfTrackletsInEtaRange(AliAODEvent *ev) const
Double_t Pol(Double_t x) const
static Int_t CheckLcpKpiDecay(AliStack *stack, Int_t label, Int_t *arrayDauLab)
static Double_t GetFullEvResolLowLim(const TH1F *hSubEvCorr, Int_t k=1)
void SetK(Int_t k)
Functions for Event plane resolution.
static Int_t CheckOrigin(TClonesArray *arrayMC, AliAODMCParticle *mcPart, Bool_t searchUpToQuark=kTRUE)
void GetTrackPrimaryGenerator(AliAODTrack *track, AliAODMCHeader *header, TClonesArray *arrayMC, TString &nameGen)
Double_t fMinEtaForTracklets
sub-event resolution = sqrt(<cos[n(phiA-phiB)] >)
Double_t fSubRes
ratio of measured harmonic to event plane harmonic
static Int_t CheckXicXipipiDecay(AliStack *stack, Int_t label, Int_t *arrayDauLab)
Double_t fMaxEtaForTracklets
min eta for counting tracklets
static Double_t GetVZEROCEqualizedMultiplicity(AliAODEvent *ev)
static Int_t CheckLcV0bachelorDecay(AliStack *stack, Int_t label, Int_t *arrayDauLab)
static Double_t GetFullEvResolHighLim(const TH1F *hSubEvCorr, Int_t k=1)
static Double_t ResolK1(Double_t x)
static Int_t GetNumberOfTrackletsInEtaRange(AliAODEvent *ev, Double_t mineta, Double_t maxeta)
Double_t GetFullEvResol() const
const Double_t ptmax
static Bool_t CheckT0TriggerFired(AliAODEvent *aodEv)
Functions for processing trigger information.
static Int_t CheckD0Decay(AliStack *stack, Int_t label, Int_t *arrayDauLab)
static Int_t CheckDsK0sKDecay(AliStack *stack, Int_t label, Int_t *arrayDauLab)
static Double_t GetSubEvResolLowLim(const TH1F *hSubEvCorr)
const Double_t ptmin
static Int_t CheckDplusKKpiDecay(AliStack *stack, Int_t label, Int_t *arrayDauLab)
Bool_t HasCascadeCandidateAnyDaughInjected(AliAODRecoCascadeHF *cand, AliAODMCHeader *header, TClonesArray *arrayMC)
Bool_t IsCandidateInjected(AliAODRecoDecayHF *cand, AliAODMCHeader *header, TClonesArray *arrayMC)
static Double_t GetSubEvResol(const TH1F *hSubEvCorr)
static Int_t CheckDplusK0spiDecay(AliStack *stack, Int_t label, Int_t *arrayDauLab)
static Double_t GetBeautyMotherPt(TClonesArray *arrayMC, AliAODMCParticle *mcPart)
static void ComputeSignificance(Double_t signal, Double_t errsignal, Double_t background, Double_t errbackground, Double_t &significance, Double_t &errsignificance)
Significance calculator.
static Double_t GetCorrectedNtracklets(TProfile *estimatorAvg, Double_t uncorrectedNacc, Double_t vtxZ, Double_t refMult)
void SetSubEvResol(Double_t res)
Double_t GetSubEvResol() const
Bool_t IsTrackInjected(AliAODTrack *track, AliAODMCHeader *header, TClonesArray *arrayMC)
Double_t minMass
Double_t FindChi() const
Int_t rebin
static Int_t GetGeneratedPhysicalPrimariesInEtaRange(TClonesArray *arrayMC, Double_t mineta, Double_t maxeta)
static Double_t GetVZEROAEqualizedMultiplicity(AliAODEvent *ev)
Utilities for V0 multiplicity checks.
static Double_t GetTrueImpactParameterDzero(AliAODMCHeader *mcHeader, TClonesArray *arrayMC, AliAODMCParticle *partDp)
Functions for computing true impact parameter of D meson.
Double_t maxMass
void SetEtaRangeForTracklets(Double_t mineta, Double_t maxeta)
Functions for tracklet multiplcity calculation.
static Double_t GetSubEvResolHighLim(const TH1F *hSubEvCorr)
static Double_t GetTrueImpactParameterDplus(AliAODMCHeader *mcHeader, TClonesArray *arrayMC, AliAODMCParticle *partDp)
static Int_t GetGeneratedMultiplicityInEtaRange(TClonesArray *arrayMC, Double_t mineta, Double_t maxeta)
static Int_t GetGeneratedPrimariesInEtaRange(TClonesArray *arrayMC, Double_t mineta, Double_t maxeta)
Class with functions useful for different D2H analyses //.