]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGHF/vertexingHF/AliVertexingHFUtils.h
Fix typo
[u/mrichter/AliRoot.git] / PWGHF / vertexingHF / AliVertexingHFUtils.h
CommitLineData
a6c5a2e9 1#ifndef ALIVERTEXINGHFUTILS_H
2#define ALIVERTEXINGHFUTILS_H
3
4
d947ea9c 5/* $Id$ */
a6c5a2e9 6
7///////////////////////////////////////////////////////////////////
8// //
9// Class with functions useful for different D2H analyses //
10// - event plane resolution //
11// - <pt> calculation with side band subtraction //
25504150 12// - tracklet multiplicity calculation //
a6c5a2e9 13// Origin: F.Prino, Torino, prino@to.infn.it //
14// //
15///////////////////////////////////////////////////////////////////
16
17#include "TObject.h"
b176db3b 18
19class AliAODMCParticle;
20class AliAODMCHeader;
21class TProfile;
22class TClonesArray;
23class TH1F;
24class TH2F;
25class TF1;
a6c5a2e9 26
27class AliVertexingHFUtils : public TObject{
28 public:
29 AliVertexingHFUtils();
30 AliVertexingHFUtils(Int_t k);
31 virtual ~AliVertexingHFUtils() {};
32
33 // Functions for Event plane resolution
34 void SetK(Int_t k){fK=k;}
35 void SetSubEvResol(Double_t res){fSubRes=res;}
36 void SetSubEventHisto(const TH1F* hSub){
37 fSubRes=GetSubEvResol(hSub);
38 }
39 Int_t GetK() const {return fK;}
40 Double_t GetSubEvResol() const {return fSubRes;}
41 Double_t Pol(Double_t x) const {return Pol(x,fK);}
42 Double_t FindChi() const {return FindChi(fSubRes,fK);}
43 Double_t GetFullEvResol() const {return GetFullEvResol(fSubRes,fK);}
44 static Double_t FindChi(Double_t res, Int_t k=1);
45 static Double_t Pol(Double_t x, Int_t k);
46 static Double_t ResolK1(Double_t x);
47 static Double_t GetSubEvResol(const TH1F* hSubEvCorr){
48 if(hSubEvCorr) return TMath::Sqrt(hSubEvCorr->GetMean());
49 else return 1.;
50 }
51 static Double_t GetSubEvResolLowLim(const TH1F* hSubEvCorr){
52 if(hSubEvCorr) return TMath::Sqrt(hSubEvCorr->GetMean()-hSubEvCorr->GetMeanError());
53 else return 1.;
54 }
55 static Double_t GetSubEvResolHighLim(const TH1F* hSubEvCorr){
56 if(hSubEvCorr) return TMath::Sqrt(hSubEvCorr->GetMean()+hSubEvCorr->GetMeanError());
57 else return 1.;
58 }
59 static Double_t GetFullEvResol(Double_t resSub, Int_t k=1);
60 static Double_t GetFullEvResol(const TH1F* hSubEvCorr, Int_t k=1);
61 static Double_t GetFullEvResolLowLim(const TH1F* hSubEvCorr, Int_t k=1);
62 static Double_t GetFullEvResolHighLim(const TH1F* hSubEvCorr, Int_t k=1);
63
64 // Functions for tracklet multiplcity calculation
65 void SetEtaRangeForTracklets(Double_t mineta, Double_t maxeta){
66 fMinEtaForTracklets=mineta;
67 fMaxEtaForTracklets=maxeta;
68 }
69 static Int_t GetNumberOfTrackletsInEtaRange(AliAODEvent* ev, Double_t mineta, Double_t maxeta);
70 Int_t GetNumberOfTrackletsInEtaRange(AliAODEvent* ev) const {
71 return GetNumberOfTrackletsInEtaRange(ev,fMinEtaForTracklets,fMaxEtaForTracklets);
72 }
25504150 73 static Int_t GetGeneratedMultiplicityInEtaRange(TClonesArray* arrayMC, Double_t mineta, Double_t maxeta);
74 static Int_t GetGeneratedPrimariesInEtaRange(TClonesArray* arrayMC, Double_t mineta, Double_t maxeta);
75 static Int_t GetGeneratedPhysicalPrimariesInEtaRange(TClonesArray* arrayMC, Double_t mineta, Double_t maxeta);
a6c5a2e9 76
86d84fa4 77 // Functions for computing average pt
78 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, Int_t rebin=4);
79
b176db3b 80 // Functions for computing true impact parameter of D meson
15917f37 81 static Double_t GetTrueImpactParameterDzero(AliAODMCHeader *mcHeader, TClonesArray* arrayMC, AliAODMCParticle *partDp);
b176db3b 82 static Double_t GetTrueImpactParameterDplus(AliAODMCHeader *mcHeader, TClonesArray* arrayMC, AliAODMCParticle *partDp);
83
686e4710 84 static Double_t GetCorrectedNtracklets(TProfile* estimatorAvg, Double_t uncorrectedNacc, Double_t vtxZ, Double_t refMult);
86d84fa4 85
a6c5a2e9 86 private:
87
88 Int_t fK; // ratio of measured harmonic to event plane harmonic
89 Double_t fSubRes; // sub-event resolution = sqrt(<cos[n(phiA-phiB)] >)
90 Double_t fMinEtaForTracklets; // min eta for counting tracklets
91 Double_t fMaxEtaForTracklets; // min eta for counting tracklets
92
93 ClassDef(AliVertexingHFUtils,0)
94};
95#endif