]>
Commit | Line | Data |
---|---|---|
a9f238cf | 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; | |
4539d15b | 37 | class AliPIDResponse; |
a9f238cf | 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); | |
4539d15b | 53 | //Bool_t EvaluateIfD0toKpi(AliAODMCParticle* neutralDaugh, Double_t* VectorD0)const; |
54 | Bool_t EvaluateIfCorrectNeutrDaugh(AliAODMCParticle* neutralDaugh, Double_t* VectorD0)const; | |
a9f238cf | 55 | |
2bf2e62b | 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 | ||
367e9aa3 | 61 | Double_t GetEtaProng(Int_t iProng)const; |
62 | Double_t GetPtProng(Int_t iProng) const; | |
63 | ||
4539d15b | 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 | ||
04c168b9 | 85 | void SetCutOnMomConservation(Float_t cut) {fCutOnMomConservation = cut;} |
86 | Bool_t GetCutOnMomConservation() const {return fCutOnMomConservation;} | |
87 | ||
a9f238cf | 88 | protected: |
89 | ||
90 | ||
91 | private: | |
92 | AliCFVertexingHFCascade(const AliCFVertexingHFCascade& c); | |
93 | AliCFVertexingHFCascade& operator= (const AliCFVertexingHFCascade& other); | |
4539d15b | 94 | |
95 | Int_t fPDGcascade; // pdg code of the cascade | |
96 | Int_t fPDGbachelor; // pdg code of the bachelor | |
97 | Int_t fPDGneutrDaugh; // pdg code of the V0 | |
98 | Int_t fPDGneutrDaughForMC; // pdg code of the V0 | |
99 | Int_t fPDGneutrDaughPositive; // pdg code of the positive daughter of the V0 | |
100 | Int_t fPDGneutrDaughNegative; // pdg code of the negative daughter of the V0 | |
101 | AliAODVertex* fPrimVtx; // primaryVertex | |
102 | Bool_t fUseCutsForTMVA; // flag to decide whether to use or not the preselection | |
103 | // cuts of the TMVA when filling the CF | |
04c168b9 | 104 | Float_t fCutOnMomConservation; // cut on momentum conservation |
4539d15b | 105 | |
04c168b9 | 106 | ClassDef(AliCFVertexingHFCascade,4); // CF class for D* and other cascades |
a9f238cf | 107 | |
108 | }; | |
109 | ||
110 | #endif |