1 /**************************************************************************
2 * Copyright(c) 1998-2009, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
18 //-----------------------------------------------------------------------
19 // Class for HF corrections as a function of many variables and step
20 // Author : C. Zampolli, CERN
21 // D. Caffarri, Univ & INFN Padova caffarri@pd.infn.it
22 // Base class for HF Unfolding - agrelli@uu.nl
23 //-----------------------------------------------------------------------
25 #include "TParticle.h"
26 #include "TClonesArray.h"
27 #include "AliAODMCParticle.h"
28 #include "AliAODRecoDecayHF.h"
29 #include "AliAODRecoDecayHF2Prong.h"
30 #include "AliAODRecoDecayHF3Prong.h"
31 #include "AliAODRecoDecayHF4Prong.h"
32 #include "AliAODRecoCascadeHF.h"
33 #include "AliAODMCHeader.h"
34 #include "AliAODEvent.h"
36 #include "AliESDtrackCuts.h"
37 #include "AliESDtrack.h"
38 #include "AliCFTaskVertexingHF.h"
40 #include "AliCFVertexingHF.h"
42 //___________________________________________________________
43 AliCFVertexingHF::AliCFVertexingHF() :
46 fmcPartCandidate(0x0),
51 fFillFromGenerated(0),
54 fKeepDfromBOnly(kFALSE),
62 fFake(1.), // setting to MC value
63 fRejectIfNoQuark(kFALSE),
65 fConfiguration(AliCFTaskVertexingHF::kCheetah) // by default, setting the fast configuration
77 //_____________________________________________________
78 AliCFVertexingHF::AliCFVertexingHF(TClonesArray *mcArray, UShort_t originDselection) :
81 fmcPartCandidate(0x0),
86 fFillFromGenerated(0),
89 fKeepDfromBOnly(kFALSE),
97 fFake(1.), // setting to MC value
98 fRejectIfNoQuark(kFALSE),
100 fConfiguration(AliCFTaskVertexingHF::kCheetah) // by default, setting the fast configuration
103 // constructor with mcArray
106 SetDselection(originDselection);
110 //_______________________________________________________
111 AliCFVertexingHF::~AliCFVertexingHF()
117 if (fmcArray) fmcArray = 0x0;
118 if (fRecoCandidate) fRecoCandidate = 0x0;
119 if (fmcPartCandidate) fmcPartCandidate = 0x0;
121 delete [] fLabelArray;
129 delete [] fEtaAccCut;
134 //_____________________________________________________
135 AliCFVertexingHF& AliCFVertexingHF::operator=(const AliCFVertexingHF& c)
138 // assigment operator
142 TObject::operator=(c);
144 fmcArray = new TClonesArray(*(c.fmcArray));
145 delete fRecoCandidate;
146 fRecoCandidate = new AliAODRecoDecayHF(*(c.fRecoCandidate));
147 delete fmcPartCandidate;
148 fmcPartCandidate = new AliAODMCParticle(*(c.fmcPartCandidate));
149 fNDaughters = c.fNDaughters;
151 fzPrimVertex = c.fzPrimVertex;
152 fzMCVertex = c.fzMCVertex;
153 fFillFromGenerated = c.fFillFromGenerated;
154 fOriginDselection = c.fOriginDselection;
155 fKeepDfromB = c.fKeepDfromB;
156 fKeepDfromBOnly = c.fKeepDfromBOnly;
157 fmcLabel = c.fmcLabel;
159 fCentValue=c.fCentValue;
160 fFakeSelection=c.fFakeSelection;
162 fRejectIfNoQuark=c.fRejectIfNoQuark;
164 delete [] fLabelArray;
166 delete [] fEtaAccCut;
167 fLabelArray = new Int_t[fProngs];
168 fPtAccCut = new Float_t[fProngs];
169 fEtaAccCut = new Float_t[fProngs];
170 for(Int_t iP=0; iP<fProngs; iP++){
171 fLabelArray[iP]=c.fLabelArray[iP];
172 fPtAccCut[iP]=c.fPtAccCut[iP];
173 fEtaAccCut[iP]=c.fEtaAccCut[iP];
176 fMultiplicity=c.fMultiplicity;
177 fConfiguration=c.fConfiguration;
183 //____________________________________________________
184 AliCFVertexingHF::AliCFVertexingHF(const AliCFVertexingHF &c) :
189 fNDaughters(c.fNDaughters),
191 fzPrimVertex(c.fzPrimVertex),
192 fzMCVertex(c.fzMCVertex),
193 fFillFromGenerated(c.fFillFromGenerated),
194 fOriginDselection (c.fOriginDselection),
195 fKeepDfromB (c.fKeepDfromB),
196 fKeepDfromBOnly (c.fKeepDfromBOnly),
197 fmcLabel(c.fmcLabel),
200 fCentValue(c.fCentValue),
203 fFakeSelection(c.fFakeSelection),
205 fRejectIfNoQuark(c.fRejectIfNoQuark),
206 fMultiplicity(c.fMultiplicity),
207 fConfiguration(c.fConfiguration)
213 fmcArray = new TClonesArray(*(c.fmcArray));
214 delete fRecoCandidate;
215 fRecoCandidate = new AliAODRecoDecayHF(*(c.fRecoCandidate));
216 delete fmcPartCandidate;
217 fmcPartCandidate = new AliAODMCParticle(*(c.fmcPartCandidate));
219 delete [] fLabelArray;
221 delete [] fEtaAccCut;
222 fLabelArray = new Int_t[fProngs];
223 fPtAccCut = new Float_t[fProngs];
224 fEtaAccCut = new Float_t[fProngs];
225 if (c.fLabelArray) memcpy(fLabelArray,c.fLabelArray,fProngs*sizeof(Int_t));
226 if (c.fPtAccCut) memcpy(fPtAccCut,c.fPtAccCut,fProngs*sizeof(Int_t));
227 if (c.fEtaAccCut) memcpy(fEtaAccCut,c.fEtaAccCut,fProngs*sizeof(Int_t));
231 //___________________________________________________________
232 void AliCFVertexingHF::SetDselection(UShort_t originDselection)
234 // setting the way the D0 will be selected
235 // 0 --> only from c quarks
236 // 1 --> only from b quarks
237 // 2 --> from both c quarks and b quarks
239 fOriginDselection = originDselection;
241 if (fOriginDselection == 0) {
242 fKeepDfromB = kFALSE;
243 fKeepDfromBOnly = kFALSE;
246 if (fOriginDselection == 1) {
248 fKeepDfromBOnly = kTRUE;
251 if (fOriginDselection == 2) {
253 fKeepDfromBOnly = kFALSE;
259 //______________________________________________________
260 void AliCFVertexingHF::SetMCCandidateParam(Int_t label)
263 // setting the parameters (candidate and n. daughters)
266 fmcPartCandidate = dynamic_cast <AliAODMCParticle*> (fmcArray->At(label));
267 if (fmcPartCandidate){
268 fNDaughters = fmcPartCandidate->GetNDaughters();
271 AliError(Form("Dynamic cast failed, fNdaughters will remain set to %d",fNDaughters));
276 //____________________________________________________________
277 Int_t AliCFVertexingHF::MCcquarkCounting(AliAODMCParticle* mcPart) const
280 // counting the c-quarks
285 if (mcPart->GetPdgCode() == 4) cquarks++;
286 if (mcPart->GetPdgCode() == -4) cquarks++;
289 AliWarning("Particle not found in tree, skipping\n");
296 //________________________________________________________
297 Bool_t AliCFVertexingHF::CheckMCPartFamily(AliAODMCParticle */*mcPart*/, TClonesArray */*mcArray*/) const
300 //checking the family
303 Int_t pdgGranma = CheckOrigin();
305 if (pdgGranma == -99999){
306 AliDebug(2,"This particle does not have a quark in his genealogy\n");
309 if (pdgGranma == -9999){
310 AliDebug(2,"This particle come from a B decay channel but according to the settings of the task, we keep only the prompt charm particles\n");
314 if (pdgGranma == -999){
315 AliDebug(2,"This particle come from a prompt charm particles but according to the settings of the task, we want only the ones coming from B\n");
319 if (!CheckMCDaughters()) {
320 AliDebug(3, "CheckMCDaughters false");
323 if (!CheckMCChannelDecay()) {
324 AliDebug(3,"CheckMCChannelDecay false");
330 //_________________________________________________________________________________________________
331 Int_t AliCFVertexingHF::CheckOrigin() const
334 // checking whether the mother of the particles come from a charm or a bottom quark
339 mother = fmcPartCandidate->GetMother();
341 Int_t abspdgGranma =0;
342 Bool_t isFromB=kFALSE;
343 Bool_t isQuarkFound=kFALSE;
346 AliDebug(2,Form("mother at step %d = %d", istep, mother));
347 AliAODMCParticle* mcGranma = dynamic_cast<AliAODMCParticle*>(fmcArray->At(mother));
349 pdgGranma = mcGranma->GetPdgCode();
350 AliDebug(2,Form("Pdg mother at step %d = %d", istep, pdgGranma));
351 abspdgGranma = TMath::Abs(pdgGranma);
352 if ((abspdgGranma > 500 && abspdgGranma < 600) || (abspdgGranma > 5000 && abspdgGranma < 6000)){
355 if(abspdgGranma==4 || abspdgGranma==5) isQuarkFound=kTRUE;
356 mother = mcGranma->GetMother();
358 AliError("Failed casting the mother particle!");
363 if(fRejectIfNoQuark && !isQuarkFound) return -99999;
365 if (!fKeepDfromB) return -9999; //skip particle if come from a B meson.
368 if (fKeepDfromBOnly) return -999;
373 //___________________________________________
374 Bool_t AliCFVertexingHF::CheckMCDaughters()const
377 // checking the daughters
380 AliAODMCParticle *mcPartDaughter;
381 Bool_t checkDaughters = kFALSE;
383 Int_t label0 = fmcPartCandidate->GetDaughter(0);
384 Int_t label1 = fmcPartCandidate->GetDaughter(1);
385 AliDebug(3,Form("label0 = %d, label1 = %d",label0,label1));
386 if (label1<=0 || label0 <= 0){
387 AliDebug(2, Form("The MC particle doesn't have correct daughters, skipping!!"));
388 return checkDaughters;
391 if (fLabelArray == 0x0) {
392 return checkDaughters;
395 for (Int_t iProng = 0; iProng<fProngs; iProng++){
396 mcPartDaughter = dynamic_cast<AliAODMCParticle*>(fmcArray->At(fLabelArray[iProng]));
397 if (!mcPartDaughter) {
398 AliWarning("At least one Daughter Particle not found in tree, skipping");
399 return checkDaughters;
403 checkDaughters = kTRUE;
404 return checkDaughters;
407 //______________________________________________________
408 Bool_t AliCFVertexingHF::FillMCContainer(Double_t *containerInputMC)
411 // fill the container for Generator level selection
414 Bool_t mcContainerFilled = kFALSE;
416 Double_t* vectorMC = new Double_t[fNVar];
417 for (Int_t iVar = 0; iVar<fNVar; iVar++) vectorMC[iVar]= 9999.;
419 if (GetGeneratedValuesFromMCParticle(&vectorMC[0])){
420 for (Int_t iVar = 0; iVar<fNVar; iVar++){
421 containerInputMC[iVar] = vectorMC[iVar];
423 mcContainerFilled = kTRUE;
427 return mcContainerFilled;
430 //______________________________________________________
431 Bool_t AliCFVertexingHF::FillRecoContainer(Double_t *containerInput)
434 // fill the container for Reconstrucred level selection
437 Bool_t recoContainerFilled = kFALSE;
438 Double_t* vectorValues = new Double_t[fNVar];
439 Double_t* vectorReco = new Double_t[fNVar];
440 for (Int_t iVar = 0; iVar<fNVar; iVar++) {
442 vectorValues[iVar]= 9999.;
443 vectorReco[iVar]=9999.;
446 if(fFillFromGenerated){
447 //filled with MC values
448 if (GetGeneratedValuesFromMCParticle(&vectorValues[0])){
449 for (Int_t iVar = 0; iVar<fNVar; iVar++){
450 containerInput[iVar] = vectorValues[iVar];
452 recoContainerFilled = kTRUE;
456 //filled with Reco values
458 if (GetRecoValuesFromCandidate(&vectorReco[0])){
459 for (Int_t iVar = 0; iVar<fNVar; iVar++){
460 containerInput[iVar] = vectorReco[iVar];
462 recoContainerFilled = kTRUE;
466 delete [] vectorValues;
467 delete [] vectorReco;
471 return recoContainerFilled;
474 //_____________________________________________________
475 Bool_t AliCFVertexingHF::MCAcceptanceStep() const
478 // checking the MC acceptance step
481 Bool_t bMCAccStep = kFALSE;
483 AliAODMCParticle *mcPartDaughter;
484 Int_t label0 = fmcPartCandidate->GetDaughter(0);
485 Int_t label1 = fmcPartCandidate->GetDaughter(1);
486 if (label1<=0 || label0 <= 0){
487 AliDebug(2, Form("The MC particle doesn't have correct daughters, skipping!!"));
491 if (fLabelArray == 0x0) {
495 for (Int_t iProng = 0; iProng<fProngs; iProng++){
496 mcPartDaughter = dynamic_cast<AliAODMCParticle*>(fmcArray->At(fLabelArray[iProng]));
497 if (!mcPartDaughter) {
498 AliWarning("At least one Daughter Particle not found in tree, skipping");
501 Double_t eta = mcPartDaughter->Eta();
502 Double_t pt = mcPartDaughter->Pt();
504 //set values of eta and pt in the constructor.
505 // if (TMath::Abs(eta) > 0.9 || pt < 0.1){
506 if (TMath::Abs(eta) > fEtaAccCut[iProng] || pt < fPtAccCut[iProng]){
507 AliDebug(3,Form("At least one daughter has eta or pt outside the required range (|eta| = %f, pt = %f, should be |eta| < %f, pt > %f \n", TMath::Abs(eta), pt, fEtaAccCut[iProng], fPtAccCut[iProng]));
515 //_____________________________________________________
516 Bool_t AliCFVertexingHF::MCRefitStep(AliAODEvent *aodEvent, AliESDtrackCuts **trackCuts) const
519 // check on the kTPCrefit and kITSrefit conditions of the daughters
521 Bool_t bRefitStep = kFALSE;
523 Int_t label0 = fmcPartCandidate->GetDaughter(0);
524 Int_t label1 = fmcPartCandidate->GetDaughter(1);
526 if (label1<=0 || label0 <= 0){
527 AliDebug(2, Form("The MC particle doesn't have correct daughters, skipping!!"));
531 if (fLabelArray == 0x0) {
535 Int_t foundDaughters = 0;
536 Int_t* temp = new Int_t[fProngs];
537 for (Int_t ilabel = 0; ilabel<fProngs; ilabel++){
538 temp[ilabel] = fLabelArray[ilabel];
541 // if (trackCuts->GetRequireTPCRefit() || trackCuts->GetRequireITSRefit()){
543 for(Int_t iaod =0; iaod<aodEvent->GetNumberOfTracks(); iaod++){
544 AliAODTrack *track = (AliAODTrack*)aodEvent->GetTrack(iaod);
545 if(track->GetStatus()&AliESDtrack::kITSpureSA) continue;
546 Bool_t foundTrack = kFALSE;
548 for (Int_t ilabel = 0; ilabel<fProngs; ilabel++){
549 AliDebug(3,Form("fLabelArray[%d] = %d, track->GetLabel() = %d",ilabel,fLabelArray[ilabel],TMath::Abs(track->GetLabel())));
550 if ((track->GetLabel()<0)&&(fFakeSelection==1)) continue;
551 if ((track->GetLabel()>0)&&(fFakeSelection==2)) continue;
553 if (TMath::Abs(track->GetLabel()) == temp[ilabel]) {
562 AliDebug(4,Form("daughter %d \n",foundDaughters));
563 if(trackCuts[prongindex]->GetRequireTPCRefit()){
564 if(track->GetStatus()&AliESDtrack::kTPCrefit) {
568 AliDebug(3, "Refit cut not passed , missing TPC refit\n");
575 if (trackCuts[prongindex]->GetRequireITSRefit()) {
576 if(track->GetStatus()&AliESDtrack::kITSrefit){
580 AliDebug(3, "Refit cut not passed , missing ITS refit\n");
587 if (foundDaughters == fProngs){
594 if (foundDaughters== fProngs) return bRefitStep;
598 //____________________________________________________________________________
600 Bool_t AliCFVertexingHF::RecoStep()
603 //check also vertex and ITS Refit and TPC Refit
606 Bool_t bRecoStep = kFALSE;
607 Int_t mcLabel = GetMCLabel();
610 AliDebug(2,"No MC particle found");
614 fmcPartCandidate = (AliAODMCParticle*)fmcArray->At(mcLabel);
615 if (!fmcPartCandidate){
616 AliWarning("Could not find associated MC in AOD MC tree");
621 Int_t pdgGranma = CheckOrigin();
623 if (pdgGranma == -99999){
624 AliDebug(2,"This particle does not have a quark in his genealogy\n");
627 if (pdgGranma == -9999){
628 AliDebug(2,"This particle come from a B decay channel but according to the settings of the task, we keep only prompt charm particles\n");
632 if (pdgGranma == -999){
633 AliDebug(2,"This particle come from a prompt charm particle but according to the settings of the task, we want only the ones coming from B\n");
640 //____________________________________________
641 Double_t AliCFVertexingHF::GetEtaProng(Int_t iProng) const
644 // getting eta of the prong
648 Double_t etaProng = fRecoCandidate->EtaProng(iProng);
653 //______________________________________________________
654 Double_t AliCFVertexingHF::GetPtProng(Int_t iProng) const
657 // getting pt of the prong
661 Double_t ptProng = fRecoCandidate->PtProng(iProng);
668 //____________________________________________________________________
670 Bool_t AliCFVertexingHF::RecoAcceptStep(AliESDtrackCuts **trackCuts) const
673 // reco Acceptance step
676 Bool_t bRecoAccStep = kFALSE;
678 Float_t etaCutMin, ptCutMin, etaCutMax, ptCutMax;
680 Float_t etaProng=0., ptProng=0.;
682 for (Int_t iProng =0; iProng<fProngs; iProng++){
684 trackCuts[iProng]->GetEtaRange(etaCutMin, etaCutMax);
685 trackCuts[iProng]->GetPtRange(ptCutMin, ptCutMax);
686 etaProng = GetEtaProng(iProng);
687 ptProng = GetPtProng(iProng);
689 Bool_t acceptanceProng = (etaProng>etaCutMin && etaProng<etaCutMax && ptProng>ptCutMin && ptProng<ptCutMax);
690 if (!acceptanceProng) {
691 AliDebug(2,"At least one reconstructed prong isn't in the acceptance\n");
699 //___________________________________________________________
701 Bool_t AliCFVertexingHF::FillUnfoldingMatrix(UInt_t pdg, Double_t fill[4]) const
704 // filling the unfolding matrix
707 if(fmcPartCandidate){
709 fill[0] = GetPtCand();
710 fill[1] = GetYCand(pdg);
712 fill[2] = fmcPartCandidate->Pt();
713 fill[3] = fmcPartCandidate->Y();
720 //___________________________________________________________
722 Int_t AliCFVertexingHF::CheckReflexion(Char_t isSign)
725 // check for reflexion (particle/antiparticle)
728 Int_t mcLabel = GetMCLabel();
731 AliDebug(2,"No MC particle found");
735 fmcPartCandidate = (AliAODMCParticle*)fmcArray->At(mcLabel);
736 if (!fmcPartCandidate){
737 AliWarning("Could not find associated MC in AOD MC tree");
742 if(fmcPartCandidate->GetPdgCode()>0) {
743 if (isSign == 1){ // I ask for antiparticle only
744 AliDebug(2,"candidate is particle, I ask for antiparticle only");
747 return 1; // particle
749 else if(fmcPartCandidate->GetPdgCode()<0) {
750 if (isSign == 0){ // I ask for particle only
751 AliDebug(2,"candidate is antiparticle, I ask for particle only");
754 return 2; // antiparticle
756 else return 0; // ....shouldn't be...
759 //___________________________________________________________
761 Bool_t AliCFVertexingHF::SetLabelArray()
764 // setting the label arrays
767 Bool_t bLabelArray = kFALSE;
769 fLabelArray = new Int_t[fProngs];
771 AliAODMCParticle *mcPartDaughter;
772 Int_t label0 = fmcPartCandidate->GetDaughter(0);
773 Int_t label1 = fmcPartCandidate->GetDaughter(1);
774 AliDebug(2,Form("label0 = %d, label1 = %d",label0,label1));
775 if (label1<=0 || label0 <= 0){
776 AliDebug(2, Form("The MC particle doesn't have correct daughters, skipping!!"));
777 delete [] fLabelArray;
782 if (label1 - label0 == fProngs-1){
783 for (Int_t iProng = 0; iProng<fProngs; iProng++){
784 mcPartDaughter = dynamic_cast<AliAODMCParticle*>(fmcArray->At(label0+iProng));
786 fLabelArray[iProng] = mcPartDaughter->GetLabel();
789 AliError("Failed casting the daughter particle, returning a NULL label array");
790 delete [] fLabelArray;
797 // resonant decay channel
798 else if (label1 - label0 == fProngs-2 && fProngs > 2){
799 Int_t labelFirstDau = fmcPartCandidate->GetDaughter(0);
800 Int_t foundDaughters = 0;
801 for(Int_t iDau=0; iDau<fProngs-1; iDau++){
802 Int_t iLabelDau = labelFirstDau+iDau;
803 AliAODMCParticle* part = dynamic_cast<AliAODMCParticle*>(fmcArray->At(iLabelDau));
805 AliError("Wrong particle type in fmcArray");
806 delete [] fLabelArray;
810 Int_t pdgCode=TMath::Abs(part->GetPdgCode());
811 if(pdgCode==211 || pdgCode==321 || pdgCode==2212){
813 fLabelArray[foundDaughters] = part->GetLabel();
817 AliError("Error while casting particle! returning a NULL array");
818 delete [] fLabelArray;
823 // added K0S case - Start
824 else if (pdgCode==311) {
825 if (part->GetNDaughters()!=1) {
826 delete [] fLabelArray;
830 Int_t labelK0Dau = part->GetDaughter(0);
831 AliAODMCParticle* partK0S = dynamic_cast<AliAODMCParticle*>(fmcArray->At(labelK0Dau));
833 AliError("Error while casting particle! returning a NULL array");
834 delete [] fLabelArray;
838 Int_t nDauRes=partK0S->GetNDaughters();
839 if(nDauRes!=2 || partK0S->GetPdgCode()!=310) {
840 AliDebug(2,"No K0S on no 2-body decay");
841 delete [] fLabelArray;
845 Int_t labelFirstDauRes = partK0S->GetDaughter(0);
846 AliDebug(2,Form(" Found K0S (%d)",labelK0Dau));
847 for(Int_t iDauRes=0; iDauRes<nDauRes; iDauRes++){
848 Int_t iLabelDauRes = labelFirstDauRes+iDauRes;
849 AliAODMCParticle* dauRes = dynamic_cast<AliAODMCParticle*>(fmcArray->At(iLabelDauRes));
851 if (TMath::Abs(dauRes->GetPdgCode())!=211) {
852 AliDebug(2,"K0S doesn't decay in 2 charged pions!");
853 delete [] fLabelArray;
858 fLabelArray[foundDaughters] = dauRes->GetLabel();
863 AliError("Error while casting resonant daughter! returning a NULL array");
864 delete [] fLabelArray;
870 // added K0S case - End
872 Int_t nDauRes=part->GetNDaughters();
874 delete [] fLabelArray;
878 Int_t labelFirstDauRes = part->GetDaughter(0);
879 for(Int_t iDauRes=0; iDauRes<nDauRes; iDauRes++){
880 Int_t iLabelDauRes = labelFirstDauRes+iDauRes;
881 AliAODMCParticle* dauRes = dynamic_cast<AliAODMCParticle*>(fmcArray->At(iLabelDauRes));
883 fLabelArray[foundDaughters] = dauRes->GetLabel();
887 AliError("Error while casting resonant daughter! returning a NULL array");
888 delete [] fLabelArray;
895 if (foundDaughters != fProngs){
896 delete [] fLabelArray;
901 // wrong correspondance label <--> prongs
903 delete [] fLabelArray;
907 SetAccCut(); // setting the pt and eta acceptance cuts
912 //___________________________________________________________
914 void AliCFVertexingHF::SetPtAccCut(Float_t* ptAccCut)
917 // setting the pt cut to be used in the Acceptance steps (MC+Reco)
921 for (Int_t iP=0; iP<fProngs; iP++){
922 fPtAccCut[iP]=ptAccCut[iP];
930 //___________________________________________________________
932 void AliCFVertexingHF::SetEtaAccCut(Float_t* etaAccCut)
935 // setting the eta cut to be used in the Acceptance steps (MC+Reco)
939 for (Int_t iP=0; iP<fProngs; iP++){
940 fEtaAccCut[iP]=etaAccCut[iP];
945 //___________________________________________________________
947 void AliCFVertexingHF::SetAccCut(Float_t* ptAccCut, Float_t* etaAccCut)
950 // setting the pt and eta cut to be used in the Acceptance steps (MC+Reco)
954 for (Int_t iP=0; iP<fProngs; iP++){
955 fPtAccCut[iP]=ptAccCut[iP];
956 fEtaAccCut[iP]=etaAccCut[iP];
962 //___________________________________________________________
964 void AliCFVertexingHF::SetAccCut()
967 // setting the pt and eta cut to be used in the Acceptance steps (MC+Reco)
971 for (Int_t iP=0; iP<fProngs; iP++){