]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGHF/vertexingHF/AliCFVertexingHFCascade.h
Cmake for new lhapdf version
[u/mrichter/AliRoot.git] / PWGHF / vertexingHF / AliCFVertexingHFCascade.h
1 #ifndef ALICFVERTEXINGHFCASCADE_H
2 #define ALICFVERTEXINGHFCASCADE_H
3
4 /**************************************************************************
5  * Copyright(c) 1998-2011, ALICE Experiment at CERN, All rights reserved. *
6  *                                                                        *
7  * Author: The ALICE Off-line Project.                                    *
8  * Contributors are mentioned in the code where appropriate.              *
9  *                                                                        *
10  * Permission to use, copy, modify and distribute this software and its   *
11  * documentation strictly for non-commercial purposes is hereby granted   *
12  * without fee, provided that the above copyright notice appears in all   *
13  * copies and that both the copyright notice and this permission notice   *
14  * appear in the supporting documentation. The authors make no claims     *
15  * about the suitability of this software for any purpose. It is          *
16  * provided "as is" without express or implied warranty.                  *
17  **************************************************************************/
18
19 //-----------------------------------------------------------------------
20 // Class for HF corrections as a function of many variables and steps
21 // For D* and other cascades
22 // 
23 // Author : A.GRELLI - a.grelli@uu.nl UTRECHT
24 //-----------------------------------------------------------------------
25
26
27 #include "AliCFVertexingHF.h"
28 #include "AliAODRecoDecayHF.h"
29 #include "AliAODRecoCascadeHF.h"
30 #include "AliAODRecoDecayHF2Prong.h"
31
32 class AliAODMCParticle;
33 class TClonesArray;
34 class AliCFVertexingHF;
35 class AliESDtrack;
36 class TDatabasePDG;
37 class AliPIDResponse;
38
39 class AliCFVertexingHFCascade : public AliCFVertexingHF{
40  public:
41                 
42   AliCFVertexingHFCascade(){};
43   AliCFVertexingHFCascade(TClonesArray *mcArray, UShort_t originDselection);
44         
45   //virtual ~AliCFVertexingHFCascade(){};
46   
47   
48   Bool_t GetGeneratedValuesFromMCParticle(Double_t* /*vectorMC*/);
49   Bool_t GetRecoValuesFromCandidate(Double_t* /*vectorReco*/ ) const;
50   Bool_t CheckMCChannelDecay()const;
51   
52   Bool_t SetRecoCandidateParam(AliAODRecoDecayHF *recoCand);
53   //Bool_t EvaluateIfD0toKpi(AliAODMCParticle* neutralDaugh, Double_t* VectorD0)const;
54   Bool_t EvaluateIfCorrectNeutrDaugh(AliAODMCParticle* neutralDaugh, Double_t* VectorD0)const;
55
56   void SetPtAccCut(Float_t* ptAccCut);
57   void SetEtaAccCut(Float_t* etaAccCut);
58   void SetAccCut(Float_t* ptAccCut, Float_t* etaAccCut);
59   void SetAccCut();
60
61   Double_t GetEtaProng(Int_t iProng)const;
62   Double_t GetPtProng(Int_t iProng) const;
63
64   void SetPDGcascade(Int_t pdg)    {fPDGcascade = pdg;}
65   void SetPDGbachelor(Int_t pdg)   {fPDGbachelor = pdg;}
66   void SetPDGneutrDaugh(Int_t pdg)         {fPDGneutrDaugh = pdg;}
67   void SetPDGneutrDaughForMC(Int_t pdg)         {fPDGneutrDaughForMC = pdg;}
68   void SetPDGneutrDaughPositive(Int_t pdg) {fPDGneutrDaughPositive = pdg;}
69   void SetPDGneutrDaughNegative(Int_t pdg) {fPDGneutrDaughNegative = pdg;}
70   void SetPrimaryVertex(AliAODVertex* vtx) {fPrimVtx = vtx;}
71
72   Int_t GetPDGcascade()    const {return fPDGcascade;}
73   Int_t GetPDGbachelor()   const {return fPDGbachelor;}
74   Int_t GetPDGneutrDaugh()         const {return fPDGneutrDaugh;}
75   Int_t GetPDGneutrDaughForMC()         const {return fPDGneutrDaughForMC;}
76   Int_t GetPDGneutrDaughPositive() const {return fPDGneutrDaughPositive;}
77   Int_t GetPDGneutrDaughNegative() const {return fPDGneutrDaughNegative;}
78   AliAODVertex* GetPrimaryVertex() const {return fPrimVtx;}
79
80   Bool_t CheckAdditionalCuts(AliPIDResponse* pidResponse) const;
81
82   void SetUseCutsForTMVA(Bool_t useCutsForTMVA) {fUseCutsForTMVA = useCutsForTMVA;}
83   Bool_t GetUseCutsForTMVA() const {return fUseCutsForTMVA;}
84
85  protected:
86   
87   
88  private:       
89   AliCFVertexingHFCascade(const AliCFVertexingHFCascade& c);
90   AliCFVertexingHFCascade& operator= (const AliCFVertexingHFCascade& other);
91
92   Int_t fPDGcascade;   // pdg code of the cascade
93   Int_t fPDGbachelor;  // pdg code of the bachelor
94   Int_t fPDGneutrDaugh;        // pdg code of the V0
95   Int_t fPDGneutrDaughForMC;        // pdg code of the V0
96   Int_t fPDGneutrDaughPositive;  // pdg code of the positive daughter of the V0
97   Int_t fPDGneutrDaughNegative;  // pdg code of the negative daughter of the V0
98   AliAODVertex* fPrimVtx;        // primaryVertex
99   Bool_t fUseCutsForTMVA;        // flag to decide whether to use or not the preselection
100                                  // cuts of the TMVA when filling the CF
101
102   ClassDef(AliCFVertexingHFCascade, 3); // CF class for D* and other cascades
103   
104 };
105
106 #endif