]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGHF/vertexingHF/AliVertexingHFUtils.h
New methods for tagging decay channels
[u/mrichter/AliRoot.git] / PWGHF / vertexingHF / AliVertexingHFUtils.h
index 33f6d043513984bcb88ef2abddb70ebdb085a984..d0d74012882bad76b392d27c3e9c094dee9b69e0 100644 (file)
@@ -2,7 +2,7 @@
 #define ALIVERTEXINGHFUTILS_H
 
 
-/* $Id:  $ */
+/* $Id$ */
 
 ///////////////////////////////////////////////////////////////////
 //                                                               //
 ///////////////////////////////////////////////////////////////////
 
 #include "TObject.h"
-#include "TH1F.h"
-#include "TH2F.h"
-#include "TF1.h"
+#include "AliAODTrack.h"
+#include "AliAODRecoDecay.h"
+#include "AliAODRecoDecayHF.h"
+
+class AliAODMCParticle;
+class AliAODMCHeader;
+class AliGenEventHeader;
+class AliAODEvent;
+class TProfile;
+class TClonesArray;
+class TH1F;
+class TH2F;
+class TF1;
 
 class AliVertexingHFUtils : public TObject{
  public:
@@ -25,6 +35,9 @@ class AliVertexingHFUtils : public TObject{
   AliVertexingHFUtils(Int_t k);
   virtual ~AliVertexingHFUtils() {};
 
+  // Significance calculator
+  static void ComputeSignificance(Double_t signal, Double_t  errsignal, Double_t  background, Double_t  errbackground, Double_t &significance,Double_t &errsignificance);
+
   // Functions for Event plane resolution
   void SetK(Int_t k){fK=k;}
   void SetSubEvResol(Double_t res){fSubRes=res;}
@@ -55,7 +68,10 @@ class AliVertexingHFUtils : public TObject{
   static Double_t GetFullEvResol(const TH1F* hSubEvCorr, Int_t k=1);
   static Double_t GetFullEvResolLowLim(const TH1F* hSubEvCorr, Int_t k=1);
   static Double_t GetFullEvResolHighLim(const TH1F* hSubEvCorr, Int_t k=1);
-
+  static TString  GetGenerator(Int_t label, AliAODMCHeader* header); 
+  Bool_t IsTrackInjected(AliAODTrack *track,AliAODMCHeader *header,TClonesArray *arrayMC);
+  void GetTrackPrimaryGenerator(AliAODTrack *track,AliAODMCHeader *header,TClonesArray *arrayMC,TString &nameGen);
+  Bool_t IsCandidateInjected(AliAODRecoDecayHF *cand, AliAODMCHeader *header,TClonesArray *arrayMC);
   // Functions for tracklet multiplcity calculation
   void SetEtaRangeForTracklets(Double_t mineta, Double_t maxeta){
     fMinEtaForTracklets=mineta; 
@@ -70,8 +86,17 @@ class AliVertexingHFUtils : public TObject{
   static Int_t GetGeneratedPhysicalPrimariesInEtaRange(TClonesArray* arrayMC, Double_t mineta, Double_t maxeta);
 
   // Functions for computing average pt 
-  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);
+  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 true impact parameter of D meson
+  static Double_t GetTrueImpactParameterDzero(AliAODMCHeader *mcHeader, TClonesArray* arrayMC, AliAODMCParticle *partDp);
+  static Double_t GetTrueImpactParameterDplus(AliAODMCHeader *mcHeader, TClonesArray* arrayMC, AliAODMCParticle *partDp);
+
+  static Double_t GetCorrectedNtracklets(TProfile* estimatorAvg, Double_t uncorrectedNacc, Double_t vtxZ, Double_t refMult);
 
+  static Int_t CheckOrigin(TClonesArray* arrayMC, AliAODMCParticle *mcPart, Bool_t searchUpToQuark=kTRUE);
+  static Int_t CheckD0Decay(TClonesArray* arrayMC, AliAODMCParticle *mcPart, Int_t* arrayDauLab);
+  static Int_t CheckDplusDecay(TClonesArray* arrayMC, AliAODMCParticle *mcPart, Int_t* arrayDauLab);
 
  private: