AliPhysics  31210d0 (31210d0)
AliCFVertexingHF.h
Go to the documentation of this file.
1 #ifndef ALICFVERTEXINGHF_H
2 #define ALICFVERTEXINGHF_H
3 
4 
5 /**************************************************************************
6  * Copyright(c) 1998-2009, ALICE Experiment at CERN, All rights reserved. *
7  * *
8  * Author: The ALICE Off-line Project. *
9  * Contributors are mentioned in the code where appropriate. *
10  * *
11  * Permission to use, copy, modify and distribute this software and its *
12  * documentation strictly for non-commercial purposes is hereby granted *
13  * without fee, provided that the above copyright notice appears in all *
14  * copies and that both the copyright notice and this permission notice *
15  * appear in the supporting documentation. The authors make no claims *
16  * about the suitability of this software for any purpose. It is *
17  * provided "as is" without express or implied warranty. *
18  **************************************************************************/
19 
20 //-----------------------------------------------------------------------
26 //-----------------------------------------------------------------------
27 
28 #include "AliCFContainer.h"
29 #include "AliAODRecoDecayHF.h"
30 
31 class TH1I;
32 class TParticle ;
33 class TFile ;
34 class TClonesArray ;
35 class AliAODMCParticle;
36 class AliAODMCHeader;
37 class AliAODEvent;
38 class THnSparse;
39 class TClonesArray;
40 class AliESDtrackCuts;
41 
42 
43 
44 class AliCFVertexingHF : public TObject {
45  public:
46 
48 
50  AliCFVertexingHF(TClonesArray *mcArray, UShort_t originDselection);
53 
54  virtual ~AliCFVertexingHF();
55 
56  virtual Bool_t GetGeneratedValuesFromMCParticle(Double_t* /*vectorMC*/) {return kFALSE;}
57  virtual Bool_t GetRecoValuesFromCandidate(Double_t* /*vectorReco*/) const {return kFALSE;}
58  virtual Bool_t CheckMCChannelDecay() const {return kFALSE;}
59  virtual Bool_t SetRecoCandidateParam(AliAODRecoDecayHF* /*recoCand*/) {return kFALSE;}
60 
61  virtual void SetDecay3Prong(Int_t /*decay*/){};
62 
65 
66  void SetNVar(Int_t nVar) {fNVar = nVar;}
67 
68  void SetRecoPrimVertex (Double_t zPrimVertex) {fzPrimVertex = zPrimVertex;}
69  void SetMCPrimaryVertex (Double_t zMCVertex){fzMCVertex = zMCVertex;}
70  void SetMCLabel (Int_t mcLabel) {fmcLabel = mcLabel;}
71  Int_t GetMCLabel () const {return fmcLabel;}
72 
73  void SetMCCandidateParam(Int_t label);
74 
75  Int_t MCcquarkCounting(AliAODMCParticle* mcPart) const;
76  Bool_t CheckMCPartFamily(AliAODMCParticle */*mcPart*/, TClonesArray */*mcArray*/) const;
77  // Int_t CheckOrigin(AliAODMCParticle* mcPart) const;
78  Int_t CheckOrigin() const;
79  Bool_t CheckMCDaughters() const;
80  Bool_t FillMCContainer(Double_t *containerInputMC);
81  Bool_t FillRecoContainer(Double_t *containerInput);
82  Bool_t MCAcceptanceStep() const;
83  Bool_t MCRefitStep(AliAODEvent *aodEvent, AliESDtrackCuts **trackCuts) const;
84  Bool_t RecoStep();
85 
86  virtual Double_t GetEtaProng(Int_t iProng) const;
87  virtual Double_t GetPtProng(Int_t iProng) const;
88 
89  Double_t GetPtCand() const {return fRecoCandidate->Pt();}
90  Double_t GetYCand(UInt_t pdg) const {return fRecoCandidate->Y(pdg);}
91 
92  Bool_t RecoAcceptStep(AliESDtrackCuts **trackCuts) const;
93 
95 
96  void SetNProngs(Int_t nProngs){fProngs = nProngs;}
97  Int_t GetNProngs() const {return fProngs;}
98  void SetDselection(UShort_t originDselection);
100  Int_t CheckReflexion(Char_t isSign);
101  virtual Bool_t SetLabelArray();
102 
103  void SetCentralityValue(Float_t centValue) {fCentValue = centValue;}
104 
105  virtual void SetPtAccCut(Float_t* ptAccCut);
106  virtual void SetEtaAccCut(Float_t* etaAccCut);
107  virtual void SetAccCut(Float_t* ptAccCut, Float_t* etaAccCut);
108  virtual void SetAccCut();
109  virtual void SetGeneratedDsOption(Int_t /*opt*/){
110  AliError("Method implemented in derived class");
111  }
112 
113  void SetFakeSelection(Int_t fakeSel){fFakeSelection = fakeSel;}
115 
117 
118  void SetMultiplicity(Double_t multiplicity) {fMultiplicity = multiplicity;}
119  void Setq2Value(Double_t q2) {fq2 = q2;}
120  void SetTrackArray(TClonesArray* trkarray) {
121  fTrackArray = trkarray;
122  fTrackArray->SetOwner();
123  }
124  void SetConfiguration(Int_t configuration) {fConfiguration = configuration;}
125 
127 
128  protected:
129  TClonesArray *fmcArray;
131  AliAODMCParticle *fmcPartCandidate;
136 
139 
144  Int_t* fLabelArray; //[fProngs] array of labels
145 
147  Float_t* fPtAccCut; //[fProngs] array of pt cut values for the Acceptance (MC+Rec) steps
148  Float_t* fEtaAccCut; //[fProngs] array of eta (absolute value) cut values for the Acceptance (MC+Rec) steps
154  TClonesArray *fTrackArray;
156 
158  ClassDef(AliCFVertexingHF, 9);
160 };
161 
162 #endif
void SetTrackArray(TClonesArray *trkarray)
Bool_t fFillFromGenerated
MC z primary vertex.
void SetCentralityValue(Float_t centValue)
Int_t pdg
AliCFVertexingHF & operator=(const AliCFVertexingHF &c)
Double_t GetPtCand() const
void SetFillFromGenerated(Bool_t flag)
Bool_t CheckMCDaughters() const
double Double_t
Definition: External.C:58
Bool_t FillUnfoldingMatrix(UInt_t pdg, Double_t fill[4]) const
TClonesArray * fmcArray
Int_t GetMCLabel() const
Int_t MCcquarkCounting(AliAODMCParticle *mcPart) const
Int_t ComputeLocalMultiplicity(Double_t etaD, Double_t phiD, Double_t R) const
Bool_t FillRecoContainer(Double_t *containerInput)
virtual void SetPtAccCut(Float_t *ptAccCut)
char Char_t
Definition: External.C:18
void SetNVar(Int_t nVar)
AliAODMCParticle * fmcPartCandidate
Reconstructed HF candidate.
void SetRejectCandidateIfNotFromQuark(Bool_t opt)
TCanvas * c
Definition: TestFitELoss.C:172
virtual Bool_t SetLabelArray()
Bool_t fKeepDfromBOnly
flag for the feed down from b quark decay.
Int_t GetNProngs() const
virtual Bool_t GetRecoValuesFromCandidate(Double_t *) const
void SetNProngs(Int_t nProngs)
Float_t * fPtAccCut
centrality value
virtual Double_t GetPtProng(Int_t iProng) const
virtual Bool_t CheckMCChannelDecay() const
Float_t fFake
fakes selection: 0 –> all, 1 –> non-fake, 2 –> fake
Int_t fConfiguration
array of tracks
int Int_t
Definition: External.C:63
Definition: External.C:204
unsigned int UInt_t
Definition: External.C:33
float Float_t
Definition: External.C:68
virtual void SetGeneratedDsOption(Int_t)
UShort_t fOriginDselection
flag to indicate whether data container should be filled
Int_t CheckOrigin() const
void SetDselection(UShort_t originDselection)
TClonesArray * fTrackArray
magnitude of the reduced flow vector (computed using TPC tracks)
void SetFakeSelection(Int_t fakeSel)
virtual Bool_t GetGeneratedValuesFromMCParticle(Double_t *)
void SetRecoPrimVertex(Double_t zPrimVertex)
Int_t * fLabelArray
n. of prongs
void SetMCCandidateParam(Int_t label)
Bool_t CheckMCPartFamily(AliAODMCParticle *, TClonesArray *) const
AliAODRecoDecayHF * fRecoCandidate
mcArray candidate
virtual Bool_t SetRecoCandidateParam(AliAODRecoDecayHF *)
Int_t CheckReflexion(Char_t isSign)
void Setq2Value(Double_t q2)
Bool_t MCAcceptanceStep() const
const Int_t nVar
UShort_t GetDselection()
Bool_t GetFillFromGenerated() const
Bool_t RecoAcceptStep(AliESDtrackCuts **trackCuts) const
Int_t fmcLabel
flag to keep only the charm particles that comes from beauty decays
virtual void SetDecay3Prong(Int_t)
Double_t fzPrimVertex
get Number of variables for the container from the channel decay
Int_t fProngs
results of the MatchToMC()
Double_t GetYCand(UInt_t pdg) const
unsigned short UShort_t
Definition: External.C:28
Bool_t MCRefitStep(AliAODEvent *aodEvent, AliESDtrackCuts **trackCuts) const
virtual void SetAccCut()
Double_t fq2
multiplicity of the event
bool Bool_t
Definition: External.C:53
void SetMCLabel(Int_t mcLabel)
Double_t fzMCVertex
Reco z primary vertex.
Bool_t fKeepDfromB
flag to select D0 origins. 0 Only from charm 1 only from beauty 2 both from charm and beauty ...
Double_t fMultiplicity
flag to remove events not geenrated with PYTHIA
void SetConfiguration(Int_t configuration)
virtual void SetEtaAccCut(Float_t *etaAccCut)
void SetMultiplicity(Double_t multiplicity)
void SetMCPrimaryVertex(Double_t zMCVertex)
Bool_t FillMCContainer(Double_t *containerInputMC)
Bool_t fRejectIfNoQuark
variable to indicate whether the D0 was a fake or not: 0 –> fake, 1 –> MC, 2 –> non-fake ...
virtual Double_t GetEtaProng(Int_t iProng) const
Class for HF corrections as a function of many variables and step.